-
Notifications
You must be signed in to change notification settings - Fork 110
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
RSDK-1232 remove pb.JointPositions from Arm interface #4502
Conversation
Warning your change may break code samples. If your change modifies any of the following functions please contact @viamrobotics/fleet-management. Thanks!
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Availability
Quality
Performance
The above data was generated by running scenes defined in the
|
This ticket resolves some tech debt we've been putting off for a couple years. Presently, the
armpb.JointPositions
protobuf struct is being used in the Arm interface. The issue with this is that we have to deal with the conversion from this type to the Input type which is the type we use throughout the motion stack in multiple places rather than once at ingestion of the structure. In order to properly make this conversion we need to use information from the arm kinematics structure to determine how to process the raw floating point numbers.Because the arm's
Kinematics
endpoint might not be implemented correctly, or at all extra guardrails were implemented in this PR:armpb.JointPositions
struct will be treated as degrees and converted to radians while inside the context of the Arm interfaceOverall, these changes should make things more type safe and incentivize users to properly use the kinematics endpoint of the arm when building modules. Finally, it paves the way for a simplification of the InputEnabled interface and addition of the upcoming MoveThroughJointPositions arm method
Note: This is a breaking change to the Arm package and after merging this, Viam supported arm modules written in Go will need to be updated to reflect this change.