What is the correct way to bring up the atlas in the latest drcsim-groovy?
This may end up needing to be a bug report instead of a question but:
I can't figure out how to bring up the atlas drcsim in the latest drcsim-groovy (3.2.0-1~precise)
When attempting:
roslaunch drcsim_gazebo atlas.launch
I get:
setting /run_id to 90cf90b2-d53d-11e3-a4b9-0025648c7b5e
process[rosout-1]: started with pid [30559]
started core service [/rosout]
process[gazebo-2]: started with pid [30573]
process[atlas_robot_state_publisher-3]: started with pid [30578]
process[multisense_sl_robot_state_publisher-4]: started with pid [30598]
[DEBUG] [ros.gazebo_ros.api_plugin]: GazeboRosApiPlugin Deconstructor start
[DEBUG] [ros.gazebo_ros.api_plugin]: After sigint_event unload
[DEBUG] [ros.gazebo_ros.api_plugin]: Deconstructor skipped because never loaded
process[tf2_buffer_server-5]: started with pid [30623]
[gazebo-2] process has finished cleanly
...
and then a bunch of multisense_sl
processes which stay up. The launch itself stays up until I interrupt it, but gazebo never comes up.
I've also tried:
# rosrun drcsim_gazebo run_gazebo atlas.world
Which results in:
[DEBUG] [ros.gazebo_ros.api_plugin]: GazeboRosApiPlugin Deconstructor start
[DEBUG] [ros.gazebo_ros.api_plugin]: After sigint_event unload
[DEBUG] [ros.gazebo_ros.api_plugin]: Deconstructor skipped because never loaded
[ /opt/ros/groovy/share/drcsim_gazebo/launch ]
#
I've checked the logs and see nothing suspicious. Since I can't find any errors or warnings, I'm not sure how to debug this situation.
Looking into drcsim_gazebo
run_gazebo
I see that it simply calls which ever gazebo the shell resolves.
#!/bin/sh
# First argument should be a fully-qualified path to a .world file
# (e.g., `rospack find drcsim_gazebo`/worlds/atlas.world)
# or a world that's install in $GAZEBO_RESOURCE_PATH/worlds/atlas
#`rospack find gazebo_worlds`/scripts/gdbrun gzserver -s libgazebo_ros_api_plugin.so $1
gazebo -s libgazebo_ros_api_plugin.so $@
Running gazebo by it self results in nothing. Runs and quits. No error.
# gazebo && echo true
true
[ /opt/ros/groovy/share/drcsim_gazebo/scripts ]
#
And it seems to be the correct gazebo:
# which gazebo
/usr/bin/gazebo
# dpkg -S $(which gazebo)
gazebo3: /usr/bin/gazebo
# dpkg -l $(dpkg -S $(which gazebo) | cut -d ':' -f1)
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==================================-==================================-====================================================================================
ii gazebo3 3.0.0-1~precise Open Source Robotics Simulator
"roslaunch drcsim_gazebo atlas.launch" is the most used command to launch drcsim. But I won't try to get DRCSim working if a single run of "gazebo" is not working first. Which other gazebo packages are installed in the system? Did you ever installed a from source compilation of gazebo into that system before using deb packages? ls -las /usr/bin/gazebo?
Can you try running gzserver and gzclient separately? If one crashes, could you provide a backtrace?
It turns out neither was crashing but rather returning without error because of an already running gzserver in the background. I posted an answer and a bug report below to that effect.