I went through the whole setup process and fail. I did a bunch of steps more than wiki has.
First, don’t try to setup Gazebo in a VirtualBox, make your life easy and do it in a native Ubuntu 14.04 installation. VM adds a lot of GPU virtualization issues, Gazebo needs OpenGL instructions not supported in VirtualBox 5.0.2 with Guest Addition 5.0.2.
The only way to run, pretty slow but it runs, Gazebo + Ubuntu 14.04 on VirtualBox is installing mesa utils and adding:
apt-get install mesa-utils
export LIBGL_ALWAYS_SOFTWARE=1
And then OpenGL error are gone. Trade off is that Gazebo don’t run with GPU acceleration.
After that I follow the Wiki in order to setup catkin workspace for ArduCopter SITL. The issue here was a lot of missing dependencies.
Actually every time I did run catkin_make a new unresolved dependency shows up. At catkin_ws/src I did install bunch more packages and dependencies:
git clone github.com/ethz-asl/mav_comm
git clone github.com/ethz-asl/glog_catkin
git clone github.com/catkin/catkin_simple
git clone github.com/ros-controls/control_toolbox.git
git clone github.com/ros-controls/realtime_tools.git
And then others ROS packages:
sudo apt-get install ros-indigo-octomap
sudo apt-get install ros-indigo-octomap-msgs
sudo apt-get install ros-indigo-octomap-ros
After that If your are lucky catkin_make will work… or not
Other Issue I did found was that alexbuyval/rotors_simulator repo fork adds missing planning_msgs at catkin_make compilation time. In the other hand PX4/rotors_simulator original repo compiles just fine. But there is no quadX450_empty_world.launch in PX4 fork. Well I did try PX4 repo just check out if it compiles. Of course it wont work at run time because of missing adX450_empty_world.
Anyway before I could run simulator… There are a couple of missing steps:
Install pip and then MAVProxy
sudo apt-get install python-pip python-dev build-essential
sudo pip install --upgrade pip
sudo pip install --upgrade pymavlink MAVProxy
Then the wiki says run:
sim_vehicle.sh -f arducopter_sitl_ros --console
But it wont work because on alexbuyval/ardupilot fork there is no auto vehicle detection based on directory in sim_vehicle.sh so you need to run instead:
I did fix missing planning_msgs removing both refrences from rotors_simulator/rotors_gazebo_plugins/CMakeLists.txt
seems those reference were not needed.
Now catkin_male runs up to 73% then compilation FAILS, error message:
/home/viki/catkin_ws/src/rotors_simulator/rotors_gazebo/src/waypoint_publisher.cpp:24:40: fatal error: mav_msgs/CommandTrajectory.h: No such file or directory #include <mav_msgs/CommandTrajectory.h>
Seems like alexbuyval’s mav_comm version is different from github.com/ethz-asl/mav_comm
Mar 19 they renamed CommandTrajectory to CommandTrajectoryPositionYaw at pull #14 github.com/ethz-asl/mav_comm/pull/14
I did try downgrade ethz-asl/mav_comm to v1.0.0 where CommandTrajectory wasn’t changed yet… but it triggers a new set of compilation fails.
So I give up… I need alexbuyval’s mav_comm in order to continue
So many hours trying…
Add the installation prefix of “planning_msgs” to CMAKE_PREFIX_PATH or set
"planning_msgs_DIR" to a directory containing one of the above files. If
"planning_msgs" provides a separate development package or SDK, be sure it
has been installed.
Call Stack (most recent call first):
rotors_simulator/rotors_gazebo_plugins/CMakeLists.txt:6 (find_package)
– Configuring incomplete, errors occurred!
See also “/home/viki/catkin_ws/build/CMakeFiles/CMakeOutput.log”.
See also “/home/viki/catkin_ws/build/CMakeFiles/CMakeError.log”.
make: *** [cmake_check_build_system] Error 1
Invoking “make cmake_check_build_system” failed
Fix 1 - missing package planning_msgs
just remove any reference to planning_msgs from CMakeLists.txt and package.xml at rotors_simulator/rotors_gazebo_plugins/
Fix 2
Downgrade mav_comm to commit #13, just before #14 where they renamed CommandTrajectory to CommandTrajectoryPositionYaw
cd ~/catkin_ws/src/mav_comm
git reset --hard bf0bd59cad52ce31a3c1c48e37c0d350fe41c0bf
Then catkin_make runs without errors.
NEW ISSUE
When I run
sim_vehicle.sh -v ArduCopter -f arducopter_sitl_ros --console