參考視頻:https://www.bilibili.com/video/BV1n7411w7Anfrom=search&seid=5116569657579284345
交互圖:
1、gazebo的launch文件的基本形式
(1)空世界,一般不進行修改,第一段最後一行定義自己的模型名稱,也可以不進行定義。第二段第二行輸入自己的仿真場景文件
(2)spawn model(生成模型) 注:最重要的部分
把模型加載到gazebo,arg中-urdf是說要解析的模型是urdf類型的,-model後面跟的是加載的模型的名字,-param是文件來源,來自參數服務器的robot_description參數
接下來要對urdf文件進行修改,不然按照上面的launch文件打開的模型顏色是灰色的而且因爲沒有傳動標籤模型會軟在地上,同時因爲沒有控制器,模型的關節也不能動。
2、修改urdf
(1)link的gazebo屬性
kp kd: 對於ODE定義的剛體接觸,接觸剛度k_p和阻尼k_d
參數範圍來自開源物理引擎
參考:https://blog.csdn.net/tobebest_lah/article/details/100061415#urdfgazebo_161
(2)joint的gazebo屬性
給joint添加真正的執行裝置——transmission標籤
transmission標籤主要的針對對象是joint(因爲一般兩個link連接處的地方如果是非固定的,那麼一定會存在一個執行裝置來改變兩個link的相對位置),transmission標籤的作用就是給這個joint打上某種執行器的標籤,有了執行器,gazebo就可以在物理層面上對模型進行驅動了。
type標籤只有一種類型
hardware interface標籤有三種類型,分別爲位置控制、速度控制和力控制
actuator 標籤指的是馬達(電機)信息
mechanicalReduction標籤指的是電機和關節的轉動比,即傳速比,爲1
(3)gazebo-ros插件以及虛擬關節
3、現在模型在gazebo中可以正常顯示,但是ros還不能控制機械臂進行運動,所以要加入控制器和相應的launch文件啓動控制器
(1)文件配置
配置launch文件
(2)操控機械臂
launch文件啓動成功形式
接下來查看話題,發現控制器都已經啓動
發佈命令控制關節在gazebo中運動
對應的關節會進行移動
對夾爪進行控制
goal commond 改成0.5 夾爪閉合
(3)控制組
可以設置手臂和夾爪控制組
4、moveit配置
修改moveit config包來使得moveit控制機械臂