ROS中spin和rate.sleep的区别

2024-04-27

我是 ROS 新手,正在尝试了解这个强大的工具。我很困惑spin and rate.sleep功能。谁能帮助我了解这两个功能之间的区别以及何时使用每个功能?


ros::spin() and ros::spinOnce()负责处理通信事件,例如到达的消息。如果您要订阅消息、服务或操作,您必须致电spin来处理事件。

While ros::spinOnce()处理事件并立即返回,ros::spin()阻塞直到 ROS 调用关闭。所以,ros::spinOnce()如果需要的话,可以给你更多的控制权。关于这个问题的更多信息在这里:回调和旋转 http://wiki.ros.org/roscpp/Overview/Callbacks%20and%20Spinning.

rate.sleep()另一方面只是一个线程睡眠,其持续时间由频率定义。这是一个例子

ros::Rate rate(24.);
while(ros::ok())
{
    rate.sleep();
}

该循环每秒执行 24 次或更少,具体取决于您在循环内执行的操作。 Aros::Rate对象跟踪自上次以来的时间rate.sleep()已执行并休眠正确的时间以达到 24 Hz 标记。看ros::Rate::sleep() http://docs.ros.org/diamondback/api/rostime/html/classros_1_1Rate.html#ae5664d27cda1b17a103347560259e945API.

时域中的等效方法是ros::Duration::sleep() http://docs.ros.org/diamondback/api/rostime/html/classros_1_1Duration.html#a39708cc9b2871f6b3715023ab9610043

ros::Duration duration(1./24.);
while(ros::ok())
{
    duration.sleep();
}

您使用哪一个只是方便的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS中spin和rate.sleep的区别 的相关文章

  • Prism 6 区域管理器 RequestNavigate 无法导航某些区域

    我有一个用户控件 其中定义了多个用于注入视图的 Prism 区域 我决定使用 Prism 视图导航来处理切换 我的 SelectedMenuContentRegion 基于用户操作 如下所示 我遇到了问题 我确信问题出在我的使用上 但我无法

随机推荐

  • 更改WinForm中标题栏的颜色

    是否可以在 C 中更改 WinForm 标题栏的颜色 Form1 X lt I want to change the color of this 我解决了这个问题 这是代码 DllImport User32 dll CharSet Char
  • 使用 Javascript/CSS 设置 IE“光学变焦”功能

    我维护的网站的设计相当严格 使用像素来表示字体大小 尺寸 绝对定位等 现在有一个功能请求 要求添加用户调整字体大小的功能 虽然我知道如果不使用相对尺寸从头开始重新设计网站 这是不可能的 但我发现该网站与 IE7 IE8 缩放功能 Ctrl
  • 如何将 HTML 代码转换为 JSON 对象?

    我正在构建一个 Angular 7 应用程序 在此应用程序中 我让用户编辑 HTML 然后我希望将其转换为 JSON 以便以有意义的方式存储它 简而言之 我想获取任何 HTML 代码并将其处理为 JSON 对象 我怎样才能做到这一点 我会将
  • WPF/Silverlight 中的动画资源?

    我正在寻找一些好的资源来增强 WPF Silverlight 中使用的动画 故事板概念 有什么指点吗 发布的一个链接是 WPF 特定的 对于 Silverlight 这里还有一些其他资源 MSDN 动画概述 http msdn micros
  • UnsatisfiedLinkError:dlopen 失败:无法找到引用的符号“__aeabi_memcpy4”

    我刚刚从 NDK 12 x 更新到 13 x 现在遇到以下崩溃 Caused by java lang UnsatisfiedLinkError dlopen failed cannot locate symbol aeabi memcpy
  • android dexclassloader 获取所有类的列表

    我在我的 Android 应用程序中使用来自 asset 或 sdcard 的外部 jar 为此 我使用 DexClassLoader DexClassLoader cl new DexClassLoader dexInternalStor
  • 使用 Android SDK 随机访问文件 > 2GB

    谁能告诉我如何使用 android SDK 随机访问超过 2GB 的文件 我试图寻找 gt 2147483647 的位置并得到异常 值对于定义的数据类型来说太大 这很奇怪 因为查找命令的参数是 long 类型 详细内容请参见代码示例 Ran
  • Python 中是否有 Mechanize 的替代方案? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在使用Python 3 6 而我必须填写表格 不幸的是 mechanize 不适用于 Python 3 作为机械化的替代方案 您有何建
  • 水平滚动视图无法正常工作 swiftUI

    我试图显示一些水平视图 但它不起作用 下面是我正在使用的代码 State var userDataList UserModel var body some View VStack spacing 10 VStack prefView pad
  • iOS App 中 AVAudioPlayer 和 MPMusicPlayerController 的独立音量控制。

    在我的应用程序中 我使用 AVAudioPlayer 播放下载的音频 同时使用 MPMusicPlayerController 播放用户 iPod 音乐库中的音频 我需要能够调整 AVAudioPlayer 实例的音量 使其声音更大 比来自
  • 为什么 GCC 9.1.0 有时会抱怨 strncpy() 的这种使用?

    这是一个 40 行 MCVE 最小 完整 可验证的示例 https stackoverflow com help mcve 或者接近最小的东西 从最初包含 32 个标头的 1675 行源文件中删减 其中大多数包含多个其他标头 编译它gcc
  • gcc 如何知道内联汇编中使用的寄存器大小?

    我有内联汇编代码 define read msr index buf asm volatile rdmsr d buf 1 a buf 0 c index 使用该宏的代码 u32 buf 2 read msr 0x173 buf 我发现反汇
  • 如何在活动脚手架导轨 3 中添加新链接

    我需要在我的出租车列表页面中添加一个新链接 地图 我使用的是 active scaffold 和 Rails 3 2 1 我当前的页面如下所示 我需要在每条记录中显示类似于编辑 删除 显示的链接 地图 在我的数据库中 我有字段名称 纬度 经
  • 你怎么知道无限长的承诺链何时完全结束?

    我试图使用 Promise 强制序列化一系列 Ajax 调用 用户每次按下按钮时都会进行这些 Ajax 调用 我可以成功地序列化操作 如下所示 sample async function real world this is an Ajax
  • 在 MS 企业库或 Log4net 等第 3 方组件上创建包装器是一个好习惯吗?

    这更像是一个很好的练习题 我想提供不同的通用库 如日志记录 缓存等 有很多第三方库 如 MS 企业库 log4Net NCache 等 我想知道直接使用这些服务或在每个服务上创建包装器并使用 DI 在代码中注入该服务是否是一个好习惯 reg
  • C++ iostream 的自定义操纵器

    我想为 ostream 实现一个自定义操纵器 以对插入流中的下一个项目进行一些操作 例如 假设我有一个自定义操纵器quote std ostringstream os std string name Joe os lt lt SELECT
  • pandas 中的索引对象——为什么 pd.columns 返回索引而不是列表

    来自 R 背景 我发现 非常高 使用Indexpandas 中的对象有点令人不安 例如 如果train是一个pandas DataFrame 有什么特殊原因吗train columns应该返回一个Index而不是一个列表 如果它是一个Ind
  • 如何在 Android 上检测从 3g 到 H+ 的网络类型更改

    通过连接管理器和广播接收器 我能够获取连接和断开连接事件 如下所述埃里克的帖子在这里 https stackoverflow com questions 1783117 network listener android 我想知道的是网络连接
  • IntelliJ IDEA 在项目 jar 中查找类

    我看过一些关于通过在目录中搜索 jar 来查找类的帖子 这让我认为 IntelliJ IDEA 中一定有一个工具可以做到这一点 有人知道这样的工具以及如何使用它吗 如果 jar 文件作为项目依赖项导入 您可以键入cmd n然后搜索它
  • ROS中spin和rate.sleep的区别

    我是 ROS 新手 正在尝试了解这个强大的工具 我很困惑spin and rate sleep功能 谁能帮助我了解这两个功能之间的区别以及何时使用每个功能 ros spin and ros spinOnce 负责处理通信事件 例如到达的消息