Cleanflight iNav (navigation-rewrite) project - Page 2 - RC Groups
Thread Tools
This thread is privately moderated by DigitalEntity, who may elect to delete unwanted replies.
Sep 06, 2015, 12:37 PM
T69
T69
Registered User

Althold test


Hi DE,

I was watching your work as well, so first of all thank you, really appreciated ...
I tried to test your code on my Quadcopter but the ALT_HOLD didn't
work for me as the copter was going stepwise higher and higher like climbing a ladder. Reducing the P_ALT/I_ALT values didn't help here...

Any ideas?

Cheers,

T.
Sign up now
to remove ads between posts
Sep 06, 2015, 01:19 PM
Registered User
I would like to test flying wing code. Is it available?
Sep 06, 2015, 01:52 PM
Registered User
Quote:
Originally Posted by DigitalEntity
If you are from Minnesota you're lucky to have declination of almost 0 deg, so you could leave it alone
Yes, here in Minnesota, the declination is a non-issue.
Quote:
Please send me a blackbox log, I'll have a look at it and see if your MAG looks fine to me.
Attached is a zipped log from a recent day of flying.

Quote:
Mode selection is completely different. No need to enable MAG mode or ANGLE mode explicitly, firmware will do that for you.
So in terms of setting up a transmitter switch -- if I use the current configurator, do I configure a mode for POS HOLD, and your firmware will handle the rest (i.e., setting Baro, Mag, etc.)?

Quote:
Can you share your setup?
Photo attached too:

- Hoverthings 260H frame
- Motors: SunnySky 2204 2300kv
- ESCs: Velotech 12a w/SimonK (no BEC)
- Props: Gemfan 6030
- Flight Controller: DragonFly32 Pro (Naze32/Flip32+ clone) w/Cleanflight FW
- PDB: Diatone (w 5 & 12V output)
- Buzzer: (Piezo - eBay)
- Receiver: FrSky D4r-II
- VTX: Boscam 832
- FPV Camera: Sony 600 TVL
- LC Filter (home made)
- OSD: MinimOSD w/MW_OSD (Scarab OSD)
- GPS: uBlox LEA-6 GPS

AUW w/o battery: 534
Sep 06, 2015, 06:23 PM
Build, fly, crash, repeat :-D
DigitalEntity's Avatar
Quote:
Originally Posted by Boris B
I am interrested in your 3 point median filter for delta in pid1. Did that give any improvements?

Also it would be great to put a floating median function in maths.c perhaps?
Median filter may indeed improve D-term handling in PID controllers, but I never tried it.

Feel free to reuse my code as you see fit, modifying median filter code in maths.c to handle floats should also be quite trivial.
Sep 06, 2015, 06:24 PM
Build, fly, crash, repeat :-D
DigitalEntity's Avatar
Quote:
Originally Posted by johnzm
do these nav features work on any pid controller?
and is there dodobaro support on the F3 hex?
Yes, NAV uses it's own PID controller for navigation, you may use any PID controller for pitch/roll/level. I'm flying PIDC5 (Harakiri), others should behave the same way.

Barometer on dodo board is not yet supported. There is a separate PR for it, as soon as it is merged, it'll be included here as well.
Last edited by DigitalEntity; Sep 06, 2015 at 06:30 PM.
Sep 06, 2015, 06:29 PM
Build, fly, crash, repeat :-D
DigitalEntity's Avatar
Quote:
Originally Posted by vadim
In GPS_ATTI mode is that similar to loiter mode? Where if I use the cyclic control I can move the multirotor around it's axis and once I let go and the stick goes back to neutral it will just stay in that position? If so, what is GPS_CRUISE? Is it just speed control? Not sure I understand.
There is only one flight mode that holds position - POSHOLD. A CLI variable nav_user_control_mode changes the way how pilot input is treated.

nav_user_control_mode=0 (aka GPS_ATTI) - pitch/roll stick controls the angle (i.e. pitch stick some way up would mean 30 deg forward pitch) This allows faster and more precise response to sticks.

