Difference between revisions of "Lisa Asctec Bringup"

From PaparazziUAV
Jump to navigation Jump to search
(updated the instructions for fixing the spektrum receiver)
 
(17 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This page describes the process of Assembling a Lisa on an Asctec frame with Asctec X-BL motor controllers and motors, from assembly to the first flight.
This page describes the process of Assembling a Lisa on an Asctec frame with Asctec X-BL motor controllers and motors, from assembly to the first flight.
- Poine/booz2_a6 : this is an hexarotor with mikrokopter motor controllers and running booz2 code in the stm32
- Poine/booz2_a7 : this is an asctec quadrotor with astec motor controllers and running booz2 code in the stm32
- Poine/booz2_a8 : this is a biplan with asctec motor controllers and using stm32 only as io processor - this one is in progress
- esden/lisa_asctec : this is an asctec quadrotor with asctec motor controllers and running booz2 code in the stm32 using xtend based rc remote control.


== Assembly ==
== Assembly ==
[[Image:Lisa quad aluminium frame-disassembled.jpg|500px]]
[[Image:Lisa quad aluminium frame-assembled.jpg|500px]]


== Connectors ==
== Connectors ==
Line 38: Line 46:
Last but not least you may want to start the '''GroundControlSoftware''' where you can view and control the autonomous flight data.
Last but not least you may want to start the '''GroundControlSoftware''' where you can view and control the autonomous flight data.


=== Spektrum Satellite Receiver ===
== Spektrum Satellite Receiver ==
You may need to make several changes to the 'sw/airborne/booz/radio_control/booz_radio_control_spektrum_dx7se.h' file. We created a new file called 'booz_radio_control_spektrum_dx7se_joby.h'. This file is included by adding the following line to the airframe file:
 
ap.CFLAGS += -DRADIO_CONTROL_SPEKTRUM_MODEL_H=\"radio_control/booz_radio_control_spektrum_dx7se_joby.h\"
 
If Lisa doesn't seem to be receiving from your Spektrum receiver, check
If Lisa doesn't seem to be receiving from your Spektrum receiver, check
  #define RC_SPK_SYNC_2 0x12
  #define RC_SPK_SYNC_2 0x12
in 'sw/airborne/booz/radio_control/booz_radio_control_spektrum_dx7se.h'. The Joby receiver's second sync bit was actually 0x01.
Our receiver's second sync bit was actually 0x01.
 
Check the mapping and signs of the RC channels by viewing the paparazzi telemetry. You also want to include the kill switch channel if it is not already there. Our mapping and signs look like this:
 
#define RADIO_CONTROL_ROLL      0
#define RADIO_CONTROL_THROTTLE  5
#define RADIO_CONTROL_PITCH      3
#define RADIO_CONTROL_YAW        6
#define RADIO_CONTROL_MODE      1
#define RADIO_CONTROL_KILL_SWITCH 4
 
#define RC_SPK_THROWS { MAX_PPRZ/MAX_SPK, \
                        MAX_PPRZ/MAX_SPK, \
                        -MAX_PPRZ/MAX_SPK, \
                        -MAX_PPRZ/MAX_SPK, \
                        MAX_PPRZ/MAX_SPK, \
                        MAX_PPRZ/MAX_SPK, \
                        MAX_PPRZ/MAX_SPK }
 
== Motor Mapping ==
Depending on which propellers are mounted where, you need to edit your airframe file (in the supervision section). Our mapping looked like this:
    <define name="ROLL_COEF"  value="{    0,    0,  256, -256 }"/>
    <define name="PITCH_COEF"  value="{  256, -256,    0,    0 }"/>
    <define name="YAW_COEF"    value="{ -256, -256,  256,  256 }"/>
    <define name="THRUST_COEF" value="{  256,  256,  256,  256 }"/>
 
== Motor Controller Address ==
at this moment you only can change the motor controller address when you implement asctec in you airframe file.
<subsystem name="actuators"    type="asctec"/>
Also when you have asctec_v2 motor controllers.
so replace asctec_v2 by asctec when you want to program the motor controllers.
!!! Do not forget to put asctec back to asctec_v2 when you want to fly!!!
 
 
implement settings/settings_booz2_asctc.xml in the settings part of your airplane (done in paparazzi center).  
 
When you program the motor controllers for the first time you have to connect them one by one to the Lisa because they all have been programmed as front address .
 
Power on your Lisa.
 
In the GCS klick on the tab Settings-->asctec
 
set cur_addr to the motor you want to reverse (first time FRONT)
 
set new_addr to the motor you want it to be
 
and than set cmd to SET_ADDR
 
the set_addr commando will be sent 1 time to the motor controller.
 
