【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 删除参数
最后更新于
这有帮助吗?