1.安装TF功能包
sudo apt-get install ros-$ROS_DISTRO-turtle-tf2 ros-$ROS_DISTRO-tf2-tools ros-$ROS_DISTRO-tf
2.功能包提供的例子
roslaunch turtle_tf2 turtle_tf2_demo.launch
这个例子是键盘控制turtle1,然后turtle2会追赶turtle1
3.节点和话题图形
rosrun rqt_graph rqt_graph
4.节点和话题
rosnode list
rostopic list -v
5.分析主题 /turtle1/pose的消息类型[turtlesim/Pose]
rostopic echo /turtle1/pose
分析一下pose的数据类型
这是官网的geometry_msgs/Pose.msg的定义:geometry_msgs/Pose.msg
截图如下:
我们看到,此处的数据类型与程序运行的数据截图不同。因为这个例子中用的是[turtlesim/Pose],我们在终端查看turtlesim/Pose的形式:
lv@lv-HP:~$ rosmsg show turtlesim/Pose
float32 x
float32 y
float32 theta
float32 linear_velocity
float32 angular_velocity
这个相当于[geometry_msgs/Pose.msg]的阉割版,因为小乌龟只能在这个平面运动,少了一个自由度,
[geometry_msgs/Pose.msg] | [turtlesim/Pose] |
---|---|
三维 | 二维 |
float32 x(平面x坐标) | Point position(表示三维的点) |
float32 y(平面y坐标) | Quaternion orientation(四元数,表示一个三维的旋转) |
float32 theta(角度) | |
float32 linear_velocity(线速度,表示位移) | |
float32 angular_velocity(角速度,表示自身旋转) |
6.分析主题/turtle1/cmd_vel的消息类型[geometry_msgs/Twist]
7.分析主题/tf的消息类型[tf2_msgs/TFMessage ]
lv@lv-HP:~$ rosmsg show tf2_msgs/TFMessage
geometry_msgs/TransformStamped[] transforms
std_msgs/Header header
uint32 seq
time stamp
string frame_id
string child_frame_id
geometry_msgs/Transform transform
geometry_msgs/Vector3 translation
float64 x
float64 y
float64 z
geometry_msgs/Quaternion rotation
float64 x
float64 y
float64 z
float64 w
8./turtle_pointer节点的作用
通过乌龟1和乌龟2的位置计算给乌龟2一个数据(包括线速度和角速度),让乌龟2追上乌龟1。
太难了,加油努力!