tu-darmstadt-ros-pkg / hector_quadrotor

hector_quadrotor contains packages related to modeling, control and simulation of quadrotor UAV systems.
Other
375 stars 277 forks source link

Building on OS X Mavericks... #14

Open rasit opened 9 years ago

rasit commented 9 years ago

Hi,

I've been trying to get ROS and hector_quadrotor packages built from on my macbook pro laptop, running the later version (10.9.4) of Mavericks.

251 packages of desktop_full installation went fine (with --install space /opt/ros/hydro), with a few twists on the packages as well as dependency installations (e.g. rosdep wanted to install homebrewed versions of some packages that are not available), but I'll leave it aside for now. Here are the steps that I followed:

$ mkdir hector_quadrotor_ws $ cd hector_quadrotor_ws $ rosinstall_generator hector_quadrotor --rosdistro hydro --deps --wet_only --tar > hector_quadrotor-wet.rosinstall $ wstool init -j8 src hector_quadrotor-wet.rosinstall

This downloader 111 packages and started building them. However, I had to manually fix the following:

  1. rospack (I'm not sure why it is build again?) Missing REQUIRED option for PythonLibs in CMakeLists.txt
  2. robot_model (did not understand, why?) pointer to DS: change second.children to second->children (x2) in kdl_parser/check_kdl_parser.cpp
  3. hector_quadrotor_model Still missing target_libraries?
  4. hector_gazebo_plugins I had to add libraries to several target_link_libraries(...)

It is almost complete, but... At the very end, for the hector_quadrotor_gazebo I'm getting an error:

-- catkin 0.5.88 CMake Error at urdf/CMakeLists.txt:62 (message): Cannot use the aerodynamics model as the required plugin has not been found. Try to run 'rosmake hector_quadrotor_gazebo_plugins' first.

This does not change although I ran rosmake and build the plugins again.

--Rasit

rasit commented 9 years ago

I just build another workspace, this time with hector_quadrotor and ros_controllers. I got the same errors. I'm not sure why I get the last error message about the plugins.

BTW, I'm preparing an environment for a new quadrotor called Spiri.

--Rasit

meyerj commented 9 years ago

rosinstall_generator downloads the sources from the release repositories which does not contain the latest commits. Furthermore the new workspace will contain all dependencies, including core ROS packages that are already installed in /opt/ros/hydro.

You should...

  1. add --exclude RPP to exclude any package that is already available in your ROS_PACKAGE_PATH. Make sure that /opt/ros/hydro/setup.sh has been sourced before.
  2. not use rosinstall_generator if you want to fetch the latest development versions. There is a --upstream-development option for rosinstall_generator that normally would work, but upstream information for the hector repositories is currently not available since https://github.com/ros/rosdistro/pull/5057.

Instead, you can use the rosinstall file in the hector_quadrotor repo itself to create a workspace with hectorquadrotor and all its hector* dependencies:

wstool init -t src https://raw.githubusercontent.com/tu-darmstadt-ros-pkg/hector_quadrotor/hydro-devel/hector_quadrotor.rosinstall

or

wstool init -t src https://raw.githubusercontent.com/tu-darmstadt-ros-pkg/hector_quadrotor/hydro-devel/tutorials.rosinstall

The tutorials.rosinstall file additionally contains hector_slam, which is only required for the SLAM demos.

To check (and/or install) additional requirements you can use rosdep:

rosdep <check|install> --from-path src --ignore-src

This command will show/install all missing dependencies that are not in the src/ folder and not in the ROS_PACKAGE_PATH.

rasit commented 9 years ago

Thanks for the detailed explanation.

I followed your instructions to install hector_* with the rosinstall from the hector_quadrotor repo, but wstool complained about the -t option. Also, rosdep check ... gives:

System dependencies have not been satisified: homebrew ros/hydro/ros_control homebrew ros/hydro/hector_slam homebrew ros/hydro/gazebo_ros_pkgs homebrew ros/hydro/joystick_drivers

Those packages are not available with homebrew. Shoud I install them with rosinstall, instead?

What am I missing here?

Regards,

--Rasit

On 2014-07-31 2:01 AM, Johannes Meyer wrote:

|wstool init -t src https://raw.githubusercontent.com/tu-darmstadt-ros-pkg/hector_quadrotor/hydro-devel/hector_quadrotor.rosinstall|

rasit commented 9 years ago

Well, it turned out that mixing hector_* development versions does not go well with other ros hydro repositories. I've tried a few things, some perhaps, stupid, but got stuck with: Cannot use the aerodynamics model as the required plugin has not been found. Try to run 'rosmake hector_quadrotor_gazebo_plugins' first.

I looked at the install_isolated/lib directory and the lib is there: libhector_quadrotor_aerodynamics.dylib

somehow, it cannot be found.

--Rasit

meyerj commented 9 years ago

Sorry for the delay. I cannot help you very much with MacOS related problems as I cannot reproduce them here. Have you found a solution in the meantime?

Here are some more general remarks that might help: