|
|
mindstorms:plnxt:plnxtdev:start [2010/02/06 19:15] bejo |
mindstorms:plnxt:plnxtdev:start [2019/06/27 15:50] |
====== 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 | |
| |
===== 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 ==== | |
| |
<code prolog> | |
% * 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. | |
</code> | |
| |
==== Following the black line ==== | |
| |
<code prolog> | |
% * 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. | |
</code> | |
| |
===== 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 | |