Ciao a tutti,
queste sono le mie deduzioni relative al controllo della camera tramite APM1
I canali utilizzati sono il 5 per il roll ed il 6 per il pitch
Ora credo che debbano essere usati tutti e due per il controllo automatico della stabilità della ripresa.
Ma se impegno il canale 5 per eventuali comandi da dare (loiter, gps-hold ecc.) non posso avere il controllo del roll
Quindi chiedo, visto che nel Mission Planner nella prima schermata c'è la possibilità di mandare comandi, questa funzione è operativa? si può usare tranquillamente?
Sbaglio qualcosa?
Tags:

In effetti non c'è molta chiarezza su queste cose nel wiki.
Non confondere le uscite dell'APM con gli ingressi, sono due cose che non sono per niente legate.
Se usi il canale 5 in ingresso per le modalità di volo non ha nulla a che vedere con il canale 5 d'uscita dell'APM per il controllo della cam, lo so, uno lega le due cose per lo stesso numero del canale, ma se ci pensi l'APM manda fuori sul canale 5 qualcosa che non dipende dall'ingresso sullo stesso numero di canale... :-)
Sappi comunque che puoi solamente controllare il PITCH con il canale 6, il roll lavora solo automaticamente per tenere la cam dritta, se non metti le mani nel codice non puoi utilizzare un altro canale per controllarlo... ma io l'ho fatto... :P
Iniziamo a capire il codice, questo è un estratto del file "camera.pde":
// PITCH
// -----
// Allow user to control camera pitch with channel 6 (mixed with pitch DCM)
if(g.radio_tuning == 0) {
g.rc_camera_pitch.set_pwm(APM_RC.InputCh(CH_6));
g.rc_camera_pitch.servo_out = g.rc_camera_pitch.control_mix(ahrs.pitch_sensor);
}else{
// unless channel 6 is already being used for tuning
g.rc_camera_pitch.servo_out = ahrs.pitch_sensor * -1;
}
g.rc_camera_pitch.servo_out = (float)g.rc_camera_pitch.servo_out * g.camera_pitch_gain;
// limit
//g.rc_camera_pitch.servo_out = constrain(g.rc_camera_pitch.servo_out, -4500, 4500);
// ROLL
// -----
// allow control mixing
/*
g.rc_camera_roll.set_pwm(APM_RC.InputCh(CH_6)); // I'm using CH 6 input here.
g.rc_camera_roll.servo_out = g.rc_camera_roll.control_mix(-ahrs.roll_sensor);
*/
La stringa " /* " (senza apici ovviamente) è come il vecchio "REM" del basic, serve ad isolare dal codice qualcosa che vogliamo lasciare ma che non viene utilizzato, ed è sempre seguita da un " /* ", cioè dalla "chiusura" della parte da isolare.
Come si può notare quindi la parte che controlla il "ROLL" con un canale in ingresso è isolata.
Ecco come l'ho modificata io, abilitando il controllo del ROLL sul canale 7:
// ROLL
// -----
// allow control mixing
g.rc_camera_roll.set_pwm(APM_RC.InputCh(CH_7)); // I'm using CH 7 input here.
g.rc_camera_roll.servo_out = g.rc_camera_roll.control_mix(-ahrs.roll_sensor);
E' ovvio che quando questo codice è in funzione non dobbiamo assolutamente dichiarare null'altro sul canale 7, si può fare anche dal planner ma ho preferito mettere questa riga nel config:
#define CH7_OPTION CH7_DO_NOTHING
Mi sono però spinto oltre, ma lo consiglio ai soli esperti: il famoso "canale 8" da non utilizzare mai si può invece usare proprio per il roll o per altre cose, ma è IMPERATIVO flashare la piccola Atmel 328p a bordo dell'APM con un programmatore AVR, quindi consigliato solo agli esperti.
Bisogna scrivere un nuovo "ArduPPM" encoder, quello di default è sia per ArduPilot che ArduCopter, quindi usa il canale 8 per AP ma fa grossisimi casini se utilizzato con AC (potrebbe piombarvi giù il quad come una pera in volo, ecco perchè dicono di non collegarlo assolutamente alla rx).
L'encoder PPM dedicato per AC si trova qui:
http://code.google.com/p/ardupilot-mega/downloads/detail?name=ArduP...
Per ora lo utilizzo per regolare il pattern dei led sul mio quad, ma è possibile utilizzarlo anche per il ROLL della cam.
Qui il mio video che spiega il funzionamento dei led:
PS: ricordiamoci che il controllo del pitch cam sul canale 6 viene automaticamente disabilitato nel momento in cui dichiarate un "tuning in volo" su quel canale dal planner!
Molti ci contattano chiedendoci perchè non funziona, ed ovviamente hanno qualcosa dichiarato nella sezione "CH6 TUNING" del planner... le due cose non possono coesistere.
Il controllo della cam è comunque in fase di miglioramento, purtroppo ha alcune lacune che stanno per esser colmate, a breve farò dei test in volo ed aiuterò il dev team nell'implementazione del controllo.
Spero d'aver fatto un pò di chiarezza sulla situazione.
Marco
Permalink Reply by Andrea & Antonio & C. on April 15, 2012 at 3:33am Ciao Marco,
grazie di avermi confortato sulla poca chiarezza del wiki, non vorrei fare la figura di uno che chiede senza leggere prima
in effetti ho fatto delle prove, e alla fine collegando il ch 5 e il ch 6 di uscita APM (dove sono collegati i motori per intenderci) disabilitando i ch 5 e 6 sulla radio e (non ho collegato nemmeno le uscite 5 e 6 del RX del radiocomando), i comandi funzionano (prova non in volo)
avevo pensato anche io di dare una occhiata al codice e di utilizzare il ch 8 con le dovute precauzioni, tra l'altro ho anche comprato il programmatore AVR, perchè se ricordi avevo un problema su una 2560 (mandando il comando sul ch 7 si attivava anche il ch 6 e nel punto centrale del gas anche gli altri comandi si muovevano da solo ma di poco) e mi avevi suggerito di riflashare il 328p, tra l'altro ha funzionato parzialmente (la riprogrammazione però è andata a buon fine)
grazie delle conferme
Permalink Reply by Paolo on April 15, 2012 at 3:03pm Vi ho appena fatto un video per farvi vedere il camera gimbal collegato alla mia APM2, primo test. Sinceramente zero problemi, collegati i due servi alle uscite 10 e 11 come da wiki,

non ho scollegato il ch5 della radio, ho impostato il "CH6 none" in MP come da default, e assegnato alla radio un POT sul CH6 a caso per provare. Devo capire quali sono i parametri di regolazione del gimbal per partire ad es in asse con il quad, ora parte inclinato, ma in un secondo tempo..vero Marco? ;-)
Scusate il riverbero dell'audio, colpa della radio.
Permalink Reply by Maurilio on April 16, 2012 at 5:13am Io ho cambiato i seguenti parametri su APM1 :
CAM_P_REV a (meno uno ) per inveritire il senso di movimento del Pitch se cosi di default a ( uno ) non va bene.
CAM_P_G nel mio caso a 1,5 per fare muovere il gimbal in sincronia con il velivolo il piu possibile, ( trovato per tentativi )
Credo che sia cosi anche per i parametri del Roll CAM_R_REV e CAM_R_G che io non uso.
Season Two of the Trust Time Trial (T3) Contest has now begun. The fourth round is an accuracy round for multicopters, which requires contestants to fly a cube. The deadline is April 14th.106 members
1279 members
671 members
183 members
182 members
© 2013 Created by Chris Anderson.
Powered by
