1.首先查找和设置雷达静态ip
安装httpie
sudo apt install -y httpie
首先设置一个有线连接 网段要和雷达的一样,否则下面没法配置雷达,雷达IP可通过下面的命令知道,如192.168.254.150(注意最后一位不要是100 这里我看别的博客说的不能是100 我也不知道为什么 也许可以吧 不知道设置成100后续会发生什么事情),配置完雷达IP之后再改回正常需要的IP。
使用IPV4连接雷达,禁用ipv6网络,或者手动输入一个无法连接的ipv6地址,不然后面改静态IP会有问题
使用ip addr查询刚才设置的本地 IP 192.168.254.150
如果跳过上面那一步的话下一步查询雷达IP就会只显示ipv6地址
查找雷达IP
avahi-browse -lr _roger._tcp
这里显示雷达ip是169.254.142.130
验证雷达IP是否为静态IP
http http://169.254.142.130/api/v1/system/network/ipv4/override
注意!
官网文档给的示例为
http http://雷达.当前.IP.地址/api/v1/system/network/ipv4/override/
新版本固件override后面不要加 /
null为非静态IP
使用如下命令设置为静态IP
echo \"目标.设置.静态.IP/24\" | http PUT http://雷达.当前.IP.地址/api/v1/system/network/ipv4/override
注意!这里也是 override后面不要加 / ,官网给的示例后面有 /
上面命令中“24”是给雷达设置的子网掩码(subnet mask),在这里24=255.255.255.0. 这个子网掩码是最常使用的,当然某些特殊情况下子网掩码可能需要设置为255.255.0.0, 这时可以将24改成16即可。上图中命令执行后的结果中显示有 “OK”,表明设置成功了。雷达IP设置成功后需要重启雷达才能生效。另外,如果新的IP与老IP不在一个网段内,电脑后续如果需要继续连接雷达,那还需要同样修改网卡的IP。
重新启动之后,查询雷达IP
查询是否为静态IP
没有显示null
2.驱动程序安装与编译
官方文档教程
ROS Guide — Ouster Python SDK 0.4.0 documentation
找到ROS1 GUIDE
官方驱动github网址 git clone下来
GitHub - ouster-lidar/ouster_example: Ouster, Inc. sample code
安装依赖
sudo apt install build-essential cmake libeigen3-dev libjsoncpp-dev
sudo apt install ros-<ROS-VERSION>-ros-core ros-<ROS-VERSION>-pcl-ros ros-<ROS-VERSION>-tf2-geometry-msgs ros-<ROS-VERSION>-rviz
把里面的<ROS-VERSION>改成对应的ROS版本 官方文档说可以是kinetic melodic neotic
ubuntu18.04就如下所示
sudo apt install ros-melodic-ros-core ros-melodic-pcl-ros ros-melodic-tf2-geometry-msgs ros-melodic-rviz
下载好代码
git clone https://github.com/ouster-lidar/ouster_example.git
然后创建好工作空间目录 比如创建一个目录叫ouster0-32
mkdir ouster0-32
cd ouster0-32
mkdir src
之后建立一个软链接,这个path to ouster_example 是刚才clone的ouster_example目录位置
ln -s <path to ouster_example> ./src/
我的为
ln -s /home/mwy/ouster_example ./src/
之后编译
catkin_make -DCMAKE_BUILD_TYPE=Release
编译成功之后 source一下(我的终端shell用的是zsh ubuntu默认为bash )
source ./devel/setup.zsh
如果是bash的话
source ./devel/setup.bash
如果觉得每次使用都要source比较麻烦 可以将source命令写在系统的.bashrc文件或者.zshrc文件中 。
3.雷达使用
驱动程序编译完成并且source之后,就可以使用了,使用方式如下所示
roslaunch ouster_ros ouster.launch sensor_hostname:=<sensor hostname> metadata:=<path to metadata json>
按照官方文档所说<sensor hostname> 可以写成雷达的hostname(os-xxxxxxxxxx)或者ip(***.***.***.***) 可以通过以下命令查询
avahi-browse -lr _roger._tcp
后面的 <path to metadata json>我就随便写成meta.json了,我测试了以下他理论上应该会往我的/home/user/.ros/meta.json,但实际上什么都没写入。
官网上还有一些额外的参数
比如lidar_mode是调整雷达分辨率的 即水平点数 * 频率
所以有两种方式启动(这里viz:=true 代表使用rviz可视化点云)
roslaunch ouster_ros ouster.launch sensor_hostname:=os-122208001396.local metadata:=meta.json viz:=true
或者
roslaunch ouster_ros ouster.launch sensor_hostname:=192.168.254.101 metadata:=meta.json viz:=true
效果如下: