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
无人机技术是当今全球重点研究的领域之一,其应用范畴从无人机竞速休闲,延伸至医疗应用与犯罪防控等多个方向。目前已有多个研究团队致力于开发更优化的人机交互界面,以实现无人机的精准操控。本数据集为使用PS3摇杆(PS3 joystick)输入的多类运动基元(motion primitives)集合,用于在Gazebo仿真平台中操控Ardrone无人机。本次实验基于Ubuntu 18.04系统搭载ROS Melodic环境开展,数据采集采用PS3六轴摇杆,通过ArDrone Helpers库将摇杆指令连接至Gazebo中的仿真无人机。 本数据集包含四类运动基元,分别为:直线(Line)、螺旋线(Helix)、正弦曲线(Sine)与圆弧(Arc)。测试环节分为单基元测试与连续双基元组合测试两类: 单基元测试:针对每个基元单独开展测试,并在每个基元执行结束时触发对应专属的停止标识。各类停止标识与基元的对应关系如下: · 正弦曲线对应X键 · 螺旋线对应圆圈(Circle)键 · 直线对应方块(Square)键 · 圆弧对应三角(Triangle)键 连续双基元组合测试:依次执行两类基元的组合(如直线→螺旋线、圆弧→直线、螺旋线→正弦曲线等),同样在每个基元执行结束时触发对应停止标识。 单组测试的样本量约为300至500个。需特别说明,本数据集采用采样保持(sample and hold)机制:若摇杆模拟摇杆持续处于某一位置数秒,系统将不会发送新的速度采样数据。 原始数据以.YAML文件格式存储,包含来自摇杆的连续操控指令,用于控制Gazebo中的无人机。随后通过Python 2.7对原始数据进行解析,提取无人机沿x、y、z三轴的速度信息以及按键触发信息(X、圆圈、方块或三角键),并将结果保存为.CSV文件。 经Python 3进一步处理后,生成两份衍生文件:其一为包含所有速度数组信息的.CSV文件,其二为用于统计各序列平均采样数的直方图数据;同时生成.RTF文件,其中包含各单基元或基元组合的样本统计信息,包括采样总数、序列规模的最小值与最大值、均值、中位数与标准差。 附注:针对正弦曲线基元,数据被划分为两类:一类为沿x-y平面的正弦运动,另一类为沿x-z或y-z平面的正弦运动。本次研究所用两段代码的GitHub链接为:https://github.com/justinelhalabi/PS3-Joystick-Command-Parsing-into-CSV



