autowarefoundation / autoware.universe

https://autowarefoundation.github.io/autoware.universe/
Apache License 2.0
1.03k stars 656 forks source link

feat Improve visualization of the perception module #2860

Open lexavtanke opened 1 year ago

lexavtanke commented 1 year ago

Checklist

Description

Create an additional output from the autoware perception so the detected objects will look like following:

Example from Waymo interface: waymoPerception

Purpose

Main goal in this task is to achieve better performance and elegance for the visualization of the perception stack.

Possible approaches

Create node which will subscribe to topic /perception/obstacle_segmentation/pointcloud and publish colored pointcloud according to topic /perception/object_recognition/objects.

Updated diagram image

For the polygons colors and forms can be changed in autoware_auto_perception_plugin as it was done in the pr https://github.com/autowarefoundation/autoware.universe/pull/2780

Definition of done

User is able to visualize colored pointcloud and polygons according to recognized classes.

yukkysaito commented 1 year ago

I think it is better to implement as rviz plugin than to create a new node. Adding a node as a visualization node would complicate the node diagram and launch.

BTW, I find it difficult to visualize attractively with Rviz wrapped in Ogre, difficult to set up layers, etc. https://github.com/ros2/rviz/issues/875 https://forums.ogre3d.org/viewtopic.php?t=96765 Therefore I am making a separate godot based visualization tool. https://github.com/yukkysaito/godot_rviz2

lexavtanke commented 1 year ago

I have some thoughts about realization of the rviz plugin for detected (and etc) objects pointclouds visualization.

It can be done by modification existed autoware_auto_perception_rviz_plugin and there are two ways:

Or it can be done by creating additional plugin which will visualize objects pointclouds.

So there is difference in configuration experience if some one need to disable or enable pointclouds and type of polygon visualization he will need to navigate to different tabs in separate plugins or just click to check box in one plugin.

I hope to get some feedback from authors of the original autoware_auto_perception_rviz_plugin from Tier IV and Apex.AI.

Here is picture how it will look like from prototype node. image

lexavtanke commented 1 year ago

Here are some preliminary results.
I made two version because it was more easy to start with separate node for this and then integrate it in to rviz_plugin.

This video show comparison between debug output of detected_object_validator (purple) and my node for publishing detected objects pointclouds (blue). repo with node

This video show comparison between debug output of detected_object_validator (purple) and autoware_auto_perception_rviz_plugin with with integrated feature (blue). autoware fork

It seem to me that they are works kinda similar to each other and both of them are slower than debug output. I think it may be because validator use sync between topics and my code don't. I didn't find the way to make it in rviz_plugin.

I would really appreciate any clue or advice how to speed up my code to delay between pointclouds and markers.

stale[bot] commented 1 year ago

This pull request has been automatically marked as stale because it has not had recent activity.