> I have been using the latest PrbDK, and we have MySkit but so far we are probably just going to use the motions that come with the development kit.
The PDK has very few motions (around 30). For basic robot control, walking biting etc, that may be enough. For more complicated personalities, you can either design them from scratch with MySkit, or steal them from the built in personality (around 800 of them).
> I haven't tried Dinomite yet, does it work with the rb units? On windows 7 64 bit?
> I thought the RAM was the limiting factor... but I guess that will have to be taught in the lectures and the lab will use the built in APIs.
IMHO: Pleo RB is not a very good robot for programming. In fact I find the older Pleos are better.
With the old models, the regular sized SD card was much easier to swap, and you could connect the USB cable directly, or even better you could connect to the RS-232 style serial connector (better than the USB for debugging)
With the Pleo RB the USB cable is in the bottom of the battery compartment. You need to rig up a special adapter to connect the battery.
Then there is the problem with Windows 7 drivers. I believe it is mostly a 64-bit driver issue.
What hardware setup (cable / battery) are you using to connect the Pleo RB to the computer?
> Does anyone have example code for camera_request_average and camera_get_average? It would be really helpful.
Here's something reworked from the default personality (no longer used in the color tracking tricks)
// call request with the rectangle upper_left_x/y to lower_right_x/y
camera_request_average(upper_left_x, upper_left_y, lower_right_x, lower_right_y);
kill_time(2); // wait 2 ms minimum
new int: average_r;
new int: average_g;
new int: average_b;
// wait for camera to get average, with timeout if it takes too long
new start = time()
while (!camera_get_average(average_g, average_b, average_r))
{
yield(); // optional
if (time() - start > timeout_value)
{
// camera is not responding
// experiment to find best timeout_value
average_r = 0;
average_g = 0;
average_b = 0;
break;
}
}
// do something with average_r/g/b
}
WHERE:
static kill_time(int: ms)
{
new start = time();
while (time() - start < ms)
{
// yield();
}
}