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

How to use moveit! to push?

asked 2021-10-16 01:14:34 -0500

definitelynotabot gravatar image

updated 2021-10-26 09:11:11 -0500

lucasw gravatar image

Hello,

I wish to use moveit! to command a robot arm to push an object from its current location to another specified location. I'm new to moveit, but I imagine the task may be implemented by specifying a cartesian path consisted of waypoints [current location of the target object, destination location of the target object].

I think the main difficulty with such a task is that the arm end-effector must be within the boundaries of the object while pushing. (If you were to be pushing a box, then your hands need to be applied against a surface of the box, and therefore cannot go too high lest they slip over the top of the box.)

My questions can be summarized as follows:

  1. Is cartesian path the correct approach to such a task?
  2. How can I specify constraints for the end-effector position for ONLY the second part of the path, i.e. when the arm is pushing? (only the second part since the first part will be simply moving the end effector to the target object and doesn't need any constraints)
  3. How can I NOT specify orientation of the target ee pose (no exact orientation and no constraint on orientation -- just let moveit freely choose whatever orientation as long as it satisfies constraints on position)

Thanks in advance!

edit retag flag offensive close merge delete

Comments

In any future questions you might have, please limit it to one main question per post. Multi-question posts are less likely to get complete answers.

Mike Scheutzow gravatar image Mike Scheutzow  ( 2021-10-16 08:27:40 -0500 )edit

Do you have to handle any feedback about the object's current position? Or does the arm perform the same action regardless of whether there's a box there or not?

Mike Scheutzow gravatar image Mike Scheutzow  ( 2021-10-16 08:29:27 -0500 )edit

Ok thanks I'll keep that in mind:)

This is just a simple demo in gazebo so no feedback. The object is assumed to be at the specified position.

definitelynotabot gravatar image definitelynotabot  ( 2021-10-17 02:16:35 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2021-10-17 10:23:58 -0500

Mike Scheutzow gravatar image

1) cartesian mode is ok as long as you don't need the arm to move the exact same way for each run, 2) use two different movement plans, 3) moveit allows you to configure the tolerance; you can set the allowed error to be large.

edit flag offensive delete link more

Comments

In 2), by "use two different movement plans", do you mean to first set_pose_target() to target object's initial location and plan, and then, after the initial location has been reached, set_pose_target() to the destination location and plan?

definitelynotabot gravatar image definitelynotabot  ( 2021-10-17 18:53:30 -0500 )edit

Yes. For me, the planner's decisions were surprisingly random. For many situations, the arm's movement is much more predictable if you give the planner a series of waypoints rather than just the final goal. But for getting started, one pose should be enough.

Mike Scheutzow gravatar image Mike Scheutzow  ( 2021-10-18 06:54:01 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2021-10-16 01:14:34 -0500

Seen: 66 times

Last updated: Oct 17 '21