In this case, in the range between 2.7 and 3.0, the rate PIDs will effectively become lower than you tuned them as the voltage drops. The difference will be at most 10% (that is, (3.0 - 2.7) / 3.0 = 0.1), which theoretically will not cause significant instability.
Generally, it is safe for control purposes to set MOT_BAT_VOLT_MIN lower than the battery minimum usable voltage. However, it may be somewhat less safe for battery life, because if maintaining the intended control precision requires aggressive outputs, this will impose higher discharge currents on a nearly depleted battery. Note that the discharge current increases anyway solely because you need to keep constant output power to hover - but it might be safer for the battery if the copter does not respond very sharply to your inputs or wind gusts when the battery is fully depleted.
For all my machines I know that it is completely unlikely for me set a battery on fire by any landing actions, so I set MOT_BAT_VOLT_MIN very low to ensure good attitude control at emergency landings.
$ pip3 show matplotlib
Name: matplotlib
Version: 3.9.0
Summary: Python plotting package
Home-page: https://matplotlib.org
Author: John D. Hunter, Michael Droettboom
Author-email: Unknown <matplotlib-users@python.org>
/home/pi/.local/lib/python3.10/site-packages/[matplotlib](https://pypi.org/project/matplotlib/)/projections/__init__.py:63: UserWarning: Unable to import Axes3D. This may be due to multiple versions of Matplotlib being installed (e.g. as a system package and as a pip package). As a result, the 3D projection is not available.
warnings.warn("Unable to import Axes3D. This may be due to multiple versions of "
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Processing log 72 01-01-1980 08-00-00.bin
Using orientation 0
TCAL[2] enabled
TCAL[1] enabled
TCAL[0] enabled
Loaded 8262 accel and 8262 gyro samples
You are using the original script instead of the improved version included in the ArduPilot Methodic configurator that saves you the trouble on installing python and the dependencies. Why are you doing that?
If it’s serial port telemetry there is a parameter for that. If it’s from Bdshot the rate is very high. Each DShot frame from the FC gets acknowledged by a frame from the ESC containing the current eRPM
I have it plugged in serial 6 and set serial6_protocol to esc telemetry. The Dshot is set to Dshot600. what is the param to change the sampling rate for the data log?
ESCs get logged with this 400Hz frequency or so (actually 100), if I am not mistaken: the last frame that’s arrived gets logged in most of the cases, unless the code actually collects biggest/worst values to present.
I once proposed rate limiting for ESC messages, and even implemented logging of a subset of ESCs to increase the (tiny) storage available on most of my boards. This was not accepted for the reason below.
The “real” solution is to use LOG_BLK_RATEMAX and to set it to some value you are comfortable with. This will limit the rate of other messages too, but often this is what you want (if not, you have “unlimited” space and need not bother limiting rates at all).
If I have a heater in the flight controller (Cube Orange+) that maintains the constant temperature of the Gyro and Accel, is temperature calibration required as in the instructions?
Yes, I always wait a few minutes for the IMU temperature to reach the appropriate level, without the appropriate temperature the drone will not arm (that’s how I have it set), it’s a good time to check and turn everything on before flight.