nav_user_control_mode=1 (aka GPS_CRUISE) - pitch/roll stick controls velocity (i.e. pitch stick some way up would mean 200 cm/s forward velocity) This is better for aerial photography - movement is much more smooth.
Sep 06, 2015, 06:55 PM
Build, fly, crash, repeat :-D
DigitalEntity's Avatar
Quote:
Originally Posted by T69
Hi DE,
I was watching your work as well, so first of all thank you, really appreciated ...
I tried to test your code on my Quadcopter but the ALT_HOLD didn't work for me as the copter was going stepwise higher and higher like climbing a ladder. Reducing the P_ALT/I_ALT values didn't help here...
Hi!
Can you give some details about your setup? A 'cli dump' would be helpful. Also if you have a blackbox that would help alot!

My guess would be:
NAV config by default has nav_use_midrc_for_althold=1 that means that in ALTHOLD mode copter would hover at 50% throttle. Can you confirm that you had your throttle stick at 50%?
Sep 06, 2015, 07:00 PM
Build, fly, crash, repeat :-D
DigitalEntity's Avatar
Quote:
Originally Posted by ardufriki
I would like to test flying wing code. Is it available?
My firmware builds currently include code for altitude hold for airplanes. However my code is based on 1.10 and it seem to have issues with airplane mixer. I would rather wait airplane mixer is fixed.
Sep 06, 2015, 07:11 PM
Build, fly, crash, repeat :-D
DigitalEntity's Avatar
Quote:
Originally Posted by JohnOCFII
So in terms of setting up a transmitter switch -- if I use the current configurator, do I configure a mode for POS HOLD, and your firmware will handle the rest (i.e., setting Baro, Mag, etc.)?
Exactly!

Quote:
Originally Posted by JohnOCFII
- Hoverthings 260H frame
- Motors: SunnySky 2204 2300kv
- ESCs: Velotech 12a w/SimonK (no BEC)
- Props: Gemfan 6030
- Flight Controller: DragonFly32 Pro (Naze32/Flip32+ clone) w/Cleanflight FW
- PDB: Diatone (w 5 & 12V output)
- Buzzer: (Piezo - eBay)
- Receiver: FrSky D4r-II
- VTX: Boscam 832
- FPV Camera: Sony 600 TVL
- LC Filter (home made)
- OSD: MinimOSD w/MW_OSD (Scarab OSD)
- GPS: uBlox LEA-6 GPS
AUW w/o battery: 534
That's a pretty nice setup! I don't see much of a problem with your compass calibration. There might be some toilet-bowling in poshold, but you should be fine.

I noticed that you have alot of jitter on your motors - get rid of it and you'll have 20% extra flight time and more stable flight. I think you can try to lower your pitch/roll D-term a little.
Sep 06, 2015, 11:17 PM
Registered User
i have a hex with dodo, and IMO dodo is one of the best for testing, because it has i2c on pins, and no mag onboard.

currently i run mine with a gps/mag on a stick. I was waiting for your code to become more publicly available (i have been reading on git for a couple weeks on your progress).

i am excited to try it out! but without baro support what kind of performance can i expect?
FWIW boris F3 variant hexhas the dodo baro support added. not entirely sure what all is required to make it work
Sep 07, 2015, 05:00 AM
T69
T69
Registered User
Hi again,

sure, some details would be helpful. It's a

EyeFly HammerHead Nano
T-Motors MN2206
6x4,5 Props
3S Setup
Flip32 Full
UBlox neo-6m
Weight: Around 550g with 2700mAh 3s Lipo

I must admit, this setup is really a bit overpowered, as I had to set throttle mid really low ... I'll have a look into that, center the throttle properly and
have another go ...

The Dump:
Code:
# mixer
mixer QUADX
mmix reset
smix reset


