Skip to content
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

Introduce tools to display surfaces and convex #431

Merged
merged 19 commits into from
Feb 5, 2024

Conversation

gergondet
Copy link
Member

This PR has two parts:

  • Introduce new functions to output robots' surfaces and convexes using mc_rtc GUI, this is particularly useful in a controller to visualize these objects when they are generated at runtime
  • Introduce mc_robot_visualization (and its children mc_surfaces_visusalization and mc_convex_visualization)

The later tools are meant to replace their equivalent in mc_rtc_ros. They are also easier to use as you can visualize many things simultaneously and control what to display. You can also easily swap the robots that you want to visualize (in RViZ this requires "refreshing" the robot display but on e.g. magnum it works out-of-the-box)

@gergondet gergondet added enhancement New feature or request GUI Related to GUI features labels Feb 2, 2024
Copy link
Collaborator

@arntanguy arntanguy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @gergondet this looks great!

As far as the replacement of mc_convex_visualization/mc_surface_visualization is concerned, this is definitely a nice improvement.

I've taken the liberty of adding the ability to change the display configuration for convex/surfaces:

  • I've put a default configuration that is less eye destroying (semi transparent dark green instead of the very bright solid green)
  • I've added the ability to change the configuration of all/each convex/surface configuration online in mc_convex_visualization/mc_surface_visualization

convex display

One use-case we have with @Hugo-L3174 is rescaling meshes/convexes/surfaces online according to human dimensions estimated from XSens data (so that the robot can establish safe contacts on real humans). The GUI tools here will be nice for that (I had a concurent implementation). Regarding recaling of meshes, right now it does not work out-of-the box using either the RobotModel in rviz (have to re-run rviz) nor Magnum, but it can be done by re-publishing all the visuals of the robot as mc_rtc::gui::Visual. We can see later how to best support that.

So I'd say LGTM, which will enable me to open a PR for full rviz panel support on ROS2.

gergondet and others added 18 commits February 5, 2024 10:00
This allows to have a simpler way to instantiate a ControllerServer with
the same default publication settings as mc_rtc
This utility serves the same purpose as mc_convex_visualization from
mc_rtc_ros but relies on mc_rtc GUI system instead
Keep mc_convex_visualization/mc_surfaces_visualization to match the
existing ROS tools
@gergondet gergondet force-pushed the topic/mc_convex_visualization branch from 739f342 to c13b726 Compare February 5, 2024 01:01
@gergondet gergondet merged commit 7f9465f into jrl-umi3218:master Feb 5, 2024
20 checks passed
gergondet added a commit that referenced this pull request Feb 5, 2024
Added
--

- [mc_rbdyn/GUI] Add helpers to visualize surfaces and convexes (#431)
- [mc_rtc/GUI] Added RobotMsg: a complete view of the robot state (#425)
- [mc_rtc] Add path helpers (#431)
- [utils/RobotVisualizer] Add a new tool to visualize a robot built on mc_rtc GUI (#431)

Changes
--

- [mc_rtc/GUI] Send scale vector for visual mesh instead of scalar (#430)

Fixes
--

- [mc_rbdyn] Always use default_attitude to initialize the attitude (#424)
- [mc_tasks] Clarify usage of targetSurface/targetFrame in ImpedanceTask
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request GUI Related to GUI features
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants