在ROS中使用hokuyo_node软件包驱动Hokuyo激光扫描仪的方法

参考文章:

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

1. 安装hokuyo_node package

方法一:可以直接从apt安装

$ sudo apt-get install ros-indigo-hokuyo-node

# 可将<indigo>改为你所使用的对应ROS版本名称

方法二:可以从Github上下载后,使用catkin安装

https://github.com/ros-drivers/hokuyo_node

2. 供电并连接USB接口

确保你的使用USB通信的Hokuyo已经通电且USB接口与笔记本正常连接。

3. 设置Hokuyo激光扫描仪所在端口权限

为了确保houkuyo_node节点可以和Hokuyo laser scanner通信,需要设置激光扫描仪所在端口权限为可写可读。

(1) 列出Hokuyo激光扫描仪所在端口的权限

$ ls -l /dev/ttyACM0

你应该会看到如下结果:

crw-rw-XX- 1 root dialout 166, 0 2009-10-27 14:18 /dev/ttyACM0

# If XX is rw: the laser is configured properly.

# If XX is --: the laser is not configured properly and you need to configure it.

(2) 将该端口权限设置为所有用户可写可读

$ sudo chmod a+rw /dev/ttyACM0

(3) 如果使用USB转接器,则也需要设置该端口权限

$ ls -l /dev/ttyUSB0

$ sudo chmod a+rw /dev/ttyACM0

4. 启动一个roscore

$ roscore

 

5. 设置hokuyo_node参数

在我们运行hokuyo_node之前,我们需要确保在ROS参数服务器(ROS parameter server)上有正确的参数设置。

(1) 设置hokuyo_node的时间戳校正为关闭

此参数选择会加速该驱动器的启动,但是会导致激光扫描仪时间戳的精确性下降

$ rosparam set hokuyo_node/calibrate_time false

(2) 设置hokuyo_node的端口

$ rosparam set hokuyo_node/port /dev/ttyACM0

6. 运行hokuyo_node节点

打开一个新的Terminal,然后运行hokuyo_node节点:

$ rosrun hokuyo_node hokuyo_node

You will see something similar to:

[ INFO] 1256687975.743438000: Connected to device with ID: H0807344

7. 使用Rviz查看hokuyo_node发布的数据

(1) 查看当前所有话题

$ rostopic list

/clicked_point

/diagnostics

/hokuyo_node/parameter_descriptions

/hokuyo_node/parameter_updates

/initialpose

/move_base_simple/goal

/rosout

/rosout_agg

/scan

/sync_scan_cloud_filtered

/tf

/tf_static

 

(2) 查看话题/scan和/sync_scan_cloud_filtered的信息类型

$ rostopic info /scan

Type: sensor_msgs/LaserScan

 

Publishers:

 * /hokuyo_node (http://192.168.1.90:33537/)

 

Subscribers:

 * /rviz_1544018352692462347 (http://192.168.1.90:46767/)

$ rostopic info /sync_scan_cloud_filtered 

Type: sensor_msgs/PointCloud2

 

Publishers:

 * /hokuyo_node (http://192.168.1.90:33537/)

 

Subscribers:

 * /rviz_1544018352692462347 (http://192.168.1.90:46767/)

 

从中可以看出两话题类型不同。话题/scan的数据类型是sensor_msgs/LaserScan,而话题/sync_scan_cloud_filtered 的数据类型是sensor_msgs/PointCloud2。因此,在Rviz中显示时,分别使用的是LaserScan和PointCloud2。

(3) 运行hokuyo_node软件包中的hokuyo_test.rviz

$ rosrun rviz rviz -d `rospack find hokuyo_node`/hokuyo_test.rviz

运行结果如下图所示:其中LaserScan显示的是节点hokuyo_node发布的话题/scan,PointCloud2显示的是hokuyo_node发布的话题/sync_scan_cloud_filtered。

Rviz中显示的Hokuyo激光扫描仪数据

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS的laser_filters软件包是一个用于激光扫描数据过滤和处理的工具包。它提供了一些常用的滤波器和处理器,可以帮助你处理激光扫描数据,以获得更准确和可靠的结果。 要学习laser_filters软件包,你可以按照以下步骤进行: 1. 安装ROS:首先,确保你已经安装了ROS (Robot Operating System)。你可以根据你的操作系统版本在ROS官方网站上找到安装指南。 2. 下载laser_filters软件包:一旦你安装了ROS,你可以使用以下命令下载和安装laser_filters软件包: ``` $ sudo apt-get install ros-<distro>-laser-filters ``` 在上述命令,`<distro>` 是你所使用ROS发行版的名称,比如`melodic`或`noetic`。 3. 学习文档和示例:laser_filters软件包的文档和示例可以在ROS官方文档网站上找到。你可以阅读文档以了解软件包的功能和用法,并参考示例程序来理解如何使用各种滤波器和处理器。 在ROS官方文档网站上,你可以找到laser_filters软件包的API文档、教程和示例代码。这些资源将帮助你学习如何在ROS使用laser_filters软件包来处理激光扫描数据。 4. 实践和调试:学习了软件包的基本用法后,你可以开始实践并调试你自己的代码。尝试在ROS环境加载laser_filters软件包使用的滤波器和处理器来处理实际的激光扫描数据。 你可以尝试不同的滤波器和处理器,并根据需要进行参数调整,以获得最佳的结果。通过实践和调试,你将更好地理解laser_filters软件包的功能和使用方法。 希望这些步骤能帮助你开始学习ROS的laser_filters软件包!如果你有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值