【ROS教程】ROS常用API讲解

@TOC


1.节点初始化

ROSCPP_DECL void init(int &argc, char **argv, const std::string& name, uint32_t options = 0);
ROSCPP_DECL void init(const M_string& remappings, const std::string& name, uint32_t options = 0);
ROSCPP_DECL void init(const VP_string& remapping_args, const std::string& name, uint32_t options = 0);
  • 这里讲解第一种初始化方式

参数
含义

argc

main函数的第一个参数

argv

main函数的第二个参数

name

节点的名字,必须是唯一的

2.话题通信

2.1 创建发布者对象

template <class M>
Publisher NodeHandle::advertise(const std::string& topic, uint32_t queue_size, bool latch = false);
  
template <class M>
Publisher NodeHandle::advertise(const std::string& topic, uint32_t queue_size,
                        const SubscriberStatusCallback& connect_cb,
                        const SubscriberStatusCallback& disconnect_cb = SubscriberStatusCallback(),
                        const VoidConstPtr& tracked_object = VoidConstPtr(),
                        bool latch = false);
  • 这里讲解第一种构造方式

参数
含义

topic

话题的名字,必须是唯一的

queue_size

等待发送给订阅者的最大消息数量

latch

如果为 true,该话题发布的最后一条消息将被保存,并且后期当有订阅者连接时会将该消息发送给订阅者

2.2 消息发布

参数
含义

message

被组织的消息

2.3 创建订阅者对象

参数
含义

topic

话题的名字,必须是唯一的

queue_size

main函数的第二个参数

fp

回调函数的函数指针

return

调用成功时,返回一个订阅者对象,失败时,返回空对象

3.服务通信

3.1 创建服务对象

参数
含义

service

服务名称,必须是唯一的

srv_func

接收到请求时,需要处理请求的回调函数

return

请求成功时返回服务对象,否则返回空对象

3.2 创建客户对象

参数
含义

service_name

服务名称,必须是唯一的

3.3 客户发送请求

参数
含义

service

.srv文件定义的服务类型

3.4 客户对象等待服务

参数
含义

service_name

被等待的服务名称,必须是唯一的

timeout

等待最大时常,默认为 -1,可以永久等待直至节点关闭

return

成功返回 true,否则返回 false

4. 回旋函数

  • 简而言之,用到回调函数,就要用回旋函数处理

4.1 spin

4.2 spinOnce

5.时间

5.1 时刻

5.1.1 获取当前时刻

5.1.2 设置时刻

5.2 时间间隔

5.2.1 设置时间间隔

5.2.2 进行休眠

5.3 设置运行频率

参数
含义

frequency

运行频率

6.参数设置

6.1 修改或新增参数

  • ROS提供了16种可以设置的参数类型,如上。

  • 使用 ros::param::set有完全相同的效果

6.2 获取参数

6.3 删除参数

最后更新于

这有帮助吗?