rostime call is slow

1 次查看(过去 30 天)
Mauro
Mauro 2020-11-23
While developing a Matlab wrapper around a ROS package, I noticed that rostime("now") takes around 1.4e-03 s per call. In Python on the other hand the same call only takes 4.8e-06 s. I understand that there might be implementation differences, but Matlab being orders of magnitude slower than Python seems strange. Is there anything I am doing wrong here?
Matlab script for timing:
tic
for i = 1:1000
a = rostime("now");
end
toc / 1000
Python script for timing:
import rospy
import time
if __name__ == "__main__":
rospy.init_node("test")
t0 = time.clock()
for i in range(1000):
a = rospy.Time.now()
t1 = time.clock()
print((t1 - t0) / 1000)
Thanks!
Edit:
I found this bug report and the workaround using robotics.ros.internal.Time([]).CurrentTime is about 10 times faster than rostime("now"). This is better but still not as fast as it should be. I am also not sure how much of a hack this is.

回答(1 个)

Amrtanshu Raj
Amrtanshu Raj 2021-2-5
Hi,
The difference in computation time is because of the implementation difference between the MATLAB and Python version of the command. Even declaring a static rostime like
time = rostime(2,85000);
Takes around 1.4e-03 seconds to compute. I have brought this to the notice of the developers.
Thanks !!

类别

Help CenterFile Exchange 中查找有关 Publishers and Subscribers 的更多信息

标签

产品


版本

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by