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

3.6.3 機(jī)械臂建模

在ROS中構(gòu)建的機(jī)械臂的可視化形象如圖3.10所示。

圖3.10 基于2D連桿元素展示的機(jī)械臂可視化形象

由于已經(jīng)在3.5.3節(jié)中對如何使用相關(guān)方法進(jìn)行建模進(jìn)行了所有必要的解釋,并且本部分也將采用相同的方法進(jìn)行機(jī)械臂建模,因此我們直接開始逐步構(gòu)建機(jī)械臂模型。

1.初始化工作空間

我們將在專為本章創(chuàng)建的工作空間(chapter_3_ws)中進(jìn)行初始化。首先在前面給出的鏈接中下載網(wǎng)格文件,然后進(jìn)入urdf文件夾,創(chuàng)建一個名為robot_arm.urdf.xacro的文件,具體命令如下:

使用以下代碼初始化XML的version標(biāo)簽以及<robot>標(biāo)簽,然后一步步地將下載得到的文件中的代碼按照后面的內(nèi)容添加到該文件中:

至此我們完成了工作空間的初始化,下面定義連桿組件。

2.定義連桿組件

至此,我們已經(jīng)定義了機(jī)器人模型的一部分,下面將下列代碼復(fù)制到<robot>標(biāo)簽中(即將代碼復(fù)制到兩個<robot>標(biāo)簽之間)。需要注意的是,由于5個連桿組件均包含各自不同的坐標(biāo)信息,因此我們直接在此對其進(jìn)行定義。下面我們給出5個連桿組件之一——機(jī)械臂底座的詳細(xì)定義信息:

讀者可以從https://github.com/PacktPublishing/ROS-Robotics-Projects-SecondEdition/blob/master/chapter_3_ws/src/robot_description/urdf/robot_arm.urdf.xacro中找到其他連桿組件的定義信息,如二頭肌組件、bottom_wrist、肘部連桿組件和bottom_wrist等。

可以嘗試將<visual>和<collision>標(biāo)簽中的參數(shù)定義分別修改為宏定義的形式,但這有時可能會使初學(xué)者困惑。因此,為了簡單起見,我們在本書中只定義了最小的宏。如果讀者覺得自己已經(jīng)掌握了宏,歡迎通過添加更多的宏來測試相應(yīng)的技能。

3.定義關(guān)節(jié)組件

我們將為機(jī)械臂定義可旋轉(zhuǎn)的關(guān)節(jié),即可以在指定區(qū)間之間旋轉(zhuǎn)運(yùn)動。由于此機(jī)械臂中的所有關(guān)節(jié)都在指定區(qū)間之間移動,并且對所有關(guān)節(jié)都是通用的,因此我們將這些關(guān)節(jié)組件定義在之前構(gòu)建機(jī)器人底座時創(chuàng)建的同一robot_essentials.xacro文件中:

在robot_arm.urdf.xacro文件中定義關(guān)節(jié)組件,如下所示:

至此我們完成了文件內(nèi)容的添加,下面我們可以使用rviz進(jìn)行可視化,查看構(gòu)建的機(jī)械臂是否和我們預(yù)期的一樣。具體操作過程為執(zhí)行以下命令:

添加機(jī)器人模型,并在選項“Global”中將“Fixed Frame”設(shè)置為arm_base。如果一切順利的話,讀者將能夠在可視化界面中看到我們構(gòu)建的機(jī)器人模型。可以添加tf顯示,并與圖3.10進(jìn)行對比。可以通過將gui參數(shù)設(shè)置為true來啟動滑塊控制器,進(jìn)而通過拖動滑塊來移動機(jī)械臂連桿。

主站蜘蛛池模板: 周宁县| 宁波市| 泸水县| 保靖县| 巴青县| 高要市| 宣恩县| 上栗县| 巴彦县| 离岛区| 织金县| 东至县| 呼伦贝尔市| 蓬溪县| 古蔺县| 连城县| 东乡| 剑川县| 竹溪县| 逊克县| 嘉义市| 汉寿县| 乡宁县| 独山县| 金溪县| 股票| 平塘县| 中阳县| 寿宁县| 武穴市| 宝兴县| 阿图什市| 建湖县| 文山县| 浑源县| 翁牛特旗| 安仁县| 南川市| 聂拉木县| 正镶白旗| 辽阳市|