SOMA Visualizer¶
SOMA Visualizer is a GUI for querying and visualizing SOMA objects.
Using the visual interface, advanced queries with spatio-temporal constraints can be specified. The returned SOMA objects are displayed in rviz as point clouds.
Prerequisites¶
- MongoDB (>=2.6)
- mongodb_store
- Qt5
Getting started (general steps)¶
Start the ros core:
$ roscore
Launch the ROS datacentre:
$ roslaunch mongodb_store mongodb_store.launch db_path:=<path_to_db>
SOMA map manager¶
Run the soma map manager for storing, reading and publishing 2D map. Running this node is essential for running the robot_state_viewer_node:
$ rosrun soma_map_manager soma_map_manager_node.py --mapname <map_name>
If there are any stored 2D occupancy maps in the datacentre then map manager will let you choose the map to be published or you can input the name of the stored map as an argument as<map_name>
. If not, it will wait for map_server. Run the map_server with a 2D map:$ rosrun map_server map_server <map.yaml>
wheremap.yaml
specifies the map you want to load. After running themap_server
, you should save the published map using thesoma map manager
.If you want to check the published map, start RVIZ, add a Map display type and subscribe to the
soma/map
topic:$ rosrun rviz rviz
SOMA Visualizer¶
You can run the visualizer by calling
roslaunch soma_visualizer soma_visualizer.launch
- Add a MarkerArray display type in RVIZ and subscribe to the
soma_roi_marker_array
topic. The drawer will draw when a region is selected in the visualizer. Add a pointcloud2 display type and subscribe to/soma_visualizer_node/world_state_3d
to visualize query results. - Run rviz to display the results of the queries. You can go back and
forth between robot states using the slider. You can choose the time
interval to be inspected in terms of days,hours and minutes. You can
also execute advanced queries by setting dates, times, etc, enabling
them using the checkboxes and by pressing the
Query
button. When you make changes in query constrains, make sure to pressQuery
button for updating the query. You can also export the executed query in JSON format using theExport JSON
button. You can reload data from databse usingReload
button. The returned objects are also displayed in the table view. You can double click on any of the rows to see the detailed information and images of that object. If there are multiple images, you can go through them by pressing to left and right buttons.
For any query, if more than 50 objects are fetched, only first 50 of them are fetched with point clouds and images because of the performance issues.
Original page: https://github.com/strands-project/soma/blob/indigo-devel/soma_visualizer/README.md