1.建好工作空间配置好环境
mkdir -p ~/Desktop/catkin_ws/src
cd ~/Desktop/catkin_ws/src/
catkin_init_workspace
cd ..
catkin_make
source devel/setup.bash
2.创建功能包communication 依赖包分别为std_msgs rospy roscpp
cd src
catkin_create_pkg communication std_msgs rospy roscpp
3.用clion打开catkin_ws工作空间 并在communication功能包内src文件夹下创建talker.cpp文件
#include <sstream>
#include "ros/ros.h"
#include "std_msgs/String.h"
int main(int argc,char **argv)
{
ros::init(argc,argv,"talker");
ros::NodeHandle n1;
ros::Publisher chatter_pub=n1.advertise<std_msgs::String>("chatter",1000);
ros::Rate loop_rate(10);
int count=0;
while(ros::ok())
{
std_msgs::String msg;
std::stringstream ss;
ss << "Hello World" <<count;
msg.data=ss.str();
ROS_INFO("%s",msg.data.c_str());
chatter_pub.publish(msg);
ros::spinOnce();
loop_rate.sleep();
++count;
}
return 0;
}
4、用在communication功能包内src文件夹下创建listener.cpp文件
#include "ros/ros.h"
#include "std_msgs/String.h"
void chatter_callback(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,"listener");
ros::NodeHandle n1;
ros::Subscriber chatter_sub=n1.subscribe("chatter",1000,chatter_callback);
ros::spin();
return 0;
}
5、修改CMakeList.txt文件 在文件中增加以下编译内容
include_directories(
# include
${catkin_INCLUDE_DIRS}
)
//==========================上面为CMajeList文件自带内容===============================
add_executable(talker src/talker.cpp)
target_link_libraries(talker ${catkin_LIBRARIES})
add_dependencies(talker ${PROJECT_NAME}_generate_messages_cpp)
add_executable(listener src/listener.cpp)
target_link_libraries(listener ${catkin_LIBRARIES})
add_dependencies(listener ${PROJECT_NAME}_generate_messages_cpp)
6、载入CMakeList文件运行talker 和 listener 节点
先在终端中输入roscore运行Master,随后在clion上分别运行talker和listener两个节点
talker节点返回如下:
Listener 节点返回如下:
7.打开 rqt_console查看消息推送
在终端输入rqt_console即可打开日志记录工具 他会记录ROS运行的所有日志消息:info、warn、error等
若没安装则使用以下语句安装
sudo apt-get install ros-kinetic-rqt
sudo apt-get install ros-kinetic-common-plugins
打开后即可看到