====== PlNXT Development ======
A page dedicated to the coordination of the Hekate Project Prolog API for Mindstorms, a.ka. //PlNXT//
===== CVS access =====
Some docs: a sane [[http://furryland.org/~mikec/cvs.html|CVS Howto]], [[http://ximbiot.com/cvs/manual/|CVS Manual]].
export CVSROOT=:ext:pholownia@charon.ia.agh.edu.pl/mnt/cvs/cvs-hades
export CVS_RSH=ssh
Example (from student):
export CVSROOT=:ext:pholownia@charon.ia.agh.edu.pl/mnt/cvs/cvs-hades
export CVS_RSH=ssh
cvs co plnxt
Locally on charon:
export CVSROOT=/mnt/cvs/cvs-hades
cvs co plnxt
When updating from CVS:
cvs update
Commiting changes
cvs ci
Adding files (before commit!):
cvs add file
===== Source OnLine Access =====
The [[https://hekate.ia.agh.edu.pl/webcvs/cvs-hades/view.vc|Hades CVS]] online.
Log in with the same user/password as in wiki, you need to be in the appropriate cvs group at charon for this to work!
FIXME
The //plnxt docs//, automagically regenereted while you sleep :-)
===== Trac =====
Test the new [[https://hekate.ia.agh.edu.pl/webtrac/hades/trac.vc|CVStrac]] here.
Log in with the same user/password as in wiki, you need to be in the appropriate cvs group at charon for this to work!
When making a commit related to a Trac ticket, write something like
Fix for ticket #N, such as...
where ''N'' is the ticker number!
See example [[https://hekate.ia.agh.edu.pl/webtrac/hades/trac.vc/chngview?cn=94|here]]
===== Milestones =====
==== M0 ====
20.02.2009: __DONE__ initial
==== M1 ====
06.03.2009: F1, T1?
==== M2 ====
20.03.2009: F2
==== M3 ====
06.02.2010: F3
===== Functionality =====
==== F1 ====
* fix jsi2008 bugs
* make sure icommand works
==== F2 ====
* run and debug on freerunner
* control concepts -> S. Nowaczyk
==== F3 ====
control //several// robots!
==== F ====
client-server
==== F ====
===== Technicals =====
==== T1 ====
* on-line docs
===== Algorithm examples =====
==== Square, avoiding obstacles ====
% * Robot does a square line move.
% * It will stop and turn around, if senses an obstacle. After that it continues square move.
% * Stops after typing "stop."
% Type: start.
:- consult('../plnxt').
start :-
nxt_open,
thread_create(rectangle_start,_,[detached(true)]).
rectangle_start :-
trigger_create_noreturn(_,check_distance,obstacle),
rectangle_loop.
check_distance :-
nxt_ultrasonic(Value,force),
Value < 15.
obstacle :-
nxt_stop,
nxt_rotate(350,180),
thread_create(rectangle_start,_,[detached(true)]).
rectangle_loop :-
nxt_go_cm(350,40),
nxt_rotate(350,100),
rectangle_loop.
stop :-
trigger_killall,
nxt_stop,
nxt_close.
==== Following the black line ====
% * Robot follows the black line on the test pad clockwise.
% * Stops after typing "stop."
% Type: start.
:- consult('../plnxt').
start :-
nxt_open,
nxt_light_LED(activate),
thread_create(follow_line,_,[detached(true)]).
follow_line :-
trigger_create(_,check_colour,adjust),
nxt_go(350).
check_colour :-
nxt_light(Value,force),
Value > 50.
am_i_on_track(Value) :-
Value < 50,
follow_line.
am_i_on_track(_) :-
adjust.
adjust :-
nxt_stop,
nxt_rotate(350,5),
nxt_light(Value),
am_i_on_track(Value).
stop :-
trigger_killall,
nxt_stop,
nxt_close.
===== SPOOL =====
==== Ideas ====
* communication overhead, time issues
* interrobot communication -> groupwork
* thread polling frequency, parameter?
* bricku UI (Buttons/screen) support -> future work
==== NXT USB Linux ====
* linux+ usb http://forums.nxtasy.org/index.php?showtopic=2143 http://forums.nxtasy.org/index.php?s=114db3461178f97b9e60e6505172e10c&showtopic=2240&st=0&p=17166entry17166
* libnxt http://jgraef.bplaced.de/libnxt/ http://forums.nxtasy.org/index.php?s=bfec39b7cf29627892175f8a1d8dd819&showtopic=1417&st=0&p=11726entry11726
* nxtfs http://jgraef.bplaced.net/nxtfs/doc.html http://forums.nxtasy.org/index.php?s=bdb63f5b93dbefc8c4a428be53e5a157&showtopic=2083&st=0&p=16248entry16248
* http://www.juju.org/articles/2006/10/22/bluetooth-serial-port-to-nxt-in-linux
* solution: copy and paste {{:mindstormsdev:nxt-lego.txt|this scrpit}} to root console :-)
* test the ''nexttool'' form nbc, register and [[http://forums.nxtasy.org/index.php?showtopic=2143&st=0|download here]]
* [[http://home.comcast.net/~dplau/nxt_python/index.html|NXT in Python]], could be a reference for Prolog?
* a simple [[http://xorff.blogspot.com/2007/01/introducing-nxtsh-command-line.html|shell]] using the above
=== Extra links ===
* http://www.jstuber.net/lego/nxt-programming/index.html
* http://www.teamhassenplug.org/NXT/NXTSoftware.html
* http://www.techbricks.nl/index.php?option=com_weblinks&view=category&id=19&Itemid=63&limitstart=2
FIXME move to the mindstorms hp