ros4

 

roscpp:

topic_demo

功能描述:两个node,一个发布模拟的GPS信息(格式为自定义,包括坐标和工作状态),另一个接收并处理该消息(计算到原点的距离)

步骤:

1、package

2、msg

3、talker.cpp

4、listener.cpp

5、CMakeList.txt&package.xml

1. package

cd ~/catkin_ws/src

catkin_creat_pkg topic_demo roscpp rospy std_msgs

2. msg

cd topic_demo/

mkdir msg

cd msg

vi gps.msg

# gps.msg的文件格式如下:

float32 x

float32 y

string state

文件写完后先编译(catkin_make),随后会自动存放在:~/catkin_ws/devel/include/topic_demo/gps.h

所以之后在写头文件时,要把gps.h包含进去。

例如: #include.<topic_demo/gps.h>

topic_demo::gps msg;

3. talker.cpp

#include<ros/ros.h>

#include<topic_demo/gps.h>

int main(int argc,char**){

   ros::int(argc,argc, "talker" );   //解析参数,命名节点

   ros::NodeHandle nh;              //创建句柄,实例化node

   topic_demo::gps msg;           //创建gps消息

   msg.x=1.0;

   msg.y=1.0;

   msg.state= "working" ;

   ros::Publisher pub = nh.advertise<topic_demo::gps>("gps_info",1);     //创建publisher

   ros::Rate loop_rate(1.0);        //定义循环发布的频率

   while(ros::ok()){

            msg.x=1.03*msg.x;    //以指数增长,每隔1s

            msg.y=1.03*msg.y;

            ROS INFO("Talker: GPS: x=%f,y=%f",msg.x,msg.y);   //输出当前msg

            pub.publish(msg);    //发布消息

            loop_rate.sleep();    //根据定义的发布频率,sleep

    }

return 0;

}

4、listener.cpp

 5、CMakeList.txt&package.xml

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值