一、创建工作区间
1、指令:mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
2、编译工作区间:
进入到下面目录中:cd ~/catkin_ws/
编译:catkin_make
3、设置环境变量
进入到一下目录中:sudo gedit ~/.bashrc
在文件末尾加上一下指令:source /home/xiaoyuan/catkin_ws/devel/setup.bash
(注意修改自己的用户名)
4、运行命令:source./bashrc
使得刚刚设置的环境变量生效
5、创建工作包
进入src文件下:cd ~/catkin_ws/src
创建功能包:catkin_create_pkg learning_communication std_msgs rospy roscpp
6、编译工作区间
cd ~/catkin_ws
catkin_make
二、话题通信编程
1、话题通信编程流程
(1)创建发布者(talker);
(2)创建订阅者(listener);
(3)添加编译选项;
(4)运行可执行文件;
2、发布者
(1)在~/catkin_ws/src/learning_communication/src 下创建一个 talker.cpp 文件:
指令:
cd ~/catkin_ws/src/learning_communication/src
gedit talker.cpp
(2)代码编写
粘贴以下代码:
#include <sstream>
#include "ros/ros.h
#include "std_msgs/String.h"
int main(int argc, char **arg
v)
{
//ROS节点初始化
ros::init(argc, argv, "talker");
//创建节点句柄
ros::NodeHandle n;
//创建一个Publisher,发布名为chatter的topic,消息类型为std_msgs::String
ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
//设置循环的频率
ros::Rate loop_rate(10);
int count = 0;
while(ros::ok())
{
//初始化std_msgs::String类型的消息
std_msgs::String msg;
std::stringstream ss;
ss<<"hello world"<<count;
msg.