1.实现发布当前乌龟的位姿(窗体中乌龟的坐标以及朝向),要控制乌龟运动,并时时打印当前乌龟的位姿。
2.流程和http://t.csdn.cn/Tsao差不多,先获取到小海龟测试案例的话题和消息信息。启动小海龟rosrun turtlesim turtlesim_node
然后查看话题列表rostopic list
获取消息类型rostopic type /turtle1/pose
获取消息格式:rosmsg info turtlesim/Pose
从上到下是坐标x,y,角度,线速度,角速度。
3.在上一个文章的功能包下进行话题订阅的实现。
因为消息类型是turtlesim的,所以先添加依赖。
新建一个cpp文件
#include"ros/ros.h"
#include"turtlesim/Pose.h"
void doPose(const turtlesim::Pose::ConstPtr &p)
{
ROS_INFO("乌龟位姿信息:x=%.2f,y=%.2f,theta=%.2f,lv=%.2f,av=%.2f",
p->x,p->y,p->theta,p->linear_velocity,p->angular_velocity
);
}
int main(int argc,char *argv[])
{
setlocale(LC_ALL,"");
ros::init(argc,argv,"sub_pose");
ros::NodeHandle nh;
ros::Subscriber sub = nh.subscribe<turtlesim::Pose>("/turtle1/pose",1000,doPose);
ros::spin();
return 0;
}
然后修改配置文件,编译。
启动roscore节点,启动小海龟节点,启动键盘控制节点,启动自己的功能包: