主要内容

rosrate

执行循环以固定的频率

描述

rosrate对象使用rateControl(机器人系统工具箱)超类继承的属性和方法。主要的区别在于,rateControl使用ROS节点作为时间信息的来源。因此,它可以使用ROS仿真或挂钟时间(请参阅IsSimulationTime属性)。

如果rosinit创建一个ROS主在MATLAB®,全球节点使用挂钟时间。

的性能rosrate对象和维护的能力DesiredRate价值取决于在ROS钟的发布信息。

提示

调度解决您的操作系统和其他系统活动水平可以影响利率执行的准确性。因此,准确率为执行时间仅限于100 Hz的MATLAB代码。以提高性能和执行速度,使用代码生成。

创建

描述

例子

= rosrate (desiredRate)创建一个对象,它使您能够执行一个循环以固定的频率,DesiredRate。时间源与时间全球ROS的源节点,这需要你连接MATLAB ROS网络使用rosinit

例子

= ros.Rate (节点,desiredRate)创建一个对象操作循环在固定汇率基于源与指定的ROS节点时,节点

属性

全部展开

所需执行的循环,指定为一个标量赫兹。当使用等待,循环每运行DesiredRate秒,除非循环需要更长的时间。然后开始下一个循环的基础上指定的OverRunAction

所需的执行之间的时间段,在几秒钟内指定为一个标量。这个属性等于的倒数DesiredRate

时间以来建筑或重置,指定为一个标量在几秒钟内。

最后两个调用之间的运行时间等待,指定为一个标量。默认情况下,LastPeriod被设置为直到等待被称为第一次。第一次电话后,LastPeriod=TotalElapsedTime

方法处理超支,指定为一个特征向量:

  • “下降”——等待,直到下一个时间间隔的倍数DesiredPeriod

  • “滑”再次,立即执行循环

每个代码段调用等待(机器人系统工具箱)结束时执行。

指标如果使用模拟或挂钟时间,返回真正的。如果真正的,对象是使用ROS仿真时间管理循环的速度执行。

对象的功能

等待 暂停代码的执行来实现所需的执行速度
统计数据 过去执行时间的统计数据
重置 重置对象

例子

全部折叠

初始化ROS主人和节点。

rosinit
推出ROS核心…....在4.1747秒内完成。初始化ROS主在http://192.168.88.1:58653上。初始化全局节点/ matlab_global_node_60184 NodeURI http://ah-avijayar: 59309 /

创建一个对象,运行速度在1赫兹。

r = rosrate (1);

开始循环输出迭代和时间。使用等待暂停循环,直到下一个时间间隔。重置r前循环执行。请注意,每个迭代执行秒的间隔。

重置(右)我= = r.TotalElapsedTime 1:10时间;流(迭代:% d -时间:% f \ n ',我等待,时间)(r);结束
迭代:1 -时间:0.002974迭代:2 -时间:1.000752迭代:3 -时间:2.000610迭代:4 -时间:3.000943迭代:5 -时间:4.001317迭代:6 -时间:5.000800迭代:7 -时间:6.000602迭代:8 -时间:7.000298迭代:9 -时间:8.000352迭代:10 -时间:9.000417

ROS网络关闭。

rosshutdown
关闭全局节点/ matlab_global_node_60184 NodeURI http://ah-avijayar: 59309 /关闭ROS主在http://192.168.88.1:58653上。

初始化ROS主人和节点。

rosinit
推出ROS核心…....在4.1733秒内完成。初始化ROS主在http://192.168.88.1:51279上。初始化全局节点/ matlab_global_node_86106 NodeURI http://ah-avijayar: 50550 /
节点= ros.Node (' / testTime ');
使用主URI http://localhost: 51279全球节点连接到ROS的主人。

创建一个ros.Rate对象处于20 Hz。

r = ros.Rate(节点,20);

重新启动定时器重置对象并运行循环30次迭代。插入代码你想运行在循环之前调用等待

重置(右)i = 1:30%用户代码在这里。等待(r);结束

关闭ROS节点。

rosshutdown
关闭全局节点/ matlab_global_node_86106 NodeURI http://ah-avijayar: 50550 /关闭ROS主在http://192.168.88.1:51279上。

扩展功能

另请参阅

(机器人系统工具箱)|

介绍了R2019b