Commit Graph
251 Commits
Author SHA1 Message Date
Malaphor 73b15f2fe6 Add get_adc_voltage() 2022-08-18 20:18:04 -07:00
Oskar Weigl 6444197251 make input mode change trigger consistent with all sources 2022-05-05 13:40:07 -07:00
Torbjørn Ludvigsen fa144cff29 Makes behavior consistent across interfaces
Defines and uses set_setpoint_to_estimate() reusable function
Uses it in three places:
 - axis.cpp to avoid transient on startup
 - can_simple.cpp to avoid sudden movement upon mode change
 - odrive-interface.yaml just to make it executable via USB and UART

Swaps set_input_pos() to set_input_pos_and_steps() so that we get the
same behavior when changing input_pos over USB and UART as we get when
we change it via CAN.
2022-05-05 11:11:01 +02:00
Torbjørn Ludvigsen 58a6567f83 Stands still upon switching to position mode via can 2022-04-07 15:10:25 +02:00
Torbjørn Ludvigsen ae262e4cd1 Sets steps_ in CANSimple::set_input_pos_callback
... because otherwise, the effect of the callback is canceled by an
assignment in the main update() loop, that calculates input_pos
based on steps_, if we're in step/dir mode.

- Fixes a steps_ underflow/wrapping bug
2022-04-07 15:10:25 +02:00
Paul Guenette 6ab5807428 Fix get_iq_callbacks function 2022-04-01 13:04:39 -04:00
Paul Guenette 20f3028dd3 Fix axis_state signal length 2022-02-09 18:11:19 -05:00
Paul Guenette 13f95dece3 Make rtr only necessary when DLC > 0 in CANsimple 2021-10-21 20:05:56 -04:00
Paul Guenette 965c0a14e6 Allow setting controller gains on CAN Simple 2021-09-23 00:09:44 -04:00
Samuel Sadok 047c44201e add trajectory done bit to CAN simple protocol 2021-09-01 19:36:30 +02:00
Samuel Sadok e109d2d6b5 Fix missing new line when ASCII protocol is used with checksums.
See https://github.com/odriverobotics/ODrive/issues/596
2021-07-22 11:01:14 +02:00
Oskar Weigl 7ba08af710 add MSG_SET_LINEAR_COUNT back again at 0x19 2021-06-29 11:57:13 -07:00
Samuel Sadok 55de791e17 [ASCII protocol] fix corrupted responses 2021-06-03 13:58:07 +02:00
PAJohnson 640c411cd3 Fix cansimple for 64 bit motor error 2021-05-25 20:19:31 -04:00
PAJohnson 639f3e6813 Changed docs to prefer odrv.clear_errors() for error clearing instead of dump_errors(odrv, True). Fixed dump_errors() to rearm brake resistor if clear=True 2021-05-21 20:08:29 -04:00
PAJohnson b707cd870f CAN baud rate setting fix, spinout detection improvements 2021-05-13 23:21:48 -04:00
Samuel Sadok d328a74c17 Merge branch 'devel' into libfibre 2021-01-08 11:54:16 +01:00
Samuel Sadok 2caf0d3c0e fix compatibility with new fibre-cpp 2021-01-08 11:40:36 +01:00
Samuel Sadok 2a127f6821 fix uart tests 2021-01-05 18:13:52 +01:00
Paul Guenette 6e856a8f20 Add current limit to the limits message 2020-12-22 00:10:12 -05:00
Samuel Sadok 119529b0a7 fix CI 2020-12-09 20:21:10 +01:00
Samuel Sadok 52adf33923 fix CAN initialization 2020-12-07 20:34:04 +01:00
Samuel Sadok f4b312accb fix various libfibre bugs 2020-12-04 20:11:21 +01:00
Samuel Sadok 21e19b9c18 Merge branch 'devel' into libfibre 2020-12-03 21:20:30 +01:00
Samuel Sadok 0fb0a9b3c6 add canbus.hpp 2020-12-03 17:02:56 +01:00
Samuel Sadok 4e350823b4 refactor CAN 2020-12-03 12:53:54 +01:00
Matt Quick 520783d4b6 Refactor CAN interface for additional protocols 2020-12-03 12:48:19 +01:00
Samuel Sadok 207426aa0f initial ODrive v4.0 support 2020-11-18 18:59:56 +01:00
Samuel Sadok df83782bd4 re-add missing objects in ASCII protocol 2020-11-18 18:58:41 +01:00
Samuel Sadok c32cbec58c rename some of the new functions and variables 2020-11-16 21:03:23 +01:00
Samuel Sadok c23076c19c Merge branch 'devel' into control-loop-refactor 2020-11-05 13:43:57 +01:00
Samuel Sadok 1f7815459f Merge branch 'devel' into control-loop-refactor 2020-11-03 18:34:08 +01:00
Paul Guenette dbb77fa7b6 Merge branch 'devel' into uart1 2020-10-30 22:51:21 -04:00
Paul Guenette ef61d6d814 Merge branch 'devel' into uart1 2020-10-30 20:39:17 -04:00
Samuel Sadok 6088b8dadf Merge branch 'devel' into libfibre 2020-10-30 16:59:01 +01:00
Paul Guenette b13fbe4163 Merge remote-tracking branch 'madcowswe/clean-math-funcs' into devel 2020-10-20 23:32:54 -04:00
Paul Guenette 44218088c8 Merge remote-tracking branch 'madcowswe/LTO' into devel 2020-10-20 23:32:16 -04:00
Samuel Sadok 81ae829fce fix merge 2020-10-16 17:38:56 +02:00
Samuel Sadok 7dea86666b Merge branch 'devel' into can_improvements 2020-10-16 17:18:03 +02:00
Samuel Sadok d6debf83c5 Merge branch 'devel' into uart1 2020-10-16 11:51:05 +02:00
Samuel Sadok e15ab60184 change user facing component names
UART0 => UART_A
UART1 => UART_B
UART2 => UART_C
CAN0 => CAN_A
SPI0 => SPI_A
I2C0 => I2C_A
PWM0 => PWM
2020-10-15 11:52:44 +02:00
Oskar Weigl 1720232563 Update ascii_protocol.cpp 2020-10-09 15:24:24 -07:00
Paul Guenette 7922f4f7ec Fix substring 2020-10-09 17:57:41 -04:00
Paul Guenette d24d9f8e1c Add set_linear_count function to ASCII and CAN 2020-10-07 22:43:11 -04:00
Samuel Sadok e7f046d518 Add support for UART1 2020-09-24 19:59:14 +02:00
Samuel Sadok 7fd0806d49 introduce InputPort and OutputPort, don't use NAN
The InputPort/OutputPort infrastructure facilitates safer
data paths between components: OutputPorts store a value
and the age of the value measured in number of control loop
iterations. InputPorts can be connected to various sources,
for instance an OutputPort. InputPorts expose the values to
consumers in the form of std::optional to reflect the fact
that an InputPort can be dangling or connected to a stale
OutputPort.
2020-09-23 16:20:21 +02:00
Paul Guenette 0e438bd3cd Re-send cyclic CAN messages if the mailboxes are full 2020-09-22 21:56:19 -04:00
Samuel Sadok a1c67e6ba1 refactor Fibre to AsyncStream architecture
The previous implementation was based on blocking calls, i.e. the
platform dependent output channel would block on a write operation and
by extension the Fibre decoder could also block when given data by an
input channel. The revised implementation in this commit is based around
a fully asynchronous (i.e. non-blocking)  stream interface.
2020-09-15 12:57:39 +02:00
Oskar Weigl b38fd2be9c Only inline short functions 2020-09-05 15:25:32 -07:00
Unknown f6f0cf9cd3 Compile with -flto 2020-09-02 23:12:05 -04:00