Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Flight Club
Welcome to the Flight Club wiki page!
Here you will find information about participating in Flight Club, the EclipseCon Europe 2012 programming competition.
The challenge
The challenge is to control the camera mount so that the video image remains stable while the Aibot aerial platform is moving. The Flight Club Aibot will transmit an image from its camera to a nearby projector. Participants will have access to all sensor data and to an interface that controls the camera mount.
Example Project:
You will need a 32bit Java sdk and Eclipse on Windows XP or higher. Unfortunately we have so far only experience with Windows 7. Feedback with other operating systems would be greatly appreciated.
The first step of this sample project requires no radio module and no Aibot. It loads a DLL and simulated sensor data. The first steps of this project can prepared and tested at home.
Functions
int |
init(int tabletID, String dev) |
opens the connection to Aibot |
int |
initSim() |
works without an Aibot and sends fake data |
int | deinit() | closes the connection to Aibot |
int |
getDCMRoll() |
returns Roll Angle in 1/100 degrees (1800 = 18°) |
int |
getDCMNick() |
returns Nick Angle in 1/100 degrees |
int | setCamRoll(int value) | sends new setpoint Roll to the camera mount. See Table 1. |
int | setCamNick(int value) | sends new setpoint Nick to the camera mount. |
|
The value to be set, is calculated from an offset and the value from the table. For Example setCamNick(3850+90);
Unfortunately, the offsets are different for each Aibot. All offsets will be announced shortly before the contest.
Example Datas
Here is some example data. In this example the camera wasn't in the center of the camera mount and the reference line was about 30cm away. This explains the influence of the DCMRoll value on the CamNick value.
These values keep the camera mount in a stable position.
Sensor Input |
Camera | ||
DCMNick |
DCMRoll |
CamNick |
CamRoll |
-421 |
794 |
-45 |
100 |
-398 |
1143 |
-80 |
170 |
-711 |
1541 |
-120 |
250 |
-558 |
-6 |
-40 |
-70 |
-550 |
-389 |
-70 |
-130 |
-584 |
-948 |
-110 |
250 |
-473 |
287 |
0 |
0 |
-37 |
284 |
50 |
0 |
842 |
288 |
180 |
30 |
997 |
322 |
-150 |
0 |
2078 |
168 |
390 |
20 |
-2910 |
391 |
-730 |
-20 |
I now have a "Flight Club Aibot" which will fight on the EclipseCon. I can now publish information about this aircraft. The values in Table 3 can be used to stabilize the camera mount.
Sensor Input |
Camera | ||
DCMNick |
DCMRoll |
CamNick |
CamRoll |
-851 |
-95 |
3740 |
2765 |
-77 |
169 |
3890 |
2765 |
-1265 |
-147 |
3650 |
2765 |
827 |
-124 |
4080 |
2765 |
-1783 |
-167 |
3460 |
2765 |
-2029 |
-214 |
3410 |
2765 |
-1302 |
212 |
3570 |
2855 |
-1205 |
1021 |
3590 |
3020 |
-1104 |
1531 |
3610 |
3125 |
-1082 |
1718 |
3615 |
3170 |
-1299 |
-319 |
3575 |
2745 |
-1415 |
-710 |
3550 |
2660 |
-1222 |
-1397 |
3580 |
2520 |
-1418 |
-1756 |
3540 |
2450 |
1554 |
-1397 |
4130 |
2500 |
1210 |
1083 |
4080 |
3040 |
-1854 |
-1419 |
3440 |
2500 |
Tasks
- The position of the Aibot is changed to a fixed position. The camera has to be re-stabilized within 3 seconds, by using all sensor data.
- While the position of the Aibot is changing, the camera should be stabilized constantly.
- Same Task as 1, but without using the precalculated DCM Datas. For this task use of the Accelerometer could be enough.
- Same Task as 2, but without using the precalculated DCM Datas. But now you need a type of sensor fusion.
When we have time and content, we will put more on this page.
Questions? Email Anne.