# feature
feature -RX_PPM
feature -VBAT
feature -INFLIGHT_ACC_CAL
feature -RX_SERIAL
feature -MOTOR_STOP
feature -SERVO_TILT
feature -SOFTSERIAL
feature -GPS
feature -FAILSAFE
feature -SONAR
feature -TELEMETRY
feature -CURRENT_METER
feature -3D
feature -RX_PARALLEL_PWM
feature -RX_MSP
feature -RSSI_ADC
feature -LED_STRIP
feature -DISPLAY
feature -ONESHOT125
feature -BLACKBOX
feature -CHANNEL_FORWARDING
feature VBAT
feature MOTOR_STOP
feature GPS
feature FAILSAFE
feature RX_PARALLEL_PWM
feature ONESHOT125


# map
map AETR1234


# serial
serial 0 1 115200 57600 0 115200
serial 1 2 115200 57600 0 115200


# led
led 0 15,15:ES:IA:0
led 1 15,8:E:WF:0
led 2 15,7:E:WF:0
led 3 15,0:NE:IA:0
led 4 8,0:N:F:0
led 5 7,0:N:F:0
led 6 0,0:NW:IA:0
led 7 0,7:W:WF:0
led 8 0,8:W:WF:0
led 9 0,15:SW:IA:0
led 10 7,15:S:WF:0
led 11 8,15:S:WF:0
led 12 7,7:U:WF:0
led 13 8,7:U:WF:0
led 14 7,8:D:WF:0
led 15 8,8:D:WF:0
led 16 8,9::R:3
led 17 9,10::R:3
led 18 10,11::R:3
led 19 10,12::R:3
led 20 9,13::R:3
led 21 8,14::R:3
led 22 7,14::R:3
led 23 6,13::R:3
led 24 5,12::R:3
led 25 5,11::R:3
led 26 6,10::R:3
led 27 7,9::R:3
led 28 0,0:::0
led 29 0,0:::0
led 30 0,0:::0
led 31 0,0:::0


# color
color 0 0,0,0
color 1 0,255,255
color 2 0,0,255
color 3 30,0,255
color 4 60,0,255
color 5 90,0,255
color 6 120,0,255
color 7 150,0,255
color 8 180,0,255
color 9 210,0,255
color 10 240,0,255
color 11 270,0,255
color 12 300,0,255
color 13 330,0,255
color 14 0,0,0
color 15 0,0,0

set looptime = 3500
set emf_avoidance = 0
set mid_rc = 1500
set min_check = 1100
set max_check = 1900
set rssi_channel = 0
set rssi_scale = 30
set rssi_ppm_invert = 0
set input_filtering_mode = 0
set min_throttle = 1150
set max_throttle = 1900
set min_command = 1000
set servo_center_pulse = 1500
set 3d_deadband_low = 1406
set 3d_deadband_high = 1514
set 3d_neutral = 1460
set 3d_deadband_throttle = 50
set motor_pwm_rate = 400
set servo_pwm_rate = 50
set retarded_arm = 0
set disarm_kill_switch = 1
set auto_disarm_delay = 5
set small_angle = 25
set fixedwing_althold_dir = 1
set reboot_character = 82
set gps_provider = 1
set gps_sbas_mode = 1
set gps_auto_config = 1
set gps_auto_baud = 0
set serialrx_provider = 0
set spektrum_sat_bind = 0
set telemetry_switch = 0
set telemetry_inversion = 0
set frsky_default_lattitude =  0.000
set frsky_default_longitude =  0.000
set frsky_coordinates_format = 0
set frsky_unit = 0
set frsky_vfas_precision = 0
set hott_alarm_sound_interval = 5
set battery_capacity = 0
set vbat_scale = 110
set vbat_max_cell_voltage = 43
set vbat_min_cell_voltage = 32
set vbat_warning_cell_voltage = 34
set current_meter_scale = 400
set current_meter_offset = 0
set multiwii_current_meter_output = 0
set current_meter_type = 1
set align_gyro = 0
set align_acc = 0
set align_mag = 0
set align_board_roll = 0
set align_board_pitch = 0
set align_board_yaw = -90
set max_angle_inclination = 500
set gyro_lpf = 42
set moron_threshold = 32
set gyro_cmpf_factor = 600
set gyro_cmpfm_factor = 250
set yaw_control_direction = 1
set pid_at_min_throttle = 1
set yaw_motor_direction = 1
set yaw_jump_prevention_limit = 200
set tri_unarmed_servo = 1
set servo_lowpass_freq = 400
set servo_lowpass_enable = 0
set failsafe_delay = 10
set failsafe_off_delay = 200
set failsafe_throttle = 1000
set rx_min_usec = 985
set rx_max_usec = 2115
set acc_hardware = 0
set mag_hardware = 0
set blackbox_rate_num = 1
set blackbox_rate_denom = 1
set blackbox_device = 0
set magzero_x = 570
set magzero_y = 364
set magzero_z = 100

