先以驱动velodyne为例。
地址:mirrors / ros-drivers / velodyne · GitCode
# clone到src
git clone ..........
# back ws
catkin_make
# donot forget
source devel/setup.bash
报错:fatal error: pcap.h: No such file or directory
解决办法(链接):sudo apt-get install libpcap-dev
或者不想全装的话:
sudo apt-get install libpcap0.8-dev
sudo ldconfig
安装驱动:
sudo apt-get install ros-indigo-velodyne
sudo apt-get install ros-kinetic-velodyne
sudo apt-get install ros-melodic-velodyne
配置IP:
roscore
roslaunch velodyne_pointcloud VLP16_points.launch
rviz
在rviz中将Frame名改为velodyne
最后添加PointCloud2节点即可
(1)出厂配置
雷达的出厂网络配置如下图,即默认雷达自身ip为1.200,电脑ip为1.102。故为了成功连接雷达,需修改本机(windows系统)的网络配置,即静态Ip地址设置为192.168.1.102,网关为192.168.1.1。
(2)启动RSview工具
RSView工具压缩包下载后解压到本地,以管理员方式运行bin\RSView.exe执行程序,打开界面。
注:解压后的路径中不允许存在中文,否则工具打不开,含泪分享踩坑经历
如下图,打开连接,取数据流,可以看到在RSView中能正常获取雷达激光数据。
修改RoboSense16的固件参数及ip端口
由于每次连接雷达都需要把本机Ip改为1网段,非常不方便。为了方便使用,将修改了RoboSense16的网段为58网段(公司局域网段为58),端口6699,7788不变。步骤如下:
(1)安装依赖项
sudo apt-get install libpcap-dev
(2)创建工作空间,并下载源码
mkdir -p ~/robosense_ws/src
cd ~/robosense_ws/src
git clone https://github.com/RoboSense-LiDAR/ros_rslidar
(3)修改文件权限
cd ~/robosense_ws/src/ros_rslidar/rslidar_drvier
chmod 777 cfg/*
cd ~/robosense_ws/src/ros_rslidar/rslidar_pointcloud
chmod 777 cfg/*
(4)源码编译
cd ~/robosense_ws
catkin_make
======================================分割线
这里有另外一个sdk可供选择,代码地址:https://github.com/RoboSense-LiDAR/rslidar_sdk
可以直接下载sdk包:(用户可以直接访问 rslidar_sdk_release 下载最新版本的rslidar_sdk. 请下载 rslidar_sdk.tar.gz 压缩包, 不要下载Source code, 因为Source code压缩包内不包含子模块rs_driver的代码, 用户还需自行下载rs_driver的代码放入其中才行。)
链接:https://github.com/RoboSense-LiDAR/rslidar_sdk/releases
相对位置:
└── robosense_ws
└── src
└── rslidar_sdk
设置电脑的静态ip
默认情况下,RSLIDAR雷达设备ip设置为192.168.1.200
,而PC ip则设置为192.168.1.102
(这里只要IP不冲突即可);同时默认MSOP端口为6699
,DIFOP端口为7788
。所以需将PC ip设置为静态ip 192.168.1.102
才能和雷达通信。
激光雷达网线连接电脑并接入电源,进入ubuntu系统设置settings,配置有线网络参数,获取方式改为手动。
地址:192.168.1.102 掩码:255.255.255.0
网关:192.168.1.1 DNS:223.5.5.5 (网关和DNS可略)
==========================分割线结束
或者用命令行修改设置电脑的静态ip地址
# interfaces eth0 for rslidar connect
# 设置eth0(有些是eth1,或者eno0等,根据自己的网口修改)
auto eth0
iface eth0 inet static
address 192.168.1.102
netmask 255.255.255.0
gateway 192.168.1.1
连接雷达电源和网线,重启电脑。
==========================分割线结束
配置完,最好ping一下雷达,有数据的情况下至少雷达是通的,但是不是百分百没问题
cd catkin_ws
source devel/setup.bash
roslaunch rslidar_pointcloud rs_lidar_16.launch
OK
正常情况下,打开可视化 Rviz
,界面左下角Add话题,即可
启动节点,出现如下bug
一般出现这个提示就是雷达数据没接进来,一般是电脑和雷达的IP设置问题。
前面说过,ping雷达没问题,也不一定说明通讯没问题,在容器中是能ping到雷达的,但是无法收到雷达的数据,因为容器和主机的网络是bridge模式,容器是单独一个IP段。