Home | Tutorials | Wiki | Issues
Ask Your Question

'world' is protected, how do I get a pointer?

asked 2019-09-23 23:09:54 -0500

clydemcqueen gravatar image

updated 2019-09-23 23:24:28 -0500

Hi, super dumb question... I'm writing a sensor plugin (subclass SensorPlugin) that wraps an Altimeter sensor and I need access to SimTime(). How do I get a pointer to the world object to call SimTime()? I see it in the sensor API (include/gazebo-9/gazebo/sensors/Sensor.hh) but it's protected. Is there some magic global variable that I'm missing?

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2019-09-23 23:30:27 -0500

chapulina gravatar image

It's not recommended to access the world from a sensor plugin because sensors don't run in the physics thread.

Maybe what you want are Altimeter::LastUpdateTime or Altimeter::LastMeasurementTime?

edit flag offensive delete link more


Thanks for the quick reply! I suspected as much. Altimeter::LastMeasurementTime is always 0 and Altimeter::LastUpdateTime seems 10-20ms later than ros_node->now(), which itself is later than Camera::LastMeasurementTime. Any advice? Perhaps I need to write a camera sensor plugin that will give me consistent time across multiple sensors? Or fix Altimeter::LastMeasurementTime?

clydemcqueen gravatar imageclydemcqueen ( 2019-09-24 09:52:37 -0500 )edit
Login/Signup to Answer

Question Tools

1 follower


Asked: 2019-09-23 23:09:54 -0500

Seen: 17 times

Last updated: Sep 23