+ All Categories
Home > Documents > See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and...

See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and...

Date post: 04-Jan-2016
Category:
Upload: gavin-walton
View: 214 times
Download: 0 times
Share this document with a friend
25
See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University of Massachusetts at Boston Tyler Garaas and Srikumar Ramalingam Mitsubishi Electric Research Laboratories (MERL)
Transcript
Page 1: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding RobotSee3PO

Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu

Department of Computer ScienceUniversity of Massachusetts at Boston

Tyler Garaas and Srikumar Ramalingam Mitsubishi Electric Research Laboratories (MERL)

Page 2: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

• See3PO– Our robot, equipped with two cameras, will use

vision to navigate its environment

• Host– An application that runs on a Host PC, allowing the

operator to set up and direct the robot.

Overview

Page 3: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

GUILocal Brain

Floor Plan Processing

Locator

Host

PathFinder

Host PC

Floor PlanPositionDestination

Path

FP ImageFloor Plan

FP Image Destination

Position

Floor PlanRobot Images

Robot Images

Commands

Robot

Host

Page 4: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding RobotHost – An overview

The Host class manages all Host-Side processes1.The User selects a Floor Plan Image from the GUI2.Host sends this image to FloorPlanProcessing, which returns a FloorPlan.3.This FloorPlan is sent to PathFinder. It is also sent back to GUI for display.

Page 5: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding RobotHost – An overview

4. Either the User (GUI) or the Locator sets the robot’s current Position, then the User (GUI) selects a Destination.• If using the Locator, the Host requests images

from LocalBrain, and sends these to the Locator.5. These points are sent to the PathFinder, which

returns a Path of (X,Y) coordinates.6. Host converts this Path to distinct

Left/Right/Duration MoveComand objects, and sends them to the LocalBrain, one at a time.

Page 6: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

• FloorTile – represents one square foot on a floor.– Walkability - We can hold a range of values, but currently, we only use:

• Floor = 1• Wall = 0

– End/Start – booleans showing whether this is this tile is the start or endpoint of the graph.

– Neighbors – the four neighboring FloorTiles• FloorPlan

– A graph of Floor Tiles – Each tile is connected to each of its four neighbors if that neighbor’s

walkability is not zero.– Start/End – pointers to the start and end tiles

Floor Plan Processing

Page 7: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

• The getPath() method takes a start point and a destination point and returns the shortest path between these. – Currently uses Dijkstra’s algorithm for shortest path

in order to account for varying “Walkability” of tiles.– Returns a list of FloorTiles, which contain XY

coordinates.

Pathfinder

Page 8: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

Science Building – 3F (image)Graph

wallwalkable

s

t

s

t

Floor Plan

Processing

Generate

Move Command

Position FinderConfirm Position

s

t

Page 9: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding RobotGUI

Page 10: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding RobotGUI

Live PanelDisplays a live view from the Robot

Status ScreenDisplays detailed messages from the Host

Floor PanelThe Main Interface:•Displays The Floor Plan

•Allows the user to set:•Scale•Current Position•Destination

•Displays the best Path

•During execution, updates the Path and Position.Connection Status Instructions

Page 11: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding RobotLocator

Returns the current Position of the robot: Location(X,Y)

Facing (0 -359)

This position is used by PathFinder to create a Path, and to monitor and correct the robot’s progress while moving.

The only external inputs required are:A Floor Plan ImageRobot Images from the robot’s two cameras

                                                         contd..

Page 12: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding RobotLocator

Advantages:

Precise Works Indoors Self-correcting Recognizes changes 

  open/closed door   obstacles

Page 13: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding RobotTesting

Unit tests – are already in place

System tests – test plans are being developed

System testing had been done partially

Page 14: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

Robot

Main parts of the robot• Local Brain

– Receive commands from Host

– Send commands to ATOM and Servos

– Send image back to Host

• ATOM

– Control wheels

• Servos

– Control cameras

• Cameras

• Wheels

Page 15: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

Cameras

Local Brain

ServosAtom

Wheels

The Anatomy of a See3PO

Page 16: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

Communication Protocol

• Command sent from Host to local brain (TCP)

• Command sent from local brain to ATOM (RS-232)

Byte 0 1 2 3 4 5 6 7 8 9

0x01 0x10 0x11 LWS_H LWS_L RWS_H RWS_L TM_H TM_L 0xEF

Byte 0 1 2 3 4 5 6

0x01 0x10 0x11 LWS_H LWS_L RWS_H RWS_L

Page 17: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

What we need to know

• pulsout pin12, 8 – duration 8*0.5µs =4µs

• The longer the pulse, the faster the speed.

Syntaxpulsout pin, time pin: the I/O pin to use. time: the duration of the pulse in 0.5 microseconds increments.

time

Page 18: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

High Packet Loss Rate-ATOM

• Original Codemain: “send speed to wheel every 20ms

for i = 1 to 5 pulsout p12, rightSpeed pulsout p13, leftSpeed pause 20 next “read packet through COM port SERIN S_IN,i9600,… …goto main

Why????

If the packet come in during the loop…

Page 19: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

Our Solution

• New Code ONINTERRUPT TIMERAINT,drive ENABLE TIMERAINT main: “read packet in from COM port SERIN S_IN,i9600,… … goto main

drive: pulsout p12, rightSpeed pulsout p13, leftSpeed resume

What did we implement?

Interrupted by a timer every 20ms

Page 20: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

Robot cannot move straight

• Original CodeleftSpeed = 3000 rightSpeed = 3000main: gosub drive

gosub receive_commandgoto maindrive:

if initialized = 1 then for i = 1 to 5 pulsout p12, rightSpeed

pulsout p13, leftSpeedpause 20next

endif return

Page 21: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

How do we solve that

• Send different speed to the wheels– Take the move forwards

for example

– leftspeed=3179

rightspeed=3150

Note: these data comes from experimental testing

Page 22: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

Local Brain UI

• Debug mode – show commands

• Movement control – forward

– left

– stop

– ..

• Setting left and right speed as well as driving time

Page 23: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

What can we expect for version 1.0?

• A working servo system• The robot can send pictures and communicate with the

host from anywhere within wireless range.• Based on these images, the Host can return a location. • After giving a destination, the host can find the shortest

path between the robot and any destination.• Using this information, the robot will successfully

navigate to the destination.

Page 24: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

Possible extras

• Allow the user to change destination while the robot is moving.

• Allow optional manual control over the robot.• Account for doors and obstacles.• Use new wireless system (we use the wireless

card, so it can just cover about 10 square meters)– Use local internet (like the UMass wireless) to make

the robot move in the whole campus– Use other types of connections, like a tethered

iPhone, extending the range further.

Page 25: See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.

See3PO - A Visually Capable Path Finding Robot

Questions?

• http://code.google.com/p/see3po/

• Please feel free to ask questions.


Recommended