multi-robot control and integration

Post on 23-Feb-2016

32 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

Multi-Robot Control and IntegrationUniversity of Southern MaineMay, 2009

MembersMike Nelson

Mechanical Engineering / Computer Science

Dan BoissonneaultElectrical Engineering

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

ScaraWorkspace

StaubliWorkspace

Goal DemonstrationScara to Staubli RouteStaubli to Scara Route

Conveyer BeltGo

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

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

Controller Programming Languages

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

• Microbot Command Set– String based commands

V+ Example

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

.END

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)

Client-Side (PC) Programming

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

Implemented Designs

Listener Pattern

Interpreter Pattern

Command Pattern

!! Announcement !!Data Ready…

What? What?Y3oo9 r483hw

Y3oo9 r483hwHello friend

Hello friend

Execute()

User Interface

Programs

• Written in XML

– X Extensible

– M Markup

– L Language

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

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>

RCML

• Robot Control Markup Language

– <configuration>• <conn>

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

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

RCML (continued)

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

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

one at a time.

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

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>

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

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>

Known Issues

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

functionality

• RCML needs more Error Handling

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)

Special Thanks

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

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

THE ENDQuestions?

top related