Atlas violenty flies away when starting ihmc_gazebo scenarios (val_plugin_integration branch)

Issue #50 resolved
Stefan Kohlbrecher created an issue

I know this is not officially supported yet, but I was told the Atlas integration already is in working order, so I tried it out. I had to perform two changes as follows to the common ihmc_gazebo/launch/drc_practice.launch file (robot_description in root namespace to get rid of startup error, starting gazebo paused to better be able to see what is happening):

#!

@@ -15,7 +15,7 @@
   <include file="$(find drcsim_gazebo)/launch/atlas_no_controllers.launch">
     <arg name="gzname" value="$(arg gzname)"/>
     <arg name="gzworld" value="$(arg gzworld).world"/>
-    <arg name="extra_gazebo_args" value="$(arg extra_gazebo_args) -o preset_2"/>
+    <arg name="extra_gazebo_args" value="$(arg extra_gazebo_args) -o preset_2 -u"/>
   </include>

   <!-- Robot Description
@@ -24,6 +24,7 @@
     <param name="/atlas/robot_description" command="$(find xacro)/xacro.py '$(find atlas_description)/robots/atlas$(arg model_args)$(arg hand_suffix).urdf.xacro'" />
   -->
   <param name="/atlas/robot_description" textfile="$(find ihmc_models)/urdf/atlas_unplugged_v5_no_hands.urdf" />
+  <param name="/robot_description" textfile="$(find ihmc_models)/urdf/atlas_unplugged_v5_no_hands.urdf" />

   <include file="$(find drcsim_gazebo)/launch/atlas$(arg hand_suffix)_bringup.launch">
     <arg name="model_args" value="$(arg model_args)"/>

With this config, I always get Atlas violently flying away after it is spawned. Quickly unpausing and pausing again shows that the robot is originally spawns standing, but then is "transported" to have the pelvis in the ground, which sends it flying quickly. See screenshots below. I'm on Ubuntu 14.04/64Bit/ROS Indigo/drcsim installed from .debs.

All good after spawning (for very few sim iterations)

Screenshot from 2015-08-20 17:15:03.png https://bitbucket.org/repo/9njxzE/images/9629693-Screenshot%20from%202015-08-20%2017:15:03.png

Suddenly transported into ground

Screenshot from 2015-08-20 17:15:08.png https://bitbucket.org/repo/9njxzE/images/445737059-Screenshot%20from%202015-08-20%2017:15:08.png

Goodbye!

Screenshot from 2015-08-20 17:15:24.png https://bitbucket.org/repo/9njxzE/images/519816098-Screenshot%20from%202015-08-20%2017:15:24.png

Touchdown!

Screenshot from 2015-08-20 17:15:37.png https://bitbucket.org/repo/9njxzE/images/2194715344-Screenshot%20from%202015-08-20%2017:15:37.png

/edit: Direct links to images as embedding didn't work.

Comments (10)

  1. DouglasS

    @Stefan_Kohlbrecher Are you starting Gazebo or the controller first? I think there's a regression where you have to start Gazebo first and then once the robot is on the ground start the controller.

    Additionally, I haven't fully vetted the plugin in the practice worlds (only in the ihmc_atlas_standing launch) so there may be some configuration bugs remaining in those launch setups. OSRF generated those for us, I need to play with them more.

  2. Stefan Kohlbrecher reporter

    Ok, I start Gazebo first so far and then the IHMC controller launch file. Robot is always lying somewhere due to the described issue and I get joint_states from controller, but not sure how to get robot to stand properly.

    I thought the ihmc_atlas_standing launch file is not usable standalone (but supposed to be included in other launch files), but will take a look.

  3. DouglasS

    @Stefan_Kohlbrecher Ah yeah, ihmc_atlas_standing.launch is just an empty world but definitely usable on its own. I'll make sure to document that and then figure out what's going on with the DRC worlds. I'm traveling back to the States tomorrow, back in the lab on Monday. It'll be the first thing on my list.

  4. Stefan Kohlbrecher reporter

    Took a look at the launch file. It is has the same issue with robot_description not getting set in the root namespace as the practice tasks and I also had to comment out the atlas_joint_states_topic argument like so:

    #!
    
    @@ -29,8 +29,9 @@
         <param name="robot_initial_pose/yaw"   value="0.0" type="double"/>  
       </group>
    
    +  <param name="robot_description" textfile="$(find ihmc_models)/urdf/atlas_unplugged_v5_no_hands.urdf" />
    
       <include file="$(find drcsim_gazebo)/launch/atlas_v5_bringup.launch">
    -    <arg name="atlas_joint_states_topic" value="/ihmc_ros/atlas/output/joint_states_without_hokuyo"/>
    +    <!--<arg name="atlas_joint_states_topic" value="/ihmc_ros/atlas/output/joint_states_without_hokuyo"/>-->
       </include>
     </launch>
    

    This leads me to believe that I use a wrong version of drcsim, as the launch files in ihmc_gazebo are set up for a version of drcsim_gazebo that apparently uses the /atlas/robot_description namespace for the robot description and also supports the atlas_joint_states_topic argument in it's launch files. This obviously is not the case for the drcsim I installed from .debs. Thanks for looking into this @dljsjr. If @hsu could provide a hint in the meantime that'd be great, otherwise I'll wait till next week.

  5. DouglasS

    @Stefan_Kohlbrecher Scheiße! You're right. The val_plugin_integration branch only works with drcsim-prerelease. I forgot to mention that.

  6. Stefan Kohlbrecher reporter

    Aha, now with drcsim-prelease installed (instead of plain drcsim as before), I have atlas_v5 standing in drcsim under IHMC control. Thanks for the quick help!

  7. Log in to comment