Ask Your Question

How to compile rmf_core using colcon build in ROS2 eloquent?

asked 2020-02-07 03:57:31 -0500

webvenky gravatar image

updated 2020-02-07 04:15:54 -0500

gvdhoorn gravatar image

On running the build, the error stated that the fcl package not found when building package rmf_traffic.

Source from github:

Starting >>> rmf_utils
Starting >>> rmf_dispenser_msgs
Starting >>> rmf_fleet_msgs
Starting >>> rmf_traffic_msgs
Starting >>> rmf_door_msgs
Starting >>> rmf_lift_msgs
Starting >>> cpp_pubsub
Starting >>> rmf_workcell_msgs
Starting >>> turtlesim
Finished <<< cpp_pubsub [0.28s]                                
Finished <<< turtlesim [0.95s]                                 
Finished <<< rmf_utils [2.69s]                                       
Starting >>> rmf_traffic                                                
--- stderr: rmf_traffic                                                     
CMake Error at /usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:415 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:593 (_pkg_check_modules_internal)
  CMakeLists.txt:26 (pkg_check_modules)

Failed   <<< rmf_traffic    [ Exited with code 1 ]
Aborted  <<< rmf_door_msgs                        
Aborted  <<< rmf_lift_msgs                        
Aborted  <<< rmf_dispenser_msgs                   
Aborted  <<< rmf_workcell_msgs                    
Aborted  <<< rmf_fleet_msgs                       
Aborted  <<< rmf_traffic_msgs                                          

Summary: 3 packages finished [26.3s]
  1 package failed: rmf_traffic
  6 packages aborted: rmf_dispenser_msgs rmf_door_msgs rmf_fleet_msgs rmf_lift_msgs rmf_traffic_msgs rmf_workcell_msgs
  1 package had stderr output: rmf_traffic
  3 packages not processed
edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2020-02-07 04:26:46 -0500

gvdhoorn gravatar image

Normally, when trying to build ROS packages from source (which includes ROS 1 and ROS 2), you'd follow a certain workflow, one of the steps of which would be the make sure all package dependencies are present.

An example workflow is described in #q252478 (ignore the specific versions of Ubuntu and ROS: it's a generic workflow).

The important step that takes care of dependencies is the rosdep invocation.

It would appear however that rmf_traffic does not state the dependency on fcl anywhere in its package.xml. Without that information, rosdep would not be aware of the dependency and cannot help you.

In this particular case, you'd have to investigate the CMakeLists.txt of each package, identify the used packages/libraries (ie: see which find_package(..) lines there are) and manually install the corresponding Ubuntu/Debian packages.

In addition: it would be nice if you could report this on the issue tracker and it would be even nicer if, after you've identified all dependencies, you could update the package manifests with this information and then submit a Pull Request to osrf/rmf_core that would fix this for everyone.

Refer to the catkin documentation » How to do common tasks » Package format 2 (recommended) / Overview / Resolving dependencies section in the Catkin documentation for information on which particular sections would need to be added to the manifests.

edit flag offensive delete link more


:+1: to everything said above by @gvdhoorn

Looking at the issue tracker of the package can also give you hints. For example it looks like this issue has been reported and has a solution listed:

marguedas gravatar image marguedas  ( 2020-02-07 04:30:55 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2020-02-07 03:57:31 -0500

Seen: 234 times

Last updated: Feb 07 '20