This code was written for the robot competition 2022 at EPFL (https://robot-competition.epfl.ch/). It was used for Rob-bottle (our robot) that collects pet bottles and brings them back to a recycling area. The contributors are Brodier Mariane, Ourion Cyril and Schmid Nicolaj.
In this repository there are all files used for the arduino. The arduino does the low level computation: motor control (wheel, arm and basket motors) and the ultrasonic sensor reading. The file flashed on the arduino is called motor_sensor_arm_controller.
This repository contains the source files of the catkin workspace run on a Raspberry Pi 4. It is a ROS noetic implementation and does the high level computation. The code of the external packages can be found in the corresponding github repositories:
- bb_mpu9150: integration of IMU mpu9150 (see https://github.com/vmayoral/bb_mpu9150). The IMU was not used in the final version.
- hector_slam: SLAM algorithm (see http://wiki.ros.org/hector_slam).
- robot: custom package that does all of the work (sensor integration, measurement processing, path planning, decision making, ...).
- rosserial: library used for the windows node (see visualization_windows).
- rplidar_ros: integration of the Slamtec A1M8 LIDAR (see https://www.slamtec.com/en/Lidar/A1).
The files in this repositroy can be run on a windows machine and are visualizing the calculations:
- path_planner_visualization: contains a pythons script that plots the robot's trajectory.
- real_time_map_visualization: is a ros node for Visual Studio and shows the map of the robot's surrounding.
Assuming that the catkin workspace and ROS noetic are installed correctly on the Raspberry Pi, the code can be compiled as follows:
cd catkin_ws
catkin_make
Then, motor_sensor_arm_controller must be flashed on the arduino. And finally, the robot can be launched with the launch file robot.launch from the package robot:
roslaunch robot robot.launch