Workspace for Testing MoveIt

I’ve been very frustrated in trying to use MoveIt for the ARIAC competition. The challenge to me is more than ROS answers can provide. I’ve worked through the MoveIt Melodic tutorial but still cannot translate it into working with the Universal Robots UR10 arms. I am determined to figure this out.

I’ve created a public moveit_tests repository on BitBucket that contains the MoveIt Tutorial, the Panda Arm, and the ARIAC version of the UR10 code as submodules. There is a standard repository ur10_tests that contains my attempts at using the UR10. There is a wiki explaining how to use the repository for your own experiments. I’m willing to add additional submodules for other robots if asked.

I’m hoping this can be a general resource that adds to the existing MoveIt material. The Wiki especially could be a useful place for adding explanations of working with MoveIt.

I’m willing to open it for others to work on this.

1 Like

Hi Rud,

We welcome your contributions and help in making the MoveIt documentation better, thanks for these efforts.

I would like to encourage you to contribute to our existing documentation and tutorials where applicable. You’ve correctly identified that we don’t have any exact UR10 tutorials. This is because we couldn’t possibly support every commercial robot arm in existence, and even maintaining more than one flagship robot example would be difficult.

By all means, continue to work on your custom application as needed. However, if you plan on creating new MoveIt documentation content and tutorials, it would be best if they were contributed back to our main code locations (also thoroughly documented here):

We are very fast at responding to tutorial changes, thanks to @mlautman’s dedication. In the past three years, our activity on tutorials alone:

image

1 Like

I’m trying to provide a place for testing MoveIt in new situations. Until an arm, to illustrate, is working with MoveIt there is no way to write a tutorial. If experienced MoveIt users look at the problems and provide answers on getting a device working then a tutorial can be produced. IMO this repository is better than asking on ROS Answers since all of the files that illustrate the problem are available.

In working through the tutorials, as nice as they are, I feel they are more demonstrations of capabilities than explanations on how to make MoveIt work with other devices. One specific aspect I couldn’t find is setting up launch files to get all the background infrastructure operating. This may have been complicated with the ARIAC competition using 2 UR10 arms. I finally got some tips from 2 other competitors that are allowing me to get the arms moving. But the main contribution from the one competitor was the launch file setup.

1 Like

Yes, this.

I’ve taken a look at both the ARIAC setup and your repository and from a beginners perspective they are way too complex. A single robot would be 10x simpler. A normal dual arm setup would still be about 10x simpler.

In a normal setup, there is basically only a single file that needs to be created which starts up the various pieces, of which demo.launch is an example (and essentially, only two things need to change to use that with a real robot: have a driver started somewhere, and set fake_execution to false).

Don’t confuse the ARIAC setup with a typical configuration of MoveIt.

Hey @Rud_Merriam,

I sympathize with your frustration and encourage you to take an active roll in improving the tutorials wherever you find they are lacking. MoveIt is a community driven project. Come join us by exploring the code, learning how the pieces fit together and making contributions back so that the next users will be slightly less overwhelmed.

Regarding your criticism that getting the entire background infrastructure set up correctly is under-documented… I totally agree. In my opinion, that is the biggest shortfalls of the tutorials. I would love if someone like yourself would be able to take the time to document everything that is happening with the demo.launch file and turn that into a tutorial for new users.

M

If I could figure out what was necessary I would document it. But where do I go to learn it?

Fortunately, someone else competing in the ARIAC competition provided me with a launch file that showed allowed me to make some progress. (But the arm moves like a drunk when I do Cartesian planning.)

So I thought I’d try moveit_commander after finding info about it in a reference. I get the arms up and running with Gazebo and other launch files. The bare command line knows nothing about the arms, of course. So I try:

rosrun moveit_commander moveit_commander_cmdline.py robot_description:=/ariac/arm1/robot_description
[ INFO] [1555560377.959822443]: Loading robot model 'ur10'...
[ WARN] [1555560377.960420047]: Skipping virtual joint 'fixed_base' because its child frame 'linear_arm_actuator' does not match the URDF frame 'world'
[ INFO] [1555560377.960442048]: No root/virtual joint specified in SRDF. Assuming fixed joint
[ WARN] [1555560378.012154938]: Kinematics solver doesn't support #attempts anymore, but only a timeout.
Please remove the parameter '/ariac/arm1/robot_description_kinematics/manipulator/kinematics_solver_attempts' from your configuration.
> use manipulator
Unable to initialize manipulator
>use << no output >>

Is there something else I need on the command line? How can I know since nowhere is there documentation on what it needs to work. Why can’t it find manipulator when my code can find it?

Isn’t something like ARIAC exactly the situation where better explanation of configuration is needed? I also have done the NASA Space Robotics Challenge and found MoveIt equally frustrating to use then.

This is the classic problem of software. If you aren’t in a group that already knows all the tricks you’re left fumbling for answers. I’ve been doing software since my first FORTRAN IV program in '68.

It’s not just MoveIt. I worked on move_base for a robot I’ve built and modeled in Gazebo. I get so far and end up banging my head against the desk.

I sympathise, but I believe taking a complex setup and then learning both the setup and the underlying systems is not the ideal way to approach this.

If I have to understand how something works and at the same time how a particular (complex) setup works, removing one of those is the first thing I do (ie: go to a minimal setup).

re: ARIAC: I’m not part of the organisation here, just a user, like you.

My response to your post was just to let you know that some of the problems you’re running into are probably caused by the way the ARIAC cell is setup and the MoveIt configuration was created.


Edit: and please don’t take my post as me dismissing your frustration or implying that what you experienced is not a problem. I just wanted to clarify that the ARIAC setup may not be the best to learn how to setup MoveIt yourself.

2 Likes