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

Noetic devel update #26

Closed
wants to merge 8 commits into from
Closed

Noetic devel update #26

wants to merge 8 commits into from

Conversation

rickstaa
Copy link
Owner

@rickstaa rickstaa commented Aug 25, 2021

This i my attempt to get the panda_moveit_config package ready for ROS Noetic. It is related to moveit#74, but I started over from scratch to see which components are really required.

Maybe in the future it is helpfull to add a MIGRATION.md file like is done in the moveit_repository and a PULL_REQUEST_TEMPLATE.md. See #55 for a example.

Migration guide

Below, I tried to explain all the steps that were performed in creating this config file. This config file is meant to be used with the noetic branch of the ros-planning/moveit_tutorials repository.

❗ This pull request doesn't work with the currently released debian packages as it uses the moveit_setup_assistant found in tree/82378877879f7d40727819b1c3345eeb4308d98b. As a result MoveIt first has to create a new release before it can be used with the debian pacakges.❗
  1. Create the initial panda robot configuration using the moveit_setup_assistant (see 8566b70). In this branch, tree/82378877879f7d40727819b1c3345eeb4308d98b was used. Similar to WIP: Generated using the latest features from MoveIt moveit/panda_moveit_config#74 I changed some posed to prevent self collisions.

  2. I modified the panda.srdf file that is created by the moveit_setup_assistant such that we can programmatically enable the gripper (see f0c2bca). This needs to be done, since the moveit_setup_assistant currently doesn't propagate xacro arguments you supply to the urdf.xacro file (see this issue). We need to manually add a way to enable or disable the gripper. This can be done by creating a panda.srdf.xacro file.

  3. I replaced the sensor_3d.yaml with the example files in the perception_pipeline tutorial. Also edit the sensor_manager.launch.xml file to point to the right configuration files (see 2aaa01d).

  4. I added the rviz_tutorial flag. While doing this, make sure you also copy the moveit.rviz and empty.rviz files from the previous ROS version. Also set the moveit_visual_tools as a dependency (see 1d55c98).

  5. Similar to df0cbd8 I had to disable the collision checking between joint{5, 6} and joint8 since the new collision geometries that were added to https://github.com/frankaemika/franka_ros/releases/tag/0.8.0 are to coarse (see aa24fae). This should be fixed upstream by for example by improving the collision geometries or by giving users the ability to use meshes instead (Adds 'use_collision_mesh' arg to the robot description frankaemika/franka_ros#154).

  6. I added the panda_control_moveit_rviz.launch which can be used to control the real robot (see 36d7c9f).

  7. I added the TrajOpt files that were found in the melodic-devel branch to the repository ( see bc2bbc7 and 88fb278).

  8. I added the STOMP files that were found in the melodic-devel branch to the repository ( see 133d524) .

  9. I updated the join_limits.yaml file that was created by the MSA to enforce jerk limits. This was done by adding acceleration limits since MoveIt does not yet support jerk limits (see 89d9b44).

  10. I added the files of the LERP planner that is created in the creating-moveit-plugins tutorial (see 85756cd). These files were copied from the melodic-devel branch.

  11. I added the demo_chomp.launch and ompl-chomp_planning_pipeline.launch.xml files needed by the chomp_planner_tutorial tutorial. Further I also updating the chomp config file to the one found in the melodic-devel branch (see 4c390ac and c2ccca2).

  12. I added the demo_gazebo.launch launch file which spawns a simulated Panda robot in Gazebo. This launch file uses the new franka_gazebo package that was introduced in franka_ros v0.8.1.

Files that were manually created

Config folder

  • panda.srdf.xacro
  • hand.xacro
  • panda_arm.xacro
  • lerp_planning.yaml
  • stomp_planning.yaml
  • trajopt_planning.yaml
  • panda_controllers.yaml
  • panda_gripper_controllers.yaml

launch

  • demo_stomp.launch (Was not present in the melodic-devel branch).
  • demo_chomp.launch (Not used in the moveit_tutorials).
  • demo_lerp.launch (Used in the moveit_tutorials).
  • lerp_planning_pipeline.launch.xml
  • ompl-chomp_planning_pipeline.launch.xml
  • panda_gripper_moveit_controller_manager.launch.xml
  • run_benchmark_trajopt.launch
  • stomp_planning_pipeline.launch.xml
  • trajopt_planning_pipeline.launch.xml

Pull requests that first need to be reviewed

Below are some pull request that I did not yet merge since they first need to be reviewed by the @ros-planning team.

Upstream pull requests that need to be merged

The pull requests below were created on the frankaemika/franka_ros repository and need to be merged before the Noetic version of the ros-planning/panda_moveit_config can be released.

Changes that need to be made to the moveit_tutorials

  • setup_assistant_tutorial.html:
    • Should have updated pictures (i.e. menu order was changed).
    • Panda description file was changed to be /franka_description/robots/panda.urdf.xacro the hand is now enabled by using the hand:=true xacro parameter.
    • The documentation should mention the panda_finger_joint2 as the passive joint.
    • The virtual joint doesn't appear to be needed in the panda_arm group. Maybe remove it as it will cause errors when using a gazebo simulation?
  • Maybe the [panda_control_moveit_rviz.launch] file should be documented in the documentation.
  • Fix access to panda urdf moveit/moveit_tutorials#667
  • The demo_chomp.launch file was added in, but this file is not used in the moveit_tutorials.
  • The lerp planner documentation talks about a lerp_example.launch file but this file is not included I think this should be changed to refer the demo_lerp.launch file.

Possible moveit setup_assistant pull requests

Here I documented several improvements that can made to the setup_assistant.

Moveit Changes

Problems that still exist

This was done since the `moveit_setup_assistant` currently doesn't propagate `xacro` arguments you supply to the `urdf.xacro` file (see [this issue](moveit/moveit#1691)). We need to manually add a way to enable or disable the gripper. This can be done by creating a `panda.srdf.xacro` file.
This commit makes sure that the camera configuration files, that are used in the [perception pipeline tutorial](https://ros-planning.github.io/moveit_tutorials/doc/perception_pipeline/perception_pipeline_tutorial.html?highlight=perception%20tutorial) are present in the configuration repository.
This commit adds the 'rviz_tutorial' argument to the 'demo.launch' file. This argument is needed for the [quickstart_in_rviz_tutorial](https://ros-planning.github.io/moveit_tutorials/doc/quickstart_in_rviz/quickstart_in_rviz_tutorial.html).
This commit fixes a custom planner ns bug that was introduced by the `setup_assistant` (see moveit/moveit#2842).
This commit adds several missing package dependencies. These package dependencies were commented to prevent installing gazebo be default. It was merged to be consistent with the 'moveit_setup_assistant' (see moveit/moveit#2839).
This commit contains a fix for self-collisions that were introduced in https://github.com/frankaemika/franka_ros/releases/tag/0.8.0. Franka changed the collision goemetries from meshes to shapes. Since these geometries are too coarse some joints are now in self collision. This commit might be removed in the future if the issue is fixed in the upstream.
This commit adds the panda_control_moveit_rviz launch file. This file can be used to control a real robot using MoveIt.
This commit makes sure that all input arguments of the *_planning_pipeline.launch templates do have a default value.
@rickstaa
Copy link
Owner Author

@rickstaa rickstaa closed this Oct 20, 2021
@rickstaa rickstaa deleted the noetic-devel-update branch October 27, 2021 19:48
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.

1 participant