multi-robot control and integration

24
Multi-Robot Control and Integration University of Southern Maine May, 2009

Upload: iolana

Post on 23-Feb-2016

37 views

Category:

Documents


0 download

DESCRIPTION

Multi-Robot Control and Integration. University of Southern Maine May, 2009. Members. Mike Nelson Mechanical Engineering / Computer Science. Dan Boissonneault Electrical Engineering. Project Goals. Control multiple robots from one PC Staubli / Scara / Microbots - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Multi-Robot Control and Integration

Multi-Robot Control and IntegrationUniversity of Southern MaineMay, 2009

Page 2: Multi-Robot Control and Integration

MembersMike Nelson

Mechanical Engineering / Computer Science

Dan BoissonneaultElectrical Engineering

Page 3: Multi-Robot Control and Integration

Project Goals

• Control multiple robots from one PC– Staubli / Scara / Microbots

• Construct easy-to-use graphical interface for users

• Define a programming language that utilizes new command sets

Page 4: Multi-Robot Control and Integration

ScaraWorkspace

StaubliWorkspace

Goal DemonstrationScara to Staubli RouteStaubli to Scara Route

Conveyer BeltGo

Page 5: Multi-Robot Control and Integration

Getting Control

Serial Communication vs Network Configuration

• Serial Communication– Cheap / Easy– Ugly

• Network Configuration– Cleaner / More “with the times”– Possibly Thousands of $$$ if we screw up

Page 6: Multi-Robot Control and Integration

Flow of Control

The system acts essentially the same as a Client / Server setup (like the internet).

In this case, the Server(s) are the Controllers and the Client is the PC.

Client

Adept Controller

Microbot ControllerMicrobot Controllers

Adept ControllersRequest

Response

Response

Page 7: Multi-Robot Control and Integration

Controller Programming Languages

• Adept V+– Similar to a BASIC language– No multithreading – No data type transformation

• Microbot Command Set– String based commands

Page 8: Multi-Robot Control and Integration

V+ Example

.PROGRAM example()SPEED 50 ALWAYSMOVE aDELAY 10.0MOVE bCLOSEI

.END

Page 9: Multi-Robot Control and Integration

Microbot Example

Serial Data @step(230,-1000,700,400,0,0,0)

step(speed, shoulder, elbow, wrist, pitch, roll, yaw)

Serial Data @close(230)

close(speed)

Page 10: Multi-Robot Control and Integration

Client-Side (PC) Programming

• Created in Java– students are familiar with it– easy multithreading– object oriented by design– familiar design patterns for abstractness

Page 11: Multi-Robot Control and Integration

Implemented Designs

Listener Pattern

Interpreter Pattern

Command Pattern

!! Announcement !!Data Ready…

What? What?Y3oo9 r483hw

Y3oo9 r483hwHello friend

Hello friend

Execute()

Page 12: Multi-Robot Control and Integration

User Interface

Page 13: Multi-Robot Control and Integration

Programs

• Written in XML

– X Extensible

– M Markup

– L Language

• Loaded from a file, compiled into DOM tree, and executed from top-to-bottom

Page 14: Multi-Robot Control and Integration

XML Example

<?xml version=“1.0” encoding=“utf-8” ?><person>

<first-name>John</first-name><last-name>Doe</last-name><interests>

<interest priority=“1”>Cricket</interest><interest priority=“2”>Hamburgers</interest>

</interests></person>

Page 15: Multi-Robot Control and Integration

RCML

• Robot Control Markup Language

– <configuration>• <conn>

– <execution>• <step>• <sequence>• <set>• <wait>

• <prompt>• <for>• <break>

Page 16: Multi-Robot Control and Integration

RCML (continued)

<step>– Executes a command.– Example: <step>staubli.pickPiece()</step>

<sequence>– Wrapper tag.– Iterates through each inner element executing

one at a time.

Page 17: Multi-Robot Control and Integration

RCML (continued)

<set>– Executes all inner elements simultaneously– Does not release control until all elements have

finished

<wait>– Has a single timeout attribute– Just simply stalls the Thread for the allotted time

Page 18: Multi-Robot Control and Integration

RCML (continued)

<prompt>– Prompts the user for some input / response– Contains <option> tags that map values to a

process<prompt>

<option value=“Yes”>…. Do something here ….

</option></prompt>

Page 19: Multi-Robot Control and Integration

RCML (continued)

<for>– Uses the attribute “count” to loop over it’s inner

elements a certain number of times– Count can also be “infinity” as long as there is a

break statement within the <for> tag<break>

– Used to break out of a for loop – An easy way to continue on with the program

based on user interaction

Page 20: Multi-Robot Control and Integration

RCML Example<configuration>

<conn variable=“staubli” connection=“COM2” /></configuration><execution>

<prompt question=“Continue?”><option value=“no”>

<step>staubli.pickTrack()</step></option><option value=“no”>

<break /></execution>

Page 21: Multi-Robot Control and Integration

Known Issues

• Scara owns the IO– When “wait” is called it blocks the Scara’s

functionality

• RCML needs more Error Handling

Page 22: Multi-Robot Control and Integration

What’s Next

• Resolve IO issue• Error Handling• Extend RCML to handle variables and logic

– #{index} – <if expression=“#{index} == 4”>…</if>

• Make some cool, multi-robot programs (maybe even make them serve a purpose)

Page 23: Multi-Robot Control and Integration

Special Thanks

Dr. Carlos Luck– Advising– Knowledge of Configurations / Possible Issues

Josiah Plummer– Adept Programming and Manipulation– Serial IO– Everything pertaining to robots….

Page 24: Multi-Robot Control and Integration

THE ENDQuestions?