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

Implement streaming cartesian commands, create AmorCartesianControl #117

Merged
merged 176 commits into from
Oct 27, 2017

Conversation

PeterBowman
Copy link
Member

Mostly aimed at solving #105. Notable changes:

  • New set of streaming commands in ICartesianControl.
  • New AmorCartesianControl implementation of roboticslab::ICartesianControl for commanding the AMOR manipulator in the task space via official API.
  • Implemented KinRepresentation::encodeVelocity and KinRepresentation::decodeVelocity.
  • New helper method: KinRepresentation::parseEnumerator.
  • New ICartesianSolver::diffInvKinEE method for handling streaming commands with respect to the tool frame.
  • Improved documentation in TeoYarp interfaces.
  • New teleoperation apps: keyboardController and streamingDeviceController.

reinterpret_cast cannot cast away cv qualifiers (asBlob() returns a
const char*).
Named pretty much after the same xCallbackPort's command at asibot-main.
This is actually taken care of by 'interruptModule'. Previously, a
CTRL+C rendered the terminal useless and never actually killed the
process.
Avoid tiny values like 1.23456789e-16.
Makes sense for position-based device controllers (like the LeapMotion).
Per http://docs.ros.org/latest/api/orocos_kdl/html/geomprim.html

3 different types of transformations do exist for the twists and
wrenches.

*      1) Frame * Twist or Frame * Wrench :
*              this transforms both the velocity/force reference point
*             and the basis to which the twist/wrench are expressed.
*      2) Rotation * Twist or Rotation * Wrench :
*              this transforms the basis to which the twist/wrench are
*              expressed, but leaves the reference point intact.
*      3) Twist.RefPoint(v_base_AB) or Wrench.RefPoint(v_base_AB)
*              this transforms only the reference point. v is expressed
*              in the same base as the twist/wrench and points from the
*              old reference point to the new reference point.

Previously, pure rotations resulted in applying an additional
translation to the TCP. That is, the reference point was being altered.

See also sect. 4.2.3 "Transformation of twist coordinates" in: Herman
Bruyninckx, "Robot Kinematics and Dynamics", Katholieke Universiteit
Leuven, Department of Mechanical Engineering (Leuven, Belgium), 2010.
Copy link
Member

@jgvictores jgvictores left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@PeterBowman Great! Thank you so much!!

@jgvictores jgvictores merged commit 1236178 into develop Oct 27, 2017
@PeterBowman PeterBowman deleted the streaming-cartesian-control branch December 5, 2017 12:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants