ArduPilot / ardupilot

ArduPlane, ArduCopter, ArduRover, ArduSub source
http://ardupilot.org/
GNU General Public License v3.0
10.96k stars 17.49k forks source link

Means to trigger RTL or Land based on battery data #26370

Open Neel5897 opened 8 months ago

Neel5897 commented 8 months ago

Feature request

Is your feature request related to a problem? Please describe. We would like BMS to send commands for RTL or E-Land based on battery data. For example, in an event of overcurrent or overtemperature way above the acceptable threshold, the UAV should perform an emergency landing sequence

Describe the solution you'd like One idea would be to use the status flags in BatteryInfo.h or BatteryContinuous.h If any of these flags are triggered it can do the appropriate tasks to initialise an RTL or Land

Describe alternatives you've considered As of now, I'm initializing RTL or Land by changing the parameters BATT_FS_LOW_ACT and BATT_FS_CRIT_ACT in mission planner. But these can only perform the RTL or land based on voltage and SOC.

Platform [ ] Battery management system (BMS) [ ] Copter [ ] Plane [ ] DSDL

rmackay9 commented 8 months ago

Hi @Neel5897,

For more complicated battery failsafes, a Lua script might be a good idea. So the battery provides the data but the Lua script makes the decisions on what actions to take.

By the way, where are the BatteryInfo.h or BatteryContinuous.h that you've mentioned?

Neel5897 commented 8 months ago

Hi @rmackay9 , I've tried my luck at lua scripting but its been unsuccessful so far. If there's any example codes or references, that could be of great help.

The batteryInfo.h is in the path uavcan>equipment>power of droneCAN DSDL. And the batteryContinuous.h is in ardupilot>equipment>power.