單位和坐標系
- 右手坐標系
- 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)