iNavFlight / inav

INAV: Navigation-enabled flight control software
https://inavflight.github.io
GNU General Public License v3.0
3.09k stars 1.46k forks source link

PASSTHROUGH mode improvements (expo/ servo rates) #2648

Closed giacomo892 closed 6 years ago

giacomo892 commented 6 years ago

I'm thinking about something to enhance Fixed Wing experience when in PASSTHROUGH mode.

Basically what pilots do, if they can, is to add some additional expo on the radio when they switch to PASSTHROUGH mode. This let them to control the aircraft in a much smoother way.

I personally fly with FlySky radios and it does not let me adding additional expo.

Furthermore it is advisable not to use radio advanced functionalities when you use INAV. (like for instance trims and mixing)

I came up with those solutions:

  1. Add a new configuration parameter like rc_passthrough_expo that takes in account expo setting when in pass mode. It can be like 255 for disabled and then standardrc_expo will be used instead.

  2. Add a new configuration parameter like passthrough_expo_boostas a multiplier for the current rc_expo . Then pass expo will be passthrough_expo_boost / 100 * rc_expo It can be 1 as default.

  3. Add a new setting to allow to proportionally limit servo rate when in PASSTHROUGH. Like servo_rate/passthrough_attuation. Idea from @fiam

What do you think? Which idea do you like (if you do 💃 ) ?

gregorg commented 6 years ago

Good idea :+1:

shellixyz commented 6 years ago

I already made a patch that adds a manual mode with dedicated expo and rates. If you'd like to test it let me know. I will make a pull request for it soon.

giacomo892 commented 6 years ago

Great! Create a pull request so everyone can check :) Thanks!

shellixyz commented 6 years ago

Pull request is #2661. v1.8 test builds with manual flight mode can be found here: https://drive.google.com/open?id=1AG_RCDXuwohIEv0S5d_It198c1C-iZZK

junwoo091400 commented 6 years ago

@shellixyz Not related to this issue, but can you share how you Build for every single target in one command?

Or is there a way to get TravisCI compiled file front the server??

shellixyz commented 6 years ago

@junwoo091400

I used the make command with an invalid target to display the list of targets:

$ make TARGET=DONOTEXIST
Makefile:111: *** Target 'DONOTEXIST' is not valid, must be one of AIRBOTF4 AIRHEROF3 AIRHEROF3_QUAD ALIENFLIGHTF3 ALIENFLIGHTF4 ALIENFLIGHTNGF7 ANYFC ANYFCF7 ANYFCF7_EXTERNAL_BARO ANYFCM7 BEEROTORF4 BETAFLIGHTF3 BLUEJAYF4 CHEBUZZF3 CLRACINGF4AIR COLIBRI COLIBRI_RACE DYSF4PRO F4BY FALCORE FF_F35_LIGHTNING FISHDRONEF4 FRSKYF3 FRSKYF4 FURYF3 FURYF3_SPIFLASH KFC32F3_INAV KROOZX LUX_RACE MATEKF405 MATEKF405OSD MATEKF722 MOTOLAB OLIMEXINO OMNIBUS OMNIBUSF4 OMNIBUSF4PRO OMNIBUSF4PRO_LEDSTRIPM5 OMNIBUSF4V3 OMNIBUSF7 OMNIBUSF7V2 PIKOBLX PIXRACER QUANTON RCEXPLORERF3 REVO REVO_OPBL RMDO SPARKY SPARKY2 SPARKY2_OPBL SPRACINGF3 SPRACINGF3EVO SPRACINGF3EVO_1SS SPRACINGF3MINI SPRACINGF3NEO SPRACINGF4EVO STM32F3DISCOVERY YUPIF4. Have you prepared a valid target.mk?.  Stop.

Then I used a shell loop to build each one: $ for target in <target_list_copy_pasted>; do make TARGET=$target; done

junwoo091400 commented 6 years ago

@shellixyz Thank you so much, I really appreciate it :)

Dronek commented 6 years ago

Basically what pilots do, if they can, is to add some additional expo on the radio when they switch to PASSTHROUGH mode. This let them to control the aircraft in a much smoother way.

Maybe I miss the point but why is that? RC EXPO is applied in PASSTHROUGH by default and a value of e.g. 0.7 works for PASSTHROUGH, ACRO and so forth. When I switch between ACRO and PASSTHROUGH the plane feels basically the same in terms of control. It is just more stable without stick input in ACRO mode but I don't see why more expo would be useful and all iNav pilots that I know in person don't apply additional expo in PASSTHROUGH.

In my opinion it would make more sense to adjust your mechanical linkage, servo travel and RC EXPO in such a way that flying in PASSTHROUGH feels comfortable. Then adjust the rates in ACRO until you get a desired behavior in this mode, no?

shellixyz commented 6 years ago

Separate expo setting for me is not to increase it in passthrough (manual) but on the contrary less expo when using low rates (less than 100% control surface deflection).

Dronek commented 6 years ago

Separate expo setting for me is not to increase it in passthrough (manual) but on the contrary...

Understood, but why don't you set RC EXPO to work for you in PASSTHROUGH and then tune just the rates in ACRO to result in similar stick feel compared to PASSTHROUGH?

Redshifft commented 6 years ago

Acro is a "rate" deg/sec control not a proportional control surface and simple to set to your required sensitivity. The other level modes are indirect through adjustable pid controllers, Passthrough is the only untainted direct control that the plane feels you and you feel the plane. As I said in the other thread I'm not even sure any "rate" settings are processed in passthrough any more - we used to have the RC rate scaler but I think that's locked at 1 now. I imagine you guys have set up the planes to fly nice in Angle or Acro and then find Passthrough a disappointment where it should have been setup in Passthrough first which is the most important mode also the only one you can correctly trim your plane in.

shellixyz commented 6 years ago

You have 3 switchable rate profiles for stabilized modes but for passthrough at the moment you are forced to use full control surface deflection. This feature request asks to fix this issue.

digitalentity commented 6 years ago

Suggesting to move discussion about improved passthrough to the relevant PR #2661