一、环境搭建
平时习惯使用虚拟机,刚好阿木的公众号里面有送镜像,于是在V1的时候就用这个镜像在run了,这次V2出来,直接pull就可以开始起飞了;
(感觉用虚拟机加镜像是最省力搭建环境的方式了,敲几个命令,分分钟钟起飞)
关于3D加速,虚拟机要关掉这个功能,才可以使用gazebo;
二、起飞降落
话不多少,每次看到飞机灰起来就很激动人心,按照手册步骤,进入脚本的目录地址,执行脚本,shell就蹭蹭蹭飞出来了,gazebo中也出现了可爱的小飞机;
1. 控制节点
可以看到,一共出现了四个窗口,其中前面两个可以不用管,主要关注从左到右边第三个和第四个;第三个窗口主要显示飞机的状态信息和控制器的命令信息;
那么这个第三个窗口是怎么来的呢?
查看源码,其实就是启动了一只ros的launch;
roslaunch prometheus_uav_control uav_control_main_outdoor.launch
2.起飞降落节点
接下来就是第四个窗口;
没错,它就是一直在吐这个黄色的字符;
意思就是,此时飞机还没有进入命令控制模式,
需要遥控器来将飞机切到命令控制模式中,
到时候飞机就会执行起飞,悬停,然后30秒后降落的操作;
三、让人又爱又恨的遥控器
1.初衷
在Prometheus-V2中,为了让人熟悉整机的操作,作者非常贴心的加入了遥控器控制;我确实认为是很必要的,因为调试真机的时候,如果是对遥控器不熟悉,等飞机飞起来,一旦出现意外情况,一旦出现超乎意料的飞行,而飞机本可以通过切换定高模式救回来,但是你直接上了个锁,飞机就直接砸地上了;总之,熟练且形成潜意识的遥控器操作,可以很大程度上减少真机调试过程中的财产损失;
2.遥控器连接
作为一个穿越机飞手,手边的遥控器有一堆,于是我尝试将遥控器连接到虚拟机中,按照手册步骤,安装遥控器驱动,测试遥控器通道,嗯,好像有反应;
于是我尝试起飞,但是我拨动了遥控器上所有的杆,发现都无法使得飞机解锁,于是echo遥控器数据发布的节点话题;
发现除了前面的四个摇杆通道信息可以正常反应,
后面的拨杆根本毫无反应;
于是我试了手边的黑羊和瑞斯凯遥控器等,发现他们的拨杆都无法触发button通道信息;
也就是无法解锁无人机;
3.后来
后来我试了一下福斯i6和乐迪AT9S;
发现福斯i6,它的两个拨杆可以触发2个button信号;
而乐迪的AT9S可以触发4个button信号;
但是正当我认为可以用AT9S打通关的时候,
发现在底层的遥控控制中,一共需要6个通道的button信号,
才可以使用所有的控制命令;
于是我的配置是,一个button控制解锁,2个button控制模式,
1个button控制降落;
也就是没有kill 模式;
(这个遥控器通道设置,有空我结合code再详细出一期教程)
4.买还是不买
这个问题,之前在群里面和大家讨论,如果没有遥控器的朋友,还是去买阿木指定遥控器,省事;这种用钱可搞定的,可以把剩下来的时间,去研究里面的算法等等;
四、起飞
五、后续
这篇只是初次体验了Prometheus-v2的仿真和程序架构;
希望对感兴趣的朋友有所帮助;
但是我最感兴趣的是上面的位置环控制算法,以及视觉部分;
这个只是开始,距离后面的大头还差老鼻子;
最近在装真机,到时候希望在真机上加入Prometheus-v2的算法,去实际的验证;
有空会继续在这里分享和记录;
六、致谢
感谢阿木实验室,感谢Prometheus-v2的作者戚博和其他code贡献者;
在这里请体验这个项目的朋友慷慨滴在github上点个star~
git地址