Conversation
GetKinematics returns a format tag plus the bytes of a file, so every consumer parses kinematics by hand and nothing checks their understanding of the schema against ours. This adds a typed KinematicModel message and carries it in both GetKinematicsResponse and FrameSystemConfig, which today carry the same model as bytes and as an untyped Struct respectively. The message reuses Vector3, Orientation, Geometry and Mesh. Link orientation is a oneof over the representations SVA files already accept, so an existing file converts without loss. Each joint carries hardware limits and user limits separately so a module can validate one against the other. Mesh gains source_path so a file can reference a mesh by relative path and a response can identify a mesh whose bytes were left out by the new exclude flags on the request. The bytes fields and the Struct are deprecated rather than removed; the server keeps filling them for older clients during the migration window. Only the Go for common.proto and robot.proto is regenerated here, with the pinned protoc-gen-go. Web output and proto docs still need the mise tasks. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prototype for RSDK-14233, the Enhanced Arm Kinematics API scope. Opened as a draft so the field names can be reviewed against a diff while the scope is in review.
GetKinematicsreturns a format tag plus the bytes of a file today, so every consumer parses kinematics itself and nothing checks its reading of the schema against ours. This adds a typedKinematicModelmessage and carries it in bothGetKinematicsResponseandFrameSystemConfig, which today carry the same model as bytes and as an untypedStruct.What is in the message and why it is shaped this way
Vector3,Orientation,GeometryandMesh. ReusingGeometrymeans the geometry half of SVA's tagged unions is already aoneof.LinkPoseis a translation plus aoneofover the orientation representations SVA files already accept, so an existing file converts without loss and the author keeps the representation they wrote.hardware_limitsanduser_limitsseparately, so a module can validate one against the other and the motion service sees both.Meshgainssource_path. In a file it is the mesh path relative to that file. On the wire it identifies a mesh whose bytes were left out by the newexclude_collision_meshesandexclude_visual_meshesrequest flags.KinematicPropertiesholds component level values, starting withtrajectory_sampling_freq_hz.generationis bumped by a component when its model changes. Nothing reads it yet. It is here so a later change detection mechanism does not need another proto revision.KinematicModelis also the on disk file format, SVA v2.The bytes fields and the
Structare deprecated rather than removed. The rdk side keeps filling them for older clients during the migration window.buf lint,buf breakingagainst main andbuf formatpass. Only the Go forcommon.protoandrobot.protois regenerated here, with the pinned protoc-gen-go. Web output and proto docs still need the mise tasks, so expect the generated code check to complain until then.The rdk side of the prototype is viamrobotics/rdk#6494 and builds against this branch.
🤖 Generated with Claude Code