Skip to content

Compilation dependency issues #84

@mtfurlan

Description

@mtfurlan

I had some issues getting autorally to build, here is how I got around those issues.

I'm runniung ubuntu 16.04 and using ros kinetic as the README instructs.

apt dependencies

  • I needed to also install libgeographic-dev

Dependencies outside of apt:

rosdep dependency issues

Pointgrey got bought by flir and some links broke, so a few dependencies stopped being able to be built: ros-drivers/pointgrey_camera_driver#187
I got around that by installing old snapshot builds for ros-kinetic-flir-camera-driver, ros-kinetic-pointgrey-camera-driver, and ros-kinetic-spinnaker-camera-driver.

GTSAM

While compiling GTSAM I had to add -DGTSAM_USE_SYSTEM_EIGEN=ON to the cmake command as GTSAM packages it's own version of the Eigen lib.

Library issues

autorally_core/src/StateEstimator/CMakeLists.txt asks for /usr/local/lib/libgtsam.so, while gtsam provided /usr/local/lib/libgtsam.so.4.0.2 and /usr/local/lib/libgtsam.so.4
I changed the CMakeLists.txt to ask for libgtsam.so and ran sudo ln -s /usr/local/lib/libgtsam.so.4.0.2 /usr/local/lib/libgtsam.so

The StateEstimator CMakeLists.txt also asks for /usr/local/lib/libGeographic.so, and libgeographic-dev put it at /usr/lib/x86_64-linux-gnu/libGeographic.so, so I changed it to ask for libGeographic.so
Diff:

diff --git a/autorally_core/src/StateEstimator/CMakeLists.txt b/autorally_core/src/StateEstimator/CMakeLists.txt
index 40b35ae..4249327 100644
--- a/autorally_core/src/StateEstimator/CMakeLists.txt
+++ b/autorally_core/src/StateEstimator/CMakeLists.txt
@@ -9,7 +9,7 @@ if(GTSAM_FOUND)
   include_directories(include ${catkin_INCLUDE_DIRS} "/usr/local/include")
 
   add_executable(StateEstimator StateEstimator.cpp)
-  target_link_libraries(StateEstimator ${catkin_LIBRARIES} ${ROS_LIBRARIES} /usr/local/lib/libgtsam.so /usr/local/lib/libGeographic.so ${TBB_LIBRARIES} ar_diagnostics)
+  target_link_libraries(StateEstimator ${catkin_LIBRARIES} ${ROS_LIBRARIES} libgtsam.so libGeographic.so ${TBB_LIBRARIES} ar_diagnostics)
   add_dependencies(StateEstimator autorally_msgs_gencpp)
 
   install(TARGETS StateEstimator

catkin workspaces

This was just an issue with me not knowing how catkin workspaces work, but I think at least some parts of the following would make the Clone or Fork Repositories section of the README more clear:

mkdir -p $HOME/catkin_ws/src
cd $HOME/catkin_ws/src
catkin_init_workspace
cd $HOME/catkin_ws
catkin_make
cd $HOME/catkin_ws/src
git clone https://github.com/AutoRally/imu_3dm_gx4.git
git clone https://github.com/AutoRally/autorally.git

At this point it builds, but I can't test much as gazbebo is has libGL errors and then segfaults.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions