Skip to content

"Hope", a RaspberryPi-based tank robot that walks around home autonomously

License

Notifications You must be signed in to change notification settings

manfredipist/RaspiTank

Repository files navigation

RaspiTank

"Hope", a RaspberryPi-based tank robot that walks around home autonomously.

Hope_front Hope_side Hope_qr_recognition

DISCLAIMER: 🚧 This project is far from complete, don't expect everything to work flawlessly out of the box

Prerequisites

  1. RaspberryPi 3B+ or RaspberryPi 4
  1. A chassis for your robot as well as a camera and bunch of sensors
  1. Working cross-compilation environment on both MacOS/Ubuntu and your Raspberry Pi OS. Follow my guide if it's not the case. If i recall correctly, the guide works on RaspberryPi 4 as well but you may not need to increase your swap size when compiling OpenCV due to increased RAM size on RPi4
  2. Lot of patience, this project is not going to work out of the box, in particular, i'm referring to MacOS users who will have to deal with Privacy&Security features being introduced, starting from Catalina.

Suggestions

If you encounter any problem you're not able to fix, please ask for support pushing an issue, i'll be more than happy to help you. Once you've got a fully working environment, i truly suggest you to backup the SD card of your RPi.

The project

In principle my idea was to provide Hope of two ways of acting:

  1. by planning tasks inside a 2D world
  2. following goals by auto-relocating inside a world with the assistance of QR Codes / Landmarks.

Both operational modes are currently under construction.

The project is made up of 5 main folders:

  1. PiBus - a C++ Qt implementation of I2C Protocol, you can find more information about this side project of mine here;
  • Status: Completed ✅
  1. PiController - the main class which setup the GUI and start PiThreads;
  • Status: Completed ✅
  1. PiDevices - contains few I2C sensors driver implementations;
  • Status: Completed ✅
  1. PiThreads - contains the main threads that run during the execution loop of the program;
  • Status: WIP 🚧
    • PiMotion : thread handling Hope's movement
      • Status: Completed ✅
    • PiPlanner : thread handling Hope's task planning
      • Status: WIP 🚧
    • PiSensing : thread handling Hope's sensors data
      • Status: Completed ✅
    • PiVision : thread handling Hope's computer vision
      • Status: WIP 🚧
  1. PiWidgets - contains the GUI Widget that are injected into the MainWindow by PiController class.
  • Status: Completed ✅

RaspiTankGUI RaspiTankGUI RaspiTankGUI

The Build

I will try to upload a guide to build Hope from scratch, i gotta check my phone to retrieve some old photos when i was building it. To make it simple, Hope is built on 3 levels:

  • At the lowest level you can find 2 buck converters which derive two power lines, one at 12v for the 2 DC motors and one at 5v for the servo motor
  • On the middle level you can find all the sensors i've been using as well as 4 18650 batteries to power up all the sensors and the motors
  • At the toppest level you can find the RPi, the camera and the UPS to power up the RPi

Hope in Action

I will add a video ASAP

About

"Hope", a RaspberryPi-based tank robot that walks around home autonomously

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published