7. Controlling a Mobile Base

單位和坐標系

  • 右手坐標系
  • x 軸指向前方
  • y 軸指向左側
  • z 軸指向上方
  • 線速度單位:m/s
  • 角速度單位:rad/s
坐標系.png

運動控制層次

base controller:

  • publish: /odom
  • subscribe: /cmd_vel
  • publish: /base_link

move_base:

基于地圖的導航、路徑規劃、移動控制

gmapping

基于激光雷達的 SLAM

amcl

定位

語義控制

“去打瓶醬油”

不同層面的運動控制

通過消息控制小車移動

主題:

  • /cmd_vel

查看 Twist 消息的格式:

 rosmsg show geometry_msgs/Twist
geometry_msgs/Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular
float64 x
float64 y
float64 z

二輪差速小車只使用:

  • linear.x
  • angular.z
rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.2, y:
0, z: 0}, angular: {x: 0, y: 0, z: 0.5}}'

校準

linear 校準

angular 校準

基于時間估計的往返運動

基于里程計的往返運動

基于里程計的往返運動

里程計

 rosmsg show  nav_msgs/Odometry
std_msgs/Header header
  uint32 seq
  time stamp
  string frame_id
string child_frame_id
geometry_msgs/PoseWithCovariance pose
  geometry_msgs/Pose pose
    geometry_msgs/Point position
      float64 x
      float64 y
      float64 z
    geometry_msgs/Quaternion orientation
      float64 x
      float64 y
      float64 z
      float64 w
  float64[36] covariance
geometry_msgs/TwistWithCovariance twist
  geometry_msgs/Twist twist
    geometry_msgs/Vector3 linear
      float64 x
      float64 y
      float64 z
    geometry_msgs/Vector3 angular
      float64 x
      float64 y
      float64 z
  float64[36] covariance

tf tree

rviz 顯示 tf tree

基于里程計的畫方格運動

基于里程計的畫矩形運動

手動控制

  • 鍵盤
  • 手柄
  • GUI
  • rviz 中操作 (ros-indigo-turtlebot-interactive-markers)
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容