快速搭建一个APMT265树莓派无人机
由我这篇博文浓缩而来:
https://blog.csdn.net/sinat_16643223/article/details/108032651
硬件:
F450机架(U型脚架,如下图所示,还买电池挂载板,还需要多买一个F330的上层板来扩展)
pixhawk2.4.8 (APM3.6.11固件,pixhawk是在权盛买的,苍穹四轴的不行)
树莓派3B+(我提供配置好的基于ubuntu meta 18.04的镜像 链接:https://pan.baidu.com/s/1p6SiVi3NzBHHcxAqzT6reQ
提取码:u2qe)
T265和数据线
好盈乐天20A电调
权盛自制2216电机 kv950(配1047桨,桨注意需要加垫片,我以后想改用T MOTOR2216,GAAS,阿木都是用的T MOTOR,桨也是自锁浆,方便一些我觉得)
https://item.taobao.com/item.htm?spm=a1z09.2.0.0.11702e8dPeBauy&id=531055499428&_u=21r01jqi44ec
富斯i6遥控器(设置方法用的苍穹四轴的教程,关键还是设置好几种飞行模式)
树莓派电源线(苍穹四轴那里有卖)
https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-14487756054.9.4bcbc0ddu14Tei&id=610608290392
树莓派数据线(也是USB转TTL线,插在Pixhawk的telem2口,苍穹四轴有卖,下面这两根线是接在一起的,是一根线)
https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-14487756054.9.4bcbc0ddu14Tei&id=610608290392
树莓派扩展板(可以固定在F450上面放置树莓派,挺方便的)
https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-14487756054.9.4bcbc0ddu14Tei&id=610608290392
电池是5200mAh 30C
猛禽360扩展板也叫挂载板(用来固定T265的)
https://item.taobao.com/item.htm?spm=a230r.1.14.17.29901e24Jljmm4&id=530765903429&ns=1&abbucket=1#detail
TPLink小型路由器
扎带(这个会用到很多很多)
防护罩(这个很有必要,一方面护桨,另一方面更重要的是防止T265在无人机侧靠的时候碰到地面,没有防护罩T265就会碰到地面,一定要买下面这种的,别买那些商家配套的软绵绵的还什么要用线绑,下面这种圈子很硬,飞的时候不会抖)
T265减震固定架(阿木家的那个)
软件
Mission point地面站(我用的1.3.62版本的)
win32diskimager(用来烧写镜像到树莓派的SD卡上,也可以用来备份树莓派的镜像)
putty(远程树莓派用的)
APM固件需要更改的参数
标红的地方是和官方教程里不同或者官方教程里没有的,我自己折腾出来了,确实有用的。
- AHRS_EKF_TYPE = 2 (the default) to use EKF2 (as of this writing, EKF3 is not supported for handling external navigation data)
- EK2_ENABLE = 1 (the default)
- EK3_ENABLE = 0 (the default)
- GPS_TYPE = 0 to disable the GPS
- EK2_GPS_TYPE = 3 to disable the EKF’s use of the GPS
- EK2_POSNE_M_NSE = 0.1
- EK2_VELD_M_NSE = 0.1
- EK2_VELNE_M_NSE = 0.1
- MAG_ENABLE = 1, COMPASS_USE = 1, COMPASS_USE2 = 0, COMPASS_USE3 = 0
- 然后自检选项里面把GPS的选项不要勾选,也就是参数ARMING_CHECK把和GPS相关的选项都不要勾选,有两个,一个是GPS Lock一个是GPS configuration。
下面这三个是APM官方文档里没有但是它的参考教程里有,我后来也改了,但没有改回去,不知这三个参数有没有起作用。反正至少我目前APM下面三个参数是这样的,是直接解决解锁GPS还有罗盘报错时改的,后来GPS和罗盘的报错通过其他方法解决了,这三个参数没改回去,不清楚这三个改动有没有起作用,当然为了与我现在当前系统一模一样可以把下面三个参数改为下面三个值。(注意波特率我当初根据参考教程(官方文档没有)改了但是发现改动之后通信不了又改回去它默认的57600了,所以波特率这个参数不用改,我也没用把它放到下面的截图里面的)
启动命令(我在B站上专门录了视频 https://www.bilibili.com/video/BV15h411o7hu)
当然先得tmux分屏
tmux(终端输入tmux进入tmux)
-
划分上下两个窗格
-
tmux split-window
-
划分上下两个窗格
-
tmux split-window
三条命令
roslaunch realsense2_camera rs_t265.launch
roslaunch vision_to_mavros t265_tf_to_mavros.launch (往往要先sudo su ,不然也是会报找不到包和launch文件的错误)
roslaunch mavros apm.launch fcu_url:=/dev/ttyUSB0:57600 (一般每次要配合 sudo chmod a+rw /dev/ttyUSB0 这个命令使用,不然会报权限被拒绝的错误,现在似乎每次都报,之前用显示器时没这样,现在通过SSH这样输命令运行就这样,sudo su也没用,这个我下面谈到过的,只是这里说一下,往往要配合这个命令使用)
启动起来这三个节点就OK了!!!!
以前还经常说说明roslaunch没有这个命令要你安装,这种见过很多次了,都是用source那个方法解决,不过我发现最近这几次弄似乎这个情况没有出现了。但是你要清楚,这也是一个常见的可以称之为报错的现象。清楚解决方案。我现在补充我估计运行上面命令上百次了,没有出现错误,按照上面说的顺序一次输入命令运行没有出现异常,卡死等等的,都是一次性起起来的。基本按照上面运行程序,命令就不会报错,后面也就不会出问题,比如该先sudo的sudo,该先授予权限的授予权限,而不是运行了后面的命令报错了再去授予权限。
操作注意点:
要首先通过VNC图形界面操作让树莓派连上自己的那个路由器的wifi,这样后面开机树莓派会自动连接那个连过的wifi,当然你连过多个wifi,它可能会先连信号最好的那个,当然你如果在室外,应该就是自动连你自己带的那个路由器的wifi了,因为它只连过这个wifi。
无人机上电时要确保摄像头是朝向正北方向的。
桨和防护栏在T265的视野里没什么影响。
起飞前需要先拿起无人机移动一下,这样T265的定位数据会更准确,不移动刚开始的T265的位置数据会可能有些跳变,应该是刚开始IMU都没什么位移,那样可能T265进行位置估计没有个度量,那到底是1米还是1厘米对吧,所以容易跳变,基本移动一次无人机之后,T265的定位数据基本稳定下来,跳变都是毫米级的跳变。
解锁起飞遥控器的操作是:首先解锁遥控器,然后把控制飞行模式的拨码开关拨到定点模式,其他拨码开关不用动,如下图所示,然后左手单杆内八解锁,解锁后推油门到百分之五十以上起飞,飞到一定高度,再把油门回到百分之五十左右就定住了。
整机重量估计在1.9kg左右,所以许哟最大起飞重量为2kg的电机,2216电机。
后面想做的改进
我想换成底盘更稳的电机,不然每次降落容易侧翻,F450我是靠底部绑几个更长的棍子加大底盘,不知换成猛禽360或者阿木那个机架是否会好些
还有有没有机架能不装防护罩,侧翻也砸不到T265的,阿木的机架估计可以。
树莓派改成up squared 或者TX2
加上激光雷达
能不能不非得朝北上电
可不可以一条命令启动
参考教程(注意是参考,有少许不同)
https://ardupilot.org/dev/docs/ros-vio-tracking-camera.html#ros-vio-tracking-camera
https://discuss.ardupilot.org/t/integration-of-ardupilot-and-vio-tracking-camera-part-1-getting-started-with-the-intel-realsense-t265-on-rasberry-pi-3b/43162/1
================================================================
我还是想把软件安装过程总结一下,这样在其他开发板上装的时候也好有参考。
我似乎是先装的ROS,我尽可能把realsense放在后面装,因为怕出问题麻烦
所以我装的顺序应该是 ROS MAVROS librealsense(需要虚拟内存) realsense-ros vision_to_mavros(编译时需要阔内存,不然会卡住,然后被系统kill掉,如果之前阔了就不需要再弄了,我当时是因为Librealsense弄了之后关机了,那之前阔内存就失效了,就得重新阔一次)
里面有个别命令需要终端daili实现。