Commit Graph
100 Commits
Author SHA1 Message Date
Oleg Kalachev 67efcdd08a Remove unused macro
MAVLINK_CONTROL_SCALE is now parameter
2025-05-04 00:03:38 +03:00
Oleg Kalachev d1d10c4c6c Updates to readme and documentation 2025-04-30 00:05:52 +03:00
Oleg Kalachev 4e0a1fcdab Update simulator illustration 2025-04-29 23:37:34 +03:00
Oleg Kalachev 5165355abc Make low pass filter formula more straightforward 2025-04-29 23:28:56 +03:00
Oleg Kalachev a268475f7a Add notice about firewall and vpn to troubleshooting 2025-04-29 23:22:40 +03:00
Oleg Kalachev c14fe7c48b Add some missing operator for vector library 2025-04-29 23:21:12 +03:00
Oleg Kalachev b2736e6a5b Fix simulation build in Actions
Switched runner to Ubuntu 22.04 since Gazebo 11 now has binaries for 22.04 (amd64 only).
Changed the building tutorial to reflect that.
2025-04-24 19:38:47 +03:00
Oleg Kalachev 962757f46e Update user builds illustration in readme 2025-04-23 20:10:29 +03:00
Oleg Kalachev f03dec4fae Update demo video 2025-04-22 11:27:29 +03:00
Oleg Kalachev fe98a5bf97 Minor code simplifications 2025-04-13 01:42:47 +03:00
Oleg Kalachev 253f2fe3dd Update MAVLink-Arduino to 2.0.16 2025-04-11 07:01:54 +03:00
Oleg Kalachev 94dc566643 Show landed state in imu command output 2025-03-29 16:19:23 +03:00
Oleg Kalachev 547f5087ef Pass landed state to mavlink
Using EXTENDED_SYS_STATE message
2025-03-29 16:14:37 +03:00
Oleg KalachevandGitHub 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 117ae42d1b Add Wi-Fi password to build tutorial 2025-03-29 12:02:59 +03:00
Oleg Kalachev 3a61dca102 Simplify and improve acc calibration command output 2025-03-29 01:05:55 +03:00
Oleg Kalachev a8fe1324c3 Minor readme update 2025-03-28 20:50:23 +03:00
Oleg Kalachev fc0b805cc2 Add cryptokobans's build to user projects 2025-03-28 18:23:09 +03:00
Oleg Kalachev d68222953d Simplify user builds article layout: remove tables
Tables make photos squeezed in phones
2025-03-27 18:56:35 +03:00
Oleg Kalachev bca1312b46 Remove twxs.cmake from the list of recommended extensions 2025-03-14 03:24:30 +03:00
Oleg Kalachev d5148d12a1 Minor code style fix 2025-03-14 03:03:27 +03:00
Oleg Kalachev 208e50aa15 Encode if the mode in stabilized in heartbeat message 2025-03-14 03:02:43 +03:00
Oleg Kalachev 0a87ccf435 Some minor readme updates 2025-03-01 00:27:55 +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 4e3e8c70b0 Update main book illustration 2025-02-28 03:17:09 +03:00
Oleg Kalachev bda44fca02 Remove dt multiplier from acc correction and increase acc weight
More classical complementary filter implementation
Increase effective accelerometer weight for faster convergence
2025-02-28 00:51:16 +03:00
Oleg KalachevandPavel Kabakov e66f6563a5 Add custom Wi-Fi control description by @pavelkabakov #11
Co-authored-by: Pavel Kabakov <110939392+pavelkabakov@users.noreply.github.com>
2025-02-26 01:08:36 +03:00
Oleg Kalachev 95084c167c Add user project by jeka_chex 2025-02-26 00:55:14 +03:00
Oleg Kalachev 931b2066bb Minor book fix 2025-02-26 00:20:50 +03:00
Oleg Kalachev a2cf318189 Check target system id in mavlink messages
Skip messages addressed to other systems
2025-02-26 00:08:23 +03:00
Oleg Kalachev 83a8dcd63e Cleanup mavlink subsystem code 2025-02-24 13:06:38 +03:00
Oleg Kalachev c62e536b50 Put last control time in RC control mavlink message instead of send time 2025-02-22 20:07:26 +03:00
Oleg Kalachev 287a4b5a71 Fix accel calibration via mavlink console
Add 5 s timeout as waiting for enter is not implemented for mavlink console yet
2025-02-18 13:01:44 +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 bfef7bd26a Remove non-nessesary printArray function 2025-02-18 10:26:59 +03:00
Oleg Kalachev e3c6a0d4df Make some clarifications regarding imu check in troubleshooting 2025-02-18 10:18:27 +03:00
Oleg Kalachev 9566a4a503 Add parameters access method to build article 2025-02-18 10:14:39 +03:00
Oleg Kalachev e54e0e8c48 Make all the basic functionality work without the imu 2025-02-17 19:44:18 +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 641e711e67 Minor fix in joystick support for simulation
Don't use channels variable as it breaks code isolation
2025-02-15 03:29:09 +03:00
Oleg Kalachev f2171f2db4 Minor clarification in RC receiver connection table 2025-02-12 11:10:04 +03:00
Oleg Kalachev 6ed6ef3e8c Assume armed is true if armed channel is not defined 2025-02-12 10:15:42 +03:00
Oleg Kalachev 083db659c6 Improve RC reading in calibration process 2025-02-12 10:15:13 +03:00
Oleg Kalachev ce1223e82d Allow CI simulator build under macOS if manually triggered 2025-02-12 06:24:51 +03:00
Oleg Kalachev 42f318c6df Another update of hall of fame page 2025-02-11 14:02:15 +03:00
Oleg Kalachev 1450c793b7 Update hall of fame page 2025-02-11 12:11:22 +03:00
Oleg Kalachev 3ed4143ba0 Simplify WIFI_ENABLED macro test 2025-02-08 02:41:09 +03:00
Oleg Kalachev 33adf33f0e Add proper command to install arduino-cli on Linux in instructions 2025-02-01 22:56:09 +03:00
Oleg Kalachev 373c0f117a Update user builds page 2025-01-31 11:15:57 +03:00
Oleg Kalachev 0cb2eb5fac Update upload-artifact action to fix build 2025-01-31 03:32:09 +03:00
Oleg Kalachev 70f63bfbe9 Add hall of fame page 2025-01-31 03:19:49 +03:00
Oleg Kalachev 15fbe34d19 Add failsafe to prevent arming without prior zero throttle 2025-01-24 16:23:59 +03:00
Oleg Kalachev 60fbe1c450 Fix firmware build with Wi-Fi disabled 2025-01-24 13:50:07 +03:00
Oleg Kalachev 40043768fe Add test on building the firmware without Wi-Fi to Actions 2025-01-24 13:40:27 +03:00
Oleg Kalachev dcfe39f8c9 Move SBUS RC declaration to the top 2025-01-24 12:10:48 +03:00
Oleg Kalachev b2100d10da Add motors voltage notice in troubleshooting article 2025-01-23 15:03:19 +03:00
Oleg Kalachev fd6bc42e9e Fix critical typo in RC loss fail-safe 2025-01-23 00:34:59 +03:00
Oleg Kalachev c01bac0d0a Update Flix image for frame version 1.1 2025-01-22 22:11:59 +03:00
Oleg Kalachev f65c668ca1 Add brief assembly guide article 2025-01-22 01:44:31 +03:00
Oleg Kalachev 64cf5929e2 Add new frame models
Version 1.1
2025-01-22 01:42:42 +03:00
Oleg Kalachev a9e5b2d5ca Add board pin names for motors to readme 2025-01-21 23:42:28 +03:00
Oleg Kalachev 6028b8a617 Catch port bind error in simulation 2025-01-17 17:38:47 +03:00
Oleg Kalachev b19270f14e Minor cleanups and fixes 2025-01-17 12:30:12 +03:00
Oleg Kalachev 740121a88e Check if requested parameters indexes are correct
In case if gcs gets crazy and requests incorrect parameter index
2025-01-14 21:14:04 +03:00
Oleg Kalachev b915e47f33 Add instructions on using USB remote control via QGroundControl app 2025-01-14 15:07:02 +03:00
Oleg Kalachev 7effd92043 Make MAVLink control scale a parameter 2025-01-14 14:51:34 +03:00
Oleg Kalachev 26bb4d2b3f Add link to working iOS QGroundControl build 2025-01-13 04:23:19 +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 d4e04c46cd Add time command to cli 2025-01-12 19:50:00 +03:00
Oleg Kalachev 48d21a911f Add missing const qualifiers 2025-01-12 19:46:50 +03:00
Oleg Kalachev f456e10177 Increase motors PWM frequency to 1000
To match the main loop frequency
2025-01-12 15:35:05 +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 7bf5ee330b Add link to contributed circuit diagram to readme 2025-01-10 10:52:31 +03:00
Oleg Kalachev b9e30be98c Better support for ESCs, add PWM_STOP parameter 2025-01-10 10:49:40 +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 568f9dd5b1 Minor code improvements 2025-01-10 08:59:09 +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 85172cdcc8 Make util module header instead of .ino-file 2025-01-10 06:51:14 +03:00
Oleg Kalachev 08b14d1d76 Minor cleanup 2025-01-10 06:04:32 +03:00
Oleg Kalachev 95824e3b75 Make max tilt and max angle rates MAVLink parameters
Also decrease default max yaw rate to 300 degrees
2025-01-10 06:00:06 +03:00
Oleg Kalachev 0a45614751 Move motorsActive function to motors.ino 2025-01-09 11:30:04 +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 72033cdd75 Increase motors PWM resolution to 12 bits 2025-01-09 11:02:38 +03:00
Oleg Kalachev 3088ade743 Fix getDutyCycle return type to make it possible to increase resolution 2025-01-09 11:02:21 +03:00
Oleg Kalachev c2a9d36d4e Add small delay before gyro calibration 2025-01-09 10:06:15 +03:00
Oleg Kalachev ca409396c7 Add missing const qualifiers to some quaternion methods 2025-01-09 10:02:53 +03:00
Oleg Kalachev ca032abc03 Implement rotate method for quaternions as replace for multiplication
Vector rotating method is renamed from `rotate` to `rotateVector` to avoid inconsistent object and argument order in different `rotate` methods
2025-01-09 09:56:49 +03:00
Oleg Kalachev 5d10446aaf Bring back possibility to use ESCs for motors 2025-01-09 07:43:49 +03:00
Oleg Kalachev 87cf44371b Some fixes and updates to readme and other articles 2025-01-09 03:46:54 +03:00
Oleg Kalachev 5ee407af8d Update ESP32-core to 3.1.0 2025-01-06 21:01:39 +03:00
Oleg Kalachev 59cb55cf94 Use ubuntu-20.04 runner to build simulator in CI
The latest Ubuntu Gazebo 11 officially supports is Ubuntu 20.04
2025-01-06 00:56:25 +03:00
Oleg Kalachev 5db1258f78 Add battery connector cable to components list 2025-01-06 00:21:59 +03:00
Oleg Kalachev 732de2a5d6 Remove redundant inline specifiers
In-class defined methods are specified as inline by default
2025-01-04 04:09:51 +03:00
Oleg Kalachev e10475a5e0 Some minor cleanups and fixes 2024-12-28 23:57:44 +03:00
Oleg Kalachev 7ae5457bb4 Improve logging code
Make it easer to add and remove log entries
2024-12-28 22:10:43 +03:00
Oleg Kalachev 299c8a6a02 Various minor fixes 2024-12-27 21:52:21 +03:00
Oleg Kalachev 43be27c43d Fix joystick work in simulation
Logic was broken as joystickGet never got called
2024-12-27 15:34:33 +03:00