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摇杆(PS3 joystick)操控Gazebo仿真平台中的Ardrone时生成的多种运动基元(motion primitives)。该数据集的采集基于Ubuntu 18.04系统下的机器人操作系统Melodic版本(ROS Melodic)完成。本次数据采集使用六轴PS3摇杆,通过ArDrone Helpers库将摇杆与Gazebo仿真平台中的Ardrone建立连接。 本数据集包含4类不同的运动基元,分别为直线运动(Line)、螺旋运动(Helix)、正弦运动(Sine)以及圆弧运动(Arc)。测试环节针对单类运动基元展开,且在每类基元的运动结束位置设置对应专属的停止标识。各类基元对应的停止标识如下: - 正弦运动对应X按键 - 螺旋运动对应圆圈按键 - 直线运动对应方块按键 - 圆弧运动对应三角按键 随后,本数据集还采集了两类运动基元连续切换的测试数据(例如直线运动切换至螺旋运动、圆弧运动切换至直线运动、螺旋运动切换至正弦运动等),测试过程同样在每类基元结束位置使用上述对应停止标识。单组测试的样本量约为300至500条。 需特别说明的是,本数据集采用“采样保持(sample and hold)”机制:若摇杆的模拟摇杆保持某一位置数秒,则不会为该速度指令发送新的采样数据。首先将来自摇杆的连续操控指令提取为.YAML格式文件,用于控制Gazebo平台中的Ardrone运动;随后使用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