# rxfail
rxfail 0 h 1500
rxfail 1 h 1500
rxfail 2 h 1500
rxfail 3 h 1500
rxfail 4 h 1500
rxfail 5 h 1500
rxfail 6 h 1500
rxfail 7 h 1500
rxfail 8 h 1500
rxfail 9 h 1500
rxfail 10 h 1500
rxfail 11 h 1500
rxfail 12 h 1500
rxfail 13 h 1500

# dump profile

# profile
profile 2

# aux
aux 0 0 1 1500 2100
aux 1 1 0 1300 2100
aux 2 3 0 1800 2100
aux 3 22 0 1800 2100
aux 4 23 0 1800 2100
aux 5 0 0 900 900
aux 6 0 0 900 900
aux 7 0 0 900 900
aux 8 0 0 900 900
aux 9 0 0 900 900
aux 10 0 0 900 900
aux 11 0 0 900 900
aux 12 0 0 900 900
aux 13 0 0 900 900
aux 14 0 0 900 900
aux 15 0 0 900 900
aux 16 0 0 900 900
aux 17 0 0 900 900
aux 18 0 0 900 900
aux 19 0 0 900 900

# adjrange
adjrange 0 0 0 900 900 0 0
adjrange 1 0 0 900 900 0 0
adjrange 2 0 0 900 900 0 0
adjrange 3 0 0 900 900 0 0
adjrange 4 0 0 900 900 0 0
adjrange 5 0 0 900 900 0 0
adjrange 6 0 0 900 900 0 0
adjrange 7 0 0 900 900 0 0
adjrange 8 0 0 900 900 0 0
adjrange 9 0 0 900 900 0 0
adjrange 10 0 0 900 900 0 0
adjrange 11 0 0 900 900 0 0

# rxrange
rxrange 0 1000 2000
rxrange 1 1000 2000
rxrange 2 1000 2000
rxrange 3 1000 2000

# servo
servo 0 1000 2000 1500 90 90 100 -1
servo 1 1000 2000 1500 90 90 100 -1
servo 2 1000 2000 1500 90 90 100 -1
servo 3 1000 2000 1500 90 90 100 -1
servo 4 1000 2000 1500 90 90 100 -1
servo 5 1000 2000 1500 90 90 100 -1
servo 6 1000 2000 1500 90 90 100 -1
servo 7 1000 2000 1500 90 90 100 -1

