Skip to content
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

Set and enforce velocity limits #188

Closed
PeterBowman opened this issue Jul 19, 2018 · 12 comments
Closed

Set and enforce velocity limits #188

PeterBowman opened this issue Jul 19, 2018 · 12 comments

Comments

@PeterBowman
Copy link
Member

Currently unimplemented (ref). Once done, remember to call this setter from CanBusControlboard:

if ( ! iPositionControl2Raw[i]->setRefAccelerationRaw( 0, refAccelerations.get(i).asDouble() ) )
return false;
if ( ! iPositionControl2Raw[i]->setRefSpeedRaw( 0, refSpeeds.get(i).asDouble() ) )
return false;
if ( ! iControlLimits2Raw[i]->setLimitsRaw( 0, mins.get(i).asDouble(), maxs.get(i).asDouble() ) )
return false;

@PeterBowman
Copy link
Member Author

PeterBowman commented Jul 19, 2018

Note: consume these values in our ICartesianControl implementations at kin-dyn and no longer support an angular velocity limit configuration parameter (ref, roboticslab-uc3m/kinematics-dynamics#121 (comment)).

@PeterBowman PeterBowman changed the title Implement IControlLimits(2)::setVelLimitsRaw in TechnosoftIpos Implement IControlLimits(2)::setVelLimits in TechnosoftIpos Jul 19, 2018
@PeterBowman
Copy link
Member Author

Make sure these limits will be taken into account in the IPositionDirect mode. In roboticslab-uc3m/kinematics-dynamics#159, a simple formula is proposed: delta_q/duration (where duration = ptModeMs).

@jgvictores
Copy link
Member

Make sure these limits will be taken into account in the IPositionDirect mode. In roboticslab-uc3m/kinematics-dynamics#159, a simple formula is proposed: delta_q/duration (where duration = ptModeMs).

#173, right?

@PeterBowman
Copy link
Member Author

Thanks, my bad, that link was meant to point at roboticslab-uc3m/kinematics-dynamics#173 (comment).

@PeterBowman
Copy link
Member Author

If I'm correct, the iPOS drive does not check whether the motor exceeds a software-imposed speed value (as it does with positions and currents). So, perhaps, this should be done by us - either by introducing another thread in the background, or by listening to incoming event messages (#159 (comment)) - through frequent IEncoders::getEncoderSpeed calls (#189).

@PeterBowman PeterBowman self-assigned this May 16, 2019
@PeterBowman
Copy link
Member Author

We were only allowed to get velocity limits as parsed from the corresponding .ini files. This is useful for user applications, see roboticslab-uc3m/kinematics-dynamics#173. Implementing the set counterpart was trivial and has been done at 89cbdba.

@PeterBowman
Copy link
Member Author

Once done, remember to call this setter from CanBusControlboard

Not doing. Reference speeds&accs as well as position&velocity limits are passed to each TechnosoftIpos instance and stored on device config. Then, CAN messages must be sent to the drives in order to load these values on each slave. There is no max-speed object in the CAN dictionary we can act upon, therefore a setVelLimits instruction as suggested by myself would be useless.

@PeterBowman PeterBowman changed the title Implement IControlLimits(2)::setVelLimits in TechnosoftIpos Implement IControlLimits::setVelLimits May 16, 2019
@PeterBowman PeterBowman changed the title Implement IControlLimits::setVelLimits Set and enforce velocity limits May 16, 2019
@PeterBowman
Copy link
Member Author

Now, let's actually use these minVel/maxVel values! Should I ensure that reference speeds (refSpeed via .ini) are always equal or lower? Are there any other situations that would merit a velocity check (already dropped a note at #208)?

@PeterBowman
Copy link
Member Author

Note: consume these values in our ICartesianControl implementations at kin-dyn and no longer support an angular velocity limit configuration parameter (ref, roboticslab-uc3m/kinematics-dynamics#121 (comment)).

Done at roboticslab-uc3m/kinematics-dynamics@a3600f7 and roboticslab-uc3m/kinematics-dynamics@89020af.

@PeterBowman
Copy link
Member Author

ASWJ the minVels property would be removed and interpreted on the YARP-side (i.e. via IControlLimits getter and setter) as the negative of maxVels.

@PeterBowman
Copy link
Member Author

Done at d7773a1, velocity limit checks are performed on device configuration, in IPositionControlRaw::setRefSpeedRaw and IVelocityMoveRaw::velocityMoveRaw.

PeterBowman added a commit to roboticslab-uc3m/teo-configuration-files that referenced this issue May 21, 2019
@PeterBowman
Copy link
Member Author

Added in PT mode at 7cac9f4 (experimental branch).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants