(8)ROS学习-实操话题订阅-系列学习于Autolabor

本文介绍了如何在ROS环境中使用小海龟模拟器(turtlesim)来实时显示和控制乌龟的位姿。首先启动turtlesim_node节点,然后通过rostopic和rosmsg获取乌龟位姿信息。接着创建cpp文件实现订阅/turtle1/pose话题,接收并打印乌龟坐标、朝向、速度等信息。最后编译并运行自定义功能包,同时启动roscore、小海龟节点和键盘控制节点,实现乌龟位姿的动态显示。
摘要由CSDN通过智能技术生成

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节点,启动小海龟节点,启动键盘控制节点,启动自己的功能包:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值