To test the motor, you have to replace the asctec back to asctec_v2 if you have asctec_v2 motor controllers.
 
== Motor Spin Directions ==
at this moment you only can change the spin direction when you implement asctec in you airframe file.
<subsystem name="actuators"    type="asctec"/>
Also when you have asctec_v2 motor controllers.
so replace asctec_v2 by asctec when you want to program the motor controllers.
!!! Do not forget to put asctec back to asctec_v2 when you want to fly!!!
 
 
implement settings/settings_booz2_asctc.xml in the settings part of your airplane (done in paparazzi center).
 
Connect all the motor controllers to the lisa (you first have to give them an unique address see Motor Controller Address)
 
Power on your Lisa.
 
In the GCS klick on the tab Settings-->asctec
 
set cur_addr to the motor you want to reverse
 
and than set cmd to reverse
 
the reverse commando will be sent 1 time to the motor controller.
 
To test the motor, you have to replace the asctec back to asctec_v2 if you have asctec_v2 motor controllers.
 
== Check Motor Controllers ==
The Asctec motor controller bypass capacitors are prone to damage. Replace them if they look dented, otherwise the motor controllers will not function.
 
== Calibrate Accelerometers and Magnetometers ==
See [[BoozSensorsCalibration]]. During the data aquisition stage, be sure to let the vehicle rest in each position. Don't hold it in your hand. This is because the calibration script checks the data for noise and drops data from noisy sections. If ALL your data is too noisy and gets dropped, the script will give you a "too many indices" error. This error may also occur when your logfile is empty.
 
If your magnetometer data is too noisy (if you try to calibrate magnetometers when a computer or power supply is close by), the calibration script will take a very long time to run, and then it will give you incorrect results. Plot your data to see if it looks too noisy.
 
The signs on the outputted sensor gains are dependent on the orientation of Booz IMU (the sensor board) relative to the main Lisa board. This correction will be automated in a future release.
 
== Preflight Automatic Gyro Zeroing ==
When you power up the vehicle for a flight, an LED on Lisa will blink quickly. Rest the vehicle on a flat surface until the LED goes solid. This indicates the vehicle is ready to fly and you can turn on the motors.


To fix this without breaking it for other people, copy 'booz_radio_control_spektrum_dx7se.h' to 'booz_radio_control_spektrum_dx7se_YOURNAME.h' and edit the sync bit value. Copy 'conf/autopilot/subsystems/booz2_radio_control_spektrum.makefile' to 'conf/autopilot/subsystems/booz2_radio_control_spektrum_YOURNAME.makefile' and edit it to point at the new header file. Then edit the aircraft config file to point at the new makefile.
[[Category:Software]] [[Category:User_Documentation]]

Latest revision as of 08:31, 28 November 2017

This page describes the process of Assembling a Lisa on an Asctec frame with Asctec X-BL motor controllers and motors, from assembly to the first flight.

- Poine/booz2_a6 : this is an hexarotor with mikrokopter motor controllers and running booz2 code in the stm32
- Poine/booz2_a7 : this is an asctec quadrotor with astec motor controllers and running booz2 code in the stm32
- Poine/booz2_a8 : this is a biplan with asctec motor controllers and using stm32 only as io processor - this one is in progress
- esden/lisa_asctec : this is an asctec quadrotor with asctec motor controllers and running booz2 code in the stm32 using xtend based rc remote control.

Assembly

Lisa quad aluminium frame-disassembled.jpg Lisa quad aluminium frame-assembled.jpg

Connectors

  • USART3 Spektrum RC sattelite
  • USART2 telemetry modem or PC

Compiling STM32 firmware

make AIRCRAFT=LISA_ASCTEC clean_ac ap.compile

Flashing STM32 firmware

make AIRCRAFT=LISA_ASCTEC ap.upload

Testing telemetry

Start the paparazzi program launcher:

./paparazzi

Now you have to start a series of programs.

datalink

Connects the air network with the ground network. In our case it takes the serial data from USART2 and translates them to network packets.

link -d /dev/ttyUSB1 -s 57600

messages & realtime plotter

This program is a "sniffer" it displays the packets going around on the ground network and displays them as numbers. You also may want to start the realtime plotter. You can drag values from the messages window into the realtime plotter to plot the data as a curve over time.

settings & server

Settings allows you to view configuration values on the vehicle. If you want to change any of them you will also need to start server that dispatches the data and transfers them to the vehicle. You need to tell the settings program what vehicle you are using:

settings -ac LISA_ASCTEC

GCS

Last but not least you may want to start the GroundControlSoftware where you can view and control the autonomous flight data.

Spektrum Satellite Receiver

