ROS创建节点

写这篇文章的初衷

首先是自己第一次接触ros遇到了好多的坑就想让大家避免入坑,还有就是普及正确的东西首先我要抨击一下这篇文章,让许多人走了弯路浪费了大家的时间,对待发博客一点都不严谨错误太多以下是地址按照我的做你会发现其实错误很简单。https://blog.csdn.net/poqiaomi5437/article/details/79660199

首先建立工作空间

很简单就是几条linux命令

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws
catkin_make

创建ROS包

cd ~/catkin_ws/src
catkin_create_pkg example_cpp(其实就是个文件夹别名包可以自定义) std_msgs roscpp

编译ROS功能包

cd ~/catkin_ws
catkin_make

开始最开心的时刻了写代码

将两个cpp文件(server.cpp和client.cpp)放到catkin_ws/example_cpp/src里面

server.cpp

#include <ros/ros.h>
#include <std_msgs/String.h>
#include <sstream>
int main(int argc,char **argv)
{
    ros::init(argc,argv,"example_public");       //a)
    ros::NodeHandle n;                           //b)
    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("message",1000);    //c)
    ros::Rate loop_rate(10);                     //d)
    while(ros::ok())                     //中断,遇到ctrl+c时候中断
    {
        std_msgs::String msg;            //申请内存
        std::stringstream ss;                  //信息内容变量
        ss << "I am publisher ";         //写入变量
        msg.data = ss.str();             //写入内存
        chatter_pub.publish(msg);        //调用发布函数
        loop_rate.sleep();               //发送频率
    }
    return 0;
}

client.cpp

#include <ros/ros.h>
#include <std_msgs/String.h>
void chatterCallback(const std_msgs::String::ConstPtr& msg)
{
    ROS_INFO("I heard: [%s]",msg->data.c_str()); //接收的消息
}
int main(int argc,char **argv)
{
    ros::init(argc,argv,"example_subscriber");    //a)
    ros::NodeHandle n;                            //b)
    ros::Subscriber sub = n.subscribe("message",1000,chatterCallback);    //c)
    ros::spin();                                  //回调函数
    return 0;
}

修改catkin_ws/example_cpp下的CMakeList文件(在末尾加一下内容即可)

include_directories(
    include
    ${catkin_INCLUDE_DIRS}
)
add_executable(example_public src/server.cpp)
add_executable(example_subscriber src/client.cpp)
target_link_libraries(example_public ${catkin_LIBRARIES})
target_link_libraries(example_subscriber ${catkin_LIBRARIES})

source配置

执行以下命

echo "source /home/catkin_ws/devel/setup.bash" >> ~/.bashrc

也可以手动添加不会去百度不多说了

开始进行编译

cd ~/catkin_ws
catkin_make 

开始执行程序

分别在3个终端内输入以下命令(不要在一个终端中输入)

roscore
 
rosrun example_cpp example_public
 
rosrun example_cpp example_subscriber
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值