# FastLabDrone项目复现注意事项 **Repository Path**: max0617/FastLabDrone ## Basic Information - **Project Name**: FastLabDrone项目复现注意事项 - **Description**: 本仓库的目的是复现FastLabDrone的无人机项目, 由于复现过程中遇到了许多bug, 特此记录一下, 供遇到类似情况时参考和解决. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-03-03 - **Last Updated**: 2025-03-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FastLabDrone项目复现注意事项 # 目录 [介绍](#项目论文) [相关论文](#相关论文) [项目教程](#项目教程) [注意事项](#注意事项) [额外建议](#额外建议) [文件替换](#文件替换) [二次开发](#二次开发) # 介绍 本仓库的目的是复现FastLabDrone的无人机项目, 由于复现过程中遇到了许多bug, 特此记录一下, 供遇到类似情况时参考和解决. # 相关论文 1. [EGO-Planner: An ESDF-Free Gradient-Based Local Planner for Quadrotors](https://ieeexplore.ieee.org/document/9309347) 2. [Safer Vision-based Autonomous Planning System for Quadrotor UAVs with LLMs](https://arxiv.org/abs/2311.12893) 这篇论文参考了FastLab的硬件设计, 并且对EGO-Planner的算法进行了优化, 值得借鉴. 以上论文均已上传到同路径的"论文"文件夹中 # 项目教程 以下3个内容必须看完, 才能上手该项目. 虽然无人机已经搭建好了, 但是了解其搭建过程, 对于之后debug和维修也有作用. 1. FastLabDrone无人机硬件和使用教程: [【【完结】从0制作自主空中机器人 | 开源 | 浙江大学Fast-Lab】](https://www.bilibili.com/video/BV1WZ4y167me?vd_source=1f7e03cabc258c22ab7dcd53857af319) 2. FastLab Drone GitHub代码链接: [Fast-Drone-250](https://github.com/ZJU-FAST-Lab/Fast-Drone-250) 3. 古月居ROS21讲: [古月居ROS21讲|一学就会的ROS机器人入门教程](https://www.bilibili.com/video/BV1zt411G7Vn?vd_source=1f7e03cabc258c22ab7dcd53857af319) , Ubuntu和ROS的版本一定要安装正确, 该项目采用的是ROS1, 版本为noetic, Ubuntu版本20.04. # 注意事项 1. EGO-PLANNER第3课"飞控安装和连线"中, 2:16开始, 稳压方式可以用别的方法. 此外, 后续安装好 机载电脑 后, 飞控 的供电就可以不用"5V稳压模块"了. 可以直接用连接到 机载电脑 的 micro-usb数据线 给 飞控 供电, 这个时候可以把"5V供电模块"拆掉. 我最后采用的就是用usb数据线供电, 这也有个好处, 原因后续会讲. 但是前期为了测试电调+电机+飞控系统是否正常, 先不安装机载电脑, 就先弄个稳压模块给飞控供电, 确定飞行功能正常后再安装机载电脑, 刚开始还是有必要安装稳压的. 2. EGO-PLANNER第4课"飞控设置与试飞"中, 5:23处, 设置遥控器的通道时, 通道6确实不需要设置. (之前有同学按照飞手控drone的经验, 把6通道设置为Arm Switch, 导致后续发现无法实现EGO-PLANNER的功能, 比如油门拨到右下角无法解锁, 结果Debug了很久才发现通道6不应该设置Arm Switch功能. 所以再次强调, 不要拿以前的飞控经验来做这个项目) 3. EGO-PLANNER第4课"飞控设置与试飞"中, 7:24处, 使用Dshot来设置电机正反转, 输入Dshot代码执行失败. 这个时候就只能手动用电烙铁更改三相电机的线了, 随机交换两根线就可以实现反转. 4. EGO-PLANNER第11课"VINS的参数设置和外参标定", 1:44处, 标定VINS的参数时, 环境的光源最好为柔和的自然光, 避免强光直射无人机相机, 避免频闪光源(etc.白炽灯等人工光源大概率是频闪的), 光线会影响VINS的参数精准度, 从而影响后续的定位飞行, 一定要选择一个好的光线环境. 一般在好的环境中标定好后,之后不用再标定了. 5. GitHub里提到的src/realflight_modules/px4ctrl/config/ctrl_param_fpv.yaml文件中, 最需要关注的参数是 rc_reverse , 在一次实验中[炸机小记录](https://www.bilibili.com/video/BV1g14y1k7pN?vd_source=1f7e03cabc258c22ab7dcd53857af319), 炸机的原因就是throttle反了, 在11课中, 开启"自动飞行"后, 检查下油门拨杆是"往上拨, 飞机上升;往下拨, 飞机下降", 如果反向了, 把油门回到中位偏下, 然后切换6通道, 然后手动降落, 把throttle改成反的就可以. (之前出现油门反向的原因, 也是一个同学曾经在遥控器端进行了修改, 把遥控器端的油门反向了. 导致油门反向炸机. 所以遥控器一定要设置好, 并且选好一个遥控器后就不要换了. 如果更换了的话, 就再检查下油门throttle, 手控油门方向和自动飞行时, 油门功能可能会不一样的.) 6. 如果发现远程连接后非常卡顿, 按照如下方式排除: (buaa校园网无法内网穿透, 建议自备一个手机提供wifi) a. 把蓝牙设备(键盘/鼠标)都关掉, 使用有线的; b. 把wifi频段切换成5Ghz的; c. 卡顿的主要原因是2.4Ghz频段的wifi和蓝牙会互相干扰 7. IMU频率要保证为200Hz, 我按照教程往sd卡里写入了修改命令, 但是没有效果. 所以只能通过每次发送命令来重新运行. 8. 飞控的IMU会持续积分, 停止飞行后也不会清零, 这导致一些问题, 如有时候z轴积分是负数, 导致下一次自动飞行时, 飞机为了保持z=0, 会直接窜到天上. 所以必须手动把飞控的供电拔掉(USB线也要拔掉), 然后重新连接, 这样就可以令z=0, 从而使得IMU定位准确. # 额外建议 1. 安装bb响. 1个4s电池通常只能飞5min, 飞行前用BB响检查电池电压, 满状态16.8V, 低于14.8(3.7x4)就要准备停止飞行, 换电池并充电. 此外, 电压过低有可能会烧毁机载电脑. 2. 加一个风筝线. 用于防止无人机飞丢和限制飞行高度, 无人机价值高, 飞行时必须系上绳子, 并保证线轴上锁, 具体连接和锁定方式见下图所示. ![风筝线连接1](%E5%9B%BE%E7%89%87/%E9%A3%8E%E7%AD%9D%E7%BA%BF%E8%BF%9E%E6%8E%A5%E6%96%B9%E5%BC%8F1.jpg) ![风筝线连接2](%E5%9B%BE%E7%89%87/%E9%A3%8E%E7%AD%9D%E7%BA%BF%E8%BF%9E%E6%8E%A5%E6%96%B9%E5%BC%8F2.jpg) ![线轴锁定方式](%E5%9B%BE%E7%89%87/%E9%A3%8E%E7%AD%9D%E7%BA%BF%E9%94%81%E5%AE%9A.jpg) 3. 遥控器在使用完毕后, 一定要将电池拔出来, 不然电池鼓包, 低于11.1V时需要充电. ![输入图片说明](%E5%9B%BE%E7%89%87/%E9%81%A5%E6%8E%A7%E5%99%A8%E7%94%B5%E6%B1%A0.jpg) # 文件替换 1. 把gitee的shfiles/rspx4.sh替换机载电脑shfiles/rspx4.sh, 在这个文件中, 我把sleep时间改为了5秒, 并加入了修改imu频率为200hz的命令. 运行后自动提升IMU频率为200Hz. # 二次开发 1. 项目的代码较多, 需要结合FastLabDrone的结点读懂: ![输入图片说明](%E5%9B%BE%E7%89%87/rosgraph.png) 2. 掌握ROS的核心: 通过结点来收发消息, 之后二次开发也是在这个机制上, 关闭不需要的结点, 自己写代码, 采集相机,飞控的结点数据, 往飞控结点里发送飞行指令.