Skip to content

My R.O.S. (Robot Operating System) Robot project.

License

Notifications You must be signed in to change notification settings

samyarsadat/ROS-Robot

Repository files navigation

The ROS Robot Project





| |


Raspberry Pi Pico FreeRTOS Branch

This branch is for the development of new firmware for the Raspberry Pi Picos based on the FreeRTOS kernel. The need for FreeRTOS came about as a result of a need for multithreading.


This is a 3D render of the CAD designs.

Overview

Stages

This project will be completed in stages.
The project is currently at stage 1.


Stage 1 (Humble Beginnings / Follow Me)

The robot will follow an object with image processing and a Raspberry Pi camera.

Stage 2 (S.L.A.M. It Shut)

A LIDAR sensor will be added.
The robot will be able to map and navigate its environment.

Stage 3 (Samyarm 1)

A robotic arm will be added for object manipulation.

Stage 4 (Back To The Shipyard)

After stage 3 is completed, I plan to re-design some parts of the robot chassis and PCB.
This will improve upon the current design and allow for future stages and expansions.
Most of the wiring and general design will be kept the same.
This will only improve upon the current design.

Future stages

More stages may be added as the project progresses.


System Architecture and Mechanical Design Overview

System Architecture

The general architecture of the robot's electronics system consists of a main computer (the Raspberry Pi 4B) and two, less powerful microcontrollers (the Raspberry Pi Pico/RP2040). The Pi 4 handles image processing, mapping & navigation, and any other type of resource-intensive processing whilst the less-powerful Picos handle I/O for motors, sensors, LEDs, etc.

ROS is used to handle communications between multiple nodes either on the same machine (i.e. a mapping node and a navigation node running on the Pi 4) or between external nodes (i.e. the two Raspberry Pi Picos running microROS). Both Raspberry Pi Picos are connected to the Pi 4 via USB cables.

More details regarding the electronics design here.

Mechanical Design Overview

The mechanical design of the robot is quite simple. The chassis of the robot is 3D printed in two halves using PLA filament (more details regarding 3D printing here) and the robot uses four geared DC motors (Namiki 22CL-3501PG) in a differential drive configuration.


File Structure

There are 5 folders in this repository.
Their names and purposes are as follows:

.github
GitHub issue templates, pull request templates, etc.

Assets
Assets used on GitHub (such as images used in this README file).

CAD Files
3D CAD design files and 3D printing files for the chassis and other mechanical parts of the robot.

Circuit Diagrams & PCB Files
Overall circuit diagrams and PCB design files for the robot.

Source Code
Source code for the ROS package of the robot and for the firmware of the Raspberry Pi Picos.


Contact

You can contact me via e-mail.
E-mail: samyarsadat@gigawhat.net

If you think that you have found a bug or issue please report it here.


Contributing

Please take a look at CONTRIBUTING.md for contributing.


Credits

Role Name
Lead Developer Samyar Sadat Akhavi
CAD Design Samyar Sadat Akhavi
PCB Design Samyar Sadat Akhavi


Copyright © 2022-2024 Samyar Sadat Akhavi.