Overview#
This repository provides all Python tools developed by the COGIP robotic team. The team is developing a robot for Eurobot, French robotic contest.
All the tools are used during the game itself, or for development, debugging and monitoring of the robot and other test platforms.
Robot Software Architecture#
The main components of the robot are:
- a STM32 that runs
mcu-firmware, - a Raspberry Pi 4 that controls a camera, a touchscreen and a Lidar.
The robot is associated with a central beacon having an upper view of the game area, composed of a Raspberry Pi 4, a camera and a touchscreen.
Tools running on the robot's Raspberry Pi 4 are:
Serverconnecting all components through a SocketIO server.Dashboarda web server providing a dashboard to control and monitor the robot.Plannerin charge of the game strategy.Copilotdriving the robot moves by communicating withmcu-firmware(on STM32) using Protobuf messages over a serial port.Detectorgenerating obstacles based on Lidar data.Robotcamreading and analyzing images from the camera.
Tools running on the central beacon's Raspberry Pi 4 are:
Server Beaconconnecting all beacon components through a SocketIO server, and connected to the SocketIO server of all robots. It also runs a web server providing aDashboardto control and monitor the robot.Dashboard, a web server providing a dashboard to control and monitor the beacon, and display the dashboard of all robots.Beaconcamreading and analyzing images of the game area from the camera.
Beacon services will be redesigned and are not yet available. Robots can run standalone.
Monitor is running on a PC connected to the SocketIO server.
Camera provides different commands to get information about cameras,
calibrate them and detect Aruco tags.
The touchscreens display the Dashboard using an web browser embedded in the Raspberry Pi.
Emulation Software Architecture#
During development, an emulation environment is also available. In this case, all robot and beacon components are running on the development PC.
In this mode, fake Lidar data are provided by the Monitor.