Commit Graph

793 Commits

Author SHA1 Message Date
Andrew Tridgell 29f124543b AP_Scripting: added custom telem msgs for EFI_Skypower driver
also:
- and added parameter for enable/disable start when disarmed
- added logging for extra fields not in EFI logging
- fixed endianness of EFI tester
2023-01-24 10:25:12 +11:00
Henry Wurzburg f8c4356ce2 AP_Scripting: add error check to mission_load.lua 2023-01-21 11:09:52 +11:00
Andrew Tridgell b71601e9e4 AP_Scripting: fixed alt frame error in ship landing
if terrain follow is enabled then this would result in mixing a
terrain alt with an absolute alt, resulting in attempts to descend to
a negative alt
2023-01-19 17:09:05 +11:00
Nicholas (Nick) Kruzan 0dc878564f AP_Scripting:examples - rangefinder_test.lua : Minor Spelling Correction
Ratation -> Rotation
2023-01-18 12:01:40 +00:00
Henry Wurzburg 71099c881d AP_Scripting: add error check to mission_load.lua 2023-01-17 10:24:08 +11:00
Henry Wurzburg c8617ccf01 AP_Scripting:Add mission to Script_Controller and improve 2023-01-17 10:24:08 +11:00
Andrew Tridgell b45be75a98 AP_Scripting: use MultiHeap class 2023-01-16 09:19:16 +11:00
Andrew Tridgell 10c5ecb46a AP_Scripting: added example for generator throttle control 2023-01-10 10:19:51 +11:00
Henry Wurzburg 787cce4fc3 AP_Scripting: sport_aerobatics trick additions and fixes 2023-01-10 09:41:41 +11:00
Andrew Tridgell db45682b3d AP_Scripting: check for alloc failure of ObjectBuffer 2023-01-08 15:11:32 +11:00
Henry Wurzburg 8de4195ffc AP_Scripting: add readme.md file and completion 2023-01-04 16:20:12 +11:00
Andrew Tridgell ea89f04a56 AP_Scripting: script switching system
Co-authored-by:Henry Wurzburg (hwurzburg@yahoo.com)
2023-01-04 16:20:12 +11:00
Henry Wurzburg bd27a8c650 AP_Scripting: Update readmes for aerobatics 2023-01-03 11:22:52 +11:00
Henry Wurzburg 65547f41c7 AP_Scripting: rename TRIK to TRIKR for sport_aerobatics 2023-01-03 11:03:36 +11:00
Iampete1 f0c1673b62 AP_Scripting: bindings: logger: support more formats 2023-01-03 10:45:51 +11:00
Henry Wurzburg 175c2c950e AP_Scripting:fix format error in readme file 2022-12-30 14:39:43 -08:00
Andrew Tridgell d5a0421bbb AP_Scripting: fixed derry turn in aerobatics 2022-12-29 07:49:15 +11:00
Andrew Tridgell 6edfe7368e AP_Scripting: don't start aerobatics until we have a ahrs estimates
prevents nil derefernce in loading tricks
2022-12-29 07:48:53 +11:00
Henry Wurzburg d6a5d31625 AP_Scripting:add rate based aerobatics 2022-12-27 18:20:34 +11:00
Andrew Tridgell f742845552 AP_Scripting: changed airshow rolling circle
make it more achievable
2022-12-22 21:13:30 +11:00
Tatsuya Yamaguchi 43160efba8 AP_Scripting: modify example script of README.md
- avoid to call set_output_pwm before setting origin
- make get_home() once
2022-12-22 13:25:35 +09:00
Andrew Tridgell 6dcb137b29 AP_Scripting: fixed error on bad cmd in mission 2022-12-17 15:35:35 +11:00
Ari Krupnik 205329575a AP_Scripting: Lua applet starts/stops video recording on arm/disarm 2022-12-17 11:55:50 +11:00
Andrew Tridgell 57d60f86b5 AP_Scripting: new version of knife-edge compensation in aerobatics
this is a simpler approach based on sin(roll)*cos(pitch)
2022-12-16 10:09:17 +11:00
Andrew Tridgell 84db577f09 AP_Scripting: fixed aerobatics bug
thanks Andy!
2022-12-15 07:17:06 +11:00
Andrew Tridgell ca3be1d0c7 AP_Scripting: fixed roll correction at end of partial climbing circle 2022-12-15 07:17:06 +11:00
Andrew Tridgell afc1a38b73 AP_Scripting: use luaM_malloc instead of allocf
handles GC if needed automatically
2022-12-15 07:17:06 +11:00
Andrew Tridgell ff6d9a12a4 AP_Scripting: try a gc on alloc fail in logging 2022-12-15 07:17:06 +11:00
Andrew Tridgell aa8ff87ad2 AP_Scripting: make most object functions local 2022-12-15 07:17:06 +11:00
Andrew Tridgell aa865e1f9b AP_Scripting: save some class variables 2022-12-15 07:17:06 +11:00
Andrew Tridgell 716adb6d59 AP_Scripting: use metatable object approach for aerobatics
saves about 30k ram for AirShow, about 60k ram for F3AF23
2022-12-15 07:17:06 +11:00
Henry Wurzburg 649c87f1ec Applets:add SportPlaneAirshow schedule 2022-12-13 12:29:41 +11:00
Andrew Tridgell 1a68da49f1 AP_Scripting: improved stall turn with wind
compensate for wind drift and shift position
2022-11-30 21:12:23 +11:00
Andrew Tridgell a9e7f473bd AP_Scripting: added shift_y attribute
shift our maneuver frame y position at the end of the stall rudder
over
2022-11-30 21:12:23 +11:00
Iampete1 0d0718c259 AP_Scripting: dont check objects that are expected to be null 2022-11-29 10:33:31 +11:00
Andrew Tridgell 6a1b3d4e30 AP_Scripting: moved trick72.txt to Schedules/AirShow.txt 2022-11-28 10:40:50 +11:00
Andrew Tridgell c5840e512b AP_Scripting: removed P23 schedules from main lua
now moved to Schedules directory
2022-11-28 10:40:50 +11:00
andypnz 136538e69b AP_Scripting: added schedules
this adds F3A, F4C and the NZ ClubMan schedules as txt files
2022-11-28 10:40:50 +11:00
Andrew Tridgell 2863f3954b AP_Scripting: remove support for loading binary luac
this saves about 2k of flash
2022-11-28 06:23:29 +11:00
Andrew Tridgell ef3016eff0 AP_Scripting: added a simple example of the load() function 2022-11-28 06:23:29 +11:00
Andrew Tridgell c1000041a6 AP_Scripting: use pcall and better load() approach
thanks to Pete Hall
2022-11-28 06:23:29 +11:00
Andrew Tridgell ce88ddef07 AP_Scripting: use the new lua load() functionality in the airshow 2022-11-28 06:23:29 +11:00
Andrew Tridgell 65746de112 AP_Scripting: enable load() function in lua scripts
can be used to parse user supplied lua
2022-11-28 06:23:29 +11:00
Andrew Tridgell 31b9299ad3 AP_Scripting: added function loading in aerobatic schedule text files
this allows for new maneuvers to be added inside the schedule
2022-11-28 06:23:29 +11:00
Andrew Tridgell c30cd27000 AP_Scripting: added a stall turn test 2022-11-26 10:54:39 +11:00
Andrew Tridgell 2d02a3344d AP_Scripting: treat message attribute like any other attribute
simplfies txt schedule processing
2022-11-26 10:54:39 +11:00
Andrew Tridgell 38556ab8c8 AP_Scripting: removed test_all_paths from aerobatics
not used
2022-11-26 10:54:39 +11:00
Andrew Tridgell a85e9b2eb1 AP_Scripting: removed speed override in aerobatics
will be replaced with an attrib when needed again for aerobatic landing
2022-11-26 10:54:39 +11:00
Andrew Tridgell 133dcf240b AP_Scripting: simplify path attribute handling
avoid needing a separate accessor function for each attribute
2022-11-26 10:54:39 +11:00
Andrew Tridgell 1aedb709e0 AP_Scripting: added real stall turn
reverses path at low throttle
2022-11-26 10:54:39 +11:00
Andrew Tridgell 814104cb33 AP_Scripting: added align_box and align_center
allows for alignment of maneuvers to the ends or center of the
aerobatic box
2022-11-24 19:37:59 +11:00
Andrew Tridgell bd4255f654 AP_Scripting: allow "thr_boost: true" in text aerobatic schedules
likes this:

  message: Loop
  thr_boost: true
  loop 30
