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

Commanding "MoveIt!" with a pad

asked 2013-07-29 21:33:11 -0500

mbj gravatar image

Hi all!

After a long time with Fuerte, I decided to migrate to Groovy with the idea of taking advantage with "MoveIt!" and other new packages. I want to point out that, I'm quite happy with the new functionalities, but I don't understand the catkin change...however, maybe this "problem" disappear when I'll get used to. ;)

Regarding my question, I implemented with Fuerte and KDL the Cartesian/Euler control of a 6-degree arm, controllable via keyboard and pad. I got the initial position of the final effector, and I move that with the joystick making little increments and passing them to the IK solver, that returns me each joint position for that final effector pose.

Currently, I'm trying to get the same effect with "MoveIt!" but I don't reach it. I found the "moveit_commander" package, and I tried to use them as interface, passing them little increments in each direction, but the solver is too slow (takes between 0.4-1.3 seconds) and it makes long queues of petitions, failing in the 95% of the chances. Could you give me any idea to get the desired effect?

Thanks in advance!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2013-07-30 00:54:43 -0500

isucan gravatar image

I am not sure I understand the question too well. Are you trying to just move the arm, or do you want to do planning as well? Are you using the moveit_commander MoveGroupCommander class?

The moveit_commander package will do planning for you, and define regions in the environment where you want to move towards (something like up to 1mm error I think, with respect to where you tell it to go; you can set the error margin). Are you interested in following straight line trajectories only?

edit flag offensive delete link more

Comments

Hello Isucan, thak your for answering! Currently, I can move the real arm via rviz and "moveit_commander". I want to be able to move the arm with a pad in cart./euler, using the functionality provided by the commander method, however, I can't. When I used Fuerte, I used the KDL methods to do this.

mbj gravatar image mbj  ( 2013-07-30 03:03:46 -0500 )edit

I am afraid I am not familiar with the KDL methods you are talking about. moveit_commander does have the functionality you like in both Python and C++. You can plan motions to Cartesian poses or move in straight lines. Can you give more details on the problem? Is it just the slow response?

isucan gravatar image isucan  ( 2013-07-30 04:29:57 -0500 )edit

Dear Ioan. I want to use a joystick/pad to use jog commands in my robot. I was planning to use the stick of the pad to send references in X/Y/Z as little increments. With this, the behaviour of the arm should be like if we were sending velocity references to the TCP. Instead of getting a continuous movement, we are obtaining 0.4-1.3 second (approx.) steps, making the robot uncontrollable. Can I modify the function or the planner behaviour to get that? Maybe does exists another function for jog commands?

mbj gravatar image mbj  ( 2013-07-30 05:34:18 -0500 )edit

It sounds to me like you do not want to plan motions then. The moveit_commander package attempts to compute motions that avoid collisions and self collisions. It is possible you have detailed meshes representing your robot, which increases planning time. I think you should send the commands directly to the controller instead of using moveit_commander.

isucan gravatar image isucan  ( 2013-07-30 05:50:45 -0500 )edit

Dear Ioan. In that case, what do you suggest me toperform that? I need a solver to work with cartesian/euler in the TCP (Jacobian Transformation), and I thought that with the services provided with "MoveIt" I could make that, with the advantages of avoiding collisions and self collisions. Thank you very much.

mbj gravatar image mbj  ( 2013-07-30 21:06:32 -0500 )edit
1

I think you should use the kinematics API directly: http://moveit.ros.org/wiki/Kinematics/C%2B%2B_API There is also a ROS service for this (see moveit_msgs/GetPositionIK.srv), provided by a default move_group capability.

isucan gravatar image isucan  ( 2013-07-31 00:03:56 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2013-07-29 21:33:11 -0500

Seen: 1,057 times

Last updated: Jul 30 '13