ROS API
- init 函数
1 | //有3个重载,常用以下 |
| 作用: | 初始化ROS系统,并创建一个节点,节点名称为name |
|---|---|
| argc | 参数个数 |
| argv | 参数数组,需要符合ros的特定格式 |
| name | 节点名称,默认为argv[0],不允许重复 |
| options | ROS中同一个节点不能重复启动,此时可以通过options选项来设置是否允许重复启动,原理是在节点名称后加上生成随机数字尾缀。使用方法:ros::init_options::AnonymousName |
| 使用细节 |
- 发布对象
1 | //使用示例 |
| 作用: | 创建发布者对象 |
|---|---|
| 模板 | 被发布者的消息类型 |
| topic | 话题名称 |
| queue_size | 缓存消息个数,如果满了丢弃之前的 |
| latch | 如果为ture,会保存发布方的最后一条消息,并且当新的订阅者连接到发布方时,发布方会将这条信息发送给订阅者。应用场景:静态地图 |
| 使用细节 | |
| 3. 回旋函数 | |
| 有回调就伴随着回旋 |
1 | void ros::spin() |
| 作用: | 处理回调函数 |
|---|---|
| spin() | 是进入了循环执行回调函数,进入循环后不会自己退出,在 ros::spin() 后的语句不会执行到 |
| spinOnce() | 只会执行一次回调函数(没有循环),ros::spinOnce() 后的语句可以执行 |
- 时刻
参考系1970年1月1日0时0分0秒
1 | ros::Time::now() |
- 定时器https://support.3dsystems.com/s/article/OpenHaptics-for-Linux-Developer-Edition-v34?language=en_US
1
2ros::Timer timer = nh.createTimer(ros::Duration(0.5),doSomeThing,true);//只执行一次