載入特定的world,如
gazebo world/pr2.world
系統預設的world路徑為
/usr/share/gazebo-version/worlds
gazebo指令會執行兩種不同的可執行檔案,乙個是gzserver,另乙個是gzclient。前者執行物理更新迴圈和生成感測器資料,後者生成乙個視覺化模擬介面。gazebo 使用許多環境變數來定位檔案,並設定server和client之間的通訊。環境變數的預設值儲存路徑為/usr/share/gazebo-version/ setup.bash.
urdf(通用機械人描述格式)是ros系統中用於描述機械人元件的乙個xml檔案。
以rrbot為例
機械人名字和可選的xacro的xml命名空間
增加了乙個world的鏈結和關節,並將將link1固定到世界座標系上。
gazebo中的計量單位是公尺和千克。細心的話你會發現和中的元素基本是一模一樣的,你可以這麼理解,collision用於gazebo中顯示,visual用於rviz中顯示,因此二者一樣。至於多出來的一行是通過材料指令碼來指定顏色。如果要在gazebo中指定顏色,不能通過指令碼的方式,只能手動新增標籤。顏色指令碼及gazebo新增方法如下
gazebo/orange
gazebo中預設的材料原始碼都在gazebo-version/media/materials/scripts/gazebo.material中。
inretial屬性中,origin代表質心,mass代表質量,ixx/yy/zz代表沿該軸的矩。
link2也是類似定義,但在鏈結與鏈結之間,要定義乙個關節。
而且兩個非固定鏈結之間,存在指定的摩擦
0.2
0.2gazebo/black
如果只啟動主節點而沒有載入控制,那麼rrbot會處於自然下垂狀態
ros提供ros_control功能包來實現與gazebo的通訊和控制。通過ros_control能夠設定模擬控制器驅動機械人實現運動。執行下述指令進行安裝
sudo apt-get install ros-kinetic-ros-control ros-kinetic-ros-controllers
使用ros_control需要在urdf中新增額外的元素用來驅動關節。
transmission_inte***ce/******transmission
hardware_inte***ce/effortjointinte***ce
hardware_inte***ce/effortjointinte***ce
1
其中joint name對應關節名,type表示傳輸型別,hardwareinte***ce包含在中表示硬體介面載入的外掛程式。除了transmission標籤外,還需要新增的是plugin外掛程式,通過乙個額外可拓展的外掛程式架構允許使用者建立ros_control和gazebo間機械人硬體介面。預設外掛程式如下:
/rrbot
最後,需要給ros_control控制器建立乙個配置檔案和啟動檔案 ,啟動檔案和
cd catkin_ws/src
catkin_create_pkg rrbot_control ros_control ros_controllers
cd rrbot_control
mkdir config
mkdir launch
cd config
gedit rrbot_control.yaml
rrbot:
# publish all joint states -----------------------------------
joint_state_controller:
type: joint_state_controller/jointstatecontroller
publish_rate: 50
# position controllers ---------------------------------------
joint1_position_controller:
type: effort_controllers/jointpositioncontroller
joint: joint1
pid:
joint2_position_controller:
type: effort_controllers/jointpositioncontroller
joint: joint2
pid:
cd ../launch
gedit rrbot_control.launch
rosparam通重載入乙個yaml配置檔案將引數載入到引數伺服器。controller_spawner節點通過執行指令碼呼叫ros_control控制管理器啟動兩個關節的位置控制器。第三個控制器通過hardware_inte***ces將所有關節狀態資訊發布在/joint_states的話題上。
執行
roslaunch rrbot_gazebo rrbot_world.launch
roslaunch rrbot_control rrbot_control.launch
roslaunch rrbot_control rrbot_rqt.launch
結果如圖 Gazebo學習筆記一 Gazebo簡介
寫在開頭gazebo是一款三維動態 器,能夠在複雜的室內外環境中準確 高效地模擬機械人。不光與遊戲引擎類似,gazebo提供了更高逼真度的物理模擬 一系列感測器以及使用者和程式的介面。在實驗階段,gazebo虛擬機械人 無論從保證演算法準確性還是充實 方面都有著重要的作用。針對機械人實驗除錯過程存在...
問題解決 Gazebo閃退及無法執行
卡在載入世界模型介面 載入太慢 cd gazebo mkdir p models cd gazebo models wget 輸出 gazebo models.txt 繼續執行 wget i gazebo models.txt ls model.tar.g xargs n1 tar xzvf 進到 ...
linux系統簡介及命令簡介
一 linux基本概念 1.本門課程的定位 a.企業環境中使用的伺服器作業系統基本就是linux系統 b.大資料集群也是搭建在linxu系統之上 2.linux核心 linux是乙個一體化核心 monolithic kernel 系統。核心 指的是乙個提供硬體抽象層 磁碟及檔案系統控制 多工等功能的...