Hi,<br><br>Thanks for your answers.<br><br>Having pre_grasp_posture and grasp_posture would in the ReactiveActionGoal would be the best for me. I'm using unstable (and I'll be happy to make an overlay if you want me to test one branches). <br>
<br>Matei, I already implemented the first approach you described, but as a more "static" approach: the approach is just checking against collisions when computing the path it's going to take, then the hand is closing from pre_graps_posture to grasp_posture and that's it. No going back if we have some contact, etc... I was assuming that it was meant to be like this in this case, so as to have an easy to use and relatively direct approach to grasping an object. That's why I wanted to implement the reactive grasp / approach separately, as I saw it in your packages.<br>
<br>Cheers,<br><br>Ugo<br><br><div class="gmail_quote">On Thu, Mar 3, 2011 at 10:01 PM, Kaijen Hsiao <span dir="ltr"><<a href="mailto:kaijenhsiao@gmail.com">kaijenhsiao@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi Ugo,<br>
Would it be sufficient for your purposes to add<br>
sensor_msgs/JointState pre_grasp_posture<br>
and<br>
sensor_msgs/JointState grasp_posture<br>
to the ReactiveActionGoal?<br>
(If you want, I can also make a new CompliantCloseAction that contains<br>
these two things, so you can parallel our code--I've meant to use such<br>
a thing for our code for awhile even, but there was never a need for<br>
it until now.  We are likely to want such a thing for future arm/hand<br>
ports, anyway.)<br>
Are you using the trunk or Diamondback or unstable version of our<br>
code, or something else?<br>
<font color="#888888"><br>
-Kaijen<br>
</font><div><div></div><div class="h5"><br>
<br>
On Thu, Mar 3, 2011 at 9:41 AM, Matei Ciocarlie <<a href="mailto:matei@willowgarage.com">matei@willowgarage.com</a>> wrote:<br>
> Hi Ugo,<br>
><br>
> There are two things that the hand needs to do: move from pre-grasp to<br>
> grasp, and then close the fingers. Our nomenclature is definitely less<br>
> than ideal, they are both referred to as "grasp" in parts of the<br>
> pipeline...<br>
><br>
> Reactive grasping as defined by the ReactiveGrasp.action actually<br>
> combines both. It should be called "ReactiveApproachAndGrasp" or<br>
> something in the vicinity... The implementation we have is PR2<br>
> specific for both the approach and the finger closing part. You are<br>
> right, as a module that is (also) responsible for closing the fingers,<br>
> it should take in the grasp posture as well (not just the pose).<br>
><br>
> When not using reactive grasping, we actually do split it into two.<br>
> First, open-loop inerpolated IK is done to get the hand from pre-grasp<br>
> to grasp. Then, a call to a GraspHandPostureExecution.action is made.<br>
> This call does contain all the info about the grasp .We have a PR2<br>
> implementation that simply closes the fingers in response to that call<br>
> in the<br>
> pr2_gripper_grasp_controller package.<br>
><br>
> You could write a sh_gripper_grasp_controller package that responds to<br>
> GraspHandPostureExecution goals, either in a reactive or non-reactive<br>
> way. This would only refer to the finger closing part (not the<br>
> approach) but you could implement all the behaviors that you mentioned<br>
> in your email.<br>
><br>
> Alternatively, if you prefer a "ReactiveApproachAndGrasp" all in one<br>
> shot, we would indeed need to modify the ReactiveGrasp call to contain<br>
> the grasp posture. That also seems like a reasonable thing to do.<br>
><br>
> Best,<br>
> Matei<br>
><br>
> On Thu, Mar 3, 2011 at 4:16 AM, Ugo Cupcic <<a href="mailto:ugo@shadowrobot.com">ugo@shadowrobot.com</a>> wrote:<br>
>> Hi,<br>
>><br>
>> In the reactive_grasp, the compliant_close function is not using the grasp<br>
>> posture from the database. I understand that it can work for the gripper,<br>
>> but for a more complex hand such as ours, I believe it would be a good start<br>
>> to have access to this grasp posture here.<br>
>><br>
>> What I wanted to do in the reactive grasp, was (as a first approach):<br>
>>  - interpolate between current posture of the hand and "closed posture"<br>
>> (read from the database), while checking for contacts.<br>
>>  - when I have a contact on one finger, I stop moving this finger.<br>
>>  - when all fingers are touching lightly the object, close until force > X<br>
>><br>
>> Is it not the purpose of the reactive_grasp server? Should I do that in my<br>
>> standard static grasp? Do I need to query my databases in my reactive_grasp<br>
>> node to get the list of possible grasps, or would it be possible to extend<br>
>> the content of the ReactiveGraspGoal message, so as to include this<br>
>> information?<br>
>><br>
>> I hope my questions make sense, otherwise feel free to ask me for more info!<br>
>><br>
>> Cheers,<br>
>><br>
>> Ugo<br>
>><br>
>> --<br>
>> Ugo Cupcic | Shadow Robot Company | <a href="mailto:ugo@shadowrobot.com">ugo@shadowrobot.com</a><br>
>> Software Engineer | 251 Liverpool Road |<br>
>> need a Hand? | London N1 1LX | +44 20 7700 2487<br>
>> <a href="http://www.shadowrobot.com/hand/" target="_blank">http://www.shadowrobot.com/hand/</a> @shadowrobot<br>
>><br>
>><br>
>> _______________________________________________<br>
>> ros-users mailing list<br>
>> <a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
>> <a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
>><br>
>><br>
><br>
><br>
><br>
> --<br>
> Matei Ciocarlie<br>
> Research Scientist<br>
> Willow Garage Inc.<br>
> 650-475-9780<br>
> _______________________________________________<br>
> ros-users mailing list<br>
> <a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
> <a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
><br>
_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Ugo Cupcic | Shadow Robot Company | <a href="mailto:ugo@shadowrobot.com" target="_blank">ugo@shadowrobot.com</a> <br>Software Engineer | 251 Liverpool Road | <br>
need a Hand? | London N1 1LX | +44 20 7700 2487 <br><a href="http://www.shadowrobot.com/hand/" target="_blank">http://www.shadowrobot.com/hand/</a> @shadowrobot <br><br>