理解ROS:基础概念的整理


本文主要是针对一些基本概念的简要记录,后续会不定时更新。

ROS参考学习网站

ros官网api查阅网站:https://docs.ros.org/en/api/
ros Wiki:http://wiki.ros.org/
ros wiki 中文版:http://wiki.ros.org/cn
ros中文社区:http://wiki.ros.org/cn/community
创客智造:https://www.ncnynl.com/

ros::spin()与ros::spinOnce()

这两个函数叫ROS消息回调处理函数,用来处理回调函数的。

  • ros::spin():主程序到这儿就不往下执行了,会继续执行回调函数。(程序结束后,比如按ctrl-c,才会往下执行)。
  • ros::spinOnce():因为只回调一次,所以在调用后还可以继续执行之后的程序。

ros::spin()函数一般不会出现在循环中,因为程序执行到spin()后就不调用其他语句了。ros::spinOnce()的用法相对来说很灵活,但往往需要考虑调用消息的时机,调用频率,以及消息池的大小,这些都要根据现实情况协调好,不然会造成数据丢包或者延迟的错误。

注意:有回调函数的地方一定记得加上这两个函数之一,不然接收不到订阅消息。

ros::ok()

判断ros节点是否正常运行,正常则返回true,使得ros::ok()返回false的形式:

  • SIGINT收到终端(Ctrl-C)信号
  • 另一个同名节点启动,会先中止之前的同名节点
  • ros::shutdown()被调用
  • 所有的ros::NodeHandles被销毁

注意:ros::ok()只判断自己节点,和其他节点独立。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非晚非晚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值