Skip to content

andreshungbz/robot-maze-handshake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

120 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

robot-maze-handshake

A series of programs that allow a robot to navigate a maze using the right-hand rule, activate a color signal at the designated finish point, then allow a drone to detect the color signal and perform a series of set actions.

The following robots/kits are used in this project:

Successful Trial Video

A recorded video of a successful trial can be found here: https://youtu.be/GW04AHzJZnY.

Programs

robot-maze-solver (C++)

The first main program allows the robot to autonomously navigate the maze using the right-hand rule. The robot uses the ultrasonic sensor on its right to detect the right wall, and the line follower sensor on its front to detect the front wall. Once it reaches the designated finish point, it activates the RGB LED module to signal the drone. It also manages a manual mode for the program.

This program is compiled and uploaded to the robot through its serial port. It uses an updated fork of the official Makeblock libraries by nbourre, with development being managed through PlatformIO.

drone-color-detector (Go)

The second main program that communicates with the drone via a UDP server. It continuously checks the drone's video feed for the specific color signal emitted by the robot. Once the color signal is detected, it sends a series of commands to the drone.

This program runs in a separate process on a computer connected to the same network as the drone. It uses GoCV, which requires OpenCV to be separately installed.

robot-bt-controller (Go)

An add-on program that interfaces with the robot-maze-solver program through the Makeblock BLE module. Commands are sent via keyboard or a connected game controller to control the robot manually.

This program runs in a separate process on a computer with a game controller paired (if using gamepad mode) and requires the robot to be turned on. It uses go-sdl2, which wraps SDL2 (may need to be separately installed). Support for SDL3 wrappers in Go is currently limited, so the more stable package is used.

About

Robot Maze & Handshake Demo using the Makeblock Ultimate 2.0 robot kit and DJI Ryze Tello drone

Topics

Resources

License

Stars

Watchers

Forks

Contributors