天天看點

ros筆記(四)機器人仿真下

1.urdf模型的進化版本xacro模型檔案

精簡模型代碼:

建立宏定義

<xacro:macro name="name" params"A B C">  .....

</xacro:macro>

宏調用<name A="A_value" B="B_value" C="C_value"/>

檔案包含<xacro:include filename="$(find mbot_description)/urdf/xacro/mbot_base.xacro"/>

提供可程式設計接口

常量定義< xacro:property name="M_PI" value="3.14159"/>

常量使用<origin xyz="0 0 0" rpy="${M_PI/2} 0 0"/>

變量

數學計算<origin xyz="0 ${(motor_length+wheel_length)/2} 0" rpy="0 0 0"/>

條件語句

2.模型顯示

将xacro檔案轉化成URDF檔案後顯示

$ rosrun xacro xacro.py mbot.xacro > mbot.urdf

3.ArbotiX

一款控制電機舵機的硬體控制闆

提供了相應的ros的功能包

提供了差速控制器,通過接收速度控制指令,更新機器人的裡程計狀态

第一步:創造launch檔案

arbotix_mbot_with_camera_xacro.launch

第二步:建立配置檔案

fake_mbot_arbotix.yaml

第三步:啟動仿真器

$    roslaunch mbot_description arbotix_mbot_with_camera_xacro.launch

第四步:啟動鍵盤控制

$    rostopic list

$    roslaunch mbot_teleop mbot_teleop.launch

odom是一個全局坐标系,通過裡程計記錄機器人目前的運動位姿

Arbotix+rviz的導航仿真

$   roslaunch rbx1_bringup fake_turtlebot.launch

$    roslaunch rbx1_nav fake_amcl.launch map:=test.map.yaml

$    rosrun rviz rviz -d `rospack find rbx1_nav`/amcl.rviz

4.gazobo

ros_control:

ros為開發者提供的機器人控制中間件

包括一系列的控制器接口,傳動裝置接口,硬體接口,控制器工具箱等等

可以幫助機器人應用功能包快速落地,提高開發效率

第一步:為link添加慣性參數和碰撞屬性

第二步:為link添加gazebo标簽

第三步:為joint添加傳動裝置

第四步:為gazebo添加控制器插件

三種傳感器仿真一定要會。