Presentation
Transcript of Presentation
![Page 1: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/1.jpg)
A Multi-Robot Environment using MAGNET and Player/Stage
OrWhat I Did on My Summer
Vacation
![Page 2: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/2.jpg)
Summer
Drove to Minneapolis Wrote some software Drove back to Pittsburgh
![Page 3: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/3.jpg)
Preliminaries
Worked at University of Minnesota In the AIRVL lab For Maria Gini
Distributed Robotics and Intelligent Agents for Electronic Commerce
![Page 4: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/4.jpg)
The Project
My initial proposal was to use a market architecture to solve planning for multi-agent SLAM and exploration
What sort of interactions between agents might this entail? Includes all the problems the basic FIRE
scenario brings up Localization assistance is now a
commodity
![Page 5: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/5.jpg)
The Project At the time this seemed like a
reasonable idea We could use existing UMN software
for the market (MAGNET, the Multi Agent Negotiation Testbed)
The lab is doing interesting work on the SLAM problem, and has existing EKF implementation which are supported in-house. (Rybski and Huet)
![Page 6: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/6.jpg)
The Project
At the time this seemed like a reasonable idea The Player/Stage simulator works well
for simulating Pioneers with SICK lasers, which was the target hardware.
A masters student was already working on robot bidding algorithms for MAGNET as part of his thesis.
![Page 7: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/7.jpg)
The Project So what did I actually get done?
Developed some ideas about planning for SLAM using the extended information matrix (sparsified inverse covariance matrix)
Worked out how to maintain an approximate freespace map using uncertain data from several robots using reverse kalman filter on position data
Wrote a 3-layer distributed multi-robot architecture that differs from FIRE in a few interesting ways
![Page 8: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/8.jpg)
The Software
I used one language for bidding, execution, and behaviors. Saves on code and upkeep, since
there’s only one lexer/parser, and one set of parse tree node classes.
Inter-agent synchronization is handled by the success or failure of ‘comm actions’ rather than language features.
![Page 9: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/9.jpg)
The Language Plans are a set of plans and actions. Plans have start and end constraints. Plans and actions end in either success
or failure. End state propagates upwards unless the
executable was specified as try-only. We can define new actions and plans in
terms of existing ones.
![Page 10: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/10.jpg)
The LanguagePlan Language:
Keywords: plan, constraint, agent, self, begin_when, end_when, start, finish, succeed, fail, true, try
Plan: '{' PlanContents '}' | PLANNAMEPlanContents: PlanContents (Define|Agent|Begin|End|Executable) ';'Define: plan PLANNAME Plan | constraint CONSTRAINTNAME ConstraintAgent: agent AGENTNAME | selfBegin: begin_when ConstraintEnd: end_when ConstraintExecutable: [try] ([NAME] Plan|Action)Action: ACTIONNAME( Arguments )Constraint: CBase | Constraint ('&'|'|') Constraint | '!' Constraint | '('
Constraint ')'CBase: CONSTRAINTNAME | start PLANNAME | end PLANNAME | finish
PLANNAME | succeed PLANNAME | fail PLANNAME | true
![Page 11: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/11.jpg)
The LanguageInformal Semantics:plan: Plans contain a set of actions and other plans which they execute
simultaneously.constraint: Constraints are boolean conditionsagent: The agent keyword tells a plan and its childen which agent is to execute
actions in this plan subtree.self: Specifies that the agent executing the plan is to carry out actions in this
subtreebegin_when: the plan begins executing its actions and sub-plans when this is trueend_when: the plan will not succeed unless this is truestart: specifies a constraint that is met once the named plan beginsfinish: specifies a constraint that is met once the named plan endssucceed: specifies a constraint that is met once the named plan succeedsfail: specifies a constraint that is met once the named plan failstrue: specifies a constraint that is always metdefine: defines a named plan or constrainttry: the plan will attempt to execute the given action or plan, but failure will not
propagate upwards
![Page 12: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/12.jpg)
The Language
This is enough to compactly describe all the plans I was working with. Patrol Rendezvous Scan at location(s)
![Page 13: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/13.jpg)
Behavioral Level
Behaviors derive from the action class of the language. They access hardware through a read/read-write lock mechanism which controls access to the Player server.
Actions can be used as combiners for other actions.
![Page 14: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/14.jpg)
Executive Level Executes plans Maintains a globally shared and
automatically updated database of specific state data (agent positions, freespace estimates, etc)
Packages sets of laser scans into cell hits and sends them to a map server which compiles a global freespace estimate.
![Page 15: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/15.jpg)
Planning/Market
RFQs contain plans in the language. This lets us express task bundles, or subtasks for secondary markets.
Incremental bidding procedure, if some tasks are unbid after the first round, request additional bids that must include at least one of the unbid tasks.
![Page 16: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/16.jpg)
Planning/Market
Market interface is an extension to the MAGNET architecture to support distributed bidding with real suppliers, a GUI client, and a robot supplier client with JNI interface to the bid generation code.
![Page 17: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/17.jpg)
What’s missing
All covariances are zero Masters student got a real job, bid
generation doesn’t really work.
![Page 18: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/18.jpg)
What Works?
Behavioral and Executive are solid Simple bidding, bid search, and
task allocation work. Bid generation is too simple to be
interesting, but works.
![Page 19: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/19.jpg)
Software I Didn’t Write MAGNET
General interface to combinatorial auctions. Developed for research on automated supply chains, electronic commerce, and other ‘real’ markets.
Easy to switch search algorithms Excellent logging, batch experiment execution. Not too difficult to switch bidding procedures Possible to use distributed agents
![Page 20: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/20.jpg)
Software I Didn’t Write Magnet
No easy way to interface with a C/C++ environment.
Task descriptors are limited to commodity domains, not good for robotics tasks where task cost depends mostly on agent state.
www.cs.umn.edu/magnet for papers and info
Maria Gini and John Collins
![Page 21: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/21.jpg)
Software I Didn’t Write
Player/Stage Widely used open source robot
simulator, from USC Clients connect to player server using
one of a number of client libraries. Player server talks to real hardware or
a simulator
![Page 22: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/22.jpg)
Software I Didn’t Write Player/Stage
Stage is a 2D simulator, Gazebo is a new 3D simulator with dynamics from the ODE library.
Not easy to extend, making minor changes to the simulator requires tweaking bits in client library, player, and stage.
Designed for mobile robots, primarily Pioneer-like ones.
![Page 23: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/23.jpg)
Software I Didn’t Write
Player drivers can encapsulate high level functionality Localization filters, for eg
Works well with very large numbers of simple robots.
playerstage.sourceforge.net
![Page 24: Presentation](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c2af4fbb61ebf22b8b46a0/html5/thumbnails/24.jpg)
Further Work Generate some results and write a
paper for ICRA 2004. Using a cargo transportation scenario with
heterogeneous robots. Compare different search algorithms,
bidding procedures. UMN undergrad Matt Reinke is
continuing development of the system. A more extensible bidder (mine was a quick
hack) Reuse executable and behavioral layers in
other projects.