當前位置: 華文問答 > 數碼

ROS/gazebo下,如何在sdf模型檔中使用控制器外掛程式,或者如何將sdf轉化為urdf檔?

2016-05-20數碼

雖然是很多年前的問題了,但前不久也遇到了,現在根據自己的了解回答一下。

ROS/gazebo仿真最常用的控制器外掛程式是ros_control,一直關註這個外掛程式的開發進度,到目前為止仍然不支持sdf格式,必須要在urdf/xacro上聲明後才能使用,gazebo論壇和github上也沒有好的解決辦法。目前我使用過的解決方法有如下兩個:

(1)sdf轉urdf,再使用ros_control外掛程式。sdf轉urdf格式,目前有外掛程式可以實作,見下面網址中沒有被采納的這個答案,答主給出了專案地址,在評論區說明了使用方法。但如另外一位答主所述,這種方法並沒有解決urdf不支持閉鏈結構的缺陷,同時會遺失一些材質、顏色等資訊。

(2)編寫自訂gazebo控制器外掛程式,並直接在sdf中呼叫。雖然目前sdf中沒有找到像ros_control這樣的現成控制器外掛程式,但根據gazebo官方提供的文件來看,可以透過編寫自訂外掛程式來呼叫gazebo預留的介面,以設定關節的位置、速度、pid參數等資訊,從而開發一個簡單的控制器外掛程式。如果有C++編程基礎,這種方法其實也不費事。因為在做並線上器人的仿真,urdf肯定不能用,因此這也是我現在采用的方法。