Table of Contents

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!

FIXME 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

20.02.2009: DONE initial

M1

06.03.2009: F1, T1?

M2

20.03.2009: F2

M3

06.02.2010: F3

Functionality

F1

F2

F3

control several robots!

F

client-server

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

NXT USB Linux

FIXME move to the mindstorms hp