/brobot

robot to learn about ROS2 and hopefully entertain my cat

Primary LanguagePythonApache License 2.0Apache-2.0

BroBot

CI Testing CI Linting

A 4WD differential drive robot is controlled using ROS2 Humble running on a Raspberry Pi 4 (running Ubuntu server 22.04). The vehicle is equipped with a camera for visual feedback and an RPLIDAR A1 sensor used for Simultaneous Localization and Mapping (SLAM), autonomous navigation and obstacle avoidance. The Linorobot2 project is leveraged through my use of a Teensy 4.1 running a Micro-ROS node to interface with 4 motors/encoders and an IMU.

The intent of the project is to learn about robotics, and to eventually recognize my cat's face and follow/chase him for his entertainment.

See the workspace template for workspace usage instructions.

(Work in Progress)

Tasks

(non-exhaustive)

  • Simulate in Gazebo
  • Interface with motors
  • Finish Chassis Wiring
  • Fix linorobot2_hardware ROS versions / add CI
  • Integrate LIDAR
  • Integrate camera
  • Chase cat remotely
  • Replace DC-DC converter
  • Add battery voltage display/low-voltage cutoff
  • Fix SLAM
  • Figure out how I want to use Nav2 in simulation
  • Modify Nav2 launchfiles
  • Use Nav2 with costmap and goal pose in simulation
  • Test Nav2 with waypoints in simulation
  • Investigate Nav2 AMCL
  • Run Nav2 on real robot
  • Do loop of house with Nav2 waypoints
  • Integrate gamepad and twist_mux
  • Implement OpenCV or similar to recognize cat
  • Autonomously chase cat
  • Convert CAD to more detailed URDF
  • Patch kernel to enable use of RPi Camera Module 3

Supervision of URDF work

Hardware

BroBot Front View

BroBot Side View

BroBot Rear Top View

BroBot Initial Construction

Part list

The following components were used in this project:

Part
1 Raspberry Pi 4 (4 GB)
2 AmazonBasics 128 GB SD Card
3 Yahboom Aluminum Alloy ROS Robot Car Chassis (4wd chassis)
4 L298N Motor Drivers
5 DFRobot DC-DC Power Module 25W DFR0205
6 Screw-down Terminal Block Strips Dual Row 10A 380V
7 RPLIDAR A1
8 GeeekPi Fan Hat with OLED for RPi 4/3/2/B/+
9 GeeekPi M2.5 Standoffs
10 Dupont Wires
11 Arduino Uno
12 Spare wires

Some other tools or parts used in the project are as follows:

Tool/Part
1 Soldering iron
2 SOMELINE Ferrule Crimping Tool Kit
3 Screwdriver set
4 Hot Glue Gun
5 Hot Glue
6 iCrimp IWS-3220M Micro Connector Pin Crimping Tool
7 Connector Crimp Pin Cable Kit JST SYP Futaba
8 Zip ties

Acknowledgments