2022-11-24 16:52:15 +11:00
Iampete1 c1cd095508 AP_Scripting: remove lua acess to ap object creation 2022-11-23 19:48:21 +11:00
Henry Wurzburg 92cc5e87aa AP_Scripting: add initial announcement to plane_aerobatics.lua 2022-11-22 10:57:40 +11:00
Henry Wurzburg fafdf4d46d AP_Scripting: update readme on plane_aerobatics 2022-11-21 16:54:13 +11:00
Andrew Tridgell 15820ec5f8 AP_Scripting: added set_orient and funny_loop
this allows much tighter control over path orientation during a sequence
2022-11-20 18:24:24 +11:00
Paul Riseborough e09ae7bc43 AP_Scripting: re-work multi-point roll using roll_sequence 2022-11-20 18:23:05 +11:00
Andrew Tridgell 486787937a AP_Scripting: added roll_sequence to simplify complex manuevers
allows for complex roll sequences within manuevers
2022-11-20 18:23:05 +11:00
Andrew Tridgell b2a38c0c60 AP_Scripting: added AEROM_PATH_SCALE
and add some docs on parameters
2022-11-19 19:04:34 +11:00
MatthewHampsey 97bcc11f68 AP_Scripting: Added side_step maneuver 2022-11-18 05:42:26 +11:00
MatthewHampsey 3fd212063c AP_Scripting: Fixed barrel roll arc 2022-11-18 05:41:23 +11:00
Andrew Tridgell b0b9c969da AP_Scripting: implement path lookahead for aerobatics
this implements lookahead, which takes account of the response time of
the vehicle to changing rate demands in pitch and yaw
2022-11-16 13:04:20 +11:00
Peter Barker 1203f118d7 AP_Scripting: allow FRSky to be compiled out 2022-11-15 18:44:45 +11:00
Iampete1 6086402528 AP_Scripting: use helpers for full range return types to save flash 2022-11-15 10:33:51 +11:00
Andrew Tridgell 71828602e5 AP_Scripting: add more of p23 schedule
thanks to Andy! Fixes the cross-box roll references
2022-11-14 20:35:31 +11:00
Andrew Tridgell 93353442a4 AP_Scripting: fixed crossbox-humpty aerobatics 2022-11-14 20:35:31 +11:00
Andrew Tridgell a8318fc9bb AP_Scripting: added multi_point_roll 2022-11-14 14:28:33 +11:00
Paul Riseborough 2b1098c2b8 AP_Scripting: Add four and eight point rolls to plane aerobatics script
Signed-off-by: Paul Riseborough <gncsolns@gmail.com>
2022-11-14 14:28:33 +11:00
Paul Riseborough 79db2fe4da AP_Scripting: Prevent integrator windup in throttle 2022-11-14 14:28:33 +11:00
Andrew Tridgell 3c9c7fac06 AP_Scripting: added yaw angular accel limit for aerobatics 2022-11-13 16:23:39 +11:00
Andrew Tridgell af44cbfc30 AP_Scripting: fixed spelling of barrel roll 2022-11-12 07:34:21 +11:00
Andrew Tridgell 64e050da60 AP_Scripting: added barrell_roll
path OK, but exit orientation is wrong
2022-11-11 14:19:44 +11:00
Andrew Tridgell 0d9397f451 AP_Scipting: cope with lua update being called too soon
in CI we occasionally get a loop called too fast (in one log the
micros() timestamp step was zero)
2022-11-11 08:25:33 +11:00
Andrew Tridgell c48eeec71d AP_Scripting: added AEROM_THR_MIN and AEROM_THR_BOOST
allow for better throttle control during maneuvers
2022-11-11 08:25:33 +11:00
Henry Wurzburg 48404f4e64 AP_Scripting: Update plane_aerobatics README.md 2022-11-10 13:54:56 +11:00
Andrew Tridgell a1e172c7c3 AP_Scripting: added figure_eight to loadable tricks 2022-11-10 13:53:15 +11:00
Andrew Tridgell 46c6c28419 AP_Scripting: look in multiple directorys for trick txt files 2022-11-10 13:53:15 +11:00
Andrew Tridgell 8c671c8b29 AP_Scripting: removed old aerobatics system 2022-11-10 13:53:15 +11:00
Andrew Tridgell bf34bea4d6 AP_Scripting: moved aerobatics to applets/Aerobatics/FixedWing/ 2022-11-10 13:53:15 +11:00
Andrew Tridgell a98b9f2c44 AP_Scripting: removed old AUTO_MIS parameters
this mechanism not needed any more now we have full schedules
2022-11-10 12:27:53 +11:00
Andrew Tridgell 8637b2098f AP_Scripting: allow aerobatic sequences to load from a txt file
this allows for complex sequences to be defined in a file like
"trick72.txt"

