Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
mindstorms:plnxt:plnxtdev:start [2009/02/24 12:51] holownia preliminary milostones and schedule |
mindstorms:plnxt:plnxtdev:start [2019/06/27 15:50] (current) |
==== M0 ==== | ==== M0 ==== |
20.02.2009: __DONE__ initial | 20.02.2009: __DONE__ initial |
| |
| ==== M1 ==== |
| 06.03.2009: F1, T1? |
| |
| ==== M2 ==== |
| 20.03.2009: F2 |
| |
| ==== M3 ==== |
| 06.02.2010: F3 |
| |
===== Functionality ===== | ===== Functionality ===== |
==== F ==== | ==== F1 ==== |
* fix jsi2008 bugs | * fix jsi2008 bugs |
* make sure icommand works | * make sure icommand works |
| |
| ==== F2 ==== |
| * run and debug on freerunner |
| * control concepts -> S. Nowaczyk |
| ==== F3 ==== |
| control //several// robots! |
| |
==== F ==== | ==== F ==== |
==== F ==== | client-server |
==== F ==== | |
==== F ==== | ==== F ==== |
| |
| |
| |
| |
| ===== 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 ===== | ===== SPOOL ===== |
| ==== Ideas ==== |
| * communication overhead, time issues |
| * interrobot communication -> groupwork |
| * thread polling frequency, parameter? |
| * bricku UI (Buttons/screen) support -> future work |
| |
==== NXT USB Linux ==== | ==== NXT USB Linux ==== |
| |
FIXME move to the mindstorms hp | FIXME move to the mindstorms hp |
| |
| |