初始化函数

作用:初始化函数

ros::init(argc,argv,"节点名")
* \param argc 参数个数
* \param argv 参数列表
* \param name 节点名称,需要保证其唯一性,不允许包含命名空间
* \param options 节点启动选项,被封装进了ros::init_options

使用

1.argc和argv的使用
  按照特定格式传参数,可以在ros中使用
2.option的使用
  特定场景下,一个节点多次启动
  ros::init(argc,argv,"ergouzi",ros::init_option::AnonmousName)

节点句柄函数

作用:创建发布者对象

ros::NodeHandle nh

参数:

话题名称
话题对象
latch(可选)

使用:

latch设置ture的作用
方案一使用固定频率发送地图的数据,效率低
方案二将地图发布对象的latch设置为ture,并且发布方只发送一次数据,当订阅者连接时,将地图数据发送给订阅者(只发送一次)

回调函数

循环回调

spin()
spinonce()

时间函数

时间获取与设定

//参考:1970年
//获取当前时刻
ros::Time  now=ros::Time::now();
ROS_INFO("当前时间是:%.2f",now.toSec());
ROS_INFO("当前时间是:%d",now.sec);

//设置指定时刻
ros::Time t1(20,454545465);
ros::Time t2(100.59);
ROS_INFO("t1=%.2f",t1);
ROS_INFO("t2=%.2f",t2);

//持续一段时间
ROS_INFO("------------------------持续时间---------------------------");
ros::Time start=ros::Time::now();
ROS_INFO("开始休眠:%.2f",start.toSec());
//休眠函数
ros::Duration du(10.5);
du.sleep();
ros::Time end=ros::Time::now();
ROS_INFO("休眠结束:%.2f",start.toSec());

请输入图片描述

ROS_INFO("时间运算");
ros::Time now = ros::Time::now();
ros::Duration du1(10);
ros::Duration du2(20);
ROS_INFO("当前时刻:%.2f",now.toSec());
//1.time 与 duration 运算
ros::Time after_now = now + du1;
ros::Time before_now = now - du1;
ROS_INFO("当前时刻之后:%.2f",after_now.toSec());
ROS_INFO("当前时刻之前:%.2f",before_now.toSec());

//2.duration 之间相互运算
ros::Duration du3 = du1 + du2;
ros::Duration du4 = du1 - du2;
ROS_INFO("du3 = %.2f",du3.toSec());
ROS_INFO("du4 = %.2f",du4.toSec());
//PS: time 与 time 不可以运算
// ros::Time nn = now + before_now;//异常

定时器函数

间隔固定时间执行函数

参数

 //Timer createTimer(Duration period, 
              const TimerCallback& callback, 
              bool oneshot = false,
              bool autostart = true) const;
* \param period 时间间隔
* \param callback 回调函数
* \param oneshot 如果设置为 true,只执行一次回调函数,设置为 false,就循环执行。
* \param autostart 如果为true,返回已经启动的定时器,设置为 false,需要手动启动。

示例

ROS_INFO("------------------------定时器---------------------------");
ros::Timer time55 =nh.createTimer(ros::Duration(2),cd);
ros::spin();

请输入图片描述

最后修改:2023 年 11 月 10 日
如果觉得我的文章对你有用,请随意赞赏