Quagent Client for XSB Prolog
The file quagent_client.P contains predicates that implement
the action (7.1), perception (7.2), and proprioception (7.3) commands from
Quake II as a Robotic and Multi-Agent Platform
Chris Brown, Peter Barnum, Dave Costello, George Ferguson, Bo Hu,
Mike Van Wie
The University of Rochester
Computer Science Department
Rochester, New York 14627
Technical Report 853
XSB Prolog code copyright (C) 2007 Simon D. Levy.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
The following predicates are supported. Note that + indicates an
input parameter, - an output parameter, and
? a parameter that can be either input or output.
Launches a new client in a Quagent server running on localhost at port
33333 (the likeliest defaults). Client is returned in variable Client. This is the
same as quagent_init(localhost, 33333, Client).
- quagent_init(+Host, +Port, -Client)
Launches a new client in a Quagent server running on host named
Host at port number Port. Client is returned in variable
Tells server we are done.
- quagent_walkby(+Client, +Distance)
Walks a certain distance.
- quagent_runby(+Client, +Distance)
Runs a certain distance.
- quagent_turnby(+Client, +Distance)
Turns left (right) by some number of positive (negative) degrees.
Stops any motion.
- quagent_pickup(+Client, +Item)
Picks up named item.
- quagent_drop(+Client, +Item)
Puts down named item.
- quagent_ask_rays(+Client, +NRays, -ItemList)
Queries items surrounding bot in given number of directions. Returns a
list of items, where each item is a name followed by an [X, Y, Z] location.
- quagent_ask_radius(+Client, +Radius, -ItemList)
Queries items in given radius. Returns a list of items, where
each item is a name followed by an [X, Y, Z] location.
Puts camera on bot.
Puts camera on human player.
- quagent_get_where(+Client, -Where)
Gets position, orientation, and velocity. Returns a list of the form
[[X, Y, Z], [Roll, Pitch, Yaw],
Velocity]. Velocity is currently
hard-coded to 1 by Quagents server.
- quagent_get_inventory(+Client, -Inventory)
Gets inventory of items. Returns a list of items.
- quagent_set_energy_low_threshold(+Client, +Threshold)
Sets low-energy threshold. This should really be done in the
- quagent_age_high_threshold(+Client, +Threshold)
Sets high-age threshold. This should really be done in the