ROS Client Library 提供ROS 编程的库(接口)有点类似于API
roscpp—>c++
rospy—>python
roscpp
1.ros::init(); //解析ROS 参数,为本node命名
2. ros::NodeHandle Class
Ps:NodeHandle是一个类
常用成员函数:
//创建话题的publisher
ros::Publisher advertise(const string &topic, uint32_t queue_size)
若要发布一个话题,先创建一个NodeHandle ,
ros::NodeHandle nh; //先创建一个类对象
ros::Publisher pub=nh.Publisher(topic,queue_size); //在调用该函数创建一个发布者
pub.publish(msg) //msg为你要发布的信息
//创建话题的subscriber
ros::Subscriber subscribe(const string &topic. uint32_t queue_size,void( *)(M))
void( *)(M)为回调函数名
要创建subscriber仿造上述创建publisher
//创建服务的server
ros::ServiceServer advertiseService(const string &service,bool( *)(*srv_func)(Mreq & ,Mres &));
//创建服务的client
ros::ServiceClient serviceClient(const string &service_name, bool persistent=false);
//查询某个参数的值
bool getParam(const string &key, void&val)
3.ros::master Namespace
常用函数:
bool check(); //检查master是否启动
const string& getHost (); //返回master所处的hostname
…
类和命名空间的区别
使用类函数之前需要创建类对象才能使用类函数
使用命名空间中的函数则需要在函数前加上命名空间 例如:
ros::master::check();//这样就能调用该函数了