Dear Matei,<br><br>I switched to unstable and added the overlay you sent. I'm now getting the pre / grasp posture in the ReactiveGrasp. I just need to modify my code to use it now :) Thanks!<br><br>Cheers,<br><br>Ugo<br>
<br><div class="gmail_quote">On Tue, Mar 8, 2011 at 12:51 AM, Matei Ciocarlie <span dir="ltr"><<a href="mailto:matei@willowgarage.com">matei@willowgarage.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>
<br>
We've added the pre-grasp and grasp posture to the ReactiveGrasp<br>
action goal, it will come out in the next release. However, we<br>
probably won't be able to release this for at least a few days. Can<br>
you get on to trunk? A rosinstall file you could use is:<br>
<br>
<a href="https://code.ros.org/svn/wg-ros-pkg/branches/trunk_cturtle/rosinstall_files/cturtle/pr2_manipulation-cturtle-pr2all-overlay-devel.rosinstall" target="_blank">https://code.ros.org/svn/wg-ros-pkg/branches/trunk_cturtle/rosinstall_files/cturtle/pr2_manipulation-cturtle-pr2all-overlay-devel.rosinstall</a><br>

<font color="#888888"><br>
Matei<br>
</font><div><div></div><div class="h5"><br>
On Fri, Mar 4, 2011 at 12:55 AM, Ugo Cupcic <<a href="mailto:ugo@shadowrobot.com">ugo@shadowrobot.com</a>> wrote:<br>
> Hi,<br>
><br>
> Thanks for your answers.<br>
><br>
> Having pre_grasp_posture and grasp_posture would in the ReactiveActionGoal<br>
> would be the best for me. I'm using unstable (and I'll be happy to make an<br>
> overlay if you want me to test one branches).<br>
><br>
> Matei, I already implemented the first approach you described, but as a more<br>
> "static" approach: the approach is just checking against collisions when<br>
> computing the path it's going to take, then the hand is closing from<br>
> pre_graps_posture to grasp_posture and that's it. No going back if we have<br>
> some contact, etc... I was assuming that it was meant to be like this in<br>
> this case, so as to have an easy to use and relatively direct approach to<br>
> grasping an object. That's why I wanted to implement the reactive grasp /<br>
> approach separately, as I saw it in your packages.<br>
><br>
> Cheers,<br>
><br>
> Ugo<br>
><br>
> On Thu, Mar 3, 2011 at 10:01 PM, Kaijen Hsiao <<a href="mailto:kaijenhsiao@gmail.com">kaijenhsiao@gmail.com</a>> wrote:<br>
>><br>
>> 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>
>><br>
>> -Kaijen<br>
>><br>
>><br>
>> On Thu, Mar 3, 2011 at 9:41 AM, Matei Ciocarlie <<a href="mailto:matei@willowgarage.com">matei@willowgarage.com</a>><br>
>> 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<br>
>> >> grasp<br>
>> >> posture from the database. I understand that it can work for the<br>
>> >> gripper,<br>
>> >> but for a more complex hand such as ours, I believe it would be a good<br>
>> >> 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<br>
>> >> > X<br>
>> >><br>
>> >> Is it not the purpose of the reactive_grasp server? Should I do that in<br>
>> >> my<br>
>> >> standard static grasp? Do I need to query my databases in my<br>
>> >> reactive_grasp<br>
>> >> node to get the list of possible grasps, or would it be possible to<br>
>> >> 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<br>
>> >> 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>
><br>
><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>
</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>