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

  • 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

mindstorms/plnxt/plnxtdev/start.txt · Last modified: 2019/06/27 15:50 (external edit)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0