#include "ros/ros.h" //ros常用头文件
ros::init(argc,argv,"move_group_interface_tutorial");//前两个参数确定,第三个参数是节点的名字,实现ros程序的参数与命令行输入的匹配
ros::NodeHandle n;//NodeHandle 是一个主要的与Ros系统交流的访问点,第一个建立的NodeHandle初始化这个节点,最后一个摧毁的NodeHandle会关闭这个节点
ros::AsyncSpinner spinner(1);//没看懂,问一下
ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000); /*advertise函数用于在ros上向一个给定的话题上发布消息。这个函数返回一个Publisher对象,调用对象中的.publish()函数可以发布消息。advertise的第二个参数制定消息缓冲区的大小,可用于缓冲。"< >"内部是消息的类型,第一个参数是topic名称。*/
ros::Rate loop_rate(10); //ros::Rate类可以制定循环的频率,本例中为10Hz
loop_rate.sleep(); //sleep()是ros::Rate类的成员函数,使得程序休眠
ROS_INFO("%s", msg.data.c_str());//是ros中printf的代替品
ros::ok();//roscpp将会安装一个SIGINT监听,它使当Ctrl-C按下时,ros::ok()将会返回false。一旦ros::ok()返回false,所有的ROS调用都会失败。
ros::spinOnce(); //ros的回调函数,会调回继续执行以后的程序
ros::spin();//回调后不再执行原来的程序
ros::shutdown();//会使ros::ok()置为false