Error while installing Open RMF and question about integration with real robots (#143)

Posted by @gregoryyts:

Hi. I’m trying to integrate Open RMF with some AMRs that are operating in a factory with ROS1(Melodic). My objective is to communicate the fleet manager with robots remotely. To do that I’m using Ubuntu 20.04, ROS1 Noetic, ROS2 Galactic and ros1_bridge (to communicate ROS 1 and ROS 2), as it’s shown in image bellow

Basically, what I intend to do is run Open RMF in ROS Galactic, then stablish a communication between ROS Galactic and ROS Noetic via ros1_bridge, and then communicate my ROS Noetic with ROS Melodic of the factory (everything is in the same network).

In order to do that, I developed an API, just as recommended here to run in my local ROS2. Is it right? I have seen some people talking about the usage of free_fleet in order to put the fleet manager to work with real robots, but I don’t get what is the purpose of free_fleet in this scenario, since I already have the Open RMF.

Anyway, I’m having problems with installation of open RMF too. I am following the steps indicated in RMF Root Repository to build from source, but when I run rosdep install --from-paths src --ignore-src --rosdistro galactic -y, I have the following output:

ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies:
rmf_demos_bridges: Cannot locate rosdep definition for [python3-socketio]

Does anyone knows what could be the cause of this error and how to fix it?

Besides, when I run
cd ~/rmf_ws
source /opt/ros/galactic/setup.bash
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
I have the following output:

  By not providing "Findnlohmann_json.cmake" in CMAKE_MODULE_PATH this
  project has asked CMake to find a package configuration file provided by
  "nlohmann_json", but CMake did not find one.

  Could not find a package configuration file provided by "nlohmann_json"
  with any of the following names:

    nlohmann_jsonConfig.cmake
    nlohmann_json-config.cmake

  Add the installation prefix of "nlohmann_json" to CMAKE_PREFIX_PATH or set
  "nlohmann_json_DIR" to a directory containing one of the above files.  If
  "nlohmann_json" provides a separate development package or SDK, be sure it
  has been installed.


---
Failed   <<< rmf_api_msgs [0.70s, exited with code 1]
Aborted  <<< rmf_dispenser_msgs [11.1s]           
Aborted  <<< rmf_door_msgs [11.2s]
Aborted  <<< rmf_building_map_msgs [11.6s]        
Aborted  <<< nlohmann_json_schema_validator_vendor [2.99s]
Aborted  <<< rmf_fleet_msgs [12.9s]               
Aborted  <<< rmf_utils [21.6s]                    
Aborted  <<< rmf_traffic_msgs [27.2s]                                    

Summary: 3 packages finished [27.4s]
  1 package failed: rmf_api_msgs
  7 packages aborted: nlohmann_json_schema_validator_vendor rmf_building_map_msgs rmf_dispenser_msgs rmf_door_msgs rmf_fleet_msgs rmf_traffic_msgs rmf_utils
  2 packages had stderr output: nlohmann_json_schema_validator_vendor rmf_api_msgs
  40 packages not processed

I don’t know where is the cause of this error either. Does anyone knows?

Here’s some important information:

  • Operating system and version:
    Ubuntu 20.04
  • OpenRMF version or commit hash
    Main
  • ROS distribution:
    ROS Galactic
  • ROS installation type:
    Via debian packages

Posted by @mxgrey:

rmf_demos_bridges: Cannot locate rosdep definition for [python3-socketio]

This bug was recently found and should be fixed as of yesterday: Fix rosdep key for demo bridges by xiyuoh · Pull Request #127 · open-rmf/rmf_demos · GitHub

Could not find a package configuration file provided by "nlohmann_json"

This one surprises me, because rmf_api_msgs does specify its dependency on nlohmann-json-dev. Using your earlier rosdep install ... command should have therefore installed nlohmann-json3-dev.

The only thing I can think of is maybe your rosdep hasn’t been updated since the nlohmann-json-dev key was added to rosdistro? You could try running $ rosdep update and then rerun the rosdep install ... command to see if that fixes it.

Edit: But if the nlohmann-json-dev key didn’t exist in your rosdistro cache, then I think you should have gotten the same error that you got for python3-socketio… So I really can’t think of a reason for that failure… :thinking:


Edited by @mxgrey at 2022-02-24T04:28:26Z