Hello Brad,
...and sorry for replying so late. I've been busy with some final
university projects, and also had a lot of work to do on our ZeeRO robot,
which proudly reached its v1.0 stable (hardware-wise :).
After I started the discussion here, I went ahead and developed some basic
controller classes for Javaclient (they are up on the CVS head at SF).
Basically we support an abstract controller, and then upon that, I built
some simple ones such as P,PI,PD and PID.
Of course, this is not the desired solution (at least not for everyone),
since Javacline is just *one* of the many existing clients for P/S/G. So, to
make a long story short, I'd be happy to start collaborating with you or
anyone else to implement the controllers at the player level.
Right now, it might be safe to hold until 1.7 is over and the XDR is
implemented, since Javaclient will suffer some changes too. Of course, we
can discuss and put some ideas on paper until then. :)
Cheers,
Radu.
On Thu, May 12, 2005 at 03:35:08PM +0200, Brad Kratochvil wrote:
> Radu Bogdan Rusu wrote:
>
> >For all the other supported robots that do not have a low-level controller
> >(PID-like) already implemented, wouldn't it be nice for us to support it
> >via
> >the player drivers? I'm also thinking Stage here.
> >
> >Is anyone else working on this? I was prepared to implement an abstract
> >controller and then build P, PD, PI, PID and others on top of them for
> >Javaclient, but I think it would save everyone some effort if we do it at
> >the driver level.
> >
> I already have a fairly full featured driver that does this for our
> Marvin robot, which could easily be extended. The source is all online
> at: http://www.iris.ethz.ch/research/marvin/files/. It may give you
> some ideas.
>
> Basically, I break the robot down into motors and low-level I/O. This
> is the place where the PID belongs. Then, on top of that I have the
> Marvin driver which just uses two motors. It should be able to support
> pretty much any differential drive robot that is made up of 2 motors.
>
> The low level control is based on our irisController class, which I
> haven't put the source online for yet. This is mainly because I haven't
> gone through and optimized this code. Using this framework, I've
> written control for 2 different low level I/O platforms we have here,
> and it can easily be extended to others.
>
> Let me know if you're interested in add/collaborating on this.
>
> Cheers,
>
> bk
>
Yours sincerely,
Radu Bogdan Rusu
--
| Radu Bogdan 'veedee' Rusu | http://www.rbrusu.com
| PhD student/teaching assistant
| Robotics Research Group, Technical University of Cluj-Napoca[.ro]
|