Multi-Robot Control and Integration
description
Transcript of Multi-Robot Control and Integration
![Page 1: Multi-Robot Control and Integration](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/1.jpg)
Multi-Robot Control and IntegrationUniversity of Southern MaineMay, 2009
![Page 2: Multi-Robot Control and Integration](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/2.jpg)
MembersMike Nelson
Mechanical Engineering / Computer Science
Dan BoissonneaultElectrical Engineering
![Page 3: Multi-Robot Control and Integration](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/3.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/4.jpg)
ScaraWorkspace
StaubliWorkspace
Goal DemonstrationScara to Staubli RouteStaubli to Scara Route
Conveyer BeltGo
![Page 5: Multi-Robot Control and Integration](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/5.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/6.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/7.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/8.jpg)
V+ Example
.PROGRAM example()SPEED 50 ALWAYSMOVE aDELAY 10.0MOVE bCLOSEI
.END
![Page 9: Multi-Robot Control and Integration](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/9.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/10.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/11.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/12.jpg)
User Interface
![Page 13: Multi-Robot Control and Integration](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/13.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/14.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/15.jpg)
RCML
• Robot Control Markup Language
– <configuration>• <conn>
– <execution>• <step>• <sequence>• <set>• <wait>
• <prompt>• <for>• <break>
![Page 16: Multi-Robot Control and Integration](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/16.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/17.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/18.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/19.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/20.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/21.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/22.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/23.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062520/56816331550346895dd3b412/html5/thumbnails/24.jpg)
THE ENDQuestions?