承接上一篇RoboSense R128激光雷达+海康威视全景摄像头ROS采集数据及MATLAB联合标定_海康 激光雷达相机-优快云博客
因业务需求,还需要在船上安装导航雷达和热像仪。热像仪暂时还没买(选型都没选好),于是u就先把最麻烦的导航雷达做了
导航雷达用的是Raymarine的Quantum2型号,需要购买它的绘图仪(MFD)Axiom(其实只是需要它作为DHCP server,这个地方比较坑,后面会说)
项目的git链接如下,后面我还会在这里面继续更新热成像相机,GPS,IMU,点云投射图像上等程序
GitHub - li01233/mul_modal_ROS
一 雷达准备
1 连接Axiom
雷达和Axiom的电源线按道理是接船电的端子上的,为了方便测试我直接接到了一台移动电源上,两个都是12V
然后Axiom会启动,但是雷达不动。我试了好久,才发现得先给Axiom恢复出厂设置,让它不再播放模拟数据后,在雷达界面里打开我的雷达……此时,雷达才传出声音,同时电流也到了0.8A(休眠状态是0.3A左右)
在室外扫描效果如下:
2 连接交换机
这部分坑了我900快……因为这个雷达和显示屏的网线都很特殊,让我一度以为只能含恨买他的专用的线……
结果买完一条后技术人员告诉我,剪掉后压个网线端子就行……里面就是双绞线
我!!!!也只能忍气吞声了
于是“愉快地”把显示屏和雷达同时连到交换机上,加入我的ROS系统吧!八嘎!
3 Window下SDK的使用
这一部分本不该有,但考虑到有的人要在window上用它的SDK,同时不用Axiom去开发软件,使用加了这段(同时也在这里解释前面的,为什么不加Axiom会很坑
Raymarine的雷达都是采用的组播,在上电后它会进入待机状态,直到得到开机/发射的命令,才开始采集数据,而这个“命令”需要打开DHCP server,并由PC/Axiom发出,而Axiom自带DHCP server。
因此,在使用PC时,就会多个打开DHCP server的步骤。我推荐下载tftpd64
phjounin / tftpd64 / Downloads — Bitbucket
然后在setting里选DHCP选项卡,改成我一样的配置
插入加密狗,在打开SDK里的output里的QuantumClientDialog,在控制台输入0,1,1,让其发射
再打开QuantumClientPPI项目编译运行,就可以看到雷达的回波了
后续开发按照他的文档即可,就是开发出的程序必须插加密狗才能用
二 连接ROS并显示
1 安装openCPN和radar插件
因为我激光雷达和相机都是集成到ROS里面了,因而这个新的导航雷达最好也接入
首先需要安装opencpn,按照官网教程来
然后安装雷达插件,我图快就没去编译,直接在opencpn的菜单里找到插件,然后更新仓库
最后勾选radar插件即可
如果想试试看编译安装的,可以到官方链接去看看
GitHub - opencpn-radar-pi/radar_pi: Radar plugin for OpenCPN with support for Navico and some Garmin and Raymarine radars
如果此时你的Axiom和雷达都接入了交换机(我没有试过ubuntu使用DHCP server的可行否),那么radar插件将会显示你的雷达扫描的数据,而且在上面操作会同步到你的MFD上去,非常方便
2 集成到ROS
感谢GitHub - Aquatic-Drone-Testbed/ROS-USV-Packages: ROS2 nodes for USV提供的程序,它里面集成了很多传感器的驱动,我把其中的Quantum2部分拿出来了,并且改成了ROS1版本,大家要是用的话直接用我仓库里的就行,copy radar和radar_interface这两个文件夹即可
然后解释一下数据,雷达回波数据是一个250*256的矩阵,其中250代表有250个角度,256是距离,然后矩阵中存储的是强度值。所以最后打开rviz会有两个image话题,一个是USV_polar,一个是radar_image,其中USV是这个250*256的矩阵强行按图像绘制的结果,而radar_image则是转为了极坐标的图像(后续看看能不能加上颜色)
数据记录的话,我是将矩阵发出为/quantum_spoke的话题,到时候rosbag record它即可
另外一个需要注意的点,就是运行这个程序时不知道为什么,一定要打开opencpn的radar插件,不然接不到数据……不理解了
自此,完美结束