RVIZ Plugin binary
I created a project specific ros message. For visualization i also created a RVIZ plugin. To share this visualization i wanted to generated a binary of the RVIZ plugin. So i created the binary with
catkin_make install
and tried to integrate this into a default project. Now im facing the problem that using this plugin leads to warnings. The MessageFilter filters all messages out and generated the following warning:
[ WARN] [ 1581408027.985230012]: MessageFilter [target=base_link]: Dropped 100,00% of messages so far. Please turn the [ros.rviz_sensor.message_notifier] rosconsole logger to DEBUG for more information
[ WARN] [ 1581408027.985290333]: MessageFilter [target=base_link]: The majority of dropped messages were due to messages growing older than the TF cache time. The last messages timestamp was 1581408027.855599, and the last frame_id was: base_sensor_front_lreft
So i started to find out why the source code is working when i use it directly and why not when using the binary. Starting with the DEBUG information:
[1581408027.889253617]: MessageFilter [target=base_link]: Discarding Message, in frame base_sensor_front_left, Out of the back of Cache Time (stamp: 1581408027,756 + cache_length: 600,000 < latest transform time 1581408028,338. Message Count now: 0
[1581408027.889333525]: MessageFilter [target=base_link]: Added message in frame base_sensor_front_left at time 1581408027,856, count now 0
So first of all, what is happening here? stamp: 1581408027,756 + cache_length: 600,000 < latest transform time 1581408028,338
=> 1581408627,756 < 1581408028,338
In my opinion the left value is greater and not smaller. I don't get why this statement within the message_filter.h is getting true with those values.
if (stamp + tf_.getCacheLength() < latest_transform_time) { ... }
It seemed to have something todo with the TFs transformation. So i changed within rviz the fixed one to basesensorleftfront (no more warning messages) and the visualization works as intended. Resetting to baselink leads to stopping the visualization again and the warning messages are active again. Conclusion: It might have to be a problem between the TF transformation.
I wondered if i made any mistake within the newly created project. Therefore i copied the sources of the plugin into the project. After building the whole project, it runs like it should. The visualization worked as intended and no warning messages occurred. Conclusion: Source of RVIZ Plugin should be fine.
- Now i don't know how to proceed. How can i get the binary of the rviz plugin running?
- Why is the if statement (see above) true?
- Maybe someone already had a similar issue?
Thank you for your help.
Btw. i already created some ROS nodes and integrated those binaries successfully into other projects (but never before a rviz plugin).
Asked by weberan89 on 2020-02-12 11:41:47 UTC
Comments