Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Flight Club"

(add category)
 
Line 346: Line 346:
  
 
Questions? [mailto:anne.jacko@eclipse.org Email Anne.]
 
Questions? [mailto:anne.jacko@eclipse.org Email Anne.]
 +
 +
[[Category:EclipseCon]]

Latest revision as of 11:02, 19 July 2013

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.

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.


Table 1
camera mount angle
Setpoints
Nick
Roll
CamNick
CamRoll
0
10
-30
190
0
20
60
370
0
-10
40
-190
0
-20
90
-390
0
0
0
0


Roll 0°
Roll 10°
Roll 20°
Roll -10°
Roll -20°


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.


Table 2
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.


Table 3
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

  1. 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.
  2. While the position of the Aibot is changing, the camera should be stabilized constantly.
  3. Same Task as 1, but without using the precalculated DCM Datas. For this task use of the Accelerometer could be enough.
  4. 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.

Copyright © Eclipse Foundation, Inc. All Rights Reserved.