the example shows how it is done
2022-11-09 09:03:37 +11:00
Iampete1 1547c65ff3 AP_Scripting: bindings: logging: add flag to copy format strings 2022-11-08 10:49:43 +11:00
Peter Barker 4fccfdd56f AP_Scripting: include cleanups 2022-11-08 09:49:19 +11:00
Andrew Tridgell e6af416f94 AP_Scripting: fixed yaw glitch on init in aerobatics 2022-11-08 08:44:23 +11:00
Andrew Tridgell 6a3c7f8cf6 AP_Scripting: get ahrs state once at the start of each loop
this minimises the impact of slow lua scripting
2022-11-07 21:22:43 +11:00
Andrew Tridgell 228b4adda0 AP_Scripting: fixed initial tangent 2022-11-07 21:22:43 +11:00
Andrew Tridgell d7c0a1025e AP_Scripting: use actual_dt for ef rate update
this seems to work more consistently for now
2022-11-07 21:22:43 +11:00
Andrew Tridgell 833c18d4ae AP_Scripting: added sideslip filter 2022-11-07 21:22:43 +11:00
Andrew Tridgell 8fc3a725ce AP_Scripting: fixed path rate to use right time scaling 2022-11-07 21:22:43 +11:00
Andrew Tridgell 9874d4196d AP_Scripting: new specific force sideslip control
and fixed dt handling to match quaternion delta
2022-11-07 21:22:43 +11:00
Andrew Tridgell 2fb90fb5dd AP_Scripting: fixed chaining of orientations
use tangent rotation to accumulate orientations
2022-11-07 21:22:43 +11:00
andypnz 7fa45e343f AP_Scripting: F3A path adjustments 2022-11-07 15:54:51 +11:00
Andrew Tridgell b924e6dca5 AP_Scripting: tidy airshow and add triple show
triple show is a demo of how to combine schedules
2022-11-05 12:19:02 +11:00
Andrew Tridgell 29060be8a9 AP_Scripting: improve knife-edge in aerobatics
thanks to Paul Riseborough for helping with yaw rate adjustment in knifeedge
2022-11-05 12:19:02 +11:00
Andrew Tridgell ec8331ec75 AP_Scripting: log path error
ready for an autotest
2022-11-04 07:17:30 +11:00
Iampete1 7e07859ec9 AP_Scripting: add debug print of state memory cost 2022-11-03 09:50:59 +11:00
Iampete1 815adbbc8e AP_Scripting: log memory cost of script load 2022-11-03 09:50:59 +11:00
Andrew Tridgell 94273f1403 AP_Scripting: update docs 2022-11-03 07:31:10 +11:00
Andrew Tridgell 233e8e44cb AP_Scripting: added crossbox humpty maneuvers 2022-11-03 07:29:34 +11:00
Andrew Tridgell acb627a4a4 AP_Scripting: updates from Andy for p23 2022-11-03 07:29:34 +11:00
Andrew Tridgell 40fdb22423 AP_Scripting: added airshow
and messages in schedules
2022-11-02 12:22:30 +11:00
Iampete1 7b844e3974 AP_Scripting: use checker helper for singletons 2022-11-01 17:03:50 +11:00
Iampete1 d673d3b219 AP_Scripting: rework feilds to only use switch for both read and write 2022-11-01 17:03:50 +11:00
Iampete1 5a0c45e090 AP_Scripting: ap object creation functions shared method 2022-11-01 17:03:50 +11:00
Iampete1 84fe2ed829 AP_Scripting: remove memset 0 after malloc 2022-11-01 17:03:50 +11:00
Iampete1 d0f527369d AP_Scripting: remove type specific out of range warnings 2022-11-01 17:03:50 +11:00
Iampete1 06712c9f0b AP_Scripting: rework arg checks to save flash 2022-11-01 17:03:50 +11:00
Iampete1 5711ac9596 AP_Scripting: generator: combine null checks in getter as error is terminal 2022-11-01 17:03:50 +11:00
andypnz d23c35e747 AP_Scripting: tracjectory path improvements 2022-11-01 14:58:32 +11:00
Andrew Tridgell 6b0b3b1a05 AP_Scripting: treat zero loops as 1 2022-11-01 08:33:06 +11:00
Andrew Tridgell 6c785715fa AP_Scripting: fixed initial ground course in aerobatic tricks
needs ground course to account for wind
2022-11-01 08:33:06 +11:00
Andrew Tridgell 2224096cff AP_Scripting: added straight_align path primitive
allows alignment to position within maneuver frame
2022-11-01 08:32:42 +11:00
Andrew Tridgell dcaea691a2 AP_Scripting: fixed final orientation of climbing_circle 2022-10-31 15:15:16 +11:00
Andrew Tridgell 7a03160590 AP_Scripting: capitalise the SCR_HEAP_SIZE parm 2022-10-31 15:14:27 +11:00
Andrew Tridgell 4dac9bf5ed AP_Scripting: greatly reduce memory in aerobatics
avoid holding path objects outside of the time they are needed
2022-10-31 15:14:27 +11:00
Andrew Tridgell 3c101d879e AP_Scripting: correct climbing circle for roll distortion 2022-10-29 21:22:29 +11:00
Andrew Tridgell eb62991632 AP_Scripting: improve timing accuracy 2022-10-29 21:22:29 +11:00
Andrew Tridgell d3ce852050 AP_Scripting: send error as NAMED_VALUE_FLOAT 2022-10-29 21:22:29 +11:00
Andrew Tridgell bcdbfef7d5 AP_Scripting: removed banked_circle
and fixed helix length calculation
2022-10-29 21:22:29 +11:00
Andrew Tridgell 01bdc532d6 AP_Scripting: added schedules from Andy 2022-10-29 21:22:29 +11:00
Andrew Tridgell fb7ea3ecac AP_Scripting: filled in all maneuvers in test_all_paths 2022-10-29 21:22:29 +11:00
Andrew Tridgell d88e3d27f6 AP_Scripting: added composition of composed paths 2022-10-29 21:22:29 +11:00
Andrew Tridgell 5a0311c6d8 AP_Scripting: use composer object to prepare for nested composition 2022-10-29 21:22:29 +11:00
Andrew Tridgell 4e154b17a2 AP_Scripting: convert remaining paths to composite functions 2022-10-29 21:22:29 +11:00
Andrew Tridgell 7541eed80c AP_Scripting: fixed height gain/loss in upline/downline 2022-10-29 21:22:29 +11:00
Andrew Tridgell efff5dc7ea AP_Scripting: added throttle lookahead
anticipate the pitch and add extra throttle ready for the pitch up
2022-10-29 21:22:29 +11:00
MatthewHampsey a4c544436a AP_Scripting: Added box trajectories, adding warning log for insufficent roll rate 2022-10-29 21:22:29 +11:00
Andrew Tridgell 8bc847fcf1 AP_Scripting: convert more paths to use composer 2022-10-29 21:22:29 +11:00
Andrew Tridgell b1e123df9e AP_Scripting: added entry and exit bank rates 2022-10-29 21:22:29 +11:00
Andrew Tridgell 20f1e8a6e6 AP_Scripting: fixed NED -> ENU in view_paths
thanks MattH !
2022-10-29 21:22:29 +11:00
Andrew Tridgell 7c7de7eee6 AP_Scripting: added stall turn
not really working well
2022-10-29 21:22:29 +11:00
Andrew Tridgell f509359c24 AP_Scripting: removed debug 2022-10-29 21:22:29 +11:00
Andrew Tridgell f31fa6daf2 AP_Scripting: add Split-S, Upline-45 and Downline-45 2022-10-29 21:22:29 +11:00
Andrew Tridgell 8873f95e52 AP_Scripting: re-implement humpty bump with composition 2022-10-29 21:22:29 +11:00
Andrew Tridgell 9242786d1e AP_Scripting: added path composition
allow creation of paths from a sequence of sub-paths
2022-10-29 21:22:29 +11:00
Andrew Tridgell 3dfbca62a6 AP_Scripting: catch NaN in view_path 2022-10-29 21:22:29 +11:00
Andrew Tridgell c0559935ed AP_Scripting: ensure time doesn't go past 1.0 2022-10-29 21:22:29 +11:00
Andrew Tridgell 16583704ed AP_Scripting: make target speed max of current and trim speed 2022-10-29 21:22:29 +11:00
Andrew Tridgell dd390c257d AP_Scripting: remove unused code 2022-10-29 21:22:29 +11:00
Andrew Tridgell 119852b390 AP_Scripting: fixed mirroring for some -ve radius paths 2022-10-29 21:22:29 +11:00
Andrew Tridgell 4b53e16ea2 AP_Scripting: document trajectory scripting 2022-10-29 21:22:29 +11:00
Andrew Tridgell 0ae3b39a66 AP_Scripting: implement tricks on a switch on top of trajectory tracking
this re-implements tricks on a switch with the new accurate trajectory
tracking code.

