官术网_书友最值得收藏!

3.6.4 機械臂模擬

通過上一節的操作,我們完成了可以用于ROS的機械臂URDF文件。現在我們構建了一個可以用于ROS的機器人模型,下面我們需要添加一些標簽,以便在Gazebo中查看該模型。我們將從定義碰撞開始。

1.定義碰撞

為了在Gazebo中查看機器人模型,我們需要添加<collision>標簽。它位于<link>標簽中,與<visual>標簽同級,定義方法與前面在<link>標簽中定義<visual>標簽的方法相同,只需在連桿上指定必要的視覺和慣性標簽即可:

·對于arm_base連桿,具體如下:

·對于其他連桿,請參考https://github.com/PacktPublishing/ROS-Robotics-Projects-SecondEdition/blob/master/chapter_3_ws/src/robot_description/urdf/robot_arm.urdf.xacro中robot_arm.urdf.xacro文件的代碼。

至此,我們為機器人模型添加了Gazebo屬性,下面開始創建機械裝置。

2.定義執行器

現在我們為所有的連桿添加執行器信息。執行器宏定義在robot_arm_essentials.xacro文件中,如下所示:

在機械臂文件中調用上述宏,具體如下:

讀者可以在本書的GitHub倉庫中查看robot_arm_essentials.xacro文件,網址為https://github.com/PacktPublishing/ROS-Robotics-Projects-SecondEdition/blob/master/chapter_3_ws/src/robot_description/urdf/robot_arm_essentials.xacro

添加了機械裝置的定義之后,就可以調用控制器來使用相應的模型組件并讓機器人動起來了。

3.定義控制器

最后,我們來導入建立Gazebo和ROS通信連接所必需的插件。具體方法是向已經創建的gazebo_essentials_arm.xacro文件中添加一個控制器joint_state_publisher:

joint_state_publisher控制器(http://wiki.ros.org/joint_state_publisher)用于發布機械臂連桿在空間中的狀態信息。

讀者可以在本書的GitHub倉庫中查看gazebo_essentials_arm.xacro文件,網址為https://github.com/PacktPublishing/ROS-Robotics-Projects-SecondEdition/blob/master/chapter_3_ws/src/robot_description/urdf/gazebo_essentials_arm.xacro

至此,我們為機器人模型定義了宏和Gazebo插件,下面我們把這些內容添加到機械臂文件中。可以通過在<robot>宏標簽內添加以下代碼的方法實現:

下面創建一個名為arm_control.yaml的文件,并定義機械臂控制器的配置參數:

將以下代碼復制到上述文件中:

至此,我們完成了機械臂模型的構建,下面在Gazebo中對其進行測試。

主站蜘蛛池模板: 贵州省| 息烽县| 拜城县| 探索| 耿马| 双桥区| 和静县| 石泉县| 孝昌县| 吉木萨尔县| 淮安市| 石狮市| 新巴尔虎左旗| 兴业县| 奈曼旗| 措美县| 富川| 济源市| 南华县| 偏关县| 抚顺县| 张北县| 修文县| 肥城市| 元朗区| 钟山县| 图木舒克市| 平湖市| 多伦县| 青岛市| 碌曲县| 横峰县| 若尔盖县| 英吉沙县| 固始县| 靖远县| 上思县| 贵南县| 阿瓦提县| 同德县| 三穗县|