ZJU-FAST-Lab / Fast-Drone-250

hardware and software design of the 250mm autonomous drone
1.39k stars 267 forks source link

从零制作自主空中机器人

本文档是视频教程从零制作自主空中机器人的配套文档,github链接为https://github.com/ZJU-FAST-Lab/Fast-Drone-250

安全事项

四旋翼无人机具有较高的安全风险,请同学们严格遵守安全规范,不要在有人的室内或室外进行试验,对自己和他人的安全负责,本实验室完全免责。

第一章:课程介绍

本次课程是一套面向对自主空中机器人感兴趣的学生、爱好者、相关从业人员的免费课程,包含了从硬件组装、机载电脑环境设置、代码部署、实机实验等全套详细流程,带你从0开始,组装属于自己的自主无人机,并让它可以在未知的环境中自由避障穿行。本次课程所涉及的所有代码、硬件设计全部开源,严禁商用与转载,版权与最终解释权由浙江大学FASTLAB实验室所有。 本次课程的重心主要落在自主空中机器人的搭建、代码部署及调试上,关于自主空中机器人的一些理论基础,例如动力学模型,路径搜索,轨迹规划,地图构建等内容,高飞老师在深蓝学院有非常详尽而深入浅出的课程,本次课程就不再赘述。

第二章:动力套焊接

机器人本体相关配件及焊接用工具详见purchase_list.xlsx,对硬件选型有相关疑问请看 番外一:硬件选型

第三章:飞控的安装与接线

第四章:飞控设置与试飞

第五章:机载电脑与传感器的安装

第六章:Ubuntu20.04的安装

第八章:常用实验与调试软件的安装与使用

第九章:Ego-Planner代码框架与参数介绍

第十章:VINS的参数设置与外参标定

第十一章:Ego-Planner的实验

Q&A 常见问题及解答

Q: 能不能用265+435来不跑vins?
A: 可以,但265直出的里程计的速度估计有问题,可能导致控制不稳定。需要把265和imu做ekf融合。

Q: 硬件清单中的xxx能不能更换?
A: 请看视频番外一,讲解了大部分替换可能。
   如果要换大轴距机架,请相应更换动力套及桨叶。pid参数也需要相应调整,相关内容自行查阅。
   435相机可以换430相机。430更便宜但没有外壳,不好固定且容易炸坏。
   电池不建议更换,因为课程的Q250机架刚刚好可以塞入2300mah 4S电池,不需要额外固定。更换电池需要自行解决电池放置问题。

Q: 能不能用D435i自带的imu运行vins?
A: 不行,因为435的imu噪声很大

Q: 课程提供的v1.11.0固件有什么改动吗?必须使用这个固件吗?
A: 没有任何改动,是直接从px4官方下载的。目前仅在该版本上测试通过了本套代码,且在v1.13上测试失败,表现为VINS会经常崩溃。其他飞控/其他版本固件没有测试,有需要的同学可以自行测试。

Q: QGC内测试电机不转怎么办?
A: 1. 检查电调是否支持dshot,不支持请自行查阅pwm电调校准方法。 
   2.如果是使用V5+飞控或其他把模拟和数字输出分开的飞控(特点是输出口标号为A1~A4 M1~M4),如果要用Dshot协议,请插在A口上
   3.使用holybro pixhawk4完全版飞控,飞控与分电板的插线请插在FMU PWM OUTPUT上,而非I/O PWM OUTPUT

Q: 运行vins后报红字错误?
A: 大概率是你改config后格式错误,照着报错去修改对应的config

Q: 运行vins后报"VINS_RESULT_PATH not opened"?
A: 在home目录创建`vins_output`文件夹(如果你的用户名不是fast-drone,需要修改config内的vins_out_path为你实际创建的文件夹的绝对路径)

Q: 这台飞机的载重有多少?续航有多少?能飞多远?
A: 不带额外负载起飞重量在1.1~1.2kg左右,最大起飞重量在1.8kg内,再大控制不稳且续航很短。
    不带负载续航约5分钟。
    能飞多远取决于你wifi的通讯质量,一般wifi顶多通讯100米。此外由于栅格地图直接开在内存内,如果地图范围设置过大,容易占满内存导致其他程序运行缓慢。一般不建议超过50米*50米。

Q: 为什么要挡住D435的结构光?
A: 结构光的意义在于使相机得到的深度图更准确,但双目图片上会显示出位置固定不变的点阵光斑,这对VIO的运行是不利的,所以需要关掉。

Q: VINS飘怎么办?
A: 1. 检查环境中是否有强反光物体(瓷砖、玻璃等)
   2. 尽量缓慢地移动无人机,场景内不要有运动物体
   3. 尽量准确地测量初始外参
   4. 不要在运行vins的时候在远程桌面上运行rviz(会占用大量CPU资源),实在想开建议去配一下ROS多机,然后在笔记本上开
   5. 检查环境中是否有频闪光源(肉眼无法看出,在realsense的单目画面中检查)

Q: 我没有自稳模式无人机的飞行经验,身边也没有有经验的飞手,怎么办呢?
A: 1. 有预算的情况下,建议购买一台耐摔的带保护圈的穿越机来练手,推荐的型号有mobula6,吉朗小金鱼85x,化骨龙racewhoop30等
   2. 没啥预算的情况下,建议购买一个遥控器加密狗来把课程推荐的AT9S遥控器连接到电脑,然后在模拟器里练熟。模拟器推荐steam上的liftoff,免费的推荐free rider

Q: 我想用NX做机载电脑,该另外做些什么?
A: 原则上不建议小白用NX,会多很多麻烦事,本课程并不涉及,助教也没有时间去帮你看。
   需要额外做下面的事:
   1. 修改VINS为GPU版本的,因为NX的CPU算力很差,跑课程的CPU版VINS一定跑不动
   2. 解决NX固定及供电问题
   3. 解决realsense固定问题
   4. 解决NX用小底板时接口不够的问题
   5. 解决一系列arm和x86不兼容带来的问题

Q: 我按照教程修改sd卡里的etc/extra.txt后,IMU频率没有变成200hz怎么办?
A: 可能原因是你的固件不支持这样修改,可以尝试在启动mavros后执行:
rosrun mavros mavcmd long 511 105 5000 0 0 0 0 0 & sleep 1;
rosrun mavros mavcmd long 511 31 5000 0 0 0 0 0 & sleep 1;