Thu Mar 15 15:27:49 CET 2007
Danesh Daroui wrote:
> Its cool. I am interested to find out more about your solution.
Maybe at the next EUC ;-)
> It seems
> that you have solved the problem using State Machines, but if you use a
> server to pass messages through it, it might be the reason that message
> passing is not fast enough as you expect. However, you said that the
> problem is solved, but defining a channel which is accessible by all
> processes to send their request (asynchronous or synchronous doesn't
> matter but synchronous needs its own simulation in Erlang) to one or
> more than one processes which handle requests. Each sender can also have
> its private channel to get the result. Anyway, I thought sending
> messages between processes (not in a distributes architecture) is fast
> enough to avoid such problems. Your task must be very critical. ;)
They are not so critical, but an unexpected latency could cause e.g. a
wrong navigation. For example, one task is to make the robot rotate of a
given angle: we turn on the motors and then we "poll" reading the
current orientation. This is made by means a couple of communicating
processes (one for interacting with the motor controller and another to
perform rotation control): if the latencies are too high, the robot
could overcome the target and stop with a wrong orientation.
In our current implementation, there are no unexpected latencies. But,
we experienced these problems when we used OTP behaviours (gen_fsm,
etc.). Please note that the robot is quite fast, so milliseconds are
In any case, if we have time, we'll make some measurement in order to
give some numerical quantities!
Eng. Corrado Santoro, Ph.D.
University of Catania - ITALY - Engineering Faculty
Tel: +39 095 7382380 VoIP: sip:
Personal Home Page: http://www.diit.unict.it/users/csanto
NUXI Home Page: http://nuxi.diit.unict.it
More information about the erlang-questions