You may need to make several changes to the 'sw/airborne/booz/radio_control/booz_radio_control_spektrum_dx7se.h' file. We created a new file called 'booz_radio_control_spektrum_dx7se_joby.h'. This file is included by adding the following line to the airframe file:

ap.CFLAGS += -DRADIO_CONTROL_SPEKTRUM_MODEL_H=\"radio_control/booz_radio_control_spektrum_dx7se_joby.h\"

If Lisa doesn't seem to be receiving from your Spektrum receiver, check

#define RC_SPK_SYNC_2 0x12

Our receiver's second sync bit was actually 0x01.

Check the mapping and signs of the RC channels by viewing the paparazzi telemetry. You also want to include the kill switch channel if it is not already there. Our mapping and signs look like this:

#define RADIO_CONTROL_ROLL       0
#define RADIO_CONTROL_THROTTLE   5
#define RADIO_CONTROL_PITCH      3
#define RADIO_CONTROL_YAW        6
#define RADIO_CONTROL_MODE       1
#define RADIO_CONTROL_KILL_SWITCH 4
#define RC_SPK_THROWS { MAX_PPRZ/MAX_SPK, \
                        MAX_PPRZ/MAX_SPK, \
                       -MAX_PPRZ/MAX_SPK, \
                       -MAX_PPRZ/MAX_SPK, \
                        MAX_PPRZ/MAX_SPK, \
                        MAX_PPRZ/MAX_SPK, \
                        MAX_PPRZ/MAX_SPK }

Motor Mapping

Depending on which propellers are mounted where, you need to edit your airframe file (in the supervision section). Our mapping looked like this:

   <define name="ROLL_COEF"   value="{    0,    0,  256, -256 }"/>
   <define name="PITCH_COEF"  value="{  256, -256,    0,    0 }"/>
   <define name="YAW_COEF"    value="{ -256, -256,  256,  256 }"/>
   <define name="THRUST_COEF" value="{  256,  256,  256,  256 }"/>

Motor Controller Address

at this moment you only can change the motor controller address when you implement asctec in you airframe file.

<subsystem name="actuators"     type="asctec"/>

Also when you have asctec_v2 motor controllers. so replace asctec_v2 by asctec when you want to program the motor controllers. !!! Do not forget to put asctec back to asctec_v2 when you want to fly!!!


implement settings/settings_booz2_asctc.xml in the settings part of your airplane (done in paparazzi center).

When you program the motor controllers for the first time you have to connect them one by one to the Lisa because they all have been programmed as front address .

Power on your Lisa.

In the GCS klick on the tab Settings-->asctec

set cur_addr to the motor you want to reverse (first time FRONT)

set new_addr to the motor you want it to be

and than set cmd to SET_ADDR

the set_addr commando will be sent 1 time to the motor controller.

To test the motor, you have to replace the asctec back to asctec_v2 if you have asctec_v2 motor controllers.

Motor Spin Directions

at this moment you only can change the spin direction when you implement asctec in you airframe file.

<subsystem name="actuators"     type="asctec"/>

Also when you have asctec_v2 motor controllers. so replace asctec_v2 by asctec when you want to program the motor controllers. !!! Do not forget to put asctec back to asctec_v2 when you want to fly!!!


implement settings/settings_booz2_asctc.xml in the settings part of your airplane (done in paparazzi center).

Connect all the motor controllers to the lisa (you first have to give them an unique address see Motor Controller Address)

Power on your Lisa.

In the GCS klick on the tab Settings-->asctec

set cur_addr to the motor you want to reverse

and than set cmd to reverse

the reverse commando will be sent 1 time to the motor controller.

To test the motor, you have to replace the asctec back to asctec_v2 if you have asctec_v2 motor controllers.

Check Motor Controllers

The Asctec motor controller bypass capacitors are prone to damage. Replace them if they look dented, otherwise the motor controllers will not function.

Calibrate Accelerometers and Magnetometers

See BoozSensorsCalibration. During the data aquisition stage, be sure to let the vehicle rest in each position. Don't hold it in your hand. This is because the calibration script checks the data for noise and drops data from noisy sections. If ALL your data is too noisy and gets dropped, the script will give you a "too many indices" error. This error may also occur when your logfile is empty.

If your magnetometer data is too noisy (if you try to calibrate magnetometers when a computer or power supply is close by), the calibration script will take a very long time to run, and then it will give you incorrect results. Plot your data to see if it looks too noisy.

The signs on the outputted sensor gains are dependent on the orientation of Booz IMU (the sensor board) relative to the main Lisa board. This correction will be automated in a future release.

Preflight Automatic Gyro Zeroing

When you power up the vehicle for a flight, an LED on Lisa will blink quickly. Rest the vehicle on a flat surface until the LED goes solid. This indicates the vehicle is ready to fly and you can turn on the motors.