multi-robot control and integration
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 PresentationTRANSCRIPT
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?