-
Notifications
You must be signed in to change notification settings - Fork 170
Open source/feature/rviz display #72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
* 'master' of github.com:MIT-SPARK/Kimera-VIO-ROS: Add todos Fix sequential/parallel mode for rosbag Specify origin of calib file in euroc
…ture/rviz_display * 'master' of github.mit.edu:SPARK/Kimera-VIO-ROS: Add todos Fix sequential/parallel mode for rosbag Specify origin of calib file in euroc
Feature/rviz display
|
@ruffsl that might simplify the interface overall? |
|
|
||
| // Start our own spin to publish output data to ROS | ||
| // Pop and send output at a 30Hz rate. | ||
| ros::Rate rate(30); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@violetteavi this is gone.
violetteavi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ToniRV It seems like you deleted all of the publishing code. Where did it go? Did you replace it?
|
Note: Relies on this PR in Kimera-VIO |
Does this switch to use Kimera-VIO's internal visualizer, rather than necessarily exporting all visualizations outputs as ROS topics for rviz? I didn't spot much of any references to rviz. |
|
@ruffsl It still publishes all of the topics necessary for visualizing in RViz, minus the mesh texture image. I'm not sure how-- perhaps something Toni can clarify. |
So the idea is that both RosVisualizer and OpenCvVisualizer inherit from Visualizer3D which is used by the VisualizerModule. Since the VisualizerModule is connecting to the backend/frontend/mesher modules, it then becomes very easy to swap any of the visualizer (and even others, think of Pangolin for example), to output/visualize the synchronized packets from backend/frontend/mesher, such as the per-frame 3D mesh. This avoids the ROS wrapper having to sync the backend/frontend/mesher output with threadsafe queues as that was already done inside Kimera-VIO via the VisualizerModule class. Effectively this means that the ROS wrapper gets leaner, as before it had to register callbacks for the output using the VIO::Pipeline public API, while now it just passes its own implementation of Visualizer3D. Brought to an extreme, one could even swap the whole frontend, backend, mesher, or any other module. Indeed, at the end of the day, neither RosDisplay nor RosVisualizer spin a window for displaying but rather publish those things to Ros so Rviz can do the actual displaying of topics. |
|
Neat! This also fixes the hanging issue, as the pipeline keeps spinning even if sim_time stops. Good work! |
|
Let's merge this thing asap if there is no more comments? |
|
Was about to merge with the unit test PR and run those. Doing that now |
|
Pass! There isn't much there, but glad it works ahaha. Going to update the testing branch. |

-- RosDisplay publishes 2D images: it replaces the Display module in Kimera (instead of registering callbacks itself).
-- RosVisualizer publishes 3D stuff: it replaces the Visualizer3D module in Kimera.
The ROS wrapper should go faster now as well, since input and output are now de-coupled.
ToDo: