====== 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=17166&#entry17166 * libnxt http://jgraef.bplaced.de/libnxt/ http://forums.nxtasy.org/index.php?s=bfec39b7cf29627892175f8a1d8dd819&showtopic=1417&st=0&p=11726&#entry11726 * nxtfs http://jgraef.bplaced.net/nxtfs/doc.html http://forums.nxtasy.org/index.php?s=bdb63f5b93dbefc8c4a428be53e5a157&showtopic=2083&st=0&p=16248&#entry16248 * 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