GithubHelp home page GithubHelp logo

samyarsadat / ros-robot Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 1.0 168.84 MB

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

License: GNU General Public License v3.0

CMake 6.64% C++ 76.21% C 10.93% Dockerfile 3.42% Shell 2.80%
raspberry-pi robotics ros ros2 altium pico raspberry-pi-pico solidworks ubuntu micro-ros

ros-robot's Introduction

The ROS Robot Project





| |


Disclaimer: Robot is under development.

The ROS Robot project.


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: [email protected]

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.

ros-robot's People

Contributors

samyarsadat avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

asilemre0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.