Commit Graph

27 Commits

Author SHA1 Message Date
Oliver ffbe038790 AP_PiccoloCAN: Remove unncessary floating point operations 2021-07-04 08:19:11 +10:00
Oliver e9d8945930 AP_PiccoloCAN: Update code to match new esc telemetry / logging architecture 2021-07-04 08:19:11 +10:00
Oliver Walters 1a37b51ff7 AP_PiccoloCAN: Record servo telemetry information to log
- Servo position
- Servo speed
- Servo force / torque
- Servo duty cycle

Updated servo protocol file to accommodate extra variable data
2021-07-04 08:19:11 +10:00
Oliver Walters c8ba301bb2 AP_PiccoloCAN: Send servo commands for active channels
- For each channel, check if a non-motor function is assigned
- If so, send the function value out to the servo
2021-07-04 08:19:11 +10:00
Oliver Walters 77417677d3 AP_PiccoloCAN: Framework for CAN servo outputs 2021-07-04 08:19:11 +10:00
Oliver Walters 9af4fa46d3 AP_PiccoloCAN: Add support for CBS servo protocol
- Adds protocol files for the servo protocol
- Generated using Protogen tool
2021-07-04 08:19:11 +10:00
Siddharth Purohit d6ac420055 AP_PiccoloCAN: Use HAL_CANMANAGER_ENABLED instead of HAL_ENABLE_LIBUAVCAN_DRIVERS 2021-07-04 08:19:10 +10:00
Dr.-Ing. Amilcar do Carmo Lucas d15042d7c0 AP_PiccoloCAN: fix compilation when HAL_WITH_ESC_TELEM == 0 2021-06-09 21:42:51 +10:00
Tom Pittenger 96055e877b AP_PiccoloCAN: AP::can().log_text() needs HAL_ENABLE_LIBUAVCAN_DRIVERS 2021-06-09 18:36:18 +10:00
Andy Piper 70fae36a89 AP_PiccoloCAN: add ESC telemetry support
remove send_esc_telemetry_mavlink()
log telemetry data in frontend
record volts, amps and consumption as floats
2021-05-12 17:01:11 +10:00
Oliver Walters 917f7d8797 AP_PiccoloCAN: Update timeout values to use 64-bit calls
- Prevent premature overflow due to 32-bit variables
2020-10-28 18:25:45 +11:00
Oliver Walters 479df2e20b AP_PiccoloCAN: Prevent thread from getting stuck in an infinite loop
- Previous code would get stuck in the CAN Tx loop
- New approach is to simply increase the timeout on frame transmission
2020-10-28 18:25:45 +11:00
Oliver Walters 6786e832a1 AP_PiccoloCAN: Provide compatibility for "Gen 2" Velociy ESC ICD
- The "Gen 2" Velocity ESC provides much more telemetry data
- The new ICD changes are compatible (i.e. legacy and modern ESCs can be on the CAN bus at the same time)
- Decode legacy packets and convert them to modern data structures
- Supports decoding of newer telemetry packets
- Supports decoding of new warning / error packets
2020-10-28 18:25:45 +11:00
Oliver Walters 8aeec6c4d1 AP_PiccoloCAN: Constrain ESC command message rate
Use constain_int16 rather than using primitive checks
2020-09-09 15:31:21 +10:00
Oliver Walters 09d38f8729 AP_PiccoloCAN: Fix logic to improve readability 2020-09-09 15:31:21 +10:00
Oliver Walters 818e7f2cdf AP_PiccoloCAN: ESC message rate is now in Hz 2020-09-09 15:31:21 +10:00
Oliver Walters 5c53c17076 Remove parameters related to CAN servo operation 2020-09-09 15:31:21 +10:00
Oliver Walters 66812c72da AP_PiccoloCAN: Specify which ESC channels are used
- Uses the CAN_Dx_PC_ESC_BM bitmask to determine which ESC (motor) channels are controlled over PiccoloCAN
- Only transmits messages relevent to the selected motor channels
2020-09-09 15:31:21 +10:00
Oliver Walters 17932e3d1d AP_PiccoloCAN: ESC command rate now configurable
Uses CAN_Dx_PC_ESC_MS parameter to set the ESC data rate (in ms)
2020-09-09 15:31:21 +10:00
Oliver Walters a98babc02c AP_PiccoloCAN: Add user configurable operations to adjust Piccolo CAN ESC behaviour 2020-09-09 15:31:21 +10:00
Siddharth Purohit 0fcf0b4564 AP_PiccoloCAN: modify to use uavcan agnostic CAN drivers and manager 2020-08-19 17:31:09 +10:00
Peter Barker 245b962d92 AP_PiccoloCAN: regularise CAN pre-arm failure messages
AP_Arming tacks on the sub-system bit.

Remove PiccoloCAN's silly nullptr check

Require the library to supply the failure message (no default message)

Remove default cases so authors know to think about places they should
add things.
2020-05-05 11:27:53 +10:00
Andrew Tridgell e1f89c2c0d AP_PiccoloCAN: fixed build error on Linux
_thread_name too short
2019-12-31 11:38:30 +11:00
Oliver Walters 9229efbf81 AP_PiccoloCAN: Always use bulk ESC commands 2019-12-22 09:48:40 +11:00
Oliver Walters fadc968b38 AP_PiccoloCAN: Improve arm/disarm ESC behaviour
- When disarmed, broadcast a "software disable" command to all ESC on the bus
- This means that ESC will reject any PWM commands
- When armed, ensure each ESC is enabled before sending PWM commands
2019-12-22 09:48:40 +11:00
Andrew Tridgell 9821d52b72 AP_PiccoloCAN: added selective build of PiccoloCAN 2019-12-22 09:48:40 +11:00
Oliver Walters ace0006a4e AP_PiccoloCAN: added support for Piccolo CAN ESCs 2019-12-22 09:48:40 +11:00