-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
new task: LowlevCurrCtrlCalibrator #23
Comments
(5)
I see this is a duplicate of pwmModel1Sym, but you dropped the removal of values too close to 0 to avoid the disturbancies due to the static friction. Are you sure you don't want to keep that filtering? (*)
Actually yes, in the torque calibration, KPWM step, the offset is considered: sensors-calib-inertial/src/@LowlevTauCtrlCalibrator/calibrateSensors.m Lines 142 to 156 in feee760
We indeed just save the Kpwm in the calibration file, considering in most cases that the offset is negligible. But actually, if I'm not mistaken, an offset can be set in the firmware low level torque controller, so in the future we might reconsider keeping the estimated one. |
@lrapetti I've edited your initial comment and added some temporary paragraph references (1) and (2) for locating the comments in the context. |
(5)
I just wanted to start by fitting the simpler model and then eventually try adding filtering and fitting different models. Regarding this, I think that a more general name can be given to (*)
Yes, I have seen it is computed, but then it is not saved in the calibration file. In may case I would start having the offset in the calibration file, and then eventually not considering it if negligible. For this reason I have decided to estimate it during the What I think is important is to pay attention not to compute the offset twice. For example in the case of torque control the offset is part of the Coulomb friction, and considering the offset during the |
@nunoguedelha
This would imply a new label
I probably can handle it An alternative is to keep the real time plotting in the PWM controller adding a
|
@lrapetti
Regarding how to trigger the plot, using the trajectory profile, I would go for the first solution, but I think all of this is impacted by the choice on the class hierarchy we choose: point (1) of the implementation section. |
Single classInitially I thought about having a single class, which would be possible with the Separate classesI fully agree with you, we should definitely go for a parent class |
Yes, and make it call
|
Low Level Current Control Calibrator
Analogously to the$K_{PWM}$ , $K_{bemf}$ and $i_{offset}$ expressing the relationship between current, PWM and motor velocity.
LowlevTauCtrlCalibrator
, the branch https://github.com/lrapetti/sensors-calib-inertial/tree/task/LowlevCurrCtrlCalibrator contains an implementation ofLowlevCurrCtrlCalibrator
that aims the estimation ofThe motor model that is calibrated is:
$$i=K_{PWM} \cdot PWM + f_{K_{bemf}}(\dot q_{m})+i_{offset}$$
where:
The
current calibration task
consists in two steps for each joint:Differences from torque calibration
Implementation
In order to implement it, it is necessary to make some changes to the framework, and some changes still as to be discussed:
LowlevCurrCtrlCalibrator
is implemented in https://github.com/lrapetti/sensors-calib-inertial/tree/task/LowlevCurrCtrlCalibrator/src/%40LowlevCurrCtrlCalibrator as a derived ofCalibrator
. A better implementation would be the definition of a parent classLowLevCtrlCalibrator
forLowlevCurrCtrlCalibrator
andLowlevTauCtrlCalibrator
, or even a single class achieving both if the calibration procedure remain the same.curr
has been defined, and the value of current in Ampere can be read from theStateExt:o
or using the 'ICurrentControl`. Adding this part doesn't require any further change in the standard architecture of the system.friction acquisition
step is currently implemented in theMotorPWMController
class, so it was not possible to change it accordingly to the task that is being achieved. As a momentary solution I am just using a different plotting thread that plots current instead of torque (https://github.com/lrapetti/sensors-calib-inertial/tree/task/LowlevCurrCtrlCalibrator/src/%40MotorPWMcontroller). I think the best solution would be having the real time plotter defined in theMotion Sequencer
with the settings defined in the configuration file of the trajectory.Motor Transfer Function
is different from the one of the torque calibrator (different parameters of the system are calibrated). At the moment, the solution I have found was to define a different motor transfer function (Electrical Motor Transfer Function
) that describe the motor from the electrical point of view and contains the constant that have to be calibrated incalibrateSensors
. An alternative solution would be having a single model that contains all the possible motor constants, and depending on the task only some of those are calibrated.normal equation
that as been add to theRegressors
.The text was updated successfully, but these errors were encountered: