ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Phantomx Pincher MoveIt!

asked 2013-11-18 10:24:10 -0500

cdrwolfe gravatar image


Having just recently purchased a couple of phantomx pincher robotic arms and a couple of turtlebot2's I was hoping to attach them to the top and get some mobile robotic action on :).

But first I thought it best to try and at least get the robotic arms to move on their own.

Using Fergs / vanadium labs excellent models I was able to get a urdf of the phantomx pincher, in what I hope is a somewhat accurate setup, given I had to do it all by eye, rather than through the solidworks - urdf exporter.

So far from the simple rviz launch files it loads up ok in rviz, though I seem to only be able to view movement of the joints through 'tf', i guess I'm not loading an additional part in the launch file.

I have ported it over to moveit using the assistant, however loading up the demo.launch and playing around with it, it just doesn't seem quite right.

The first joint at the bottom doesn't seem to move / rotate when I manually try and move the gripper.

I know it can rotate because pressing the random goal state does place it into different positions, it is just that manually moving it about seems to restricted, particularly when I compare it with another moveit package for the fanuc m10ia.

I suppose I ask is this just expected behaviour or have I set up the urdf or moveit config incorrectly.

Also if anyone happens to have experience in setting up the parallel grippers i would appreciate it. I believe I need to use something like mimic on one of the joints and simply only move one.

Anyway here are the phantomx packages

Any help is appreciated.

Kind Regards


edit retag flag offensive close merge delete


Hi Wolfe, do you know how to connect the Phantomx arm with turtlebot? I mean, how set the arm_base_joint's origin in accordance with the turtlebot?

Yantian_Zha gravatar image Yantian_Zha  ( 2014-04-19 01:30:40 -0500 )edit

And when I roslaunch phantomx_arm_description phantomx_upload.launch, there is error: Failed to build tree: parent link [plate_top_link] of joint [arm_base_joint] not found. Thanks so much!

Yantian_Zha gravatar image Yantian_Zha  ( 2014-04-19 01:33:55 -0500 )edit

Hi Y. Zha, the stand along phantomx_arm wont load only the phantomx_arm_turtlebot_description minimal launch will. This is because as you posted I no longer link the single arm to a fixed global link, but to the top plate of the turtlebot. The full model is required.

cdrwolfe gravatar image cdrwolfe  ( 2014-05-03 08:48:06 -0500 )edit

Have a look at 'phantomx_arm_turtlebot_description/launch/minimal.launch. Here you can see what is pretty much the turtlebot minimal.launch but with additional stuff added to include the arm. I ended up copying bits and bobs of the turtlebot package into the local phantomx_arm_turtlebot_description folder.

cdrwolfe gravatar image cdrwolfe  ( 2014-05-03 08:50:26 -0500 )edit

