0
$\begingroup$

Rosanswers logo

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!


Originally posted by definitelynotabot on ROS Answers with karma: 3 on 2021-10-16

Post score: 0


Original comments

Comment by Mike Scheutzow on 2021-10-16:
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.

Comment by Mike Scheutzow on 2021-10-16:
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?

Comment by definitelynotabot on 2021-10-17:
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.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

  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.

Originally posted by Mike Scheutzow with karma: 4903 on 2021-10-17

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by definitelynotabot on 2021-10-17:
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?

Comment by Mike Scheutzow on 2021-10-18:
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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.