From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id DAA00580; Wed, 31 Oct 2001 03:02:33 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id DAA28549 for ; Wed, 31 Oct 2001 03:02:31 +0100 (MET) Received: from gatekeeper.ph.inter.net (ip3.ph.psi.net [203.176.75.3] (may be forged)) by concorde.inria.fr (8.11.1/8.10.0) with ESMTP id f9V22Tf07163 for ; Wed, 31 Oct 2001 03:02:29 +0100 (MET) Received: from dido.engr.internet.org.ph (unknown [203.176.75.250]) by gatekeeper.ph.inter.net (Postfix) with SMTP id DF77843D05; Wed, 31 Oct 2001 10:02:26 +0800 (PHT) Received: by dido.engr.internet.org.ph (sSMTP sendmail emulation); Wed, 31 Oct 2001 10:01:50 +0800 Date: Wed, 31 Oct 2001 10:01:50 +0800 From: "Rafael 'Dido' Sevilla" To: Kai Kaminski Cc: Caml List Subject: Re: [Caml-list] Playing Soccer with OCaml Message-ID: <20011031100150.A28924@team.ph.inter.net> References: <20011029183900.A717@alpha2.tabu.stw-bonn.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable User-Agent: Mutt/1.2.5i In-Reply-To: <20011029183900.A717@alpha2.tabu.stw-bonn.de>; from kok@wtal.de on Mon, Oct 29, 2001 at 06:39:00PM +0100 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Mon, Oct 29, 2001 at 06:39:00PM +0100, Kai Kaminski wrote: > Hi, >=20 > I'm currently taking part in a university project, which is about > teaching robots to play soccer. My task is the path-finding module. It > is responsible for finding short paths, while considering moving > obstacles (team mates, enemy robots and the ball). I will probably use > Dijkstra or Markov Decision Processes to accomplish this. Not because > I'm a great friend of these algos (in fact I don't know nothing about > them yet) but my lecturer told me that these were suitable. I have an idea for you if you're making such a system that should be an approximation to an autonomous mobile robot (looks like it). Maybe, as opposed to doing the classical sense-model-plan-act (SMPA) paradigm of robotics (as it looks like you're doing, as you're looking for pathfinding algorithms) you can try doing research on the behavior-based subsumption approach to robotic control, pioneered by Prof. Rod Brooks at MIT. The basic idea is that your robotic beings are controlled by behaviors which run in parallel, which are activated by various sensory inputs, and are prioritized in control of their actuators. The seminal paper that describes this approach is Rodney A. Brooks, "A Robust Layered Control System for a Mobile Robot", MIT AI Lab Memo 864, September 1985. You can find an electronic version of this paper and many more on the behavior-based approach at Brooks' home page=20 at http://www.ai.mit.edu/people/brooks/. In order to implement a subsumption architecture in OCaml you would probably need to use the threads library to make one thread for each behavior you wanted to make the robot perform, and two more threads to get inputs from the robots sensors and arbitrate the access of behaviors to the robot's actuators. Which brings me to a somewhat related question: just how real-time is OCaml's runtime environment? Is the garbage collection algorithm real-time, i.e. it uses its own thread to perform GC in parallel to processing or uses some other technique which guarantees that every cons performed has an upper bound on the amount of time it will take, regardless of GC? Most garbage collection algorithms I've seen are not real-time, in that they can potentially take an unbounded amount of time that depends on the number of allocated cells. For robotics and other real-time control and processing problems this is an important question. --=20 Rafael R. Sevilla +63(2) 8177746 ext. 8311 Programmer, Inter.Net Philippines +63(917) 4458925 http://dido.engr.internet.org.ph/ OpenPGP Key ID: 0x5CDA17D8 ------------------- Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr