ROS中Hokuyo_node使用

来源:互联网 发布:网络层的主要功能 编辑:程序博客网 时间:2024/05/17 03:45

Howto_Use_ROS_Hokuyo_node?

主要参考材料:

http://www.ros.org/wiki/hokuyo_node/Tutorials/UsingTheHokuyoNode

http://www.ros.org/wiki/hokuyo_node/Tutorials/UsingReconfigureGUIToChangeHokuyoLaserParameters

http://www.ros.org/wiki/hokuyo_node/Tutorials/UsingDynparamToChangeHokuyoLaserParameters

1.安装ROSRobotOperating System

我是在Ubuntu12.04 LTS下安装的ros_fuerte,安装完成后需要按照tutorial进行测试;在Ubuntu12.04这个版本下不需要为Hokuyo激光安装驱动,默认就是有的,激光连接上电后在/dev/ttyACM0就是激光了。

2.安装Laserdrivers for Hokuyo and SICK laser rangefinders

如果是按照ROS的安装文档进行的,在UbuntuSoftware Center中就可已找到,方法是AllSoftware旁边的小三角选择ROSPrecise(应该就是选择ROS源),再搜索laser就可以找到了,Laser_pipeline是默认安装好的不用管了,选ros-fuerte-laser-drivers进行安装就可以了,groovy那个应该是对应ros的其他版本;

3.rosmake laser_drivers stack

laser_drivers的默认安装目录在/opt/ros/fuerte/stacks/laser_drivers,到这个目录然后rosmake就可以了,这时在/opt/ros/fuerte/stacks/laser_drivers/hokuyo_node/bin目录下就有getFirmwareVersion getID hokuyo_node这几个可执行文件了;

4.设置hokuyo激光

主要参考Howto use Hokuyo Laser Scanners with thehokuyo_node进行设置,第一步修改激光的权限(非常重要,一定要改,光靠sudo好像是不行的)。先查看当前激光的权限

ls -l /dev/ttyACM0

会显示crw-rw-XX-表征对应的权限,若XXrw则不许要修改激光的权限;

xx为—需要运行下面指令修改权限:

sudochmod a+rw /dev/ttyACM0

5.读取并在rviz中显示激光的数据

激光连接到电脑并上电,首先运行roscore:roscore

然后运行Hokuyo_node:rosrun hokuyo_node hokuyo_node

如果一切正常就会显示激光的ID并提示正在streamingdata,若运行rxgraph就可以看到/hokuyo_node节点。

运行rvizrosrunrviz rviz

这时没有激光数据,需要进行设置

fixed frame设置为/laser

target frame设置为/laser

Add display type laser scan

选择topicscan

这时就可以看到激光数据点了