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 CVS Howto, 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 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!
The plnxt docs, automagically regenereted while you sleep
Trac
Test the new 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 here
Milestones
M0
M1
M2
M3
Functionality
F1
fix jsi2008 bugs
make sure icommand works
F2
F3
F
F
Technicals
T1
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
-
-
-
-
-
-
-
a simple
shell using the above
move to the mindstorms hp