毫米波雷达以其稳定性、对不同环境的适应能力、价格等方面的优势逐步引起了科研人员的注意,本文主要介绍利用了TI(德州仪器)的AWR1843设备,基于ROS系统进行采集点云数据的流程。供大家参考及为自己做一个笔记。
准备
Ubuntu 18.04 + ROS Melodic (推荐工作环境)
使用Uniflash成功烧录对应SDK版本中的
Demo(mmwave_sdk_03_05_00_04/packages/ti/demo/xwr18xx/mmw/xwr18xx_mmw_demo.bin)
能够在mmwave demo visulalizer 的离线版本或者网页版本中成功运行开箱演示的demo,看到数据。
官方参考链接
下载源码
下载ti_mmwave_rospkg ROS driver这个lab的源码:
git clone https://git.ti.com/git/mmwave_radar/mmwave_ti_ros.git
切换到下载项目中的"ros_driver"文件夹中:
cd mmwave_ti_ros/ros_driver/
编译
编译:
catkin_make
编译通过后出现下述界面:
最后source一下当前工作环境即可。
source devel/setup.bash
至此,我们就完成了ti官方开发的ros driver的编译与准备。
用户权限
我们在使用ros driver这个demo时需要控制电脑的两个端口,分别用来发送命令和传输数据。这需要我们的用户在dialout这个组中。
首先使用:
groups
查看当前用户名所在的用户组。可以看到我的用户名“xiaochen”并没有在dialout这个用户组中。
接着,执行下述命令进行添加用户名到dialout用户组:
sudo adduser xiaochen dialout
重启电脑,生效添加用户的命令。
再次运行groups命令进行查看,结果如下:
硬件配置/启动
- 连接电源线,给板子上电
- 连接USB数据线,发送命令/传输数据
针对本文介绍的AWR 1843板子,启动对应的launch文件:
roslaunch ti_mmwave_rospkg 1843_multi_3d_0.launch
第一次运行会出现下述乱码,不过没有关系,ctrl + C 结束命令,我们再次运行一次。
可以看到弹出一个rviz窗口,并出现了三维点云数据:
使用rostopic list查看当前所发布的topic。
其中:/ti_mmwave/radar_scan_pcl_0就是我们想要记录的topic数据,使用rosbag record进行记录即可。
点云数量
相信读者可能会发现rviz中点云数量非常少,这一方面时毫米波雷达本身就不能获取较高质量的数据,另一方面时我们需要修改一下 .cfg文件中的参数配置。
在:/mmwave_ti_ros/ros_driver/src/ti_mmwave_rospkg/cfg路径下找到对应的cfg文件,本文的是:“1843_3d.cfg”,打开此文件:
修改其中:
cfarCfg -1 0 2 8 4 3 0 15 1
cfarCfg -1 1 0 4 2 3 1 15 1
为:
cfarCfg -1 0 2 8 4 3 0 15 0
cfarCfg -1 1 0 4 2 3 1 15 0
之后,重新执行命令:
roslaunch ti_mmwave_rospkg 1843_multi_3d_0.launch
可以看到点云数量有明显增加: