🛠️ Exposer les ports série du robot Mowgli via Ser2Net

🙏 Ce tutoriel a été réalisé par Julien Guy, basé sur les travaux de cedbossneo (Docker Compose original et documentation). Un grand merci à eux pour leur contribution précieuse.


📑 Sommaire rapide de cette page


⚠️ Attention importante

Connexion Wi-Fi : Une mauvaise réception Wi-Fi peut provoquer des déconnexions série ou des pertes de paquets RTK. Assurez-vous d’avoir une connexion stable avant d’utiliser cette méthode.


🛠️ Objectif

Déporter l’exécution des conteneurs Docker OpenMower sur une autre machine (ex : serveur Proxmox) tout en exposant les ports série /dev/gps et /dev/mowgli via le réseau grâce à Ser2Net.


📋 Pré-requis

  • ✅ Aisance avec Linux, SSH et la ligne de commande
  • ✅ Une machine dédiée ou une VM disponible (Debian/Ubuntu recommandé)
  • ✅ Savoir transférer des fichiers (SFTP/SCP)

🚀 Avantages constatés

  • ⚡ Réduction de la consommation énergétique (possibilité d’utiliser un Pi Zero (en test))
  • 🖥️ Calculs ROS déportés sur une machine plus puissante
  • 💾 Moins d’usure de la carte SD
  • 🌐 Accès simplifié à la configuration GPS (ex : U-center)
  • 📦 Gestion optimisée via Portainer ou Dozzle
  • 🔁 Redémarrage ultra rapide des conteneurs (<10 secondes)

🛠️ 1️⃣ Sur le Raspberry Pi

⏹️ Arrêter les conteneurs Docker existants

docker compose down

📂 Sauvegarder votre carte de tonte

sudo cp ./ros/map.bag ~/backup_map.bag

🛠️ Modifier les règles UDEV pour nommer les périphériques

Éditez ou créez /etc/udev/rules.d/50-mowgli.rules :

SUBSYSTEM=="tty" ATTRS{product}=="Mowgli", SYMLINK+="mowgli"
SUBSYSTEM=="tty" ATTRS{idVendor}=="1546" ATTRS{idProduct}=="01a9", SYMLINK+="gps"
SUBSYSTEM=="tty" ATTRS{idVendor}=="303a" ATTRS{idProduct}=="4001", SYMLINK+="gps"

⚙️ Installer Ser2Net

sudo apt update
sudo apt install -y ser2net
sudo systemctl enable ser2net

✏️ Configurer /etc/ser2net.yaml

connection: &mowgli01
  accepter: tcp,4001
  enable: on
  options:
    banner: "ser2net - MOWGLI"
    kickolduser: false
    telnet-brk-on-sync: true
  connector: serialdev, /dev/mowgli, 115200n81,local

connection: &gps01
  accepter: tcp,4002
  enable: on
  options:
    banner: "ser2net - GPS"
    kickolduser: false
    telnet-brk-on-sync: true
  connector: serialdev, /dev/gps, 460800n81,local

🔄 Redémarrer le Raspberry Pi

sudo reboot

🛠️ 2️⃣ Sur le serveur distant (VM Debian/Ubuntu)

📥 Installer Docker

curl -sSL https://get.docker.com | sh

📂 Cloner mowgli-docker

git clone https://github.com/cedbossneo/mowgli-docker.git
cd mowgli-docker

⚙️ Modifier le fichier .env

ROS_IP=127.0.0.1
MOWER_IP=192.168.1.66
IMAGE=ghcr.io/cedbossneo/mowgli-docker:cedbossneo

🛠️ Ajouter OpenMower-GUI dans docker-compose.ser2net.yaml

gui:
  container_name: openmower-gui
  image: ghcr.io/cedbossneo/openmower-gui:master
  restart: unless-stopped
  network_mode: host
  privileged: true
  environment:
    ROS_IP: ${ROS_IP}
    ROS_MASTER_URI: http://${ROS_IP}:11311
    MOWER_CONFIG_FILE: /config/mower_config.sh
    DOCKER_HOST: unix:///var/run/docker.sock
    DB_PATH: /db
  depends_on:
    - roscore
  volumes:
    - /dev:/dev
    - ./config/db:/db
    - ./config/om:/config
    - /var/run/docker.sock:/var/run/docker.sock

🚀 Lancer les conteneurs

docker compose -f docker-compose.ser2net.yaml up -d

🎯 Bonus : Configurer votre F9P via U-center

Pour reconfigurer votre GPS :

  1. Arrêter les conteneurs Docker :
docker compose down
  1. Utiliser U-center pour se connecter sur l’IP du Pi port 4002.

⚠️ Important

Après toute modification du GPS, assurez-vous de recharger la configuration dans le firmware si nécessaire !


✅ Conclusion

Cette solution permet d’alléger votre Raspberry Pi, d’améliorer les performances réseau et d’assurer une gestion plus fiable de votre robot.


[⬅ Retour à la page d'accueil](/Guide-DIY-OpenMower-Mowgli-pour-Robots-Tondeuses-Yard500-et-500B/)
[📑 Aller au Sommaire](/Guide-DIY-OpenMower-Mowgli-pour-Robots-Tondeuses-Yard500-et-500B/pages/sommaire/)