ROS提供了一個odometry消息,該消息告訴我關於xy平面的以下內容。如何確定ROS機器人是前進還是後退?
- 機器人速度的x分量(m/sec)。
- 機器人速度的y分量(m/sec)。
- 機器人的表示爲四元數(Z和W分量以弧度表示)的角度取向
ROS提供了下列額外的C++庫
四元數API: http://docs.ros.org/jade/api/tf/html/c++/classtf_1_1Quaternion.html
矢量3 API:http://docs.ros.org/jade/api/tf/html/c++/classtf_1_1Vector3.html
我有一個不雅的巨人if語句,它使用機器人面對的象限以及x和y分量的方向。我寧願學習如何利用四元數。
當我發佈cmd_vel要求線速度爲0.2m/s和z角速度爲0.2弧度/秒的信息,機器人以圓形行進。 odometry框架具有odom的frame_id和base_link的child_frame_id。當機器人面向0度時,x和y速度爲(2.0,0.0)。在45度(0.15,0.15),在90度(0.0,2.0),135度(-0.15,0.15),在180(-0.20,0.0)。如果我以180°的角度接收(-2.0,0)的x/y速度,它會前進。如果角度爲0,則它向後。 x和y速度的跡象是不夠的。我需要知道它面對的是哪種方式。 –