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.
Contents
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.
Media:FlightClub1.zip
Media:FlightClubAllSensors.zip
Media:FlightClubRawSensorDataDump.zip
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 |
Sensors
All sensorsdata in 3D (x,y,z)
Accelerometer
- 13-bit resolution
- ±16g
- 4mg/LSB
Gyroscope
- 16-bit resolution
- ±2000°/sec
- 14.375 LSBs per °/sec
Compass
- 12-bit resolution
- ±1.3 Gauss
- 0.92 mG/LSB
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.
Terms of participation
You are fully authorized and have the necessary licenses, rights and permissions to upload the concerning source code. Furthermore, you have been granted the rights to use the source code by the Aibotix GmbH and third parties.
You possess all intellectual property rights (IPR) of the uploaded source code and/or have the permission to handle and use the source code as it has been used.
You are fully authorized to save, use, edit, duplicate, share, transmit or send the uploaded source code thru any medium or method.
According to the corresponding laws and regulations or the intellectual property rights (IPR), the uploaded source code may not infringe the rights of third parties. You also certify, that you will give written notification to us, if the uploaded source code infringes the property rights of third parties (IPR) or violates any corresponding laws or regulations.
Any damage claims made by third parties concerning the uploaded source code regarding usage fees or any other resulting costs will be carried by you.
You agree that verification for licenses, rights, approvals or permissions will be provided if requested by us.
Entry deadline is the 29th of October 2012 8 o'clock CET. The Project is to be sent as a zip file via Email to fs@aibotix.com with your full name and address.
When we have time and content, we will put more on this page.
Questions? Email Anne.