Skip to content

Move from string-based links and joints to id-based logic (using hashes)#7

Closed
rjoomen wants to merge 5 commits into
mainfrom
feature/integer-link-ids
Closed

Move from string-based links and joints to id-based logic (using hashes)#7
rjoomen wants to merge 5 commits into
mainfrom
feature/integer-link-ids

Conversation

@rjoomen

@rjoomen rjoomen commented Apr 13, 2026

Copy link
Copy Markdown
Collaborator

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Return JointId/LinkId from getJointIds, getBaseLinkId,
getWorkingFrameId, getTipLinkIds instead of strings. Use cached
tip_link_id from KDLChainData in calcInvKin, eliminating fromName()
on every IK call.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Updates the Trac-IK inverse kinematics chain implementation to use ID-based (hashed) link/joint identifiers instead of string names, aligning this solver with the newer ID-based kinematics APIs.

Changes:

  • Switched calcInvKin input from TransformMap keyed by link name to LinkIdTransformMap keyed by link ID.
  • Replaced name-based accessors (getJointNames, getBaseLinkName, etc.) with ID-based accessors (getJointIds, getBaseLinkId, etc.).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
tesseract_kinematics/trac-ik/src/trac-ik_inv_kin_chain.cpp Updates implementation to look up tip pose and expose joint/link identifiers by ID.
tesseract_kinematics/trac-ik/include/tesseract_trac_ik/trac-ik/trac-ik_inv_kin_chain.h Updates public API/overrides to the new ID-based method signatures and types.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tesseract_kinematics/trac-ik/src/trac-ik_inv_kin_chain.cpp
rjoomen and others added 3 commits April 19, 2026 15:02
…ints

TracIKInvKinChain ctors now accept tesseract::common::LinkId instead
of std::string for base_link / tip_link and for the chain endpoint
pairs, matching the broader kinematics-layer signature tightening in
tesseract (JointGroup / KinematicGroup / InverseKinematics ctors all
now take LinkId / JointId directly).

- include/tesseract_trac_ik/trac-ik/trac-ik_inv_kin_chain.h:
  base_link / tip_link and the chain vector's pair element type swap
  to tesseract::common::LinkId.
- src/trac-ik_inv_kin_chain.cpp: corresponding parameter type updates
  in both ctor definitions.

Callers get implicit const char* / std::string -> LinkId conversion,
so existing call sites that pass string literals keep compiling
without further changes.
Match the renamed InverseKinematics base-class virtual so the override
compiles against the current tesseract kinematics core interface.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…PLICIT

Mirror the tesseract repo split of TESSERACT_COMPILE_DEFINITIONS into
_PUBLIC / _PRIVATE and apply TESSERACT_NAMEID_NO_IMPLICIT PRIVATE on
the trac-ik and trac-ik_factory libraries.

- TracIKInvKinChain ctor takes base/tip LinkId by const ref.
- TracIKInvKinChainFactory parses base_link/tip_link as LinkId,
  wrapping the YAML std::string at the boundary.

Drive-by: drop EIGEN_MAKE_ALIGNED_OPERATOR_NEW (class has no fixed-size
Eigen members) and update the matching @param docs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@rjoomen

rjoomen commented May 5, 2026

Copy link
Copy Markdown
Collaborator Author

Replaced by #8

@rjoomen rjoomen closed this May 5, 2026
@rjoomen
rjoomen deleted the feature/integer-link-ids branch May 5, 2026 08:58
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