您的位置:首页 > 其它

ROS中给turtlebot加两个传感器:kinect+hokuyo,进行gazebo仿真 (二)

2017-03-12 13:29 701 查看
        上篇博客:ROS中给turtlebot加两个传感器:kinect+hokuyo,进行gazebo仿真-->>http://blog.csdn.net/qq_36355662/article/details/61413860

      只是搭建了模型,后来发现激光传感器数据无法查看,并没有正常运行。而且,激光传感器只是一个正方体代替,昨天我仔细查看官网:http://gazebosim.org/tutorials?tut=ros_gzplugins&cat=connect_ros

       完善了代码,并在一位陌生人的帮助下,实现了我当初想要的功能。其实,这几天我一直在想,究竟要怎么改才能达到我的要求,中途有几次,差点放弃,好在坚持下来里。现在已经完成了kinect数据和hokuyo数据分别查看的效果,对他们可以进行单独的数据处理,然后在进行融合,当然,这也是我接下来的工作。现在说说怎么完善的吧,首先秀图,(*^__^*) 嘻嘻……

       对了,还有一个小技巧,要告诉大家,gazebo的截图文件夹(~/.gazebo/pictures/)很难照着,每次截图都找不到图片,那是因为隐藏了!这也是陌生人告诉的,在主文件下,按ctrl+H就能看到隐藏文件了!!!



     下面我只说改动部分,如有不便,还望大家见谅,谢谢!

1、在上篇博客步骤4(在路径turtlebot_description/urdf/sensors/下建立hokuyo.urdf.xacro urdf文件,配置位置信息。)中,对hokuyo.urdf.xacro urdf文件进行更改。(注意红色代码!!!)

<?xml version="1.0"?>  

    <!-- script_version=1.1 -->  

    <robot name="sensor_hokuyo" xmlns:xacro="http://ros.org/wiki/xacro">  

      <xacro:include filename="$(find turtlebot_description)/urdf/turtlebot_gazebo.urdf.xacro"/>  

      <xacro:include filename="$(find turtlebot_description)/urdf/turtlebot_properties.urdf.xacro"/>  

      

      <!-- RPLidar 2D LIDAR -->  

      <xacro:macro name="sensor_hokuyo" params="parent">  

        <joint name="laser" type="fixed">  

          <origin xyz="0.10 0 0.435" rpy="0 0.0 0.0" />  

          <parent link="base_link" /> 

            <child link="hokuyo_link" />

        </joint> 

        <!-- Hokuyo Laser -->

       <link name="hokuyo_link">

         <collision>

           <origin xyz="0 0 0" rpy="0 0 0"/>

           <geometry>

         <box size="0.1 0.1 0.1"/>

           </geometry>

         </collision>

       <visual>

           <origin xyz="0 0 0" rpy="0 0 0"/>

         <geometry>

        <mesh filename="package://turtlebot_description/meshes/sensors/hokuyo.dae"/>

         </geometry>

       </visual>

       <inertial>

           <mass value="1e-5" />

         <origin xyz="0 0 0" rpy="0 0 0"/>

        <inertia ixx="1e-6" ixy="0" ixz="0" iyy="1e-6" iyz="0" izz="1e-6" />

        </inertial>

       </link>

        <!-- Set up laser gazebo details -->  

        <turtlebot_sim_2dsensor/>

      </xacro:macro>  

</robot> 

        代码中<mesh filename="package://turtlebot_description/meshes/sensors/hokuyo.dae"/>提到,hokuyo.dae文件,这个文件要自己下载,可先下载模型包,找到hokuyo的模型包,再把包里的hokuyo.dae文件复制到上述路径。模型包下载方法见:

   http://www.ncnynl.com/archives/201610/914.html     

2、在上篇博客步骤5(在turtlebot_description/urdf/turtlebot_gazebo.urdf.xacro文件下添加配置laser在gazebo下的属性值插件配置)中,修改turtlebot_gazebo.urdf.xacro文件中的激光代码部分。(注意红色代码!!!)

<xacro:macro name="turtlebot_sim_2dsensor">

 <gazebo reference="hokuyo_link">

        <sensor type="ray" name="head_hokuyo_sensor">

          <pose>0 0 0 0 0 0</pose>

          <visualize>false</visualize>

          <update_rate>40</update_rate>

          <ray>

            <scan>

              <horizontal>

                <samples>720</samples>

                <resolution>1</resolution>

                <min_angle>-1.570796</min_angle>

                <max_angle>1.570796</max_angle>

              </horizontal>

            </scan>

            <range>

              <min>0.10</min>

              <max>30.0</max>

              <resolution>0.01</resolution>

            </range>

            <noise>

              <type>gaussian</type>

           

               <mean>0.0</mean>

              <stddev>0.01</stddev>

            </noise>

          </ray>

            <plugin name="gazebo
4000
_ros_head_hokuyo_controller" filename="libgazebo_ros_laser.so">

            <topicName>/turtlebot/laser/scan</topicName>

            <frameName>hokuyo_link</frameName>

        </plugin>

        </sensor>

      </gazebo>

  </xacro:macro>

         此处注意hokuyo_link部件名称和步骤1处hokuyo_link对应,才能仿真处实际传感器数据。此处数据发布在<topicName>/turtlebot/laser/scan</topicName>中的/turtlebot/laser/scan主题上,和kinect发布数据的/scan主题不同。

        利用下述命令可以看到数据,同样用rostopic list可以看到两个主题, /scan和/turtlebot/laser/scan。

$    rostopic echo /scan

$   rostopic echo /turtlebot/laser/scan

3、到此,所有代码修改完毕。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ROS turtlebot