在robot上同时使用kinect和hokuyo(使用多个扫描传感器)

本文介绍了如何在ROS Indigo中,特别是在kobuki机器人上,同时使用Kinect和Hokuyo两个扫描传感器。通过理解导航架构,分别启动nodes并解决扫描数据冲突,实现2D建图和避障时多传感器数据的融合。主要涉及修改话题名称、配置costmap以及调整launch文件。
摘要由CSDN通过智能技术生成

ros版本:indigo   robot型号:kobuki

在ros中的navigation例子中的gmapping和amcl都是支持3dsenser,其中就包括kinect node,运行例子可以直接连接上kinect。而hokuyo也有现成的node,hokuyo_node。同时连接多个传感器,最重要要明白理解robot navigation运行的架构。

navigation中负责导航,避障的node是move_base,负责建图和定位的是slam_gmapping,amcl也负责定位(蒙特卡罗定位法),负责数据接收的是sensers,如果需要使用已制作好的地图需要启动map_server node。这样在去看那些demo launch就很容易了。

有点扯远了,回到主题。对于扫描传感器的node,首先要知道他们都做了什么事情,当设备连接上pc时会出现设备节点,pc是否已加载了相应设备驱动,如果加载成功,例如用usb连接设备,用命令lsusb查看有无该设备的vid和pid,然后看是否生成对应的设备节点,例如hokuyo对应/dev/ttyACM0。最后node节点所干的事情就是循环读取设备节点/dev/ttyxxx里面的数据,转换成laserscan或者pointcloud类型发布到主题上,例如kinect和hokuyo node都是将数据转化成laserscan发布到/scan主题上。

明白scan node干了什么事情,下一步需要干什么就清楚了。

启动launch不要再选择xxxx.demo.launch,将所有需要的node分开启动,需要那个启动那个。我这里拆开后起名都叫做xxx_only.lauch。例如:

move_base_only.launch
<launch>
  <!-- Move base -->
  <include file="$(find turtlebot_navigation)/launch/includes/move_base.launch.xml"/>
</launch>
gmapping_only.launch
<launch>
  <!-- Gmapping -->
  <arg name="custom_gmapping_launch_file" default="$(find turtlebot_navigation)/launch/includes/gmapping/gmapping.launch.xml"/>
  <include file="$(arg custom_gmapping_launch_file)"/>
</launch>
amcl_only.l
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值