robot_description參數(shù)是RVIZ渲染機(jī)器人的bridge萄窜!
一彬碱、ROS加載URDF模型到Gazebo中
gazebo_ros包是gazebo軟件和ROS軟件交互的bridge彭雾!
1.1 通過(guò)絕對(duì)路徑加載URDF模型
通過(guò)gazebo_ros
包提供的spawn_model
節(jié)點(diǎn)來(lái)讓gazbo加載URDF模型甫恩。
<launch>
<!-- 啟動(dòng)Gazebo -->
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="world_name" value="your_world.world"/> <!-- 指定你的世界文件, 如果使用默認(rèn)世界, 這行可以省略 -->
<arg name="paused" value="false"/> <!-- 啟動(dòng)時(shí)是否暫停仿真 -->
<arg name="use_sim_time" value="true"/> <!-- 使用仿真時(shí)間 -->
<arg name="gui" value="true"/> <!-- 是否啟動(dòng)Gazebo GUI -->
<arg name="headless" value="false"/> <!-- 是否為無(wú)頭模式右钾,對(duì)于服務(wù)器部署很有用 -->
<arg name="debug" value="false"/> <!-- 是否啟動(dòng)GDB調(diào)試 -->
</include>
<!-- 啟動(dòng)Gazebo中的ROS控制器管理器 -->
<node name="spawn_urdf" pkg="gazebo_ros" type="spawn_model" args="-urdf -model my_robot -file /path/your/model.urdf" respawn="false"/>
</launch>
在這個(gè)命令中:
-
-file
參數(shù)后跟URDF文件的絕對(duì)路徑贝室。 -
-urdf
表明加載的文件格式為URDF。 -
-x
,-y
,-z
指定模型在Gazebo世界中的位置。 -
-model
后面跟的是你希望在Gazebo中為模型指定的名稱唬党。
1.2 另一種絕對(duì)路徑加載URDF模型
其中-file
參數(shù)的值也可以使用$(find your_package_name)/urdf/robot.urdf
命令來(lái)尋找URDF文件的絕對(duì)路徑,這樣便于移植鬼佣!
<launch>
<!-- 啟動(dòng)Gazebo -->
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="world_name" value="your_world.world"/> <!-- 指定你的世界文件, 如果使用默認(rèn)世界, 這行可以省略 -->
<arg name="paused" value="false"/> <!-- 啟動(dòng)時(shí)是否暫停仿真 -->
<arg name="use_sim_time" value="true"/> <!-- 使用仿真時(shí)間 -->
<arg name="gui" value="true"/> <!-- 是否啟動(dòng)Gazebo GUI -->
<arg name="headless" value="false"/> <!-- 是否為無(wú)頭模式驶拱,對(duì)于服務(wù)器部署很有用 -->
<arg name="debug" value="false"/> <!-- 是否啟動(dòng)GDB調(diào)試 -->
</include>
<!-- 啟動(dòng)Gazebo中的ROS控制器管理器 -->
<node name="spawn_urdf" pkg="gazebo_ros" type="spawn_model" args="-urdf -model my_robot -file $(find your_package_name)/urdf/robot.urdf" respawn="false"/>
</launch>
1.3 通過(guò)-param參數(shù)加載URDF模型
<launch>
<!-- 加載機(jī)器人的URDF到參數(shù)服務(wù)器 -->
<param name="robot_description" textfile="$(find your_package_name)/urdf/your_robot_model.urdf" />
<!-- 啟動(dòng)Gazebo -->
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="world_name" value="your_world.world"/> <!-- 指定你的世界文件, 如果使用默認(rèn)世界, 這行可以省略 -->
<arg name="paused" value="false"/> <!-- 啟動(dòng)時(shí)是否暫停仿真 -->
<arg name="use_sim_time" value="true"/> <!-- 使用仿真時(shí)間 -->
<arg name="gui" value="true"/> <!-- 是否啟動(dòng)Gazebo GUI -->
<arg name="headless" value="false"/> <!-- 是否為無(wú)頭模式,對(duì)于服務(wù)器部署很有用 -->
<arg name="debug" value="false"/> <!-- 是否啟動(dòng)GDB調(diào)試 -->
</include>
<!-- 啟動(dòng)Gazebo中的ROS控制器管理器 -->
<node name="spawn_urdf" pkg="gazebo_ros" type="spawn_model" args="-urdf -model my_robot -param robot_description" respawn="false"/>
</launch>
<param>標(biāo)簽的textfile屬性被用來(lái)直接讀取URDF文件晶衷,并將其內(nèi)容作為字符串值設(shè)置給robot_description參數(shù)蓝纲。
即robot_description
參數(shù)的值為URDF文件內(nèi)容!
二晌纫、ROS加載URDF模型到RVIZ中
RVIZ通過(guò)RobotModel的Robot Description參數(shù)的值讀取URDF文件內(nèi)容税迷,進(jìn)而渲染出機(jī)器人形狀!
通過(guò)<param>標(biāo)簽的textfile屬性加載URDF文件內(nèi)容锹漱,并將其內(nèi)容作為字符串值設(shè)置給robot_description
參數(shù)翁狐。
<launch>
<!-- 加載機(jī)器人的URDF到參數(shù)服務(wù)器 -->
<param name="robot_description" textfile="$(find your_package_name)/urdf/your_robot_model.urdf" />
<!-- 啟動(dòng)RViz -->
<node name="rviz" pkg="rviz" type="rviz"/>
</launch>
2.1 添加機(jī)器人模型,RobotModel
2.2 設(shè)置機(jī)器人模型RobotModel的robot_description參數(shù)
這里的robot_description參數(shù)就是URDF文件中的字符串凌蔬!