Oleg Kalachev
6b38070e43
Rename printIMUCal to printIMUCalibration for consistency with rc
2025-07-14 12:04:02 +03:00
Oleg Kalachev
52819e403b
Major rework of rc subsystem
...
Implement channels mapping calibration.
Store mapping in parameters.
Get rid of `controls` array and store control inputs in `controlRoll`, `controlPitch`, ... variables.
Move `channels` variable to rc.ino, channels are not involved when controled using mavlink.
'Neutral' values are renamed to 'zero' - more precise naming.
`controlsTime` is renamed to `controlTime`.
Use unsigned values for channels.
Make channel values in simulation more alike to real world: unsigned values in range [1000, 2000].
Send RC_CHANNELS_RAW instead of RC_CHANNELS_SCALED via mavlink
Don't send channels data via mavlink if rc is not used
2025-07-14 12:01:29 +03:00
Oleg Kalachev
be7b6ec0c9
Fix simulator build
2025-05-16 05:02:27 +03:00
Oleg Kalachev
21dc47c472
Make mavlink print buffered
...
Combine all output of each step into one SERIAL_CONTROL message
2025-05-05 00:44:06 +03:00
Oleg Kalachev
66a43ab246
Continuous gyro bias estimation ( #17 )
...
Estimate gyro bias continuously instead of calibrating the gyro at startup.
2025-03-29 12:21:40 +03:00
Oleg Kalachev
3fdebf39d8
Fix mavlink disconnection in pauses in cli commands
...
Implement pause function that proceeds processing mavlink.
Use temporal workaround for simulation, as micros function gives the same result on the same simulation step.
2025-02-28 19:25:41 +03:00
Oleg Kalachev
5bf2e06c5a
Use natural order of ino files includes in simulation
...
In Arduino, ino files are included in alphabetical order.
Cleanup unused function declarations in simulation, add missing.
Rename flu to frd function to match the code style.
2025-02-28 19:06:58 +03:00
Oleg Kalachev
d60628e14d
Support MAVLink console
...
Implement receiving and sending SERIAL_CONTROL message
Use global defined print function instead of Serial.printf
2025-02-18 10:33:01 +03:00
Oleg Kalachev
149c62568f
Refactor CLI submodule
...
Move command parsing to doCommand
Parse command with splitString instead of stringToken
Trim commands
Move cliTestMotor to the bottom
Rename parseInput to handleInput, which is more clear
Move motor test function to motors.ino
2025-02-17 15:51:58 +03:00
Oleg Kalachev
15fbe34d19
Add failsafe to prevent arming without prior zero throttle
2025-01-24 16:23:59 +03:00
Oleg Kalachev
70f5186c1b
Use double for storing time instead of float
...
Float precision may be not enough after some time of operating
2025-01-12 19:58:36 +03:00
Oleg Kalachev
ac54c954aa
Cleanup
2025-01-11 04:31:53 +03:00
Oleg Kalachev
9e4a2c5ffc
Move controlsTime variable to rc.ino
2025-01-11 00:28:31 +03:00
Oleg Kalachev
821e6b105e
Make channels definition to rc.ino
...
It's also planned to parametrize them later
2025-01-10 09:37:48 +03:00
Oleg Kalachev
698cc3d9b8
Global variables cleanups
...
Remove unused PID objects for cli
Move loopRate to time.ino
2025-01-10 07:10:30 +03:00
Oleg Kalachev
c8109af04f
Make ONE_G definition const and move to utils.ino
2025-01-09 11:24:40 +03:00
Oleg Kalachev
404ceed851
Make motor indexes definition const int and move them to motors.ino
...
Remove motor indexes definitions from flix.ino
Add motors.ino to simulation code and implement required mocks
2025-01-09 11:14:18 +03:00
Oleg Kalachev
ae349fb73c
Implement parameters subsystem
...
* Unified parameters storage.
* Store parameters in flash on the hardware.
* Store parameters in text file in simulation.
* Work with parameters in command line.
* Support parameters in MAVLink for working with parameters in QGC.
2024-12-23 13:00:02 +03:00
Oleg Kalachev
7533a9cbfa
Move ONE_G definition to flix.ino
2024-12-23 02:37:03 +03:00
Oleg Kalachev
ea141f851f
Use 'loop rate' term instead of misleading 'loop frequency'
2024-12-04 07:00:00 +03:00
Oleg Kalachev
b015c15a7e
Remove non-working fullmot command
2024-11-24 00:10:37 +03:00
Oleg Kalachev
ec832d4e37
Implement RC fail-safe
2024-11-04 11:51:17 +03:00
Oleg Kalachev
2fdad7bdb6
Remove LED horizontality signalization
...
It's better to control the attitude estimation using QGC
2024-11-03 17:41:13 +03:00
Oleg Kalachev
c5c889679b
Fix simulation build
2024-10-31 19:27:27 +03:00
Oleg Kalachev
abcc9b96de
Use FLU as the main coordinate system instead of FRD
...
Corresponding to the IMU orientation in the new version
2024-10-23 09:30:49 +03:00
Oleg Kalachev
f46460e53d
Make RC_CHANNELS=16 corresponding the number of SBUS channels
2024-10-23 09:28:09 +03:00
Oleg Kalachev
23f3295439
Remove ESC support and add MOSFET support in motors code
...
The new version uses MOSFETs
2024-10-23 09:27:54 +03:00
Oleg Kalachev
41a9a95747
Transfer gyro low pass filter to estimate.ino
...
Separate raw gyro data and filtered rates to different variables
2024-04-20 14:52:01 +03:00
Oleg Kalachev
646fa46f6b
Use FlixPeriph library for SBUS
2024-03-17 02:29:37 +03:00
Oleg Kalachev
f718af7f0e
Support MAVLink usage in simulation
2024-01-31 12:10:18 +03:00
Oleg Kalachev
f520b57abe
Implement RC calibration, common for the real drone and the simulation
2024-01-02 11:54:09 +03:00
Oleg Kalachev
2c21114540
Refactor control, remake controlManual to controlTorque
2023-12-13 08:33:35 +03:00
Oleg Kalachev
46579ce8a4
Better code for yaw target
2023-12-13 07:49:57 +03:00
Oleg Kalachev
89bf8a7f14
Cleanup
2023-12-04 00:28:02 +03:00
Oleg Kalachev
94b483cda6
Transfer fullMotorTest function to motors.ino
2023-12-03 20:43:55 +03:00
Oleg Kalachev
39875cafb9
Remove non-effective static
s
2023-05-31 20:12:45 +03:00
Oleg Kalachev
9a93367629
Make dt=0 on first step, simplify code
2023-05-31 20:07:38 +03:00
Oleg Kalachev
88cc792287
Cleanups
2023-05-26 16:24:19 +03:00
Oleg Kalachev
c1aa0d9869
Store current time in float variable
2023-05-26 16:23:30 +03:00
Oleg Kalachev
c5323f5723
Add accel calibration command
2023-05-26 16:21:54 +03:00
Oleg Kalachev
1125335b16
Cleanup, use printf
2023-05-24 11:22:59 +03:00
Oleg Kalachev
17edd0ee00
Show imu data in cli
2023-05-24 11:05:11 +03:00
Oleg Kalachev
34fd303027
Restore accidentally removed files
2023-05-24 10:58:34 +03:00