文章目录
- 一 硬件准备
- 二 驱动准备
-
-
-
- 2.1 首先安装依赖:
- 2.2 检验是否正确安装
- 2.3 启动雷达并检查数据
-
-
- 三 ROS工作环境搭建
-
-
-
- 3.1 安装socket can依赖
- 3.2 安装ars_40X开发包
-
-
- 四 测试
- 五 总结
-
-
- 二次开发
-
毫米波雷达在恶劣环境的鲁棒性要远强于激光雷达,同时还能够返回物体的相对速度等信息,同时其价格较低,具有相当高的性价比。实验室目前需要在一些恶劣环境下进行雷达辅助相机检测,实现多模态的融合。第一步,就是需要进行相机和雷达的联合标定工作,因此首先需要对雷达在ubuntu下进行可视化与接口开发,近一周来完成了雷达的相关工作,将工作总结如下:
一 硬件准备
- 毫米波雷达:本文选用大陆ARS408雷达,其性能参数如下:
图1.大陆雷达参数表 |
---|
图2.大陆毫米波雷达 |
---|
总结来说,ARS404-21 是大陆 40X 毫米波雷达传感器系列中入门产品,可以适用于不同的应用场景,具有低成本,坚固耐用 高性能和操作可靠安全性高等特征,测试距离到达170米。
二 驱动准备
安装环境
名称 | 版本 |
---|---|
ROS版本 | ROS Melodic |
驱动器版本 | peak-linux-driver-8.12.0 |
ubuntu系统 | ubuntu 18.04 |
大陆雷达支持CAN通信,我们电脑是无法直接进行CAN的通信的,因此就需要借助CAN转USB的驱动器,读取雷达的点云数据。
经过筛选,我们使用了毫米波雷达官方推荐的peak-driver驱动器进行数据的转换(peak-driver的驱动程序下载),下面进行安装,注意,要选择自己需要的版本号,这里使用peak-linux-driver-8.12.0版本,建议跟着我的来。
2.1 首先安装依赖:
$ sudo apt-get install flex
$ sudo apt-get install libpopt-dev
$ sudo apt-get install can-utils
#然后将刚才下载好的驱动程序解压
$ tar -zxvf peak-linux-driver-8.1.tar.gz
$ cd peak-linux-driver-8.1
$ make clean
$ make net=NO_NETDEV_SUPPORT
$ sudo make install
2.2 检验是否正确安装
$ sudo modprobe pcan
$ cat /proc/pcan
结果应该是这样的,那就对了。
2.3 启动雷达并检查数据
$ sudo ifconifg can0 up #启动雷达can0接口,此时回车后,驱动器开始启动并接受信息
$ candump can0 #显示接受的雷达信息
经过以上步骤,验证完成,说明安装成功,准备下一步软件环境搭建工作。
三 ROS工作环境搭建
经过以上步骤,下面需要对数据进行抽象化,也就是利用ROS的RVIZ进行数据的显示,以确定到底雷达信息的可视化信息确定雷达是否满足我的要求,包括最远距离、角度分辨率等参数。
3.1 安装socket can依赖
github链接
$ git clone https://github.com/Project-MANAS/socket_can.git
$ cd socket_can
$ mkdir build
$ cmake ..
$ sudo make install #安装成功
3.2 安装ars_40X开发包
github链接
- 创建ROS工作环境
创建当前的工作空间
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ git clone https://github.com/Project-MANAS/ars_40X.git
$ cd ..
$ catkin_make
由此,完成对ars_40X的编译,可以启动ros的功能包进行可视化工作。
2. 启动可视化功能包
#进入到catkin_ws工作空间
$ source ./devel/setup.bash #更新ROS的工作空间集合
$ roslaunch ars_40X ars_40X.launch visualize:=true obstacle_array:=true
四 测试
毫米波雷达点云可视化
可以看到,点云数据清晰地显示在界面中。
五 总结
- 首先,在最后一步的安装过程中,遇到了一些问题,但是都通过google解决了,主要是缺少costmap_converter的问题,可以网上搜索安装一下。
- 其次,最后的catkin_make过程中,出现了socket_can.hpp找不到的问题,通过将源码中库的引用<>改成“”可以解决包找不到的问题,如下图 #include “socket_can/socket_can.hpp”。
- 存在的问题:没有对原来的雷达点云进行滤波,存在较多的杂点,下一步工作将在雷达点云滤波工作展开,会进行填坑的。
二次开发
https://blog.csdn.net/weixin_43253464/article/details/121769827
参考链接:
https://zhuanlan.zhihu.com/p/406235662
https://www.peak-system.com/PCAN-USB.199.0.html?L=1
https://blog.csdn.net/ost_csdn/article/details/104962144