本文将叙述如何在空的gazebo地图中启动turtlebot3 burger的urdf模型,用于测试机器人urdf模型能否在gazebo中成功打开,为后续在个人搭建的仿真场景中启动机器人模型做准备
1.建立工作空间
(1)建立工作空间、生成包、编译刷新环境
mkdir catkin_ws_test
cd catkin_ws_test
mkdir src
catkin_init_workspace
catkin_create_pkg empty_turtlebot3 std_msgs rospy roscpp
cd ..
catkin_make
source devel/setup.bash
(2)将曾经准备好的机器人描述包复制到工作空间src目录下,本工作空间直接复制的是三个开源的turtlebot3包,如下图所示:
(3)再执行一次编译刷新环境
catkin_make
source devel/setup.bash
2. 配置launch文件
(1)在自己建立好的empty_turtlebot3功能包中建立launch文件夹,并在文件夹中建立launch文件(以下内容中的对应参数改为自己的对应参数,如包名、urdf文件路径、urdf文件名等)
cd empty_turtlebot3
mkdir launch
cd launch
touch empty_turtlebot3.launch
(2)launch文件内容如下:
<launch>
<!-- 设置launch文件的参数 -->
<arg name="paused" default="false"/>
<arg name="use_sim_time" default="true"/>
<arg name="gui" default="true"/>
<arg name="headless" default="false"/>
<arg name="debug" default="false"/>
<!-- 运行gazebo仿真环境 -->
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="debug" value="$(arg debug)" />
<arg name="gui" value="$(arg gui)" />
<arg name="paused" value="$(arg paused)"/>
<arg name="use_sim_time" value="$(arg use_sim_time)"/>
<arg name="headless" value="$(arg headless)"/>
</include>
<!-- 加载机器人模型描述参数 -->
<param name="turtlebot3_description" command="$(find xacro)/xacro --inorder '$(find turtlebot3_description)/urdf/turtlebot3_burger.urdf.xacro'" />
<!-- 运行joint_state_publisher节点,发布机器人的关节状态 -->
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" ></node>
<!-- 运行robot_state_publisher节点,发布tf -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" output="screen" >
<param name="publish_frequency" type="double" value="50.0" />
</node>
<!-- 在gazebo中加载机器人模型-->
<node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"
args="-urdf -model turtlebot3_burger -param turtlebot3_description"/>
</launch>
(3)再次编译刷新环境
catkin_make
source devel/setup.bash
3.启动launch文件,在gazebo空地图中加载turtlebot3的urdf模型
roslaunch empty_turtlebot3 empty_turtlebot3.launch
参考资料
ROS学习【10】-----搭建Gazebo机器人物理仿真环境并展示空环境中的机器人
ROS和Gazebo进行机器人仿真(一)
【ROS-Gazebo】如何在Gazebo中打开urdf文件