Skip to content

Improve MSA#2932

Merged
rhaschke merged 18 commits intomoveit:masterfrom
ubi-agni:improve-msa
Nov 5, 2021
Merged

Improve MSA#2932
rhaschke merged 18 commits intomoveit:masterfrom
ubi-agni:improve-msa

Conversation

@rhaschke
Copy link
Copy Markdown
Contributor

This PR addresses various issues I noticed when working on moveit/panda_moveit_config#89.

  • Silent warning Skipping virtual joint 'xxx' because its child frame 'xxx' does not match the URDF frame 'world'
  • Remove execution_type argument from real-robot controller_manager.launch as suggested in moveit_controller_manager.launch: pass execution_type via pass_all_args #2928 (comment)
  • Fix the error (occurring since 61d18f2):
    [FATAL] ros.moveit_ros_planning.trajectory_execution_manager:
      Exception while loading controller manager 'robot':
      According to the loaded plugin descriptions the class robot
      with base class type moveit_controller_manager::MoveItControllerManager does not exist.
    

@rhaschke rhaschke requested a review from tylerjw as a code owner October 25, 2021 06:56
@rhaschke rhaschke marked this pull request as draft October 25, 2021 07:05
@codecov
Copy link
Copy Markdown

codecov bot commented Oct 25, 2021

Codecov Report

Merging #2932 (5239354) into master (0d7462f) will decrease coverage by 0.62%.
The diff coverage is 0.00%.

❗ Current head 5239354 differs from pull request most recent head 170e6d2. Consider uploading reports for the commit 170e6d2 to get more accurate results
Impacted file tree graph

@@            Coverage Diff             @@
##           master    #2932      +/-   ##
==========================================
- Coverage   61.73%   61.12%   -0.61%     
==========================================
  Files         373      371       -2     
  Lines       33427    33408      -19     
==========================================
- Hits        20634    20418     -216     
- Misses      12793    12990     +197     
Impacted Files Coverage Δ
moveit_core/robot_model/src/robot_model.cpp 78.01% <0.00%> (-0.30%) ⬇️
.../moveit/setup_assistant/tools/moveit_config_data.h 37.50% <ø> (ø)
...t_setup_assistant/src/tools/moveit_config_data.cpp 21.98% <0.00%> (-0.25%) ⬇️
..._motion_planner/src/move_group_sequence_action.cpp 8.76% <0.00%> (-85.40%) ⬇️
...rial_motion_planner_testutils/robotconfiguration.h 50.00% <0.00%> (-50.00%) ⬇️
...controller_manager/src/moveit_fake_controllers.cpp 58.83% <0.00%> (-21.32%) ⬇️
...e_controller_manager/src/moveit_fake_controllers.h 60.00% <0.00%> (-20.00%) ⬇️
...ion/include/moveit/plan_execution/plan_execution.h 72.73% <0.00%> (-9.09%) ⬇️
...oveit_ros/move_group/src/move_group_capability.cpp 59.05% <0.00%> (-6.66%) ⬇️
...ude/moveit/controller_manager/controller_manager.h 46.67% <0.00%> (-6.66%) ⬇️
... and 12 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0d7462f...170e6d2. Read the comment docs.

@rickstaa
Copy link
Copy Markdown
Contributor

LGTM. Solves the fixed frame warning in the gazebo simulation, builds and works on ROS noetic and cleans up the MSA template.

Gazebo requires a fixed joint from world to the first robot link.
This resembles the virtual_joint of SRDF.
However, the RobotModel parser issues the following warning:
Skipping virtual joint 'xxx' because its child frame 'xxx' does not match the URDF frame 'world'
Fixes the following error (occurring since 61d18f2)
```
[FATAL] ros.moveit_ros_planning.trajectory_execution_manager:
  Exception while loading controller manager 'robot':
  According to the loaded plugin descriptions the class robot
  with base class type moveit_controller_manager::MoveItControllerManager does not exist.
```

As we introduced `pass_all_args="true"`, the value of the argument
`moveit_controller_manager` was the robot name.
There are 3 basic MoveIt controller manager plugins:
- fake = `moveit_fake_controller_manager::MoveItFakeControllerManager`
  Used in demo.launch. Doesn't really control the robot, but just
  interpolates between via points. Allows these execution_types:
  - via points: just jumps to the via points
  - interpolate: linearly interpolates between via points (default)
  - last point: jumps to the final trajectory point (used for fast execution testing)

- ros_control = `moveit_ros_control_interface::MoveItControllerManager`
  Interfaces to ros_control controllers.

- simple = `moveit_simple_controller_manager/MoveItSimpleControllerManager`
  Interfaces to action servers for `FollowJointTrajectory` and/or `GripperCommand`
  that in turn interface to the low-level robot controllers (typically based on ros_control)

However, so far move_group.launch distinguished between `fake` and `robot` only.
The argument moveit_controller_manager now allows switching between all 3 variants.
Adding more *_moveit_controller_manager.launch files allows for an extension of this scheme.
@rhaschke rhaschke force-pushed the improve-msa branch 2 times, most recently from 3a9d849 to 08ba8a3 Compare November 4, 2021 15:39
@rhaschke rhaschke force-pushed the improve-msa branch 2 times, most recently from fb1eaa8 to 170e6d2 Compare November 5, 2021 09:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants