版本、型号信息
版本/型号 | |
---|---|
Ubuntu | 18.04 |
ROS | melodic |
Hokuyo激光雷达 | URG-04LX-UG01 |
查找相关pkg
apt search ros-melodic-hokuyo
apt search ros-melodic-urg
安装
按照使用雷达的型号Hokuyo-URG-04LX-UG01,选择ros-melodic-urg-node
进行安装。
sudo apt-get install ros-melodic-urg-node
连接设备
首先到ROS wiki上看看有没有文档。
命令行工具
getID程序可用于获取激光雷达的信息。
Each of them can be invoked in a human readable way:
$ rosrun urg_node getID /dev/ttyACM0
Device at /dev/ttyACM0 has ID H0807228
or in a script friendly way:
$ rosrun urg_node getID /dev/ttyACM0 --
H0807228
如果使用这些命令无法连接到设备,重试大概十秒后会放弃。
问题
在虚拟机上连接失败,使用另一台电脑的Ubuntu系统,输出与虚拟机相同,因此判断不是虚拟机连接方式的问题。
使用lsusb
查看USB接口使用情况,判断该设备应该为ID 15d1:0000
。
查了许多论坛后,发现可能和这篇文章里的问题相近。
ubuntu12.04使用USB转串口时出现权限不够问题,如下
Unable to open serial port /dev/ttyUSB0
权限不够
解决办法:
通过增加udev规则来实现。步骤如下:
创建文件/etc/udev/rules.d/70-ttyusb.rules
在文件内增加一行
KERNEL==“ttyUSB[0-9]*”, MODE=“0666”
重新插入USB转串口设备,普通用户就有权限访问了。
按描述来看,设备是不一样的,Ubuntu版本也不一样。去查一下ttyACM0
与ttyUSB0
有什么不同。(ACM)
直接把上面的usb替换为acm,问题没有解决,换一种方案。
解决-单次授权
使用chmod
单次授权是可行的:
$ sudo chmod 777 /dev/ttyACM0
但是使用这种方式,每次重新插拔之后,就需要重新输入命令获得权限,相当麻烦。
解决永久权限
这篇博客更清楚地讲了如何获取持续的权限。
输入:
$ sudo usermod -aG dialout [user_name]
or:
$ sudo usermod -a -G dialout [user_name]
重启电脑就OK了。
后续显示
这部分没遇到什么问题,参考其他博客(附在后面)即可。
总之,需要开不同的terminal输入:
roscore
rosrun urg_node urg_node
rosrun rviz rviz
rosrun tf static_transform_publisher 0.0 0.0 0.0 0.0 0.0 0.0 laser my_world 100
在rviz界面中,需要进行的设置:
位置 | 设置 |
---|---|
Global Options - Fixed Frame | laser |
LaserScan - Topic | /scan |
LaserScan - Style | Points |
【2】https://blog.csdn.net/Buer_zhu/article/details/80945830
【3】https://answers.ros.org/question/251060/how-to-use-an-usb-hokuyo-laserscanner-in-ros-kinetic/
【4】http://wiki.ros.org/rviz/UserGuide
【5】https://blog.csdn.net/Changer_sun/article/details/77618611