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

    xiaoxiao2021-03-25  66

            上篇博客: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_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、到此,所有代码修改完毕。

    转载请注明原文地址: https://ju.6miu.com/read-33535.html

    最新回复(0)