set gps_pos_p = 15
set gps_pos_i = 0
set gps_pos_d = 0
set gps_posr_p = 90
set gps_posr_i = 15
set gps_posr_d = 1
set gps_nav_p = 25
set gps_nav_i = 33
set gps_nav_d = 83
set nav_wp_radius = 200
set nav_speed_max = 300
set nav_gps_cf =  0.200
set nav_pterm_cut_hz = 20
set nav_dterm_cut_hz = 15
set nav_rc_deadband = 20
set nav_min_rth_distance = 500
set nav_use_midrc_for_althold = 1
set nav_throttle_tilt_comp = 1
set nav_lock_until_takeoff = 0
set nav_user_control_mode = 0
set nav_rth_alt_mode = 4
set nav_rth_altitude = 1000
set alt_hold_deadband = 40
set deadband = 0
set yaw_deadband = 0
set throttle_correction_value = 0
set throttle_correction_angle = 800
set default_rate_profile = 2
set gimbal_mode = 0
set acc_lpf_factor = 4
set acc_unarmedcal = 1
set acc_trim_pitch = -36
set acc_trim_roll = -10
set baro_tab_size = 7
set baro_noise_lpf =  0.350
set baro_cf_vel =  0.965
set mag_declination = 250
set pid_controller = 1
set p_pitch = 50
set i_pitch = 27
set d_pitch = 23
set p_roll = 50
set i_roll = 27
set d_roll = 23
set p_yaw = 50
set i_yaw = 30
set d_yaw = 0
set p_pitchf =  2.500
set i_pitchf =  0.600
set d_pitchf =  0.060
set p_rollf =  2.500
set i_rollf =  0.600
set d_rollf =  0.060
set p_yawf =  8.000
set i_yawf =  0.500
set d_yawf =  0.050
set level_horizon =  3.000
set level_angle =  5.000
set sensitivity_horizon = 75
set p_alt = 30
set i_alt = 150
set d_alt = 0
set p_level = 30
set i_level = 13
set d_level = 100
set p_vel = 80
set i_vel = 50
set d_vel = 50
set yaw_p_limit = 500
set dterm_cut_hz = 0
set pterm_cut_hz = 0
set gyro_cut_hz = 0

# dump rates

# rateprofile
rateprofile 2

set rc_rate = 90
set rc_expo = 65
set rc_yaw_expo = 0
set thr_mid = 10
set thr_expo = 56
set roll_rate = 45
set pitch_rate = 45
set yaw_rate = 45
set tpa_rate = 0
set tpa_breakpoint = 1500
I've never used the BlackBox before, I'll give it a go, if the Flip32 has enough memory for a short logging session.

Thanks & Regards

T.
Sep 07, 2015, 05:29 AM
Build, fly, crash, repeat :-D
DigitalEntity's Avatar
Quote:
Originally Posted by johnzm
i have a hex with dodo, and IMO dodo is one of the best for testing, because it has i2c on pins, and no mag onboard.
I'll consider adding dodo baro support to my hex builds for testing. Probably in a few days I'll upload new hex files supporting new baro.
Sep 07, 2015, 05:34 AM
Build, fly, crash, repeat :-D
DigitalEntity's Avatar
Quote:
Originally Posted by T69
I'll have a look into that, center the throttle properly and
have another go ...
Setup looks fine to me. Please try centering your throttle stick after enabling ALTHOLD.

You can also try entering in CLI this command: "set nav_use_midrc_for_althold=0". This way when you enable ALTHOLD firmware will remember your actual throttle position as neutral - zero climb rate. Simply enable ALTHOLD and don't touch throttle stick.

Good luck!
Sep 07, 2015, 10:35 AM
Saved By The Lost Model Buzzer
This is awesome! See any issues with using softserial for GPS?

Also, what about using a mag that is up on a boom with the GPS module? Does that require special configuration? The mag on my board never seems to work consistently, and I chalked it up to EM interference.
Sep 07, 2015, 12:29 PM
Registered User
FC: FLIP32+
Frame: SK450 frame
Motors: NTM Prop Drive Series 28-26A 1200kv
ESCs: Q Brain 4 x 20A Brushless Quadcopter ESC 2-4S 3A SBEC
GPS: NEO-6 u-blox 6 GPS
Camera / FPV: Sony FPV camera + Boscam 5.8Ghz FPV System
Sonar: HCRS04
Bluetooth: HC-05
Battery: Turnigy 5000 mah

Flashing the firmware and will test.


Quick Reply
Message:
Thread Tools