1 / 24

Multi-Robot Control and Integration

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

iolana
Download Presentation

Multi-Robot Control and Integration

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Members Mike Nelson Mechanical Engineering / Computer Science Dan Boissonneault Electrical Engineering

  3. 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

  4. Goal Demonstration Scara to Staubli Route Go Staubli to Scara Route Conveyer Belt Staubli Workspace Scara Workspace

  5. 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

  6. 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

  7. Controller Programming Languages • Adept V+ • Similar to a BASIC language • No multithreading • No data type transformation • Microbot Command Set • String based commands

  8. V+ Example .PROGRAM example() SPEED 50 ALWAYS MOVE a DELAY 10.0 MOVE b CLOSEI .END

  9. 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)

  10. Client-Side (PC) Programming • Created in Java • students are familiar with it • easy multithreading • object oriented by design • familiar design patterns for abstractness

  11. Implemented Designs Y3oo9 r483hw What? Listener Pattern Interpreter Pattern Command Pattern What? Execute() Y3oo9 r483hw Hello friend !! Announcement !! Data Ready… Hello friend

  12. User Interface

  13. Programs • Written in XML • X Extensible • M Markup • L Language • Loaded from a file, compiled into DOMtree, and executed from top-to-bottom

  14. 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>

  15. RCML • Robot Control Markup Language • <configuration> • <conn> • <execution> • <step> • <sequence> • <set> • <wait> • <prompt> • <for> • <break>

  16. RCML (continued) <step> • Executes a command. • Example: <step>staubli.pickPiece()</step> <sequence> • Wrapper tag. • Iterates through each inner element executing one at a time.

  17. 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

  18. 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>

  19. 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

  20. RCML Example <configuration> <connvariable=“staubli” connection=“COM2” /> </configuration> <execution> <prompt question=“Continue?”> <option value=“no”> <step>staubli.pickTrack()</step> </option> <optionvalue=“no”> <break /> </execution>

  21. Known Issues • Scara owns the IO • When “wait” is called it blocks the Scara’s functionality • RCML needs more Error Handling

  22. 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)

  23. Special Thanks Dr. Carlos Luck • Advising • Knowledge of Configurations / Possible Issues Josiah Plummer • Adept Programming and Manipulation • Serial IO • Everything pertaining to robots….

  24. THE END Questions?

More Related