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

Tutorial for multiple robot arms with MoveIt #708

Merged
merged 64 commits into from
Nov 28, 2022
Merged

Conversation

Robotawi
Copy link
Contributor

@Robotawi Robotawi commented Apr 19, 2022

Description

The goal of this tutorial is to be a complete guide for ROS beginners to start by setting up the URDF model of the multiple arms to be able to plan motions for them. The steps are as follows.

  1. Build the Xacro/URDF model of multiple arms.
  2. Prepare the MoveIt config package using MoveIt setup Assistant (only points missing in the available tutorial).
  3. Write the ros_control configuration for the multiple arms.
  4. Integrate the simulation in Gazebo with MoveIt motion planning.
  5. Plan arms motions with MoveIt Move Group Interface.

Progress

I followed the moveit_tutorials guideline and applied the flow of show to tell style. I used the Panda arm from FRANKA EMIKA for consistency with previous tutorials. I have already completed the first three steps of the tutorial. The fourth step is blocked by the provided official Panda hand model missing inertial elements, making it unready for Gazebo simulation. I could proceed with fixing the links missing the inertial elements, but this means another package than franka_description would be a dependency for the tutorial. **I wanted to ask my mentors, should it be done in this way? **

I am flexible in refining the content according to the need and preventing redundancy.

Checklist

  • Required by CI: Code is auto formatted using clang-format.This tutorial does not contain C++ code yet..
  • While waiting for someone to review your request, please consider reviewing another open pull request to support the maintainers

@welcome
Copy link

welcome bot commented Apr 19, 2022

Thanks for helping in improving MoveIt and open source robotics!

@mamoll
Copy link
Contributor

mamoll commented May 26, 2022

@AndyZe, can you have a look?

catkin create pkg panda_multiple_arms
cd panda_multiple_arms
mkdir robot_description
touch panda_multiple_arms.xacro

Choose a reason for hiding this comment

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

Should this be in the robot_description directory?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It does not have to, but I think this makes logical structure. Should I change it?

doc/multiple_robot_arms/multiple_robot_arms_tutorial.rst Outdated Show resolved Hide resolved
doc/multiple_robot_arms/multiple_robot_arms_tutorial.rst Outdated Show resolved Hide resolved
doc/multiple_robot_arms/multiple_robot_arms_tutorial.rst Outdated Show resolved Hide resolved
doc/multiple_robot_arms/multiple_robot_arms_tutorial.rst Outdated Show resolved Hide resolved
doc/multiple_robot_arms/multiple_robot_arms_tutorial.rst Outdated Show resolved Hide resolved
doc/multiple_robot_arms/multiple_robot_arms_tutorial.rst Outdated Show resolved Hide resolved
doc/multiple_robot_arms/multiple_robot_arms_tutorial.rst Outdated Show resolved Hide resolved
@Robotawi
Copy link
Contributor Author

Robotawi commented Nov 4, 2022

Truly thankful for the review, @jackcenter
I updated the tutorial based on your comments. Sorry about the delay.

I followed the tutorial from a beginner's perspective, revised every step, and fixed multiple issues. Luckily, the fix I made in the franka_description package to make util.xacro (contains inertia information) includable from other packages is now available in the binary installation. There is no need to ask users to install the package from the source. This was the reason behind the error you encountered. I updated the multiple arms xacro file to adapt to the change.

Hopefully, this tutorial will greatly help the community, including the users of the new simultaneous trajectory execution feature! Once it's done, I will port it to ROS 2.

Please review the tutorial one more time and let me know your suggestions, or if it's ready to be merged.

Thank you!

Copy link
Member

@AndyZe AndyZe left a comment

Choose a reason for hiding this comment

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

Thank you very much for your patience and diligence in pushing this forward!

I'm sorry to say, when I run build_locally.sh, I don't see your new tutorial in the webpage. I'm not sure why, yet.

Please disregard, that was an error on my end.

Copy link
Member

@AndyZe AndyZe left a comment

Choose a reason for hiding this comment

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

This looks like a very high-quality tutorial that explains a lot of concepts well!

It looks like the formatting of multiple_robot_arms.rst needs a bit of tweaking because too many bullet points show up when the webpage is built. You can build the webpage to test this with build_locally.sh if you did not know that already (in the root directory of this repo).

bullet_points

Copy link
Member

@AndyZe AndyZe left a comment

Choose a reason for hiding this comment

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

I believe you could delete CMakeLists.txt and package.xml from this PR since you instruct the user to catkin create pkg

@AndyZe
Copy link
Member

AndyZe commented Nov 19, 2022

Almost there! I think we can get this merged in the next few days.

@Robotawi
Copy link
Contributor Author

Robotawi commented Nov 25, 2022

It looks like the formatting of multiple_robot_arms.rst needs a bit of tweaking because too many bullet points show up when the webpage is built. You can build the webpage to test this with build_locally.sh if you did not know that already (in the root directory of this repo).

The formatting is fixed, and it looks good on the locally built webpage.

multiple_robot_arms

Thank you for pointing out this issue!

I removed the word MoveIt from the title for consistency. Here is what it looks like.

multiple_robot_arms2

I think the tutorial is ready for the final review 🙂

@Robotawi Robotawi requested a review from AndyZe November 25, 2022 11:11
Copy link
Member

@AndyZe AndyZe left a comment

Choose a reason for hiding this comment

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

This meets my quality standards now 👍 Thanks for going into such detail. I think this will help people put many concepts together.

I'll merge if we can just get CI passing now.

@AndyZe AndyZe merged commit 62cad42 into moveit:master Nov 28, 2022
@welcome
Copy link

welcome bot commented Nov 28, 2022

Congrats on getting your first MoveIt pull request merged and improving open source robotics!

@Robotawi
Copy link
Contributor Author

This meets my quality standards now +1 Thanks for going into such detail. I think this will help people put many concepts together.

I'll merge if we can just get CI passing now.

Truly thankful for your time and comments, @AndyZe

I planned this tutorial to be the start of my contributions to MoveIt, and glad this step is done.

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.

4 participants