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操纵杆操控Gazebo仿真环境中AR无人机(AR Drone)的各类运动基元(motion primitives),数据采集基于Ubuntu 18.04系统搭载的ROS Melodic版本完成。本次数据采集采用PS3六轴操纵杆,通过AR无人机辅助库(ArDrone Helpers libraries)实现操纵杆与Gazebo仿真环境中无人机的连接。 本数据集包含4类标准运动基元,分别为直线(Line)、螺旋线(Helix)、正弦曲线(Sine)与圆弧(Arc)。测试分为单基元测试与连续基元组合测试两类:单基元测试时,每类运动基元执行完毕后将触发对应预设的停止标识,各类基元对应的停止标识如下:· 正弦曲线(Sine)对应X按键 · 螺旋线(Helix)对应Circle按键 · 直线(Line)对应Square按键 · 圆弧(Arc)对应Triangle按键。 随后还开展了连续双基元组合测试(例如直线转螺旋线、圆弧转直线、螺旋线转正弦曲线等组合),每类组合的对应基元执行完毕后仍采用上述统一停止标识。每组测试的样本量约为300至500条。需特别说明的是,本数据集采用采样保持(Sample and Hold)机制:若操纵杆的摇杆保持某一位置持续数秒,系统将不会发送该时段内的速度新采样数据。 原始采集数据将被导出为YAML格式文件,存储用于操控Gazebo中无人机的操纵杆连续指令。随后使用Python 2.7对该YAML文件进行解析,提取无人机沿X、Y、Z轴的速度数据以及被按下的按键信息(即X、Circle、Square、Triangle按键),并将结果存储为CSV格式文件。 解析后的CSV数据将通过Python 3进行二次处理:生成包含所有速度数组的新CSV文件、用于统计各序列平均采样数的直方图,以及包含各类运动基元或基元组合分析内容的RTF格式文件,分析项涵盖采样数量、序列长度的最值、均值、中位数与标准差。 注意:针对正弦曲线(Sine)运动基元,数据被分为两类:一类为沿X-Y平面的正弦运动,另一类为沿X-Z或Y-Z平面的正弦运动。本次实验所用的两段代码的GitHub链接为:https://github.com/justinelhalabi/PS3-Joystick-Command-Parsing-into-CSV



