rostime call is slow

조회 수: 2 (최근 30일)
Mauro
Mauro 2020년 11월 23일
답변: Amrtanshu Raj 2021년 2월 5일
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