It adds new parameters:

 - TRIK_ENABLE=0/1
 - TRIK_COUNT for number of tricks
 - TRIK_ACT_FN for the rc option to use to activate tricks (default 300)
 - TRIK_SEL_FN for the rc option to use to select which trick (default 301)

So if you want to use a 3 position switch on RC7 to activate and use a
knob on RC8 for selection then you would set:

- RC7_OPTION = 300
- RC8_OPTION = 301

then if tricks are enabled the following parameters are created per trick:

 - TRIKn_ID
 - TRIKn_ARG1
 - TRIKn_ARG2
 - TRIKn_ARG3
 - TRIKn_ARG4

You can have a maximum of 11 tricks.

The ID numbers are from the trajectory table. The arguments are path specific.
2022-10-29 21:22:29 +11:00
MatthewHampsey 51481eff24 AP_Scripting: Made negative radii steer in other direction for remaining trajs 2022-10-25 16:37:19 +11:00
MatthewHampsey d011c8977f AP_Scripting: Fix humpty bump 2022-10-25 16:37:19 +11:00
Andrew Tridgell eb1d27df7b AP_Scripting: adjust EFI_SkyPower for rev 0.3 protocol 2022-10-25 11:44:45 +11:00
Andrew Tridgell aea9dea005 AP_Scripting: added CANDRV to HFE EFI driver and document 2022-10-25 11:44:45 +11:00
Andrew Tridgell 96852a8eb4 AP_Scripting: added throttle and generator control for EFI_SkyPower driver
and added documentation for the driver
2022-10-25 11:44:45 +11:00
WillyZehnder a7d5f8addc AP_Scripting: bindings: get_alt_frame included
bindings.desc + docs.lua: get_alt_frame included
2022-10-25 10:21:05 +11:00
Iampete1 5db30b75e7 AP_Scripting: logging: move to char buffer from lua buffer 2022-10-25 10:09:14 +11:00
MatthewHampsey bdce9d5cb3 AP_Scripting: improved trajectory tracking
with thanks to Paul Riseborough for the algorithmic improvements
2022-10-23 18:11:15 +11:00