Position Logging Autonomous Robot-ECE4180 Final Project

Overview

By: James Plager and Craig Raslawski

For our final project, we created an autonomous navigating robot that tracks its position over time. Logged position data is sent over bluetooth serial interface and displayed in a C# GUI on a supporting computer.

The default behavior of this robot, whose behavior resembles that of a Roomba vacuum cleaner, is to navigate about its surroundings using onboard sensors to avoid collisions with objects in the environment. The option to take manual control of the bot exists. Control can be taken from the GUI on a computer and used to navigate the bot over Bluetooth.

Autonomous navigation utilizes onboard ultrasonic and IR sensors. The ultrasonic sensor is used to detect obstacles in front of the robot, and the IR sensor on the side of the bot detects once it has driven past the detected obstacle.

Components

LSM9DS1 IMU

LSM9DS1 IMU

mbedLSM9DS1
gndgnd
VoutVdd
p9SDA
p10SCL

Atomic Market HC-06 Bluetooth Serial Pass-Through

HC 06 Bluetooth breakout

mbedHC-06 BT
gndgnd
VU(5v)Vcc
p28 (Serial RX)TXD
p27 (Serial TX)RXD

The RXD pin needs to be pulled down to ground.

IR Distance Sensor

IR Distance Sensor

mbedSharp IR
VccVcc
Gndgnd
Signalp20

HC-SR04 Ultrasonic Sensor

Ultrasonic Distance Sensor

mbedUltrasonic Sensor
VccVu
Trigp29
Echop30
Gndgnd

External Power

The two DC motors and Bluetooth module draw more power than the mbed can supply. An external power pack will be needed.
Sparkfun sells an external 4xAA battery holder with a barrel jack that will provide the needed power.
Sparkfun battery pack
barrel jack

For our solution, we used this and a portable phone charger with a stripped USB cable for independently powering the motors and mbed, respectively.


Demos

Picture of bot:
Roomba robot

GUI Screenshots

Below image shows GUI setup. You will need to select the appropriate COM port to communicate with the bot.
The "Manual Override" button takes manual control of the bot, and arrow keys are then used to control direction. To start the program, enter the dimensions of the area and press "Begin."

300

300

300

300


Code

Mbed C++

Import programIMURoomba4

ECE4180 Final Project


Please log in to post comments.