250 likes | 410 Views
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
E N D
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 • Construct easy-to-use graphical interface for users • Define a programming language that utilizes new command sets
Goal Demonstration Scara to Staubli Route Go Staubli to Scara Route Conveyer Belt Staubli Workspace Scara Workspace
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 Controllersand the Client is the PC. Response Adept Controller Client Adept Controllers Request Microbot Controller Microbot Controllers 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 ALWAYS MOVE a DELAY 10.0 MOVE b CLOSEI .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 Y3oo9 r483hw What? Listener Pattern Interpreter Pattern Command Pattern What? Execute() Y3oo9 r483hw Hello friend !! Announcement !! Data Ready… Hello friend
Programs • Written in XML • X Extensible • M Markup • L Language • Loaded from a file, compiled into DOMtree, 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> <interestpriority=“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> <connvariable=“staubli” connection=“COM2” /> </configuration> <execution> <prompt question=“Continue?”> <option value=“no”> <step>staubli.pickTrack()</step> </option> <optionvalue=“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 END Questions?