Turtlebot添加Hokuyo传感器进行仿真

    官网原有的Turtlebot Gazebo仿真demo的激光数据是利用depth_image进行转换而得到的,存在探测范围小,性能差且不易调节的特点,可以在原先的模型基础上增加hokuyo及相应的gazebo模块。

    github代码链接:turtlebot_hokuyo_demo

    通过git clone上述git之后按照如下步骤进行操作。

环境:Ubuntu 16.04 Kinetic

(1)安装官网demo.

sudo apt-get install ros-kinetic-turtlebot ros-kinetic-turtlebot-apps ros-kinetic-turtlebot-interactions ros-kinetic-turtlebot-simulator ros-kinetic-kobuki-ftdi ros-kinetic-rocon-remocon ros-kinetic-rocon-qt-library ros-kinetic-ar-track-alvar-msgs

如果遇到安装ros-kinetic-rocon-remocon和ros-kinetic-rocon-qt-library的错误时,可以不用管,不会影响后续操作。

(2)安装hokuyo节点.

由于官网还没有hokuyo的kinetic版本的节点,因此可以通过源码编译来安装。

cd ~/catkin_ws/src
git clone https://github.com/ros-drivers/driver_common.git
cd ..
catkin_make
cd src
git clone https://github.com/ros-drivers/hokuyo_node.git
cd ..
catkin_make 

不要clone完两个文件然后一起编译,会出错。

(3)删除替代部分文件.

cd /opt/ros/kinetic/share
sudo rm -rf turtlebot_navigation/
sudo rm -rf turtlebot_description/
sudo rm -rf turtlebot_simulator/
sudo cp -r ~/turtlebot_hokuyo_demo/turtlebot_navigation/ .
sudo cp -r ~/turtlebot_hokuyo_demo/turtlebot_description/ .
cp -r ~/turtlebot_hokuyo_demo/turtlebot_simulator/ ~/catkin_ws/src
cd ~/catkin_ws
catkin_make

(4)修改.bashrc文件加入环境变量.

export TURTLEBOT_GAZEBO_WORLD_FILE=~/worlds/corridor.world
export TURTLEBOT_3D_SENSOR="hokuyo"

  (5)拷贝map和world文件.

cp -r ~/turtlebot_hokuyo_demo/map ~/
cp -r ~/turtlebot_hokuyo_demo/worlds ~/

(6)修改launch_hpv文件.

修改turtlebot_simulator/turtlebot_gazebo/launch目录下的amcl_demo.launch,把/home/cjw/map/corridor.map 改成/home/XXX/map/corridor.map.(XXX 代表你的用户名).

(7)测试仿真器.

运行如下命令,如果你能看到Turtlebot顶部多了一个hokuyo传感器并且能看到激光光束,证明你成功了。

roslaunch turtlebot_gazebo turtlebot_world.launch

(8)激光参数调整.

你可以通过修改urdf文件来修改激光参数,文件位于/opt/ros/kinetic/share/turtlebot_description/urdf目录下,打开turtlebot_gazebo.urdf.xacro文件,可以看到如下内容:

<gazebo reference="hokuyo_link">
    <sensor type="ray" name="laser">
      <pose>0 0 0 0 0 0</pose>
      <visualize>true</visualize>
      <update_rate>5</update_rate>
      <ray>
        <scan>
          <horizontal>
            <samples>180</samples>
            <resolution>1.0</resolution>
            <min_angle>-1.5707</min_angle>
            <max_angle>1.5707</max_angle>
          </horizontal>
        </scan>
        <range>
          <min>0.10</min>
          <max>3.0</max>
          <resolution>0.01</resolution>
        </range>
        <noise>
          <type>gaussian</type>
          <!-- Noise parameters based on published spec for Hokuyo laser
               achieving "+-30mm" accuracy at range < 10m.  A mean of 0.0m and
               stddev of 0.01m will put 99.7% of samples within 0.03m of the true
               reading. -->
          <mean>0.0</mean>
          <stddev>0.01</stddev>
        </noise>
      </ray>
      <plugin name="hokuyo_node" filename="libgazebo_ros_laser.so">
        <topicName>scan</topicName>
        <frameName>hokuyo_link</frameName>
      </plugin>
    </sensor>
  </gazebo>

你可以修改upate_rate、samples、resolution等内容。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值