本文主要介绍建立一个功能包,一个publisher结点,实现话题的发布。
一工作空间
1创建所需的文件夹
mkdir ros
cd ros
mkdir src
2工作空间的初始化
cd src
catkin_init_workspace
3编译工作空间
cd ..(在ros文件夹下)
catkin_make
二功能包and结点
1 创建功能包
在src文件夹下catkin_create_pkg print_pkg roscpp rospy std_msgs //功能包名加依赖包
2创建结点
在print_pkg 下的src文件夹下创建 print_node.cpp结点
3配置CMakeLists.txt文件(功能包下的)
add_executable(print_node src/print_node.cpp)
target_link_libraries(print_node
${catkin_LIBRARIES})
4将此功能包添加到环境变量中去(理解可能不对)
gedit ~/.bashrc
在末尾加入source /home/zp/ros/devel/setup.bash(此为工作空间ros/devel/setup.bash路径),可以用pwd查看
三 话题发布者
#include <ros/ros.h>
#include <std_msgs/String.h>
int main(int argc, char *argv[])
{
ros::init(argc,argv,"print_node");//节点初始化
ros::NodeHandle nh; //创建一个句柄
ros::Publisher pub= nh.advertise<std_msgs::String>("love",10); //创建一个话题发布者,love为话题名,10为缓冲区大小
printf("hello world\n");
ros::Rate loop_rate(10); //10hz 变量
while(ros::ok)
{
std_msgs::String msg; //定义string 消息msg
msg.data="i once loved sx"; //消息内容
pub.publish(msg); //发布消息
loop_rate.sleep(); //10hz频率发布
}
return 0;
}
四 运行
1编译工作空间 在ros下 catkin_make
2启动ros roscore
3新建一个终端 运行节点
rosrun print_pkg print_node
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)