Principle: HARP2 is designed for seamless navigation and full autonomy, independently making decisions to adapt dynamically to its environment. Its ultimate goal is to autonomously manipulate game elements, demonstrating its versatile and multidisciplinary capabilities.
- 3 Nema 17 stepper motors (59Ncm) for propulsion
- Li-Po 14.8V 8400mAh battery
- 2 Raspberry pi Pico microcontrollers and 1 Raspberry Pi 4B+ connected via USB
- Chassis made of 1 cm aluminum profiles and laser-cut PMMA
- 3D-printed mechanical parts
- 2 2D LiDAR for obstacle detection, navigation and odometry
- 1 IMU and 1 Optical Tracking Odometry Sensor
Overview diagram
Workflow and components of the robot HARP2 (Holonomic Autonomous Robotic Platform 2)
Mechanics
This robot was designed using Onshape, a CAD software. Its structure consists of 3mm laser-cut PMMA layers and assembled using 1cm aluminum profiles for durability and rigidity. Additional components are crafted from 3D-printed PLA, ensuring lightweight and customizable elements. The overall dimensions strictly adhere to the regulations of the French Robotics Cup.
Electronics
The power board plays a crucial role in distributing power from the battery to various modules while adapting the electrical parameters as needed. It was designed using KiCad, an open-source software for printed circuit board (PCB) design. Following the validation, the PCB was manufactured. In addition to onboard protections, such as fuses, short-circuit protection, and thermal safeguards, a low-voltage buzzer alarm was added to the battery to enhance its protection.
The Emergency Stop Button Board ensures the safe operation of the system by integrating a relay controlled by two push buttons. One button serves as the activation switch to power on the system, while the other functions as an emergency stop button, immediately cutting off power when pressed. This board is a critical safety feature, providing a reliable and straightforward way to quickly halt the system in case of unexpected issues. Its design prioritizes simplicity and robustness, ensuring it meets high safety standards.
The Mobile Base Electronic Board integrates connections to MKS-SERVO42C V1.1 drivers for controlling the three 59 Ncm NEMA 17 stepper motors. Additionally, it embeds a Raspberry Pi Pico, the limit switches located at the base of the robot, and the Optical Tracking Odometry Sensor.
Therefore, this board receives motor commands and transmits limit switch statuses and odometry data to the Raspberry Pi. To enhance feedback, LEDs were added to indicate the activation of each limit switch for better monitoring.
Micro Controller and micro-ROS
Communication between the Raspberry Pi Pico units and the robot's central processing unit, the Raspberry Pi 4B+, is established via USB using the micro-ROS protocol. In this setup, the Raspberry Pi Picos act as clients, while the Raspberry Pi functions as the server. This configuration enables seamless transmission of commands and sensor data between the Raspberry Pi and multiple Raspberry Pi Pico interfaces.
The implementation of micro-ROS ensures efficient communication and data synchronization across devices. This architecture allows the Raspberry Pi to handle complex, high-level computations and decision-making, while the Raspberry Pi Pico units serve as low-level interfaces, each managing specific hardware components and interactions.
ROS (Robot Operating System)
HARP2 currently operates under ROS 2 Humble, integrating sensor drivers into its ROS architecture while leveraging the Navigation2 and ros2_control stacks. This setup enables the use of advanced, state-of-the-art algorithms for path planning, navigation, obstacle avoidance, and decision-making.
Additionally, the integration of the MoveIt2 stack is planned for actuator control, further enhancing the robot's capabilities. The system is also simulated in Gazebo, providing a platform to test and refine strategies before deployment.
This approach fully exploits the flexibility and modularity of the ROS middleware, enabling efficient development and operation.