平台与设备:
飞控 | pixhawk 6c |
---|---|
机载电脑 | 香橙派5B |
图传 | aomway 图传 |
数传 | cuav 的xb radio |
双目摄像头 | LOITOR stereo camera |
1.图传的使用
天空端:插上就能用,aomway
图传,插上圆形天线(四叶草天线),供电7-28V
。
地面端:三色线的黄色线是视频线,白色和红色为左声道和右声道。通道选择11
,即为5705MHz
(别忘了摘掉摄像头的罩子).
2.数传的使用
我使用的是`cuav`的`xb radio`数传,`pixhawk 6c`飞控。
硬件连线:
有一对地面端和天空端,天空端接线时注意rx
接tx
,tx
接rx
,CTS
接CTS
,RTS
接RTS
。地面端插上usb
就行。
如图所示,我这里插的是telem1
,也可以插其他端口,需要在后面修改相应参数。
参数修改:
主要配置上图的MAVLINK
和serial
参数,mavlink_config
可以设置三个端口,mav_0_config
默认设置成telem1
,就是给数传用的,也可以设置成其他端口,甚至可以用gps
的端口。注意该端口波特率需要和数传一致。我使用的xb radio
数传官方软件是XTCU
,但是现在好像该型号数传的固件没有了,所以读不出参数,也修改不了参数。只能看看波特率。
如果你没有看到ser_tel1_baud或者其他端口的波特率设置参数,那么很有可能你的其他参数使用了该端口,如下图所示,可能FrSky
、HOTT
的接收机使用了该端口。或者一些其他sensors
占用了,可以仔细检查一下。
另外还需要配置QGC Application Setting
。
添加一个通讯连接:
在设备管理器中查看端口,添加到这里,并且设置波特率。可以设置自动连接。
点击连接
观察这个蓝色的灯是否亮起,亮起说明正常连接。
然后就连上了。
3.gps的使用
我使用的是here3 GPS
,它使用的can
口通讯,所以在can
参数上要设置图中的UAVCAN_ENABLE
,为图中的Sensors Automatic Config
。并且注意该模块要求pix4
版本为1.13.2
及以下。
4.rtk的使用
我使用的是here+ base
,他的原理是地面站接受gps
,天空端也接受gps
,地面端通过数传将地面端的gps
信息传输到天空端的here3
,here3
模块解算一个差分信息,得到更加准确的位置信息。
插上就用。等待它收敛变白即可。其实精度可以自己改的,2米多的精度差不多了
5.LOITOR stereo camera的使用
先下载SDK
git clone https://github.com/loitor-vis/vi_sensor_sdk.git
git clone https://github.com/loitor-vis/vi_sensor_sdk_v2.git
测试一下摄像头
chmod +x loitor-vi-install.sh
sudo ./loitor-vi-install.sh
#可能需要重启电脑?
去vi_sensor_sdk_v2编译
mkdir build
cd build
cmake ..
make
./camtest
就可以得到图像,但是没有ros
话题
然后进入vi_sensor_sdk/loitor_ros_workspace/
catkin_make
source ./devel/setup.bash
rosrun loi<tab> loitor_stereo_visensor
最后,就可以得到ros图像话题。
6.rosbag
录制远程包
需要关闭mavros的广播模式,即把 gcs_url 的双引号中的参数删除。如果有图像数据,时间比较久的话,最好录制压缩话题,原图太占空间了,都是大几十个G起步。
7.*.bag.active
恢复
切换到xxx.bag.active
文件所在的目录下;
命令行输入
rosbag reindex xxx.bag.active
输入
rosbag fix xxx.bag.active ***.bag
8.ubuntu
挂载硬盘
原文
查看硬盘设备
ls /dev/sd*
查看每个设备的分区情况,如果没有被分区,那么要进行分区
fdisk -l
创建被挂载地址的文件夹
sudo mkdir /mnt/ssd_record1
挂载硬盘到文件夹,注意选择sda1还是sda2的编号,有的硬盘有一个编号时他的系统区域,在分区情况就可以看出来。
sudo mount /dev/sda2 /mnt/ssd_record1
验证是否挂载成功。
df -h
9. 压缩图像话题转成原始图像
录制比较长时间的包,一定要用压缩的话题,如果飞机飞行之间会断开QGC,最好要关闭广播模式,录制的图像话题是压缩类型的,我们直接使用vins算法会报错:
Client [/vins_estimator] wants topic /usb_cam/image_raw/compressed to have datatype/md5sum [sensor_msgs/Image/060021388200f6f0f447d0fcd9c64743],
but our version has [sensor_msgs/CompressedImage/8f7a12909da2c9d3332d540a0977563f]. Dropping connection
这个时候需要借助image_transport来转换类型:
rosrun image_transport republish compressed in:=/usb_cam/image_raw raw out:=/usb_cam/image_raw
注意in的话题也是raw,输出也是raw。
否则会报错:
It looks like you are trying to subscribe directly to a transport-specific image topic '/usb_cam/image_raw/compressed', in which case you will likely get a connection error. Try subscribing to the base topic '/usb_cam/image_raw' instead with parameter ~image_transport set to 'compressed' (on the command line, _image_transport:=compressed). See http://ros.org/wiki/image_transport for details.