Hello,
I have one question regarding UAV Dev Board. I have read somewhere that ReturnToLaunch could be performed if 3 miles distance is not reached. So is this true in V2? If yes would it be possible to remove such limitation?
Regards
Michal
Guys, when you're using the uBlox 5 GPS, does it use the ArduPilot settings? When you buy the module from the DIY Drones store, you have to choose whether to have it programmed as "Paparazzi ready", "ArduPilot ready" or "NMEA (default factory settings)". Which should we choose?
I'm afraid I'm struggling with PIC programming again. When I make the project, I get this warning for every file:
Microchip MPLAB C30 License Manager Version v3_20 (Build Date Aug 24 2009).
Copyright (c) 2008 Microchip Technology Inc. All rights reserved.
The MPLAB C30 license has expired.
Options have been disabled due to expired license
Visit http://www.microchip.com/ to purchase a new key.
I'm having trouble getting the MPLab IDE to recognize the Olimex ICD2 programmer under Windows 7. Apparently it doesn't have a driver for this. Anybody get the ICD2 to work with Windows 7?
I got attracted here by the DCM implementations. Really appreciate the developers' gratitude to put the codes in open source. I am trying to understand the DCM code so that I could use it on our IMUs. But I got some questions with the union usage in PI_feedback() of rmat.c. No experiences with DSP programming at all.
I understand that with union, we could easily access the lower or upper 2 bytes of a long variable. But I don't understand why there are ">>3" after the multiplication and in the final assignment.
---------------------For example---------------------
union longww CorrectionIntegral[] = { { 0 } , { 0 } , { 0 } } ;
CorrectionIntegral[0].WW += ( __builtin_mulss( errorYawplane[0] , KIYAW )>>3) ;
omegacorrI[0] = CorrectionIntegral[0]._.W1>>3 ;
------------------------------------------------------------
KIYAW = 32; so what I should expect from omegacorrl[0]? Can anybody help with this?
I just received my board and did some tests. (great fun...) :-)
Just curious if there is a demo application for the IMU with PC connection (rotating cube or similar on-screen demo)?
I tried the RollPitchYaw demo, seems to work very well. However moving the board several times in conical circles it cumulates some position error. (it removes the error after the movement in calm position, it takes a few seconds)
Maybe it's because of the not perfect gyro sensitivity? The acceleratin sensor feedback deals with the gyro sensitivity calibration, or it just trims out the cumulated position errors?
I am thinking about writing some OSD code for this board. Software only, using the spi port and interrupts. Unfortunately no dma, so must handle the spi interrupts in every 1.5 ... 2 usec. The processor loading is not too high, however I am not sure if there are periods in the current software when interrupts disabled for more then about 1 usec? It so, such sw OSD can't co-exist.
I just received my board and did some tests. (great fun...) :-)
Just curious if there is a demo application for the IMU with PC connection (rotating cube or similar on-screen demo)?
I tried the RollPitchYaw demo, seems to work very well. However moving the board several times in conical circles it cumulates some position error. (it removes the error after the movement in calm position, it takes a few seconds)
Maybe it's because of the not perfect gyro sensitivity? The acceleratin sensor feedback deals with the gyro sensitivity calibration, or it just trims out the cumulated position errors?
I am thinking about writing some OSD code for this board. Software only, using the spi port and interrupts. Unfortunately no dma, so must handle the spi interrupts in every 1.5 ... 2 usec. The processor loading is not too high, however I am not sure if there are periods in the current software when interrupts disabled for more then about 1 usec? It so, such sw OSD can't co-exist.
Hi Bill, Hi all. I have some experience on AP and IMU programming and recently I start playing with arduIMU (DCM code) and making some tests. I added a new term in the drift correction. It´s a dynamic weighting of accelerometer info and works very well for me. This is like a "reliability filter" for the accelerometers info so I use Kp_ROLLPITCH*Accel_weight (and also Ki) for drift correction.
Accel_weight vary from 1.0 when Accel_magnitude = 1g to 0.0 when is >1.5g or <0.5g
I think you could try this on your code and see the results...
With this functionality it´s the first time I can register a looping on the IMU!
I posted more info and the code I use in this blog post
>>Sorry for the duplicated reply but I had problems with the first one...
Replies
I have one question regarding UAV Dev Board. I have read somewhere that ReturnToLaunch could be performed if 3 miles distance is not reached. So is this true in V2? If yes would it be possible to remove such limitation?
Regards
Michal
Microchip MPLAB C30 License Manager Version v3_20 (Build Date Aug 24 2009).
Copyright (c) 2008 Microchip Technology Inc. All rights reserved.
The MPLAB C30 license has expired.
Options have been disabled due to expired license
Visit http://www.microchip.com/ to purchase a new key.
The final reading is:
Program Memory [Origin = 0x100, Length = 0x7f00]
section address length (PC units) length (bytes) (dec)
------- ------- ----------------- --------------------
.text 0x100 0x1e9e 0x2ded (11757)
.const 0x1f9e 0x1ce 0x2b5 (693)
.text 0x216c 0xcea 0x135f (4959)
.dinit 0x2e56 0x1f6 0x2f1 (753)
.text 0x304c 0xf3c 0x16da (5850)
.isr 0x3f88 0x2 0x3 (3)
Total program memory used (bytes): 0x5dcf (24015) 49%
Did it just write a bunch of zeros? I have the evaluation version of MPLAB, so it shouldn't be complaining about the lack of licence.
[you can see why we picked Atmel and Arduino for ArduPilot!]
http://www.rcgroups.com/forums/showthread.php?p=13917366#post13917366
I got attracted here by the DCM implementations. Really appreciate the developers' gratitude to put the codes in open source. I am trying to understand the DCM code so that I could use it on our IMUs. But I got some questions with the union usage in PI_feedback() of rmat.c. No experiences with DSP programming at all.
I understand that with union, we could easily access the lower or upper 2 bytes of a long variable. But I don't understand why there are ">>3" after the multiplication and in the final assignment.
---------------------For example---------------------
union longww CorrectionIntegral[] = { { 0 } , { 0 } , { 0 } } ;
CorrectionIntegral[0].WW += ( __builtin_mulss( errorYawplane[0] , KIYAW )>>3) ;
omegacorrI[0] = CorrectionIntegral[0]._.W1>>3 ;
------------------------------------------------------------
KIYAW = 32; so what I should expect from omegacorrl[0]? Can anybody help with this?
Haiyang
Just curious if there is a demo application for the IMU with PC connection (rotating cube or similar on-screen demo)?
I tried the RollPitchYaw demo, seems to work very well. However moving the board several times in conical circles it cumulates some position error. (it removes the error after the movement in calm position, it takes a few seconds)
Maybe it's because of the not perfect gyro sensitivity? The acceleratin sensor feedback deals with the gyro sensitivity calibration, or it just trims out the cumulated position errors?
I am thinking about writing some OSD code for this board. Software only, using the spi port and interrupts. Unfortunately no dma, so must handle the spi interrupts in every 1.5 ... 2 usec. The processor loading is not too high, however I am not sure if there are periods in the current software when interrupts disabled for more then about 1 usec? It so, such sw OSD can't co-exist.
Jozsef
Just curious if there is a demo application for the IMU with PC connection (rotating cube or similar on-screen demo)?
I tried the RollPitchYaw demo, seems to work very well. However moving the board several times in conical circles it cumulates some position error. (it removes the error after the movement in calm position, it takes a few seconds)
Maybe it's because of the not perfect gyro sensitivity? The acceleratin sensor feedback deals with the gyro sensitivity calibration, or it just trims out the cumulated position errors?
I am thinking about writing some OSD code for this board. Software only, using the spi port and interrupts. Unfortunately no dma, so must handle the spi interrupts in every 1.5 ... 2 usec. The processor loading is not too high, however I am not sure if there are periods in the current software when interrupts disabled for more then about 1 usec? It so, such sw OSD can't co-exist.
Jozsef
Accel_weight vary from 1.0 when Accel_magnitude = 1g to 0.0 when is >1.5g or <0.5g
I think you could try this on your code and see the results...
With this functionality it´s the first time I can register a looping on the IMU!
I posted more info and the code I use in this blog post
>>Sorry for the duplicated reply but I had problems with the first one...
Good work
JJ.
Thanks