Kamo ROS学习笔记——Client Library

Client Library 客户端库

提供ROS编程的库

例如:建立node,发布消息,调用服务
1.roscpp c艹 执行效率高 适合图像和slam
2.rospy python 开发效率较高

roscpp

topic、service、param、timmer

void ros::init();  //初始化函数 解析ROS参数 为本node命名
//"::"是作用域的限定幅 表明init()这个函数是在ros这个命名空间中

ros::NodeHandle Class

ros::NodeHandle   //最重要的 一个句柄 用来创建topic service 和调用公共的接口  是一个Class
ros::Publisher advertise(const string &topic,uint32_t queue_size); //创建话题的publisher
//advertise 是一个你创建的对象 例pwb  , topic是你publish topic的名称  size是你发送消息队列的长度
//调用就是pwb.publish(msg);
ros::Subscriber subscribe(const string &topic,uint32_t queue_size,void(*)(M)); //创建话题的subscriber
//同上 topic_name 消息队列的长度 还有回调函数 由回调函数处理msg
ros::ServiceServer advertiseService(const string &service,bool(*srv_func)(Mreq &,Mres &));//创建服务的server
ros::ServiceClient serviceClient(const string &service_name, bool persistent=false);//创建服务的client
bool getParam(const string &key, void &val); //查询某个参数的值
bool setparam(const string &key, void val);   //给参数赋值

ros::master Namespace

ros::master  Namespace    //通过它和master交互 用于获取系统的信息
bool check();//检查master是否启动
//区别在于该函数无对象
//如调用check
ros::master::check();//master是一个命名空间而不是一个类

const string& getHost();//返回master所出的hostname
bool getNodes(V_string &nodes);//从master返回已知的node名称列表
bool getTopics(V_TopicInfo &topics);//返回所有正在被发布的topic列表
bool getURI();//返回到master的URI地址,如http://host:port/
uint32_t getPort();//返回master运行在的端口

ros::this_node Namespace

ros::this_node   Namespace//查询进程的函数
void getAdvertisedTopics(V_string &topics);//返回本node发布的topic
const string &getName();//返回当前node的名称
const string &getNamespace();//返回当前node的命名空间
void getSubscribedTopics(V_string &topics);//返回当前node订阅的topic

ros::service Namespace

ros::service  Namespace//查询服务的函数
bool call(const string &service,Service &service);//调用一个RPC服务
ServiceClient createClient(const string& service_name,bool persistent=false,const M_string &header_values=M_string());
bool exists(const string &service_name,bool print_failure_reason);//确认服务可调用
bool waitForService(const string &service_name,int32_t timeout);

ros::param

ros::param  //查询参数服务器
ros::NodeHandle

ros::names

ros::names  //名称管理用到的功能
string append(const std::string &left,const std::string &right);//追加名称
string clean(const string &name);//清除图资源名称:扇区双斜线、结尾斜线
const M_string &getRemappings();//返回重映射remapping
string remap(const string &name);//对名称重映射
string resolve(const string &name,bool remap=true);//解析出名称的全名
bool validate(const string &name,string &error);//验证名称

你可能感兴趣的:(Kamo ROS学习笔记——Client Library)