Giter Club home page Giter Club logo

mapper's Introduction

2D Mapping Robot

image

This is a final team-based project for Georgia Tech's ECE 4180 Embedded System Design Course.

Team Members

Juntao Wang: [email protected]
Sicheng Zou: [email protected]
Nick Witten: [email protected]

Overview

The goal of the project is to create a robot that autonomously roams a room and plots the 2D coordinates of walls and obstacles while expanding its knowledge in a frontier-based fashion.

Design Description

The shadow bot chassis is used as the frame of the robot, 2 DC motors with a dual H-Bridge driver module are used to maneuver the robot, and 3 LIDAR sensors are used to measure distances while the robot is moving. The whole system is based on the Mbed LPC1768 running Mbed RTOS. In addition, a raspberry pi is used to send control commands and for data manipulation in Python. The robot is able to flash code wirelessly using the ssh protocol on the raspberry pi and serial communication between the raspberry pi and Mbed.

Hardware Systems

image

Software Systems

flow_chart_mapper
Control System Diagram

Automonus_Mode_Flow_Chart
Autonomous Mode State Diagram

Software Setup

The virtual COM port is used to control the Mapper through the Raspberry Pi. Make sure the Pi has internet connection, use SSH to obtain a terminal. Clone this repository, and use gcc-arm-none-eabi compiler to build the MBED source code. A USB micro type B to a USB mini type B cable should be used to connect the Raspberry Pi to the MBED. To flash the binary file, copy it to /media/pi/MBED. The two python scripts are to be run on the Pi and a spare PC, not connected to the Pi. Make sure the project paths and Pi IP address is updated in the python scripts.

Usage

To control the robot, open the serial port to the MBED from the Pi. This can be done with the following commands:

pip install pyserial
python -m serial.tools.miniterm /dev/ttyACM0 9600

The following commands can be issued over the serial port:

Key Action
Arrow Up Speed Up
Arrow Down Slow Down (Backup)
Arrow Left Turn Counterclockwise 90 Degrees
Arrow Right Turn Clockwise 90 Degrees
r Reset State and Map
a Toggle Autonomous Mode
Enter Print Mapper State

The two python scripts can be used to enable plotting. pi_saver.py should be run on the Pi and pc_plotter.py should be run on a PC. Commands can still be issued while running the pi_saver.py script, but they should typed into the script STDIN and enter must be issued after every keypress so they can be passed through to the MBED.

Part List

mbed LPC1768
Shadow Bot Chassis
SparkFun Motor Driver - Dual TB6612FNG (with Headers)
Hobby Gearmotor - 140 RPM (Pair)
2x Wheels
3x VL53L0X ToF Sensor
2x Wheel Encoder Kit
5V Battery Pack
USB Portable Charger
DC Barrel Jack Adapter
Raspberry Pi Zero W

Connections

Motor Drivers and Dual Motors

Mbed LPC1768 Motor Driver Motor_Left Motor_Right
VOUT VCC
GND GND
VM (to Power)
A01 RED
A02 BLACK
B01 RED
B02 BLACK
p21 PWMA
p22 PMWB
p6 AI1
p7 BI1
p5 AI2
p8 BI2

LIDAR Sensors

Mbed LPC1768 LIDAR_Right LIDAR_Left LIDAR_Center
VOUT VIN VIN VIN
GND GND GND GND
p28 SDA SDA SDA
p27 SCL SCL SCL
p24 SHDN
p25 SHDN
p26 SHDN

Encoders

Mbed LPC1768 Encoder_Left Encoder_Right
VOUT RED RED
GND BLACK BLACK
p11 WHITE
p12 WHITE

Source Code

Click Here

Photos

image
Robot Front View

image
Robot Top View

image
Robot Motor and Encoder

Videos

5d426e33601fc5a9d46645a86f8db33
Autonomous Mapping Demo

0ea3cb7534f60492225665e88f2c3e7
Remote Control Mapping Demo

mapper's People

Contributors

nickwitten avatar ericjuntao avatar tonizsc avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.