Drone Motion Primitive Dataset
收藏资源简介:
Drone technology is one of the largest tackled fields in today’s world, as it can range from pure enjoyment of drone racing to medical use and fighting crime. Several teams are interested in developing improved human machine interfaces for operating drones. This dataset is a collection of different motion primitives commanded using a PS3 joystick to control an Ardrone on Gazebo. This has been conducted using ROS Melodic on Ubuntu 18.04. The PS3 six-axis joystick was used to collect this data, and it was connected to the Gazebo drone by using the ArDrone Helpers libraries.This dataset contains 4 different motion primitives which are: Line, Helix, Sine, and Arc. The testing was conducted on each primitive alone and using a stop indicator, which is specified for each primitive, at the end of each primitive. The stop indicators are as follows:· X for Sine· Circle for Helix· Square for Line· Triangle for ArcThen a collection of every two primitives consecutively was also conducted (i.e. line to helix, arc to line, helix to sine …) using the same stop indictors at the end of every corresponding primitive. Each test has around 300 to 500 samples. It is also important to note that our data is sample and hold, meaning that if the joystick’s analog stick is in a certain position for a few seconds, then it will not send any new samples for the velocities.The data was extracted into a .YAML file, as continuous commands from the joystick which were used to move the drone in Gazebo. They are then parsed (using python 2.7) to extract the velocities of the drone along the x y z axes as well as the pressed buttons (x or circle or square or triangle) into a .CSV file.This parsed data is further processed (using python3) into another .CSV file containing all the velocities as arrays, a histogram to get the average number of samples for every sequence, and a .RTF file which contains some analysis for each primitive or collection of primitives (number of samples taken, min and max sequence size, mean, median, and deviation).N.B: for the sine primitive, the data has been extracted into two categories: one where the sine was along the x-y axes and another where it was along the x-z or y-z axes.The github link for the two codes used is: https://github.com/justinelhalabi/PS3-Joystick-Command-Parsing-into-CSV
无人机技术是当前全球重点研究与应用的领域之一,其应用范畴覆盖从纯粹的无人机竞速娱乐,到医疗救援与犯罪防控等诸多方向。目前已有多个研究团队致力于开发用于无人机操控的人机交互界面(Human Machine Interface, HMI)改进方案。本数据集收录了通过PS3六轴手柄操控Gazebo仿真平台中Ardrone无人机时生成的多种运动基元(Motion Primitive)数据,采集过程基于Ubuntu 18.04系统下的机器人操作系统(Robot Operating System, ROS)Melodic版本完成。本次数据采集使用PS3六轴手柄,通过ArDrone Helpers库实现与Gazebo仿真平台中无人机的连接。 本数据集包含4类不同的运动基元,分别为直线(Line)、螺旋(Helix)、正弦曲线(Sine)与圆弧(Arc)。测试分为单基元测试与连续基元组合测试两类:单基元测试会在每个运动基元执行结束时,触发对应专属的停止标识,停止标识的对应规则如下: · 正弦曲线(Sine)对应按键X · 螺旋(Helix)对应按键Circle · 直线(Line)对应按键Square · 圆弧(Arc)对应按键Triangle 随后还开展了两类基元连续组合的测试(例如直线→螺旋、圆弧→直线、螺旋→正弦曲线等),同样在每类对应基元的执行末端使用上述停止标识。每组测试的样本量约为300至500条。 需特别说明的是,本数据集采用采样保持(Sample and Hold)机制:若手柄摇杆保持在某一位置持续数秒,则不会为速度指令发送新的采样数据。原始采集数据会先导出为YAML格式文件,存储用于操控Gazebo中无人机的手柄连续指令;随后使用Python 2.7对该文件进行解析,提取无人机沿X、Y、Z三轴的速度数据以及被按下的按键(X、Circle、Square或Triangle)信息,并将这些数据保存为CSV格式文件。 解析后的CSV数据还会通过Python 3进行进一步处理,生成三类文件:一是存储所有速度数组的新CSV文件;二是用于计算每类序列平均采样数的直方图文件;三是RTF格式的分析报告文件,其中包含每类单基元或基元组合的相关统计信息,包括采样总数、序列长度的最大值与最小值、均值、中位数以及标准差。 注意事项:针对正弦曲线运动基元,其数据被分为两类:一类是沿X-Y平面的正弦运动数据,另一类是沿X-Z或Y-Z平面的正弦运动数据。 本次实验所用的两段代码的GitHub仓库链接为:https://github.com/justinelhalabi/PS3-Joystick-Command-Parsing-into-CSV



