ros 话题通信

准备工作

创建文件夹

mkdir -p catkin_ws/src
catkin_make

创建包和依赖项

cd catkin_ws/src

catkin_create_pkg xx_pkg rospy roscpp std_msgs

编写发布者

在src下建立c++文件

7cba5c47581e48d0938253d75813e1c9.png

写代码

#include "ros/ros.h"
#include "std_msgs/String.h"

int main(int argc, char *argv[])
{

    ros::init(argc,argv,"chao_node");
    printf("helloworld\n");

    ros::NodeHandle nh;
    ros::Publisher pub= nh.advertise<std_msgs::String>("huati",10);
    ros::Rate r(2);
    while(ros::ok())
    {
        printf("开始发布\n");
        std_msgs::String msg;
        msg.data="oi";
        pub.publish(msg);
        r.sleep();
    }
    return 0;
}

修改CMakeLists.txt

add_executable(chao_node src/chao_node.cpp)
target_link_libraries(chao_node
  ${catkin_LIBRARIES}
)

编写订阅者

#include "ros/ros.h"
#include "std_msgs/String.h"
void calllback1(std_msgs::String msg)
{
    ROS_INFO(msg.data.c_str());
}
void calllback2(std_msgs::String msg)
{
    ROS_INFO(msg.data.c_str());
}
int main(int argc,char *argv[])
{
    ros::init(argc,argv,"rx_node");

    ros::NodeHandle rx;
    ros::Subscriber sub= rx.subscribe("huati",2,calllback1);
    ros::Subscriber sub2= rx.subscribe("huati_2",2,calllback2);
    ros::Rate r(2);
    while(ros::ok())
    {
        ros::spinOnce();
    }
    return 0;
}

 同样修改修改CMakeLists.txt

联系

a8960af6bd4d4e11a0ad60fb0166b424.png8de2983e5aee43afb79f26ce202ffd38.png

launch文件使用节点

<launch>
    <node pkg= "ss_pkg" type= "chao_node" name="chao_node"/>
    <node pkg= "ss_pkg" type= "tx_node" name="tx_node"/>
    <node pkg= "dd_pkg" type= "rx_node" name="rx_node" output="screen"/>
</launch>

注意"/" 的使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值