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)
(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
The following components were used in this project:
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 |