Skip to content

Possible bug: DHLink.A() checks self.ets[-1].isflip instead of the joint ET #563

Description

@yucchengyi

Description

I found a possible issue in DHLink.A() related to the flip option for
standard DH links.

The current implementation checks:

if self.ets[-1].isflip:
    q = -q + self.offset
else:
    q = q + self.offset

However, for a standard DH revolute link, _to_ets() constructs the ETS in
the following order:

Rz(q) -> tz(d) -> tx(a) -> Rx(alpha)

Therefore, when d, a, or alpha is nonzero, self.ets[-1] is normally
a constant transform rather than the joint transform.

As a result, self.ets[-1].isflip is False even when the revolute joint was
created with flip=True.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions