Grand Theft Auto Robot

Self-Designed Differential Drive Robot

This is a differential drive robot designed for beacons searching and small items collection with a variety of funtional features. The MCU for this robot is ESP32 and programmed in Arduino C++. [code]

Functionalities

This is a self-designed differential drive robot featuring following functionalities:

  • Wall Following
  • VIVE Localizing and ID Broadcasting with UDP
  • Autonomous Navigation to Given Position
  • Beacon Tracking
  • Can Gripping
  • Manual Wireless Control through Web-based Joystick

Wall Following:

Two lateral and one front ultrosonic sensors are mounted on the chassis of the robot to detect obstacles. Ultrasonic sensors are able to measure distance through sound waves. The layout avoids the crosstalk between multiple sensors. Although the readings fluctrate most time, EMA (Exponential Moving Average) is applied to smoothing the measurement. A PID controller is also designed to keep the lateral distance to the wall. The turing logics in wall following is set as follows:

  • If both the front sensor and one lateral sensor detect the wall, turn 90 degrees to the other direction.
  • If only the front sensor detects the wall, turn 90 degrees to either direction.

VIVE Localizing and ID Broadcasting:

VIVE base stations beam both horizontal and vertical sweeping infrared laser lines alternately to trigger IR sensors on top of the robot, and by comparing the triggering time difference, the position and orientation of the robot can be caluculated. The ID is setup with a dip switch. Then the position and ID of the robot is broadcasted via UDP. The circuits design of IR laser detection in shown here.

Autonomous Navigation:

With the assistance of VIVE system, the robot is always able to determine its heading and position. Since soda cans’ positions are also broadcasted, it becomes quite easy to drive the robot autonomously to any can’s or given position by sending orders to the robot.

Beacon Tracking:

The beacons are setup to emitting 23Hz and 700Hz IR rays. Two photosensitive circuits are designed to detect the presence of both frequency IR rays.

Can Gripping:

The contact of the gripper to alumnium cans is easily detected through a capacitive touch sensor, which is an one-wire circuit by reading sudden voltage drop with ADC on ESP32.

Manual Wireless Control:

The manual control is realized through a webpage joystick. The horizontal and vertical position of the pushbutton is mapped to the left and right motor rotation speed for differential maneuvers. The transmission is via UDP.

Circuit Design

The specific design of beacon sensing, VIVE detection and motor driving circuits:

Videos

Autonomous Navigation:

Wall Following:

Beacon Tracking: