osrf / drcsim

Repository for the DRC project.
16 stars 6 forks source link

Firehose grasping is non physical on body movement #290

Closed osrf-migration closed 11 years ago

osrf-migration commented 11 years ago

Original report (archived issue) by Sisir Karumanchi (Bitbucket: sisir_k).


Grasping the firehose coupling is unstable on body movement. Any body movement against the axis of the grasp makes it non-physical.

Setup

  1. grasp commands via sandia_hand_msgs/SimpleGrasp.
  2. and keyboard teleop to move a pinned robot.

We think this is a simulation issue that needs to be resolved to enable body movement while holding objects.

osrf-migration commented 11 years ago

Original comment by Thomas Koletschka (Bitbucket: thomasko).


Viewer Discretion Is Advised

osrf-migration commented 11 years ago

Original comment by Thomas Koletschka (Bitbucket: thomasko).


Maurice already has this in his inbox but this is a somewhat bad example if you want to demonstrate an issue occurring during manipulation I think. Teleporting the robot does not have the same effect as properly moving the hand through physics. You're simply changing the hand's position (by quite a large margin) from one iteration to the other so the hand "sliding" along the hose is what I'd expect to see.

If there was no friction (to the extent as demonstrated with the teleporting robot where the hose maintains the same position) then the hose would glide out of the hand in the second video as it's pointing towards the ground and would be pulled out of the hand by gravity.

osrf-migration commented 11 years ago

Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


Sisir, I think this may be a problem with the using the keyboard_teleop script. The cmd_vel topic directly teleports the robot, which bypasses physics. There was a previous question on the gazebo answers forum asking why the imu doesn't work with the cmd_vel topic.

I'll think about a change to the cmd_vel topic that would help with your testing.

osrf-migration commented 11 years ago

Original comment by Sisir Karumanchi (Bitbucket: sisir_k).


Ok, that makes sense.

Thanks steve and thomas

osrf-migration commented 11 years ago

Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


I think the easiest thing would be to create a custom world, that has some kind of platform connected to the world by a prismatic joint, and then pin Atlas to the platform. Then you can move the platform back and forth using the joint control widget or a plugin or something. Not as easy as using cmd_vel, but it should work better like that.

osrf-migration commented 11 years ago

Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


Sisir, I'm in a meeting right now and haven't had a chance to test it, but here's a small change to vrc_task_3.world that creates a pair of links with prismatic joints connected to the world. I also reference one of the new links in the drc_vehicle block, so you can use the /drc_vehicle/robot_enter_car topic to pin the robot to one of the links. I haven't tested it though.

diff -r edae9266ce9fd5320184d92bcc082e29a7404cdf worlds/vrc_task_3.world
--- a/worlds/vrc_task_3.world   Sat May 18 12:29:41 2013 -0700
+++ b/worlds/vrc_task_3.world   Mon May 20 11:37:56 2013 -0700
@@ -124,6 +124,22 @@
       <uri>model://vrc_valve</uri>
       <pose>-3.0 -3.414 1.2 -1.5707 0 0</pose>
     </include>
+
+    <model name="slider_atlas">
+      <pose>-2.5 -3.0 0  0 0 0</pose>
+      <link name="link"/>
+      <link name="link_intermediate"/>
+      <joint name="slider_x" type="prismatic">
+        <parent>world</parent>
+        <child>link_intermediate</child>
+        <axis>1 0 0</axis>
+      </joint>
+      <joint name="slider_y" type="prismatic">
+        <parent>link_intermediate</parent>
+        <child>link</child>
+        <axis>0 1 0</axis>
+      </joint>
+    </model>

     <include>
       <uri>model://atlas_sandia_hands</uri>
@@ -135,8 +151,8 @@
          <pin_link>pelvis</pin_link>
       </atlas>
       <drc_vehicle>
-        <model_name>golf_cart</model_name>
-        <seat_link>chassis</seat_link>
+        <model_name>slider_atlas</model_name>
+        <seat_link>link</seat_link>
       </drc_vehicle>
       <drc_fire_hose>
         <fire_hose_model>vrc_firehose_long</fire_hose_model>
osrf-migration commented 11 years ago

Original comment by Sisir Karumanchi (Bitbucket: sisir_k).


ok cool, we can work with that.

osrf-migration commented 11 years ago

Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


Here's an update that fixes a bug in specifying the joint axis, and adds visuals to the temporary links to aid in debugging. You could add a third link with a revolute joint if you wanted another degree of freedom, but this should be a useful test fixture.

diff -r 1fb4c24faef017a3bb0c559bc754da8f2e7642ab worlds/vrc_task_3.world
--- a/worlds/vrc_task_3.world   Mon May 20 09:11:45 2013 -0700
+++ b/worlds/vrc_task_3.world   Mon May 20 13:40:27 2013 -0700
@@ -124,7 +124,39 @@
       <uri>model://vrc_valve</uri>
       <pose>-3.0 -3.414 1.2 -1.5707 0 0</pose>
     </include>
- 
+
+    <model name="slider_atlas">
+      <pose>-2.5 -5.0 0  0 0 0</pose>
+      <link name="link">
+        <visual name="visual">
+          <geometry>
+            <sphere>
+              <radius>0.1</radius>
+            </sphere>
+          </geometry>
+        </visual>
+      </link>
+      <link name="link_intermediate">
+        <visual name="visual">
+          <geometry>
+            <sphere>
+              <radius>0.1</radius>
+            </sphere>
+          </geometry>
+        </visual>
+      </link>
+      <joint name="slider_x" type="prismatic">
+        <parent>world</parent>
+        <child>link_intermediate</child>
+        <axis><xyz>1 0 0</xyz></axis>
+      </joint>
+      <joint name="slider_y" type="prismatic">
+        <parent>link_intermediate</parent>
+        <child>link</child>
+        <axis><xyz>0 1 0</xyz></axis>
+      </joint>
+    </model>
+
     <include>
       <uri>model://atlas_sandia_hands</uri>
       <pose>-7 -15 1.0 0 0 0</pose>
@@ -135,8 +167,8 @@
          <pin_link>pelvis</pin_link>
       </atlas>
       <drc_vehicle>
-        <model_name>golf_cart</model_name>
-        <seat_link>chassis</seat_link>
+        <model_name>slider_atlas</model_name>
+        <seat_link>link</seat_link>
       </drc_vehicle>
       <drc_fire_hose>
         <fire_hose_model>vrc_firehose_long</fire_hose_model>
osrf-migration commented 11 years ago

Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


see comment thread