1429 lines
56 KiB
HTML
1429 lines
56 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||
<HTML>
|
||
<HEAD>
|
||
<META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
|
||
<TITLE>GNU/Linux AI & Alife HOWTO: Agents & Robotics</TITLE>
|
||
<LINK HREF="AI-Alife-HOWTO-7.html" REL=next>
|
||
<LINK HREF="AI-Alife-HOWTO-5.html" REL=previous>
|
||
<LINK HREF="AI-Alife-HOWTO.html#toc6" REL=contents>
|
||
</HEAD>
|
||
<BODY>
|
||
<A HREF="AI-Alife-HOWTO-7.html">Next</A>
|
||
<A HREF="AI-Alife-HOWTO-5.html">Previous</A>
|
||
<A HREF="AI-Alife-HOWTO.html#toc6">Contents</A>
|
||
<HR>
|
||
<H2><A NAME="Agents"></A> <A NAME="Agents & Robotics"></A> <A NAME="s6">6.</A> <A HREF="AI-Alife-HOWTO.html#toc6">Agents & Robotics</A> </H2>
|
||
|
||
|
||
<P>Software brains for computers that do stuff. Everythin from fun and
|
||
games to data mining to physical robotics. This is a great hobbiest
|
||
area of AI with many areas of interest to pursue. I've broken it down
|
||
loosely into 2 sections. AI for purely software based agents and that
|
||
for embodied agents (even if only simulated).</P>
|
||
|
||
|
||
<H2><A NAME="Software Agents"></A> <A NAME="ss6.1">6.1</A> <A HREF="AI-Alife-HOWTO.html#toc6.1">Software Agents</A>
|
||
</H2>
|
||
|
||
|
||
<P>Also known as intelligent software agents or just agents, this
|
||
area of AI research deals with simple applications of small
|
||
programs that aid the user in his/her work. They can be mobile
|
||
(able to stop their execution on one machine and resume it on
|
||
another) or static (live in one machine). They are usually
|
||
specific to the task (and therefore fairly simple) and meant
|
||
to help the user much as an assistant would.</P>
|
||
<P>
|
||
<DL>
|
||
<P>
|
||
<A NAME="2APL"></A> </P>
|
||
<DT><B>2APL</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://apapl.sourceforge.net/">http://apapl.sourceforge.net/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>2APL (pronounced as double-a-p-l) is an agent-oriented programming
|
||
language that facilitates the implementation of multi-agent systems. At
|
||
the multi-agent level, it provides programming constructs to specify a
|
||
multi-agent system in terms of a set of individual agents, a set of
|
||
environments in which they can perform actions, and the access relation
|
||
between the individual agents and the environments. At the individual
|
||
agent level, it provides programming constructs to implement cognitive
|
||
agents based on the BDI architecture.</P>
|
||
|
||
<P>
|
||
<A NAME="3APL"></A> </P>
|
||
<DT><B>3APL</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.cs.uu.nl/3apl/">http://www.cs.uu.nl/3apl/</A></LI>
|
||
<LI>Wikipedia entry:
|
||
<A HREF="http://en.wikipedia.org/wiki/3APL">http://en.wikipedia.org/wiki/3APL</A></LI>
|
||
<LI>Mobile version:
|
||
<A HREF="http://www.cs.uu.nl/3apl-m/">http://www.cs.uu.nl/3apl-m/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>3APL is a programming language for implementing cognitive agents. It
|
||
provides programming constructs for implementing agents' beliefs,
|
||
goals, basic capabilities (such as belief updates, external actions, or
|
||
communication actions) and a set of practical reasoning rules through
|
||
which agents' goals can be updated or revised. The 3APL programs are
|
||
executed on the 3APL platform. Each 3APL program is executed by means
|
||
of an interpreter that deliberates on the cognitive attitudes of that
|
||
agent.</P>
|
||
|
||
<P>
|
||
<A NAME="Agent"></A> </P>
|
||
<DT><B>Agent</B><DD><P>
|
||
<UL>
|
||
<LI>FTP site:
|
||
<A HREF="http://www.cpan.org/modules/by-category/23_Miscellaneous_Modules/Agent/">http://www.cpan.org/modules/by-category/23_Miscellaneous_Modules/Agent/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>The Agent is a prototype for an Information Agent system. It is
|
||
both platform and language independent, as it stores contained
|
||
information in simple packed strings. It can be packed and shipped
|
||
across any network with any format, as it freezes itself in its
|
||
current state.</P>
|
||
|
||
<P>
|
||
<A NAME="agentTool"></A> </P>
|
||
<DT><B>agentTool</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://agenttool.cis.ksu.edu/">http://agenttool.cis.ksu.edu/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>agentTool is a Eclipse-based graphical development environment to help
|
||
users analyze, design, and implement multiagent systems. It is
|
||
designed to support the highly tailorable Organization-based Multiagent
|
||
Systems Engineering (O-MaSE) methodology. agentTool currently supports
|
||
all O-MaSE models including the Goal Model, Agent Model, Role Model,
|
||
Organization Model, Protocol Model, Plan Model, Capability-Action
|
||
Model, Domain Model, and Policy Model.</P>
|
||
|
||
<P>
|
||
<A NAME="Aglets"></A> </P>
|
||
<DT><B>Aglets Workbench</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.trl.ibm.com/aglets/index_e.htm">http://www.trl.ibm.com/aglets/index_e.htm</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>An aglet is a Java object that can move from one host on the
|
||
Internet to another. That is, an aglet that executes on one host can
|
||
suddenly halt execution, dispatch to a remote host, and resume
|
||
execution there. When the aglet moves, it takes along its program code
|
||
as well as its state (data). A built-in security mechanism makes it
|
||
safe for a computer to host untrusted aglets. The Java Aglet API
|
||
(J-AAPI) is a proposed public standard for interfacing aglets and
|
||
their environment. J-AAPI contains methods for initializing an aglet,
|
||
message handling, and dispatching, retracting,
|
||
deactivating/activating, cloning, and disposing of the aglet. J-AAPI
|
||
is simple, flexible, and stable. Application developers can write
|
||
platform-independent aglets and expect them to run on any host that
|
||
supports J-AAPI.</P>
|
||
|
||
<P>
|
||
<A NAME="AJA"></A> </P>
|
||
<DT><B>AJA</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://home.arcor.de/michal.badonsky/AJA/">http://home.arcor.de/michal.badonsky/AJA/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>AJA (Adaptable Java Agents) consists of two programming languages.
|
||
HADL (Higher Agent Definition Language) is a higher-level language used
|
||
for the description of the main agent parts. Java+ is the lower-level
|
||
language used for the programming of the agent parts defined in HADL.
|
||
It is actually Java enriched with the constructs for accessing
|
||
higher-level agent parts defined in HADL.</P>
|
||
|
||
<P>
|
||
<A NAME="A.L.I.C.E."></A> </P>
|
||
<DT><B>A.L.I.C.E.</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.alicebot.org/">http://www.alicebot.org/</A></LI>
|
||
<LI>Other AIML implementations:
|
||
<A HREF="http://pyaiml.sourceforge.net/">http://pyaiml.sourceforge.net/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>The ALICE software implements AIML (Artificial Intelligence Markup
|
||
Language), a non-standard evolving markup language for creating chat
|
||
robots. The primary design feature of AIML is minimalism. Compared with
|
||
other chat robot languages, AIML is perhaps the simplest. The pattern
|
||
matching language is very simple, for example permitting only one
|
||
wild-card ('*') match character per pattern. AIML is an XML language,
|
||
implying that it obeys certain grammatical meta-rules. The choice of
|
||
XML syntax permits integration with other tools such as XML editors.
|
||
Another motivation for XML is its familiar look and feel, especially to
|
||
people with HTML experience.</P>
|
||
|
||
<P>
|
||
<A NAME="APRIL"></A> </P>
|
||
<DT><B>APRIL</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://sourceforge.net/projects/networkagent/">http://sourceforge.net/projects/networkagent/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>APRIL is a symbolic programming language that is designed for writing
|
||
mobile, distributed and agent-based systems especially in an Internet
|
||
environment. It has advanced features such as a macro sub-language,
|
||
asynchronous message sending and receiving, code mobility, pattern
|
||
matching, higher-order functions and strong typing. The language is
|
||
compiled to byte-code which is then interpreted by the APRIL
|
||
runtime-engine. APRIL now requires the InterAgent Communications Model
|
||
(ICM) to be installed before it can be installed. [Ed. ICM can be found
|
||
at the same web site]</P>
|
||
|
||
<P>
|
||
<A NAME="Ara"></A> </P>
|
||
<DT><B>Ara</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://wwwagss.informatik.uni-kl.de/Projekte/Ara/index_e.html">http://wwwagss.informatik.uni-kl.de/Projekte/Ara/index_e.html</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Ara is a platform for the portable and secure execution of
|
||
mobile agents in heterogeneous networks. Mobile agents in this
|
||
sense are programs with the ability to change their host machine
|
||
during execution while preserving their internal state. This
|
||
enables them to handle interactions locally which otherwise had
|
||
to be performed remotely. Ara's specific aim in comparison to
|
||
similar platforms is to provide full mobile agent functionality
|
||
while retaining as much as possible of established programming
|
||
models and languages.</P>
|
||
|
||
<P>
|
||
<A NAME="Bee-gent"></A> </P>
|
||
<DT><B>Bee-gent</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.toshiba.co.jp/rdc/beegent/download/download.htm">http://www.toshiba.co.jp/rdc/beegent/download/download.htm</A></LI>
|
||
<LI>FAQ:
|
||
<A HREF="http://www.toshiba.co.jp/rdc/beegent/faq/faq.htm">http://www.toshiba.co.jp/rdc/beegent/faq/faq.htm</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Bee-gent is a new type of development framework in that it is a 100%
|
||
pure agent system. As opposed to other systems which make only some use
|
||
of agents, Bee-gent completely "Agentifies" the communication that
|
||
takes place between software applications. The applications become
|
||
agents, and all messages are carried by agents. Thus, Bee-gent allows
|
||
developers to build flexible open distributed systems that make optimal
|
||
use of existing applications.</P>
|
||
|
||
<P>
|
||
<A NAME="Bond"></A> </P>
|
||
<DT><B>Bond</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://bond.cs.ucf.edu/">http://bond.cs.ucf.edu/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Bond is a Java based distributed object system and agent framework. It
|
||
implements a message based middleware and associated services like
|
||
directory, persistence, monitoring and security. Bond allows to easily
|
||
build multi agent, distributed applications. Another application of
|
||
Bond will be a Virtual Laboratory supporting data annotation and
|
||
metacomputing.</P>
|
||
|
||
<P>
|
||
<A NAME="Cougaar"></A> </P>
|
||
<DT><B>Cougaar</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.cougaar.org/">http://www.cougaar.org/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Cougaar is java-based architecture for the construction of large-scale
|
||
distributed agent-based applications. It is the product of a
|
||
multi-year DARPA research project into large scale agent systems and
|
||
includes not only the core architecture but also a variety of
|
||
demonstration, visualization and management components to simplify the
|
||
development of complex, distributed applications. [Yet another java
|
||
based agent system -- ed.]</P>
|
||
|
||
<P>
|
||
<A NAME="D'Agent"></A> </P>
|
||
<DT><B>D'Agent (was AGENT TCL)</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://agent.cs.dartmouth.edu/software/agent2.0/">http://agent.cs.dartmouth.edu/software/agent2.0/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>A transportable agent is a program that can migrate from machine
|
||
to machine in a heterogeneous network. The program chooses when and
|
||
where to migrate. It can suspend its execution at an arbitrary point,
|
||
transport to another machine and resume execution on the new machine.
|
||
For example, an agent carrying a mail message migrates first to a
|
||
router and then to the recipient's mailbox. The agent can perform
|
||
arbitrarily complex processing at each machine in order to ensure that
|
||
the message reaches the intended recipient.</P>
|
||
|
||
<P>
|
||
<A NAME="DIET Agents"></A> </P>
|
||
<DT><B>DIET Agents</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://diet-agents.sourceforge.net">http://diet-agents.sourceforge.net</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>DIET Agents is a lightweight, scalable and robust multi-agent platform
|
||
in Java. It is especially suitable for rapidly developing P2P prototype
|
||
applications and/or adaptive, distributed applications that use
|
||
bottom-up, nature-inspired techniques.</P>
|
||
|
||
<P>
|
||
<A NAME="FishMarket"></A> </P>
|
||
<DT><B>FishMarket</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.iiia.csic.es/Projects/fishmarket/newindex.html">http://www.iiia.csic.es/Projects/fishmarket/newindex.html</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>FM - The FishMarket project conducted at the Artificial Intelligence
|
||
Research Institute (IIIA-CSIC) attempts to contribute in that direction
|
||
by developing FM, an agent-mediated electronic auction house which has
|
||
been evolved into a test-bed for electronic auction markets. The
|
||
framework, conceived and implemented as an extension of FM96.5 (a
|
||
Java-based version of the Fishmarket auction house), allows to define
|
||
trading scenarios based on fish market auctions (Dutch auctions). FM
|
||
provides the framework wherein agent designers can perform controlled
|
||
experimentation in such a way that a multitude of experimental market
|
||
scenarios--that we regard as tournament scenarios due to the
|
||
competitive nature of the domain-- of varying degrees of realism and
|
||
complexity can be specified, activated, and recorded; and trading
|
||
(buyer and seller) heterogeneous (human and software) agents compared,
|
||
tuned and evaluated.</P>
|
||
|
||
<P>
|
||
<A NAME="Grasshopper"></A> </P>
|
||
<DT><B>Grasshopper</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.grasshopper.de/">http://www.grasshopper.de/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Another Java agent system. Full featured and actively developed.
|
||
Commercial, but free. Historically targeted at embedded systems.</P>
|
||
|
||
<P>
|
||
<A NAME="Hive"></A> </P>
|
||
<DT><B>Hive</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://hive.sourceforge.net/">http://hive.sourceforge.net/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Hive is a Java software platform for creating distributed applications.
|
||
Using Hive, programmers can easily create systems that connect and use
|
||
data from all over the Internet. At its heart, Hive is an environment
|
||
for distributed agents to live, communicating and moving to fulfill
|
||
applications. We are trying to make the Internet alive.</P>
|
||
|
||
<P>
|
||
<A NAME="ICM"></A> </P>
|
||
<DT><B>ICM</B><DD><P>
|
||
<UL>
|
||
<LI>SourceForge site:
|
||
<A HREF="http://sourceforge.net/projects/networkagent/">http://sourceforge.net/projects/networkagent/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>The Inter-Agent Communication Model (ICM) is a communication mechanism
|
||
that can be used for sending messages between agents in an asynchronous
|
||
fashion. Its intended application area is as a transportation mechanism
|
||
for agent communication languages (ACLs), such as KQML and FIPA's ACL.</P>
|
||
|
||
<P>
|
||
<A NAME="Jacomma"></A> </P>
|
||
<DT><B>Jacomma</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://jacomma.sourceforge.net/">http://jacomma.sourceforge.net/</A></LI>
|
||
<LI>SourceForge site:
|
||
<A HREF="http://sourceforge.net/projects/jacomma/">http://sourceforge.net/projects/jacomma/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Jacomma is an agent development platform/framework for developing
|
||
distributed, mobile, and reactive information agents with heterogeneous
|
||
communication capabilities, in Java and JPython.</P>
|
||
<P>Jacomma provides a development framework and an execution environment,
|
||
which sits on top of the Inter-Agent Communication Model
|
||
infrastructure. The ICM defines a communication protocol, a store and
|
||
forward messaging architecture, and low level communication
|
||
infrastructure for message exchange. Communication is truly
|
||
asynchronous, based on TCP sockets.</P>
|
||
<P>ICM has an entry in this howto, or you can find it via a link off the
|
||
site.</P>
|
||
|
||
<P>
|
||
<A NAME="Jade"></A> </P>
|
||
<DT><B>Jade</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://sharon.cselt.it/projects/jade/">http://sharon.cselt.it/projects/jade/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>JADE (Java Agent DEvelopment Framework) is a software framework fully
|
||
implemented in Java language. It simplifies the implementation of
|
||
multi-agent systems through a middle-ware that claims to comply with
|
||
the FIPA specifications and through a set of tools that supports the
|
||
debugging and deployment phase. The agent platform can be distributed
|
||
across machines (which not even need to share the same OS) and the
|
||
configuration can be controlled via a remote GUI. The configuration can
|
||
be even changed at run-time by moving agents from one machine to
|
||
another one, as and when required.</P>
|
||
|
||
<P>
|
||
<A NAME="JAM Agent"></A> </P>
|
||
<DT><B>JAM Agent</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.marcush.net/IRS/irs_downloads.html">http://www.marcush.net/IRS/irs_downloads.html</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>JAM supports both top-down, goal-based reasoning and bottom-up
|
||
data-driven reasoning. JAM selects goals and plans based on maximal
|
||
priority if metalevel reasoning is not used, or user-developed
|
||
metalevel reasoning plans if they exist. JAM's conceptualization of
|
||
goals and goal achievement is more classically defined (UMPRS is more
|
||
behavioral performance-based than truly goal-based) and makes the
|
||
distinction between plans to achieve goals and plans that simply encode
|
||
behaviors. Goal-types implemented include achievement (attain a
|
||
specified world state), maintenance (re-attain a specified world
|
||
state), and performance. Execution of multiple simultaneous goals are
|
||
supported, with suspension and resumption capabilities for each goal
|
||
(i.e., intention) thread. JAM plans have explicit precondition and
|
||
runtime attributes that restrict their applicability, a postcondition
|
||
attribute, and a plan attributes section for specifying
|
||
plan/domain-specific plan features. Available plan constructs include:
|
||
sequencing, iteration, subgoaling, atomic (i.e., non-interruptable)
|
||
plan segments, n-branch deterministic and non-deterministic conditional
|
||
execution, parallel execution of multiple plan segments, goal-based or
|
||
world state-based synchronization, an explicit failure-handling
|
||
section, and Java primitive function definition through building it
|
||
into JAM as well as the invocation of predefined (i.e., legacy) class
|
||
members via Java's reflection capabilities without having to build it
|
||
into JAM.</P>
|
||
|
||
<P>
|
||
<A NAME="JASA"></A> </P>
|
||
<DT><B>JASA</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.csc.liv.ac.uk/~sphelps/jasa">http://www.csc.liv.ac.uk/~sphelps/jasa</A></LI>
|
||
<LI>Alt Web site:
|
||
<A HREF="http://sourceforge.net/projects/jasa/">http://sourceforge.net/projects/jasa/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>JASA is a high performance auction simulator suitable for conducting
|
||
experiments in agent-based computational economics. It implements
|
||
various auction mechanisms, trading strategies and experiments
|
||
described in the computational economics literature, and as the
|
||
software matures we hope that it will become a repository for reference
|
||
implementations of commonly used mechanisms, strategies and learning
|
||
algorithms.</P>
|
||
|
||
<P>
|
||
<A NAME="Jason"></A> </P>
|
||
<DT><B>Jason</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://jason.sourceforge.net/">http://jason.sourceforge.net/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>A Java-based interpreter for an extended version of AgentSpeak. Unlike
|
||
other BDI (Beliefs-Desires-Intentions) agent tools, Jason implements
|
||
the operational semantics of AgentSpeak, a BDI logic programming
|
||
language extensively discussed in the literature. It is available as
|
||
Open Source under GNU LGPL.</P>
|
||
|
||
<P>
|
||
<A NAME="JATLite"></A> </P>
|
||
<DT><B>JATLite</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://java.stanford.edu/">http://java.stanford.edu/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>JATLite is providing a set of java packages which makes easy to
|
||
build multi-agent systems using Java. JATLite provides only
|
||
light-weight, small set of packages so that the developers can
|
||
handle all the packages with little efforts. For flexibility
|
||
JATLite provides four different layers from abstract to Router
|
||
implementation. A user can access any layer we are
|
||
providing. Each layer has a different set of assumptions. The
|
||
user can choose an appropriate layer according to the
|
||
assumptions on the layer and user's application. The
|
||
introduction page contains JATLite features and the set of
|
||
assumptions for each layer.</P>
|
||
|
||
<P>
|
||
<A NAME="JATLiteBeans"></A> </P>
|
||
<DT><B>JATLiteBeans</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://waitaki.otago.ac.nz/JATLiteBean/">http://waitaki.otago.ac.nz/JATLiteBean/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>
|
||
<UL>
|
||
<LI>Improved, easier-to-use interface to JATLite features
|
||
including KQML message parsing, receiving, and sending.
|
||
</LI>
|
||
<LI>Extensible architecture for message handling and agent
|
||
"thread of control" management
|
||
</LI>
|
||
<LI>Useful functions for parsing of simple KQML message content
|
||
</LI>
|
||
<LI>JATLiteBean supports automatic advertising of agent
|
||
capabilities to facilitator agents
|
||
</LI>
|
||
<LI>Automatic, optional, handling of the "forward" performative
|
||
</LI>
|
||
<LI>Generic configuration file parser
|
||
</LI>
|
||
<LI>KQML syntax checker
|
||
</LI>
|
||
</UL>
|
||
</P>
|
||
|
||
<P>
|
||
<A NAME="Java Agent Template"></A> </P>
|
||
<DT><B>Java(tm) Agent Template</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www-cdr.stanford.edu/ABE/JavaAgent.html">www-cdr.stanford.edu/ABE/JavaAgent.html</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>The JAT provides a fully functional template, written entirely in
|
||
the Java language, for constructing software agents which communicate
|
||
peer-to-peer with a community of other agents distributed over the
|
||
Internet. Although portions of the code which define each agent are
|
||
portable, JAT agents are not migratory but rather have a static
|
||
existence on a single host. This behavior is in contrast to many other
|
||
"agent" technologies. (However, using the Java RMI, JAT agents could
|
||
dynamically migrate to a foreign host via an agent resident on that
|
||
host). Currently, all agent messages use KQML as a top-level protocol
|
||
or message wrapper. The JAT includes functionality for dynamically
|
||
exchanging "Resources", which can include Java classes (e.g. new
|
||
languages and interpreters, remote services, etc.), data files and
|
||
information inlined into the KQML messages.</P>
|
||
|
||
<P>
|
||
<A NAME="lyntin"></A> </P>
|
||
<DT><B>lyntin</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://lyntin.sourceforge.net/">lyntin.sourceforge.net/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Lyntin is an extensible Mud client and framework for the creation of
|
||
autonomous agents, or bots, as well as mudding in general. Lyntin is
|
||
centered around Python, a dynamic, object-oriented, and fun programming
|
||
language and based on TinTin++ a lovely mud client.</P>
|
||
|
||
<P>
|
||
<A NAME="Mole"></A> </P>
|
||
<DT><B>Mole</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://mole.informatik.uni-stuttgart.de/">mole.informatik.uni-stuttgart.de/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Mole is an agent system supporting mobile agents programmed in
|
||
Java. Mole's agents consist of a cluster of objects, which have
|
||
no references to the outside, and as a whole work on tasks given
|
||
by the user or another agent. They have the ability to roam a
|
||
network of "locations" autonomously. These "locations" are an
|
||
abstraction of real, existing nodes in the underlying
|
||
network. They can use location-specific resources by
|
||
communicating with dedicated agents representing these
|
||
services. Agents are able to use services provided by other
|
||
agents and to provide services as well.</P>
|
||
|
||
<P>
|
||
<A NAME="Narval"></A> </P>
|
||
<DT><B>Narval</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.logilab.org/">www.logilab.org</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Narval is the acronym of "Network Assistant Reasoning with a Validating
|
||
Agent Language". It is a personal network assistant based on artificial
|
||
intelligence and agent technologies. It executes recipes (sequences of
|
||
actions) to perform tasks. It is easy to specify a new action using XML
|
||
and to implement it using Python. Recipes can be built and debugged
|
||
using a graphical interface.</P>
|
||
|
||
<P>
|
||
<A NAME="NeL"></A> </P>
|
||
<DT><B>NeL</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.nevrax.org/">www.nevrax.org</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>NeL is actually a game development library (for massive multi-player
|
||
games), but I'm including it here as it (will) include a fairly
|
||
sizable AI library. Here's a blurb from the whitepaper:</P>
|
||
<P>The purpose of the AI library is to provide a pragmatic approach to
|
||
creating a distributed agents platform. Its focus is agents; individual
|
||
entities that communicate regardless of location, using an
|
||
action-reaction model.</P>
|
||
|
||
<P>
|
||
<A NAME="OAA"></A> </P>
|
||
<DT><B>OAA</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.ai.sri.com/~oaa/">www.ai.sri.com/~oaa/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>The Open Agent Architecture is a framework in which a community of
|
||
software agents running on distributed machines can work together on
|
||
tasks assigned by human or non-human participants in the community.
|
||
Distributed cooperation and high-level communication are two ideas
|
||
central to the foundation of the OAA.</P>
|
||
<P>It defines an interagent communication language and supports multiple
|
||
platforms and programming languages.</P>
|
||
|
||
<P>
|
||
<A NAME="OpenCV"></A> </P>
|
||
<DT><B>OpenCV</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://opencvlibrary.sourceforge.net/">http://opencvlibrary.sourceforge.net/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>OpenCV (Open Source Computer Vision) is a library of programming
|
||
functions mainly aimed at real time computer vision.</P>
|
||
<P>Example applications of the OpenCV library are Human-Computer
|
||
Interaction (HCI); Object Identification, Segmentation and Recognition;
|
||
Face Recognition; Gesture Recognition; Motion Tracking, Ego Motion,
|
||
Motion Understanding; Structure From Motion (SFM); and Mobile Robotics.</P>
|
||
|
||
<P>
|
||
<A NAME="OpenCog"></A> </P>
|
||
<DT><B>OpenCog</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.opencog.org/">http://www.opencog.org/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>The Open Cognition Framework (OpenCog) is software for the
|
||
collaborative development of safe and beneficial Artificial General
|
||
Intelligence.</P>
|
||
<P>OpenCog provides research scientists and software developers with a
|
||
common platform to build and share artificial intelligence programs.
|
||
The framework includes:</P>
|
||
<P>
|
||
<UL>
|
||
<LI>a flexible and highly optimized in-memory database for
|
||
knowledge representation,</LI>
|
||
<LI>a plug-in architecture for cognitive algorithms and a cognitive
|
||
process scheduler,</LI>
|
||
<LI>a built-in LISP-like programming language, and</LI>
|
||
<LI>other components to support artificial intelligence research
|
||
and development. </LI>
|
||
</UL>
|
||
</P>
|
||
|
||
<P>
|
||
<A NAME="OpenSteer"></A> </P>
|
||
<DT><B>OpenSteer</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://opensteer.sourceforge.net/">opensteer.sourceforge.net</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>OpenSteer is a C++ library to help build steering behaviors for
|
||
autonomous characters in games and animation. OpenSteer provides an app
|
||
which displays predefined demos of steering behaviors. You can
|
||
prototype, visualize and debug your own as a plug-in.</P>
|
||
|
||
<P>
|
||
<A NAME="ORTS"></A> </P>
|
||
<DT><B>ORTS</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="https://skatgame.net/mburo/orts/">https://skatgame.net/mburo/orts/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>ORTS is a programming environment for studying real-time AI problems
|
||
such as pathfinding, dealing with imperfect information, scheduling,
|
||
and planning in the domain of RTS games. These games are fast-paced and
|
||
very popular. Furthermore, the current state of RTS game AI is bleak
|
||
which is mainly caused by the lack of planning and learning - areas in
|
||
which humans are currently much better than machines. Therefore, RTS
|
||
games make an ideal test-bed for real-time AI research. Unfortunately,
|
||
commercial RTS games are closed software which prevents researchers
|
||
from connecting remote AI modules to them. Furthermore, commercial RTS
|
||
games are based on peer-to-peer technology - which in a nutshell runs
|
||
the entire simulation on all player machines and just hides part of the
|
||
game state from the players. By tampering with the client software it
|
||
is possible to reveal the entire game state and thereby gain an unfair
|
||
advantage. We feel that this is unacceptable for playing games on the
|
||
internet. We therefore started the ORTS project to create a free
|
||
software system that lets people and machines play fair RTS games. The
|
||
communication protocol is public and all source code and artwork is
|
||
freely available. Users can connect whatever client software they like.
|
||
This is made possible by a server/client architecture in which only the
|
||
currently visible parts of the game state are sent to the players. This
|
||
openness leads to new and interesting possibilities ranging from
|
||
on-line tournaments of autonomous AI players to gauge their playing
|
||
strength to hybrid systems in which human players use sophisticated
|
||
GUIs which allow them to delegate tasks to AI helper modules of
|
||
increasing performance.</P>
|
||
|
||
<P>
|
||
<A NAME="Penguin!"></A> </P>
|
||
<DT><B>Penguin!</B><DD><P>
|
||
<UL>
|
||
<LI>FTP site:
|
||
<A HREF="http://www.cpan.org/modules/by-category/23_Miscellaneous_Modules/Penguin/FSG/">http://www.cpan.org/modules/by-category/23_Miscellaneous_Modules/Penguin/FSG/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Penguin is a Perl 5 module. It provides you with a set of functions which
|
||
allow you to:
|
||
<UL>
|
||
<LI>send encrypted, digitally signed Perl code to a remote machine
|
||
to be executed.</LI>
|
||
<LI>receive code and, depending on who signed it, execute it in an
|
||
arbitrarily secure, limited compartment.</LI>
|
||
</UL>
|
||
|
||
The combination of these functions enable direct Perl coding of
|
||
algorithms to handle safe internet commerce, mobile
|
||
information-gathering agents, "live content" web browser helper
|
||
apps, distributed load-balanced computation, remote software
|
||
update, distance machine administration, content-based
|
||
information propagation, Internet-wide shared-data applications,
|
||
network application builders, and so on.</P>
|
||
|
||
<P>
|
||
<A NAME="Ps-i"></A> </P>
|
||
<DT><B>Ps-i</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://ps-i.sourceforge.net/">ps-i.sourceforge.net</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Ps-i is an environment for running agent-based simulations. It is
|
||
cross-platform, with binaries available for Win32. Features include: </P>
|
||
<P>
|
||
<UL>
|
||
<LI>declarative language for model specification</LI>
|
||
<LI>industry standard Tcl/Tk scripting
|
||
with built-in routine optimization, speculative evaluation
|
||
and xf86 JIT compiler users can create complex models without
|
||
sacrificing perfomance </LI>
|
||
<LI>user friendly interface </LI>
|
||
<LI>save and restore program runs </LI>
|
||
<LI>change model parameters on the fly </LI>
|
||
<LI>data visualization: field display with multiple agent shapes and
|
||
color, statistics window, agent viewer, routine browser and
|
||
highlight agents tool </LI>
|
||
</UL>
|
||
</P>
|
||
|
||
<P>
|
||
<A NAME="Pyro"></A> </P>
|
||
<DT><B>Pyro</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://pyrorobotics.org/">http://pyrorobotics.org/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Pyro is a library, environment, graphical user interface, and low-level
|
||
drivers to explore AI and robotics using the Python language. It works
|
||
with many real robotics platforms and simulators. Extensive algorithms
|
||
including behavior-based, vision (motion tracking, blobs, etc.),
|
||
learning (back-propagation, self-organizing maps, etc.), evolutionary,
|
||
and more.</P>
|
||
|
||
<P>
|
||
<A NAME="Quackle"></A> </P>
|
||
<DT><B>Quackle</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.quackle.org/">http://www.quackle.org/</A></LI>
|
||
<LI>Alt Web site:
|
||
<A HREF="http://web.mit.edu/jasonkb/www/quackle/">http://web.mit.edu/jasonkb/www/quackle/</A></LI>
|
||
<LI>Alt Web site:
|
||
<A HREF="http://sourceforge.net/projects/quackle">http://sourceforge.net/projects/quackle</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Quackle is a world-class crossword game artificial intelligence and
|
||
analysis tool. It includes a move generator, simulator, and Qt-based
|
||
user interface and can be used with any board layout, alphabet,
|
||
lexicon, and tile distribution.</P>
|
||
|
||
<P>
|
||
<A NAME="Recast"></A> </P>
|
||
<DT><B>Recast</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://code.google.com/p/recastnavigation/">http://code.google.com/p/recastnavigation/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Recast is state of the art navigation mesh construction toolset for
|
||
games.</P>
|
||
<P>
|
||
<UL>
|
||
<LI>It is automatic, which means that you can throw any level
|
||
geometry at it and you will get robust mesh out</LI>
|
||
<LI>It is fast which means swift turnaround times for level
|
||
designers</LI>
|
||
<LI>It is open source so it comes with full source and you can
|
||
customize it to your hearts content.</LI>
|
||
</UL>
|
||
</P>
|
||
<P>The Library is free for commercial use and open source under the ZLib
|
||
License.</P>
|
||
<P>Recast is accompanied with Detour, path-finding and spatial reasoning
|
||
toolkit. You can use any navigation mesh with Detour, but of course the
|
||
data generated with Recast fits perfectly.</P>
|
||
<P>Detour offers simple static navigation mesh which is suitable for many
|
||
simple cases, as well as tiled navigation mesh which allows you to plug
|
||
in and out pieces of the mesh. The tiled mesh allows to create systems
|
||
where you stream new navigation data in and out as the player
|
||
progresses the level, or you may regenerate tiles as the world changes. </P>
|
||
|
||
<P>
|
||
<A NAME="Remembrance Agents"></A> </P>
|
||
<DT><B>Remembrance Agents</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.remem.org/">www.remem.org</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Remembrance Agents are a set of applications that watch over a user's
|
||
shoulder and suggest information relevant to the current situation.
|
||
While query-based memory aids help with direct recall, remembrance
|
||
agents are an augmented associative memory. For example, the
|
||
word-processor version of the RA continuously updates a list of
|
||
documents relevant to what's being typed or read in an emacs buffer.
|
||
These suggested documents can be any text files that might be relevant
|
||
to what you are currently writing or reading. They might be old emails
|
||
related to the mail you are currently reading, or abstracts from papers
|
||
and newspaper articles that discuss the topic of your writing.</P>
|
||
|
||
<P>
|
||
<A NAME="SimAgent"></A> </P>
|
||
<DT><B>SimAgent</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.cs.bham.ac.uk/research/projects/poplog/packages/simagent.html">www.cs.bham.ac.uk/research/projects/poplog/packages/simagent.html</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>The SimAgent toolkit provides a range of resources for research and
|
||
teaching related to the development of interacting agents in
|
||
environments of various degrees and kinds of complexity. It can be run
|
||
as a pure simulation tool, or installed in a robot with a sufficiently
|
||
powerful on-board computer, e.g. running linux. It was originally
|
||
developed to support exploratory research on human-like intelligent
|
||
agents, but has also been used for student projects developing a
|
||
variety of interactive games and simulations.</P>
|
||
|
||
<P>
|
||
<A NAME="spyse"></A> </P>
|
||
<DT><B>spyse</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://spyse.sf.net/">spyse.sf.net</A></LI>
|
||
<LI>Alt Web site:
|
||
<A HREF="http://zope.org/Members/drapmeyer/spyse">zope.org/Members/drapmeyer/spyse</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>spyse is a development framework and platform for building multi-agent
|
||
systems using the Python programming language. A multi-agent system
|
||
(MAS) combines concepts from distributed computing and artificial
|
||
intelligence. Agents are autonomously reasoning software entities that
|
||
can collaborate (or compete) in order to achieve a (common) goal. By
|
||
cooperating they create emergent behaviour in the system (distributed
|
||
artificial intelligence). The architecture of a MAS is specified in the
|
||
FIPA standard.</P>
|
||
<P>Spyse provides multiple means for reasoning (BDI logics, CLIPS expert
|
||
shell, etc.) and communicating locally and remotely.</P>
|
||
<P>Each agent has its own thread of control. Agents within and among
|
||
instances of the platform communicate by exchanging messages based on
|
||
ontologies. Spyse makes use of the Web Ontology Language (OWL) defined
|
||
for the Semantic Web.</P>
|
||
|
||
<P>
|
||
<A NAME="TKQML"></A> </P>
|
||
<DT><B>TKQML</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.csee.umbc.edu/tkqml/">www.csee.umbc.edu/tkqml/</A> </LI>
|
||
</UL>
|
||
</P>
|
||
<P>TKQML is a KQML application/addition to Tcl/Tk, which allows Tcl
|
||
based systems to communicate easily with a powerful agent
|
||
communication language.</P>
|
||
|
||
<P>
|
||
<A NAME="Tocoma Project"></A> </P>
|
||
<DT><B>The Tocoma Project</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.tacoma.cs.uit.no/">www.tacoma.cs.uit.no/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>An agent is a process that may migrate through a computer network
|
||
in order to satisfy requests made by clients. Agents are an attractive
|
||
way to describe network-wide computations.</P>
|
||
<P>The TACOMA project focuses on operating system support for agents and
|
||
how agents can be used to solve problems traditionally addressed by
|
||
operating systems. We have implemented a series of prototype systems
|
||
to support agents.</P>
|
||
<P>TACOMA Version 1.2 is based on UNIX and TCP. The system supports
|
||
agents written in C, Tcl/Tk, Perl, Python, and Scheme (Elk). It is
|
||
implemented in C. This TACOMA version has been in public domain since
|
||
April 1996.</P>
|
||
<P>We are currently focusing on heterogeneity, fault-tolerance, security
|
||
and management issues. Also, several TACOMA applications are under
|
||
construction. We implemented StormCast 4.0, a wide-area network
|
||
weather monitoring system accessible over the internet, using TACOMA
|
||
and Java. We are now in the process of evaluating this application,
|
||
and plan to build a new StormCast version to be completed by June
|
||
1997.</P>
|
||
|
||
<P>
|
||
<A NAME="UMPRS Agent"></A> </P>
|
||
<DT><B>UMPRS Agent</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.marcush.net/IRS/">http://www.marcush.net/IRS/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>UMPRS supports top-down, goal-based reasoning and selects goals and
|
||
plans based on maximal priority. Execution of multiple simultaneous
|
||
goals are supported, with suspension and resumption capabilities for
|
||
each goal (i.e., intention) thread. UMPRS plans have an integrated
|
||
precondition/runtime attribute that constrain their applicability.
|
||
Available plan constructs include: sequencing, iteration, subgoaling,
|
||
atomic (i.e., non-interruptable) blocks, n-branch deterministic
|
||
conditional execution, explicit failure-handling section, and C++
|
||
primitive function definition.</P>
|
||
|
||
<P>
|
||
<A NAME="WebMate"></A> </P>
|
||
<DT><B>WebMate</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.cs.cmu.edu/~softagents/webmate/">http://www.cs.cmu.edu/~softagents/webmate/</A></LI>
|
||
</UL>
|
||
</P>
|
||
|
||
<P>WebMate is a personal agent for World-Wide Web browsing and
|
||
searching. It accompanies you when you travel on the internet
|
||
and provides you what you want. </P>
|
||
<P>Features include:
|
||
<UL>
|
||
<LI>Searching enhancement, including parallel search, searching
|
||
keywords refinement using our relevant keywords extraction technology,
|
||
relevant feedback, etc.
|
||
</LI>
|
||
<LI>Browsing assistant, including learning your current interesting,
|
||
recommending you new URLs according to your profile and selected
|
||
resources, monitoring bookmarks of Netscape or IE, sending the current
|
||
browsing page to your friends, etc.
|
||
</LI>
|
||
<LI>Offline browsing, including downloading the following pages from
|
||
the current page for offline browsing.
|
||
</LI>
|
||
<LI>Filtering HTTP header, including recording http header and all
|
||
the transactions between your browser and WWW servers, etc.
|
||
</LI>
|
||
<LI>Checking the HTML page to find the errors or dead links, etc.
|
||
</LI>
|
||
<LI>Programming in Java, independent of operating system, runing in
|
||
multi-thread.
|
||
</LI>
|
||
</UL>
|
||
</P>
|
||
|
||
</DL>
|
||
</P>
|
||
|
||
<H2><A NAME="Robotics and Simulators"></A> <A NAME="ss6.2">6.2</A> <A HREF="AI-Alife-HOWTO.html#toc6.2">Robotics and Simulators</A>
|
||
</H2>
|
||
|
||
|
||
<P>From fun battling robot games to full robot control systems. The idea is
|
||
physical agents in the real world, or at least their control programming.</P>
|
||
<P>
|
||
<DL>
|
||
<P>
|
||
<A NAME="BattleBots"></A> </P>
|
||
<DT><B>BattleBots</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.bluefire.nu/battlebots/">www.bluefire.nu/battlebots/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>AI programming game where you design the bot by selecting hardware and
|
||
programming its CPU, then competing with other bots. Competitions can
|
||
have teams and special rules for a game. </P>
|
||
<P>The hardware for use in your bot includes weapons, engine, scanners,
|
||
CPU, etc. The programming lauguage is dependent on the CPU type and is
|
||
similar to an assembly language. </P>
|
||
|
||
<P>
|
||
<A NAME="Cadaver"></A> </P>
|
||
<DT><B>Cadaver</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.erikyyy.de/cadaver/">www.erikyyy.de/cadaver/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Cadaver is a simulated world of cyborgs and nature in realtime. The
|
||
battlefield consists of forests, grain, water, grass, carcass (of
|
||
course) and lots of other things. The game server manages the game and
|
||
the rules. You start a server and connect some clients. The clients
|
||
communicate with the server using a very primitive protocol. They can
|
||
order cyborgs to harvest grain, attack enemies or cut forest. The game
|
||
is not intended to be played by humans! There is too much to control.
|
||
Only for die-hards: Just telnet to the server and you can enter
|
||
commands by hand. Instead the idea is that you write artificial
|
||
intelligence clients to beat the other artificial intelligences. You
|
||
can choose a language (and operating system) of your choice to do that
|
||
task. It is enough to write a program that communicates on standard
|
||
input and standard output channels. Then you can use programs like
|
||
"socket" to connect your clients to the server. It is NOT needed to
|
||
write TCP/IP code, although i did so :) The battle shall not be boring,
|
||
and so there is the so called spyboss client that displays the action
|
||
graphically on screen.</P>
|
||
|
||
<P>
|
||
<A NAME="Carmen"></A> </P>
|
||
<DT><B>Carmen</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://carmen.sourceforge.net/">http://carmen.sourceforge.net/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>CARMEN, the Carnegie Mellon Robot Navigation Toolkit. CARMEN is an
|
||
open-source collection of software for mobile robot control. CARMEN is
|
||
modular software designed to provide basic navigation primatives
|
||
including: base and sensor control, logging, obstacle avoidance,
|
||
localization, path planning, and mapping. </P>
|
||
|
||
<P>
|
||
<A NAME="CLARAty"></A> </P>
|
||
<DT><B>CLARAty</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://claraty.jpl.nasa.gov/man/overview/">http://claraty.jpl.nasa.gov/man/overview/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>CLARAty is an integrated framework for reusable robotic software. It
|
||
defines interfaces for common robotic functionality and integrates
|
||
multiple implementations of any given functionality. Examples of such
|
||
capabilities include pose estimation, navigation, locomotion and
|
||
planning. In addition to supporting multiple algorithms, it provides
|
||
adaptations to multiple robotic platforms.</P>
|
||
<P>This is a public release of the some of the code used in the Mars rover
|
||
projects at NASA. It is under a free for non-commercial use licence and
|
||
consists of large number of modules and algorithms along with extensive
|
||
documentation.</P>
|
||
|
||
<P>
|
||
<A NAME="GNU Robots"></A> </P>
|
||
<DT><B>GNU Robots</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.gnu.org/software/robots/">http://www.gnu.org/software/robots/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>GNU Robots is a game/diversion where you construct a program for a
|
||
little robot, then watch him explore a world. The world is
|
||
filled with baddies that can hurt you, objects that you can bump into,
|
||
and food that you can eat. The goal of the game is to collect as
|
||
many prizes as possible before are killed by a baddie or you run out of
|
||
energy. Robots can be written in Guile scheme or using a GUI.</P>
|
||
|
||
<P>
|
||
<A NAME="Infon Battle Arena"></A> </P>
|
||
<DT><B>Infon Battle Arena</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://infon.dividuum.de/">http://infon.dividuum.de/</A></LI>
|
||
<LI>Web site:
|
||
<A HREF="https://github.com/dividuum/infon">https://github.com/dividuum/infon</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Infon Battle Arena is a networked multiplayer real-time programming
|
||
game featuring little creatures fighting for food. You upload your
|
||
Creature Code (written in Lua) to a game server using a telnet
|
||
Interface. The game server then runs your code. The graphical client
|
||
can be used to watch running games or replay recorded games.</P>
|
||
|
||
<P>
|
||
<A NAME="Khepera Sim"></A> </P>
|
||
<DT><B>Khepera Simulator</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://diwww.epfl.ch/w3lami/team/michel/khep-sim/">http://diwww.epfl.ch/w3lami/team/michel/khep-sim/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Khepera Simulator is a public domain software package written by
|
||
<A HREF="http://diwww.epfl.ch/w3lami/team/michel/">Olivier MICHEL</A> during the preparation of his Ph.D. thesis, at the Laboratoire
|
||
I3S, URA 1376 of CNRS and University of Nice-Sophia Antipolis, France.
|
||
It allows to write your own controller for the mobile robot Khepera
|
||
using C or C++ languages, to test them in a simulated environment and
|
||
features a nice colorful X11 graphical interface. Moreover, if you own
|
||
a Khepera robot, it can drive the real robot using the same control
|
||
algorithm. It is mainly oriented toward to researchers studying
|
||
autonomous agents.</P>
|
||
|
||
<P>
|
||
<A NAME="MRPT"></A> </P>
|
||
<DT><B>MRPT</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://babel.isa.uma.es/mrpt/index.php/Main_Page">http://babel.isa.uma.es/mrpt/index.php/Main_Page</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>The Mobile Robot Programming Toolkit (MRPT) is an extensive,
|
||
cross-platform, and open source C++ library aimed to help robotics
|
||
researchers to design and implement algorithms in the fields of
|
||
Simultaneous Localization and Mapping (SLAM), computer vision, and
|
||
motion planning (obstacle avoidance).</P>
|
||
|
||
<P>
|
||
<A NAME="Nero"></A> </P>
|
||
<DT><B>Nero</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.nerogame.org/">http://www.nerogame.org/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Neuro-Evolving Robotic Operatives, or NERO for short, is a unique
|
||
computer game that lets you play with adapting intelligent agents
|
||
hands-on. Evolve your own robot army by tuning their artificial brains
|
||
for challenging tasks, then pit them against your friends' teams in
|
||
online competitions!</P>
|
||
<P>The goals of the project are (1) to demonstrate the power of
|
||
state-of-the-art machine learning technology, (2) to create an engaging
|
||
game based on it, and (3) to provide a robust and challenging
|
||
development and benchmarking domain for AI researchers.</P>
|
||
<P>Closed source but free to download. They are working on OpenNERO which
|
||
will be open source and more intended as a research platform.</P>
|
||
|
||
<P>
|
||
<A NAME="Orca"></A> </P>
|
||
<DT><B>Orca</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://orca-robotics.sourceforge.net/">http://orca-robotics.sourceforge.net/</A></LI>
|
||
<LI>Web site:
|
||
<A HREF="https://github.com/naderman/orca-robotics">https://github.com/naderman/orca-robotics</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Orca is an open-source framework for developing component-based robotic
|
||
systems. It provides the means for defining and developing the
|
||
building-blocks which can be pieced together to form arbitrarily
|
||
complex robotic systems, from single vehicles to distributed sensor
|
||
networks.</P>
|
||
|
||
<P>
|
||
<A NAME="Player"></A> </P>
|
||
<DT><B>Player</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://playerstage.sourceforge.net/">http://playerstage.sourceforge.net/</A></LI>
|
||
<LI>Player wiki:
|
||
<A HREF="http://playerstage.sourceforge.net/wiki/Player">http://playerstage.sourceforge.net/wiki/Player</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Player is a device server that provides a powerful, flexible interface
|
||
to a variety of sensors and actuators (e.g., robots). Because Player
|
||
uses a TCP socket-based client/server model, robot control programs can
|
||
be written in any programming language and can execute on any computer
|
||
with network connectivity to the robot. In addition, Player supports
|
||
multiple concurrent client connections to devices, creating new
|
||
possibilities for distributed and collaborative sensing and control.</P>
|
||
|
||
<P>
|
||
<A NAME="RealTimeBattle"></A> </P>
|
||
<DT><B>RealTimeBattle</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://realtimebattle.sourceforge.net/">http://realtimebattle.sourceforge.net/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>RealTimeBattle is a programming game, in which robots controlled by
|
||
programs are fighting each other. The goal is to destroy the enemies,
|
||
using the radar to examine the environment and the cannon to shoot.</P>
|
||
<P>
|
||
<UL>
|
||
<LI>Game progresses in real time, with the robot programs
|
||
running as child processes to RealTimeBattle.</LI>
|
||
<LI>The robots communicate with the main program using the
|
||
standard input and output.</LI>
|
||
<LI>Robots can be constructed in almost any programming language.</LI>
|
||
<LI>Maximum number of robots can compete simultaneously.</LI>
|
||
<LI>A simple messaging language is used for communication, which
|
||
makes it easy to start constructing robots.</LI>
|
||
<LI>Robots behave like real physical object.</LI>
|
||
<LI>You can create your own arenas.</LI>
|
||
<LI>Highly configurable.</LI>
|
||
</UL>
|
||
</P>
|
||
|
||
<P>
|
||
<A NAME="Robocode"></A> </P>
|
||
<DT><B>Robocode</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://robocode.sourceforge.net/">http://robocode.sourceforge.net/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>A java based robot combat programming game. It provides a simple API
|
||
and class framework. It is designed as a means of learning Java and is
|
||
easy to start using while not constraining the programmer from more
|
||
advanced techniques. It has a built in security manager for running
|
||
other peoples robots in a safe way.</P>
|
||
|
||
<P>
|
||
<A NAME="Robodeb"></A> </P>
|
||
<DT><B>Robodeb</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.transterpreter.org/robodeb/">http://www.transterpreter.org/robodeb/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Robodeb is a complete robotics simulation environment for teaching
|
||
concurrency and parallelism. It provides a unique environment for
|
||
exploring concurrency and robotics. It provides a complete IDE for the
|
||
occam-pi programming language, and leverages the Transterpreter, our
|
||
portable and flexible runtime for the language. This combination is
|
||
critical, as it provides a principled interface to the Player/Stage
|
||
API, a set of widely used libraries for controlling the Pioneer3
|
||
robotics platform.</P>
|
||
|
||
<P>
|
||
<A NAME="RobotFlow"></A> </P>
|
||
<DT><B>RobotFlow</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://robotflow.sourceforge.net/">http://robotflow.sourceforge.net/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>RobotFlow is a mobile robotics tookit based on the
|
||
<A HREF="http://flowdesigner.sourceforge.net">FlowDesigner</A>
|
||
project. FlowDesigner is a data-flow oriented architecture, similar to
|
||
Simulink (Matlab) or Labview that is free (LGPL) and versatile. The
|
||
visual programming interface provided in the FlowDesigner project will
|
||
help people to better visualize & understand what is really happening
|
||
in the robot's control loops, sensors, actuators, by using graphical
|
||
probes and debugging in real-time.</P>
|
||
|
||
<P>
|
||
<A NAME="RoboTournament"></A> </P>
|
||
<DT><B>RoboTournament</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://robotournament.sourceforge.net/">http://robotournament.sourceforge.net/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>RoboTournament is a RoboRally inspired game where players program their
|
||
robots to vanquish their opponents. RoboTournament features: Multiple
|
||
Game Types: Death Match, Rally, and Capture The Flag. Multi-Player
|
||
through TCP/IP, Six weapons including BFG, Map Editor, and a wide
|
||
variety of board elements.</P>
|
||
|
||
<P>
|
||
<A NAME="ROS"></A> </P>
|
||
<DT><B>ROS</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.ros.org/wiki/">http://www.ros.org/wiki/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>ROS is an operating system for your robot. It provides the services you
|
||
would expect from an operating system, including hardware abstraction,
|
||
low-level device control, implementation of commonly-used
|
||
functionality, message-passing between processes, and package
|
||
management. It also provides tools and libraries for obtaining,
|
||
building, writing, and running code across multiple computers.</P>
|
||
|
||
<P>
|
||
<A NAME="Simbad"></A> </P>
|
||
<DT><B>Simbad</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://simbad.sourceforge.net/">http://simbad.sourceforge.net/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Simbad is a Java 3d robot simulator for scientific and educationnal
|
||
purposes. It is mainly dedicated to researchers/programmers who want
|
||
a simple basis for studying Situated Artificial Intelligence, Machine
|
||
Learning, and more generally AI algorithms, in the context of
|
||
Autonomous Robotics and Autonomous Agents. It is not intented to
|
||
provide a real world simulation and is kept voluntarily readable and
|
||
simple.</P>
|
||
<P>Simbad enables programmers to write their own robot controller, modify
|
||
the environment and use the available sensors. Don't think of it as a
|
||
finite product but merely as an opened framework to test your own
|
||
ideas.</P>
|
||
|
||
<P>
|
||
<A NAME="SimRobot"></A> </P>
|
||
<DT><B>SimRobot</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.informatik.uni-bremen.de/simrobot/">http://www.informatik.uni-bremen.de/simrobot/</A></LI>
|
||
<LI>FTP site:
|
||
<A HREF="ftp://ftp.uni-bremen.de/pub/ZKW/INFORM/simrobot/">ftp://ftp.uni-bremen.de/pub/ZKW/INFORM/simrobot/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>SimRobot is a program for simulation of sensor based robots in a
|
||
3D environment. It is written in C++, runs under UNIX and X11 and
|
||
needs the graphics toolkit XView.
|
||
<UL>
|
||
<LI>Simulation of robot kinematics</LI>
|
||
<LI>Hierarchically built scene definition via a simple definition
|
||
language</LI>
|
||
<LI>Various sensors built in: camera, facette eye, distance
|
||
measurement, light sensor, etc.</LI>
|
||
<LI>Objects defined as polyeders</LI>
|
||
<LI>Emitter abstractly defined; can be interpreted e.g. as
|
||
light or sound</LI>
|
||
<LI>Camera images computed according to the raytracing or
|
||
Z-buffer algorithms known from computer graphics</LI>
|
||
<LI>Specific sensor/motor software interface for communicating
|
||
with the simulation</LI>
|
||
<LI>Texture mapping onto the object surfaces: bitmaps in various
|
||
formats</LI>
|
||
<LI>Comprehensive visualization of the scene: wire frame w/o
|
||
hidden lines, sensor and actor values</LI>
|
||
<LI>Interactive as well as batch driven control of the agents
|
||
and operation in the environment</LI>
|
||
<LI>Collision detection</LI>
|
||
<LI>Extendability with user defined object types</LI>
|
||
<LI>Possible socket communication to e.g. the Khoros image
|
||
processing software</LI>
|
||
</UL>
|
||
</P>
|
||
|
||
<P>
|
||
<A NAME="TclRobots"></A> </P>
|
||
<DT><B>TclRobots</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.nyx.net/~tpoindex/">http://www.nyx.net/~tpoindex/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>TclRobots is a programming game, similar to 'Core War'. To play
|
||
TclRobots, you must write a Tcl program that controls a robot. The
|
||
robot's mission is to survive a battle with other robots. Two, three,
|
||
or four robots compete during a battle, each running different
|
||
programs (or possibly the same program in different robots.) Each
|
||
robot is equipped with a scanner, cannon, drive mechanism. A single
|
||
match continues until one robot is left running. Robots may compete
|
||
individually, or combine in a team oriented battle. A tournament
|
||
can be run with any number of robot programs, each robot playing every
|
||
other in a round-robin fashion, one-on-one. A battle simulator is
|
||
available to help debug robot programs.</P>
|
||
<P>The TclRobots program provides a physical environment, imposing
|
||
certain game parameters to which all robots must adhere. TclRobots
|
||
also provides a view on a battle, and a controlling user interface.
|
||
TclRobots requirements: a wish interpreter built from Tcl 7.4 and Tk
|
||
4.0.</P>
|
||
|
||
<P>
|
||
<A NAME="URBI"></A> </P>
|
||
<DT><B>URBI</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.urbiforge.org/">http://www.urbiforge.org/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>URBI is a Universal Real-time Behavior Interface and gives you a simple
|
||
but powerful way to control any robot or complex system like a video
|
||
game, using a convenient and easy to use scripting language that can be
|
||
interfaced with several popular programming languages (C++, Java,
|
||
Matlab,...) and OS (Windows, Mac OSX, Linux). URBI is based on a
|
||
client/server architecture, which give a great deal of flexibility.
|
||
URBI includes powerful features compared to existing scripting
|
||
solutions: parallel execution of commands, event programming, command
|
||
tagging, dynamic variables,... Currently, URBI is used as well by
|
||
academic research labs, the industry and by hobbyists.</P>
|
||
|
||
<P>
|
||
<A NAME="VWORLD"></A> </P>
|
||
<DT><B>VWORLD</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://zhar.net/projects/vworld/">http://zhar.net/projects/vworld/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>Vworld is a simulated environment for research with autonomous
|
||
agents written in prolog. It is currently in something of an
|
||
beta stage. It works well with SWI-prolog, but should work with
|
||
Quitnus-prolog with only a few changes. It is being designed to
|
||
serve as an educational tool for class projects dealing with
|
||
prolog and autonomous agents. It comes with three demo worlds or
|
||
environments, along with sample agents for them. There are
|
||
two versions now. One written for SWI-prolog and one written for
|
||
LPA-prolog. Documentation is roughly done (with a
|
||
student/professor framework in mind).</P>
|
||
|
||
|
||
<P>
|
||
<A NAME="Yampa"></A> </P>
|
||
<DT><B>Yampa</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://www.haskell.org/yampa/">http://www.haskell.org/yampa/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>FRP system with robotics library and graphical interactive robotics
|
||
simulator.</P>
|
||
<P>Functional reactive programming, or FRP, is a paradigm for programming
|
||
hybrid systems <20> i.e., systems containing a combination of both
|
||
continuous and discrete components <20> in a high-level, declarative way.
|
||
The key ideas in FRP are its notions of continuous, time-varying
|
||
values, and time-ordered sequences of discrete events. Yampa is an
|
||
instantiation of FRP as a domain-specific language embedded in Haskell.</P>
|
||
|
||
<P>
|
||
<A NAME="YARP"></A> </P>
|
||
<DT><B>YARP</B><DD><P>
|
||
<UL>
|
||
<LI>Web site:
|
||
<A HREF="http://eris.liralab.it/yarp/">http://eris.liralab.it/yarp/</A></LI>
|
||
</UL>
|
||
</P>
|
||
<P>YARP is plumbing for robot software. It is a set of libraries,
|
||
protocols, and tools to keep modules and devices cleanly decoupled. It
|
||
is reluctant middleware, with no desire or expectation to be in control
|
||
of your system.</P>
|
||
<P>More specifically, YARP supports building a robot control system as a
|
||
collection of programs communicating in a peer-to-peer way, with a
|
||
family of connection types that meet the diverse, sometimes
|
||
contradictory, and always changing needs of advanced robotics. We also
|
||
encourage compilation and use of hardware devices in a future-proof
|
||
way. Our strategic goal is to increase the longevity of robot software
|
||
projects.</P>
|
||
|
||
|
||
|
||
</DL>
|
||
</P>
|
||
|
||
<HR>
|
||
<A HREF="AI-Alife-HOWTO-7.html">Next</A>
|
||
<A HREF="AI-Alife-HOWTO-5.html">Previous</A>
|
||
<A HREF="AI-Alife-HOWTO.html#toc6">Contents</A>
|
||
</BODY>
|
||
</HTML>
|