Skip to content

swisscatplus/EM_fleetmanager

Repository files navigation


Logo

EM_fleetmanager

  • Publishing of SwissCat+ laboratory map and QR Markers localization for mobile robots to localize itself, developed in Python and ROS 2 Humble, running inside Docker.
  • Integrates with the EM_onrobot deployed on the mobile robot.

Table of Contents

  1. Overview
  2. System Architecture
  3. Deployment of a New Robot
  4. Docker Installation (recommended)
  5. How to Run
  6. ROS 2 Interfaces
  7. Project Structure
  8. Improvements & Roadmap
  9. License

Overview

The EM_fleetmanager repository contains the software resources for deploying the laboratory maps, markers and managing the fleet of mobiles robots

Software

  • Published the map of the track where mobile robots are moving in a png format that can be seen in rviz.
  • Publishes the markers position in the map for the mobile robot to localize itsef in the map

Deployment

  • Supports containerized deployment with Docker for easy setup and reproducibility.

Versions & Software

  • OS: Ubuntu 22.04
  • ROS 2: Humble

System Architecture

  • Hardware

    • PC
    • Laboratory Track
    • Aruco Markers
  • Software

    • ROS 2 packages (all inside Docker):
      • mob_rob_loca → publishes the map and markers
      • mob_rob_loca_msgs → service definitions

Deployment

Networking

  • Ensure PC and RPi are on the same network.
  • For that, configure a static IP on the PC which should be the same as the one found in fastdds.xml (for example : 192.168.0.14)
  • Match the ROS_DOMAIN_ID on both PC and RPi (default = 10):
    echo "export ROS_DOMAIN_ID=10" >> ~/.bashrc
    Or in the Dockerfile:
    ENV ROS_DOMAIN_ID=10

Docker Installation (recommended)

  1. Install Docker on the PC:

    sudo apt-get update
    sudo apt-get install ca-certificates curl gnupg
    sudo install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    sudo chmod a+r /etc/apt/keyrings/docker.gpg
    
    echo      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian      $(. /etc/os-release && echo "$VERSION_CODENAME") stable" |      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    sudo apt-get update
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    sudo groupadd docker
    sudo gpasswd -a $USER docker
    newgrp docker
    docker run hello-world
  2. Run the container:

    ./deploy.sh

How to Run

Start the container:

./deploy.sh

ROS 2 Interfaces

Topics

Topic Type Description
/map nav_msgs/OccupancyGrid Map image of the laboratory track
/marker_<num> geometry_msgs/TransformStamped Aruco Makers in the map

Parameters

Parameter Type Description
namespace string Namespace prefix for topics/nodes per robot
config_file string Path to camera calibration file (ArUco positions, intrinsics)

Project Structure

EM_fleetmanager/
├── Dockerfile            # Build instructions for fleetmanager image
├── entrypoint.sh         # Container entrypoint script
├── fastdds.xml           # Fast DDS configuration
├── src/
│   ├── mob_rob_loca/         # Main fleetmanager package (map,markers)
│   ├── mob_rob_loca_srv/     # ROS 2 service definitions
├── pictures/logo.png
├── README.md
├── requirements.txt      # Requirements if trying to run locally
├── LICENSE               # MIT License
├── deploy.sh             # Launch the container

Improvements & Roadmap

  • Expand documentation with troubleshooting and advanced usage examples.

License

This project is licensed under the MIT License.

About

Autonomous fleet manager piloting mobile robots for chemical transfer within a laboratory

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •