用turtlebot3和gazebo做仿真

天大地大妈咪最大 提交于 2020-02-24 20:20:35

用turtlebot3和gazebo做仿真

环境:

电脑系统:lubuntu16.04 ROS版本:kinetic

安装需要的包:

sudo apt-get install ros-kinetic-turtlebot3
sudo apt-get install ros-kinetic-turtlebot3-gazebo

编写launch文件:

<?xml version="1.0" encoding="UTF-8"?>
<launch>
<!-- 部分配置参数-->
    <arg name="model" default="$(env TURTLEBOT3_MODEL)" doc="model type [burger, waffle, waffle_pi]"/>
    <arg name="x_pos" default="0.0"/>
    <arg name="y_pos" default="0.0"/>
    <arg name="z_pos" default="0.0"/>

<!-- 启动gazebo,加载仿真环境 $(find turtlebot3_gazebo)/worlds/turtlebot3_house.world-->
    <include file="$(find gazebo_ros)/launch/empty_world.launch">
      <arg name="world_name" value="/home/lhh/.gazebo/world/house2.world"/>
      <arg name="paused" value="false"/>
      <arg name="use_sim_time" value="true"/>
      <arg name="gui" value="true"/>
      <arg name="headless" value="false"/>
      <arg name="debug" value="false"/>
    </include>

<!-- 加载机器人模型 -->
    <param name="robot_description" command="$(find xacro)/xacro --inorder $(find turtlebot3_description)/urdf/turtlebot3_$(arg model).urdf.xacro" />
    <node name="spawn_urdf" pkg="gazebo_ros" type="spawn_model" args="-urdf -model turtlebot3 -x $(arg x_pos) -y $(arg y_pos) -z $(arg z_pos) -param robot_description" />

<!-- 发布机器人的状态 -->
    <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher">
        <param name="publish_frequency" type="double" value="30.0" />
    </node>

<!-- 启动gmapping -->
    <arg name="scan_topic"  default="scan" />
    <arg name="base_frame"  default="base_footprint"/>
    <arg name="odom_frame"  default="odom"/>

    <node pkg="gmapping" type="slam_gmapping" name="slam_gmapping" output="screen">
      <param name="base_frame" value="$(arg base_frame)"/>
      <param name="odom_frame" value="$(arg odom_frame)"/>
      <param name="map_update_interval" value="5.0"/>
      <param name="maxUrange" value="6.0"/>
      <param name="maxRange" value="8.0"/>
      <param name="sigma" value="0.05"/>
      <param name="kernelSize" value="1"/>
      <param name="lstep" value="0.05"/>
      <param name="astep" value="0.05"/>
      <param name="iterations" value="5"/>
      <param name="lsigma" value="0.075"/>
      <param name="ogain" value="3.0"/>
      <param name="lskip" value="0"/>
      <param name="minimumScore" value="200"/>
      <param name="srr" value="0.01"/>
      <param name="srt" value="0.02"/>
      <param name="str" value="0.01"/>
      <param name="stt" value="0.02"/>
      <param name="linearUpdate" value="0.5"/>
      <param name="angularUpdate" value="0.436"/>
      <param name="temporalUpdate" value="-1.0"/>
      <param name="resampleThreshold" value="0.5"/>
      <param name="particles" value="80"/>
    <!--
      <param name="xmin" value="-50.0"/>
      <param name="ymin" value="-50.0"/>
      <param name="xmax" value="50.0"/>
      <param name="ymax" value="50.0"/>
    make the starting size small for the benefit of the Android client's memory...
    -->
      <param name="xmin" value="-1.0"/>
      <param name="ymin" value="-1.0"/>
      <param name="xmax" value="1.0"/>
      <param name="ymax" value="1.0"/>

      <param name="delta" value="0.05"/>
      <param name="llsamplerange" value="0.01"/>
      <param name="llsamplestep" value="0.01"/>
      <param name="lasamplerange" value="0.005"/>
      <param name="lasamplestep" value="0.005"/>
      <remap from="scan" to="$(arg scan_topic)"/>
    </node>

</launch>

启动

先在.bashrc文件底部加上下面这句
export TURTLEBOT3_MODEL=burger
1、启动上述launch文件
2、启动roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
3、启动rviz
即可用键盘控制机器人开始建图。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!