And in phantomx_arm_turtlebot_description/launch/minimal.launch file I found sentence "<.arg name="scan_topic"...", which caused the error: unused args [scan+topic] for include of [/p[y/ros/groovy/stacks/turtlebot/turtlebot_bringup/launch/3dsensor.launch. I'm using turtlebot2. Thanks!

Yantian_Zha gravatar image Yantian_Zha  ( 2014-05-03 15:24:27 -0500 )edit

Hi M. cdrwolfe, I'm recently working on phantomx arm and I met some similar problems. My urdf file for the arm has been put here: The mimic tag works well in Rviz but not in Gazebo (so I fixed a finger in Gazebo simu).

jemalo gravatar image jemalo  ( 2014-05-22 04:31:56 -0500 )edit

Hi again M. cdrwolfe, I have some problems with IK solver. The KDL solver works not well for the 4-dof arm in my case. move_group often fails in a planning scenario. It hardly works in a pick/place scenario, even with a lot of grasp poses. Can you explain a bit how you get rid of this pb? Thanks!

jemalo gravatar image jemalo  ( 2014-05-22 04:42:56 -0500 )edit

Hmmm, I never gto around to solving that part Im afraid, I simply made do with sending a command to open and close the gripper, I didn't get as far as having a pick and place process in RViz going which could utilise the gripper position / mesh

cdrwolfe gravatar image cdrwolfe  ( 2014-05-22 12:13:37 -0500 )edit

3 Answers

Sort by ยป oldest newest most voted

answered 2013-11-18 21:37:01 -0500

fergs gravatar image

Because the arm has less than 6-dof, the default IK setup really won't work. You can try turning on "position_only_ik" -- I believe that is now an option in the RVIZ plugin under the latest Hydro releases.

An alternative is to use an IKFast IK plugin, which can solve for the lower DOF arm to as close of a solution as possible. I had created an IKFast plugin for the turtlebot arm package (, but I believe it is now out of date due to a change in MoveIt's IK plugin base class.

edit flag offensive delete link more


Any chance that you will be bringing the turtlebot_arm package up to date? I have several of these pincher arms that I would love to be able to use on a turtlebot with Hyrdo.

nsprague gravatar image nsprague  ( 2013-11-19 02:09:51 -0500 )edit

Ahh, I didn't realise that moveit was restricted to arms with 6 dof+, I noticed that in the older turtlebot urdfs you included a fake joint, I wonder if it would be possible to add further fake joints to make it work?

cdrwolfe gravatar image cdrwolfe  ( 2013-11-19 03:48:39 -0500 )edit

nsprague, I'm also looking to do the exact same thing, using hydro as well. Feel free to use the phantomx pincher arm urdfs if you want, unless fergs has a better version?? :)

cdrwolfe gravatar image cdrwolfe  ( 2013-11-19 03:50:12 -0500 )edit

Thanks Wolfe, I'll try it out when I get a chance.

nsprague gravatar image nsprague  ( 2013-11-19 04:11:35 -0500 )edit

Right :0, typically with my experiences within these things I couldn't go down the Ikfast route because I have 13.04 and the Ikfast tutorial requires openrave which itself hasn't been upgraded for 13.04 :). and even with source installation I couldn't get the urdf_to_collada stuff to work either. However as fergs said, adding position_only_ik to the kinematics.yaml file worked a treat. I assume this is differant from the allow approaximate ik solutions shtick in Rviz as I didn'r find the option for the other one

cdrwolfe gravatar image cdrwolfe  ( 2013-11-19 12:06:39 -0500 )edit

Next step is actually getting the gripper to function correctly :), each side is set as a prismatic joint, I was thinking it may be possible to mimc one side and somehow convert revolute joint info to prismatic joint info in someway.

cdrwolfe gravatar image cdrwolfe  ( 2013-11-19 12:08:15 -0500 )edit

nsprague, I don't really have time to work on these packages at this time.

fergs gravatar image fergs  ( 2013-11-20 08:07:22 -0500 )edit

Thanks Jorge, I will have a look when you commit it.

cdrwolfe gravatar image cdrwolfe  ( 2014-05-28 04:52:46 -0500 )edit

answered 2015-02-02 18:07:49 -0500

corb gravatar image

PhantomX Pincher Arm is now supported with ROS using the following:




edit flag offensive delete link more

answered 2014-05-27 05:25:46 -0500

jorge gravatar image

updated 2014-06-02 10:01:46 -0500

Hi all, I'm right now using fergs package, forked as . Good news are that I have created a Hydro branch and all works fine.

However, I didn't test turtlebot_block_manipulation and turtlebot_kinect_arm_calibration; I hope to do so in the following weeks (See the issues to check progress). I'll pull req the new hydro-devel branch to the official turtlebot_arm repo as soon as I try these packages.

I had the same problem as cdrwolfe regenerating the IK plugin, so I tweaked the groovy version to make it compile with Moveit Hydro.

Any comments or help will be more than wellcome.

edit flag offensive delete link more



Just a heads up, block manipulation and calibration will require significant work to get working, I basically turned off parts of the build when catkinizing.

fergs gravatar image fergs  ( 2014-06-02 15:29:27 -0500 )edit

wow! yes, I see.... it uses the deprecated simple_arm_server package! I wonder if it make sense to update this code at all; afaik, moveit already provides objects recognition, interactive markers operation, etc. Could be better do adapt a PR2 tutorial instead. What do you think?

jorge gravatar image jorge  ( 2014-06-06 12:07:55 -0500 )edit

The block manipulation was a very specific demo, it should be either updated to use moveit pick/place actions directly or dropped. As for obj. recognition in moveit, I'm not sure that will work for this gripper, the block detection aspects only need updates for the PCL changes.

fergs gravatar image fergs  ( 2014-06-07 13:54:32 -0500 )edit

The calibration is probably more important to update than the block manipulation.

fergs gravatar image fergs  ( 2014-06-07 13:54:53 -0500 )edit

Was the callibration package updated? I'm having trouble with it (getting the robot model always showing directly in front of the kinect) and am not sure if it is my setup or the callibration files.

Mica gravatar image Mica  ( 2015-07-29 01:08:38 -0500 )edit

mmm... I can use it successfully... Are you trying tol calibrate the kinect mounted on the turtlebot? Another onboard camera? Or an external camera?.

jorge gravatar image jorge  ( 2015-08-25 11:30:48 -0500 )edit

I'm using an external kinect, at 90 degrees to the point of view of the robot arm. I didn't manage to solve it, so have been using a hardcoded transform.

Mica gravatar image Mica  ( 2015-08-25 18:45:20 -0500 )edit

Question Tools



Asked: 2013-11-18 10:24:10 -0500

Seen: 2,664 times

Last updated: Feb 02 '15