Commit Graph

441 Commits

Author SHA1 Message Date
Oleg Kalachev
0268c8ebcf Some fixes and updates in pyflix
Fix set_controls
Add set_armed method
2025-09-25 16:53:49 +03:00
Oleg Kalachev
09bf09e520 Update schematics diagram 2025-09-25 06:16:02 +03:00
Oleg Kalachev
4c89b10767 Fix fields order in psq command 2025-09-20 22:35:36 +03:00
Oleg Kalachev
a79df52959 Don't trigger rc failsafe in AUTO mode or if disamed 2025-09-20 20:36:36 +03:00
Oleg Kalachev
e88888baeb Fix rc calibration steps enumeration again 2025-09-11 11:47:28 +03:00
Oleg Kalachev
de69b228ff Fix rc calibration steps enumeration 2025-09-02 11:03:44 +03:00
Oleg Kalachev
f9739dcd7e Don't arm by mavlink command if throttle is not low 2025-08-29 03:47:51 +03:00
Oleg Kalachev
708c8f04dc Minor docs fix 2025-08-28 05:17:46 +03:00
Oleg Kalachev
2128201440 Fix simulation build 2025-08-28 01:13:38 +03:00
Oleg Kalachev
8e3c86f5ee pyflix@0.7 2025-08-28 00:52:27 +03:00
Oleg Kalachev
40fc4b96b5 Implement AUTO mode for automatic flights
Support SET_ATTITUDE_TARGET, SET_ACTUATOR_CONTROL_TARGET in mavlink.
ACTUATOR_OUTPUT_STATUS is changed ACTUATOR_CONTROL_TARGET to match used message for setting motor outputs.
Add support for changing mode from mavlink.
Support automatic flights in pyflix.
2025-08-28 00:49:24 +03:00
Oleg Kalachev
10fafbc4a0 Send udp packets in unicast after connection is established
This makes qgc connection faster.
Add WIFI_UDP_REMOTE_ADDR macro for default remote address for both the firmware and simulation.
2025-08-27 05:01:07 +03:00
Oleg Kalachev
d47d7b8bd4 Support arm/disarm mavlink commands
Refactor commands handling to remove repeating ack message packing.
2025-08-27 04:45:25 +03:00
Oleg Kalachev
a7fdc2a88f Minor change in cli help message 2025-08-27 04:43:24 +03:00
Oleg Kalachev
c1788e2c75 Refactor arming logic
Arm and disarm with gestures only: left stick right/down for arming, left/down for disarming.
Remove arming switch as it complicates arming gestures logic.
Remove MAV_CTRL_SCALE parameter as it complicates arming gestures logic, advise to decrease TILT_MAX when controlling with a smartphone.
Put some minimal thrust to motors to indicate armed state.
Rename build article to usage article, add flight instructions.
2025-08-27 03:19:26 +03:00
Oleg Kalachev
beb655fdcb Add illustration for qgc proxy for pyflix 2025-08-27 03:13:28 +03:00
Oleg Kalachev
bf0cdac111 Major update of the articles
Reflect control subsystem refactoring.
Update dataflow diagram.
Add control subsystem diagram.
Minor updates.
2025-08-27 00:09:42 +03:00
Oleg Kalachev
b21e81a68b Add cli commands for switching mode
Make mode variable int instead of enum, which is more convinient.
2025-08-26 21:55:27 +03:00
Oleg Kalachev
8418723ccc Refactor control subsystem
Add interpretControls function to convert pilot commands and mode into control targets and make control functions independent from the mode.
Add ratesExtra target for rates feed-forward; remove yawMode.
Rename controlRate to controlRates to reflect rates variable name.
Remove USER mode.
2025-08-26 01:00:56 +03:00
Oleg Kalachev
a1539157b8 Show raw values in imu command 2025-08-22 17:20:33 +03:00
Oleg Kalachev
80922dc68a Some updates to readme and build article
Add info on using USB gamepad
Replace KINGKONG transmitter with BetaFPV LiteRadio
Add RoboCamp video
2025-08-20 22:06:17 +03:00
Oleg Kalachev
fcd2738763 Add link to stls from robocamp 2025-08-19 15:20:24 +03:00
Oleg Kalachev
fa07ed3a4e Minor docs change 2025-08-15 00:51:08 +03:00
Oleg Kalachev
dee4d97ab3 Add getRoll, getPitch, setRoll, setPitch methods
Add methods to Quaternion for consistency with getYaw and setYaw
2025-08-09 18:10:11 +03:00
Oleg Kalachev
ea35db37da Minor code simplification 2025-08-09 17:53:06 +03:00
Oleg Kalachev
cd953f24ad Add RoboCamp to built drones article 2025-08-07 14:29:39 +03:00
Oleg Kalachev
3f80712641 Some updates to articles 2025-08-06 23:52:35 +03:00
Oleg Kalachev
18bacb64f3 Make rc loss timeout longer 2025-07-31 12:35:28 +03:00
Oleg Kalachev
7e8bd3e834 Minor updates 2025-07-28 22:07:33 +03:00
Oleg Kalachev
bb0643e8c6 Add missing set_velocity method stub to pyflix 2025-07-28 22:06:30 +03:00
Oleg Kalachev
32f417efae Updates in pyflix
Rename mav_to to system_id to match firmware naming.
Readme updates.
2025-07-24 09:15:44 +03:00
Oleg Kalachev
018a6d4fce Add repository field to python library 2025-07-22 17:21:51 +03:00
Oleg Kalachev
1f47aa6d62 Add Python library (#20) 2025-07-22 14:17:08 +03:00
Oleg Kalachev
779fa13e80 Increase connection timeout for arduino-cli as it prevents some users from downloading the core 2025-07-21 11:12:47 +03:00
Oleg Kalachev
5eccb3f0c4 Fix rates, acc and gyro coordinate frame in mavlink
All of them should be in frd.
Get rid of fluToFrd function - there is no big need for it.
2025-07-19 05:32:49 +03:00
Oleg Kalachev
29f1a2b22b Minor fixes to builds list 2025-07-18 14:19:43 +03:00
Oleg Kalachev
1d4ce810a9 Add chkroko's bldc build 2025-07-18 12:14:42 +03:00
Oleg Kalachev
32874b92fd Minor fixes 2025-07-14 12:05:16 +03:00
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
449dd44741 Fix storing nans and infs in preferences in simulator
Turns out file streams cannot parse nans and infs on some platforms, so use std::stof to parse.
2025-07-14 09:52:49 +03:00
Oleg Kalachev
e389d717d6 Show unspecified core as * in sys command 2025-07-13 11:12:54 +03:00
Oleg Kalachev
ea8463ed70 Fixes in firmware variables description 2025-07-12 10:07:52 +03:00
Oleg Kalachev
85afe405cb Improve pause function work
Fix disconnecting from qgc while pausing in the simulation. 
Consider total delay time in micros() in simulation to increase t while delaying.
Simplify and get rid of ARDUINO macro check.
2025-07-12 09:29:47 +03:00
Oleg Kalachev
fd4bcbeb89 Minor changes 2025-07-10 07:27:53 +03:00
Oleg Kalachev
121b50d896 Increase motors pwm frequency to 78Khz
1000 Hz is too low frequency considering the update loop for motors signal is also 1000 Hz.
Decrease resolution as it's required to set larger pwm frequencies.
This change should vastly improve control jitter and remove audible motors noise.
2025-07-03 03:46:11 +03:00
Oleg Kalachev
48c7135efb Return zero rotation vector when converting neutral quaternion
Previously it would return nans
2025-07-01 02:48:49 +03:00
Oleg Kalachev
9229b743eb Add missing equals and non-equals operators for quaternion lib 2025-07-01 02:47:01 +03:00
Oleg Kalachev
52d31ba7a5 Add missing includes to Arduino.h to make build more portable 2025-07-01 02:38:47 +03:00
Oleg Kalachev
f11ab2dc16 Add info on mpu-6050 2025-06-30 12:29:07 +03:00