977 Commits
Author SHA1 Message Date
Paul Guenette b968a6735d Add function to remove anticogging bias 2023-03-07 21:59:50 -08:00
Paul Guenette 39d66b0fdc Add more cyclic messages 2022-10-10 22:42:55 -07:00
Paul Guenette e88fa10978 Make vel_ramp safer by limiting the vel_setpoint to vel_limit 2022-09-22 00:28:44 -07:00
Paul Guenette 3056a4c2ac Add function to index into cogmap (#716) 2022-09-21 20:25:46 -07:00
Paul Guenette 073da34a02 Fix load encoder issues
Fixes #651
2022-09-21 20:25:46 -07:00
Paul Guenette b17a4a6d50 Always restore control and input mode after leaving homing 2022-09-05 21:55:29 -07:00
Paul Guenette 64bbfea5e3 Ensure pos_estimate is updated at least once after homing 2022-09-05 21:55:06 -07:00
Paul Guenette 08d5a204af Fix homing running off when it's done 2022-09-05 19:35:10 -07:00
Oskar Weigl 4ca99a62c8 fix setter logic 2022-05-05 13:58:33 -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 c5017f4baf Making circular_setpoints optional in step/dir mode
.. because circular_setpoints was broken beyond repair.
2022-05-04 16:30:30 +02:00
Torbjørn Ludvigsen d272fbe2b4 Puts fmodf_pos back into the steps_ assignment 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
Samuel Sadok cc7bbd47f8 add back subcomponent error flags
These flags were previously removed in 5661a3b5ed
2022-04-05 13:10:17 +02:00
Paul Guenette 0aca4911e2 Increase error threshold for SPI encoders 2022-02-02 19:09:46 -05:00
Paul Guenette 78ba7884fe Increase comms speed with encoders to match DRV8301 2022-02-02 19:08:50 -05:00
Paul Guenette 7402cf8044 Reset trajectory_done_ during homing to fix #634 2022-01-22 17:48:41 -05:00
Paul Guenette d1bb0049bf Update endstops before checking for errors 2022-01-22 17:48:41 -05:00
samuelsadok 56de67731c raise limit for ERROR_UNBALANCED_PHASES
See #648
2021-12-10 12:19:13 +01:00
Paul Guenette f04f02aff7 Add input_xxx to the setpoints for autotuning 2021-12-01 17:41:00 -05:00
Paul Guenette fbb9dd4a9a Merge branch 'master' into devel 2021-11-20 13:12:14 -05:00
Paul Guenette 86ff244b20 Fix a couple static analysis catches
Fixes #643
2021-11-16 17:39:54 -05:00
Aleksandr 31e601ebed Fix race condition in trap traj control 2021-11-02 15:23:42 +03:00
pbrier ef03591379 Added integrator_limit to allow prevention of integrator windup 2021-09-16 10:06:07 +02:00
Samuel Sadok 2e0926e562 fix analog thread stack overflow 2021-09-03 18:30:08 +02:00
Samuel Sadok d86a86a936 fix comments 2021-09-03 15:41:12 +02:00
Samuel Sadok 2d06453a46 add message for unsupported devices 2021-09-02 14:00:11 +02:00
Samuel Sadok 99713725ac Remove position setpoint reset during Motor::arm()
The position setpoint is already set before arming in start_closed_loop_control().

This fixes https://github.com/odriverobotics/ODrive/issues/599.
2021-09-01 20:19:54 +02:00
Paul Guenette 6942b74796 Remove controller constructor 2021-08-16 22:59:56 -04:00
Paul Guenette 759c85c9e1 Rename current -> torque mode vel limit 2021-08-03 21:33:50 -04:00
Samuel Sadok b32193d9dd fix homing bug 2021-07-27 17:35:32 +02:00
Samuel Sadok a37f6c3ba3 revert CAN protocol enum to flags, remove unused variables 2021-07-27 16:51:53 +02:00
Paul Guenette 1d958b9b7d Add measured_phase variable 2021-07-26 08:58:23 -04:00
Paul Guenette 054883707f Add brake_resistor_current variable to interface 2021-07-17 15:42:01 -04:00
Paul Guenette a1338ac551 Input mode Tuning enhancements 2021-06-12 11:31:13 -04:00
PAJohnson 477ca3b01f Set axis.steps_ to pos_estimate (cast to steps) when entering closed loop. 2021-05-14 01:10:32 -04:00
PAJohnson b707cd870f CAN baud rate setting fix, spinout detection improvements 2021-05-13 23:21:48 -04:00
PAJohnson 678c1c9c7e Spinout detection fixes - I^2 * R compensation 2021-05-12 21:39:48 -04:00
PAJohnson e2cb18b3a7 Changed default dc max negative current, updated changelog 2021-05-05 21:34:02 -04:00
PAJohnson 427b7b4f11 Changed step and direction handling to always require circular positioning 2021-05-05 19:43:44 -04:00
PAJohnson 31e525ab65 Zero out input_vel after homing sequence finds endstop. 2021-05-04 22:00:43 -04:00
PAJohnson 1dc87e8f14 Homing fixed and tested 2021-05-04 21:36:40 -04:00
riewert 03e590ae44 Fixed possible race-condition
#550
2021-05-04 21:18:40 -04:00
riewert ac6c565b30 Fixes
Added an abort + error, and confirmed to naming convention.
2021-05-04 21:18:27 -04:00
riewert 5a9bd63ed1 Set input_pos after init 2021-05-04 21:17:51 -04:00
PAJohnson db5d952a08 Fixed step callback typo, moved input_pos = steps * turns_per_step to Controller::update() 2021-04-30 22:40:29 -04:00
Paul Guenette c0a8ede93e Use pre-increment and pre-decrement for steps 2021-04-30 18:36:40 -04:00
Paul Guenette ce1782b173 Use an integer to count steps to avoid float accumulation issues 2021-04-30 18:33:21 -04:00
Paul Guenette 83e09b73fc Add torque_mirror_ratio 2021-04-30 18:32:51 -04:00