Controllo della camera

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?

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • 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,

    3692399077?profile=original
    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.

  • Developer

    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

This reply was deleted.