Ask Your Question
0

OpenMANIPULATOR with moveit!

asked 2020-11-23 07:20:50 -0600

ddudas gravatar image

Hi, I'm using both the Gazebo simulation of OpenMANIPULATOR-X and the real arm with ROS melodic.

I'm not able to get a plan from Moveit! that can rotate the 1st joint. I was trying to do the same as in the beginning of this video: https://www.facebook.com/robotis.comp...

The only difference is I don't have open_manipulator_demo.launch in my open_manipulator_moveit package (installed with apt install). Instead, I'm starting my simulation and moveit with the following launchfiles:

  • roslaunch open_manipulator_gazebo open_manipulator_gazebo.launch
  • roslaunch open_manipulator_controller open_manipulator_controller.launch use_platform:=false use_moveit:=true

Planning and execution works with moveit but only in vertical plane (x and z) I just cannot rotate first joint. Even grabbing the blue ball of moveit doesn't work for me.

Thanks!

edit retag flag offensive close merge delete

Comments

1

Do you have the video at a viewable source? This one just spams me with popups. Anyway the default Open Manipulator is 4 DoF, not 6 which is why the manipulator does not have a solution for every position. I see two options: 1. Set position_only_ik 2) Generate an IKFast solver, for the Open Manipulator there is one here.

Humpelstilzchen gravatar image Humpelstilzchen  ( 2020-11-23 15:34:22 -0600 )edit

Thanks! Sorry about the video link, I found it on ROBOTIS' Facebook page...

The ik.cpp file works pretty well, however I still have some issues with my ikfast_moveit_plugin.cpp. The pitch angle of end effector can only change to one direction regardless where I move the green circle of MoveIt. Can you share your plugin implementation too? It's a pain in the back to generate it from scratch with Ubuntu 18.04 and melodic.

ddudas gravatar image ddudas  ( 2020-11-24 05:59:56 -0600 )edit

Pitch=green? I have the same problem some positions, so not sure if mine is better. What exactly do you need? The open_manipulator_ikfast_arm_plugin project?

Humpelstilzchen gravatar image Humpelstilzchen  ( 2020-11-24 09:23:31 -0600 )edit

I recorded a video about my current behavior: https://www.youtube.com/watch?v=zHTLP...

It'd be great if you can share your open_manipulator_ikfast_arm_plugin project, I can upload mine, too, if there is anything useful in it.

I added this piece of code to the ikfast_moveit_plugin.cpp:

case IKP_TranslationXAxisAngle4D:
case IKP_TranslationYAxisAngle4D:
case IKP_TranslationZAxisAngle4D:
  // For *TranslationXAxisAngle4D*, *TranslationYAxisAngle4D*, *TranslationZAxisAngle4D* - end effector origin
  // reaches desired 3D translation, manipulator direction makes a specific angle with x/y/z-axis (defined in the
  // manipulator base link’s coordinate system)
  double roll, pitch, yaw;
  pose_frame.M.GetRPY(roll, pitch, yaw);
  ComputeIk(trans, &pitch, vfree.size() > 0 ? &vfree[0] : nullptr, solutions);
  return solutions.GetNumSolutions();
  //ROS_ERROR_NAMED(name_, "IK for this IkParameterizationType not implemented yet.");
ddudas gravatar image ddudas  ( 2020-11-24 10:50:33 -0600 )edit
1

Yeah, that exactly the problem I have in some positions. Maybe the generated ik by openrave is not perfect? Someone just posted a docker image for generating ikfast solvers. Maybe we should try this again?

Humpelstilzchen gravatar image Humpelstilzchen  ( 2020-11-24 11:30:10 -0600 )edit

Sure thing! Tomorrow, I'll give it a try. I uploaded my plugin here: https://github.com/dudasdavid/open_manipulator_ikfast_plugin

I don't expect any answer, but why isn't there an official IkFast plugin from ROBOTIS?

ddudas gravatar image ddudas  ( 2020-11-24 12:29:32 -0600 )edit

Could you please add this question to the issue #138 I linked in my first comment?

Humpelstilzchen gravatar image Humpelstilzchen  ( 2020-11-24 12:39:13 -0600 )edit

1 Answer

Sort by » oldest newest most voted
1

answered 2020-11-25 05:50:40 -0600

ddudas gravatar image

I was pretty sad that the out-of-the-box MoveIt experience was far from satisfactory so I created a fork and a new branch from the open_manipulator packages: https://github.com/dudasdavid/open_ma...

Changes:

  • Custom 4DoF IK solver added, based on this issue from Humpelstilzchen
  • open_manipulator_controller can handle gripper requests from MoveIt
  • Gripper is added to MoveIt config

Video about the changes:

https://youtu.be/mm2vKYH-Jy8

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2020-11-23 07:20:50 -0600

Seen: 352 times

Last updated: Nov 25 '20