policy_client: producer + hardware-registry integration#254
Open
shantanuparab-tr wants to merge 2 commits into
Open
policy_client: producer + hardware-registry integration#254shantanuparab-tr wants to merge 2 commits into
shantanuparab-tr wants to merge 2 commits into
Conversation
This was referenced Jun 15, 2026
Collaborator
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
This was referenced Jun 15, 2026
shantanuparab-tr
force-pushed
the
06-15-policy-client-05-policy-client
branch
from
June 15, 2026 16:56
6f2f314 to
e213588
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-06-producer-integration
branch
2 times, most recently
from
June 15, 2026 18:45
b1d4a71 to
6b1f894
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-05-policy-client
branch
from
June 15, 2026 18:45
e213588 to
30f15ff
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-05-policy-client
branch
from
June 16, 2026 21:51
30f15ff to
f34359c
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-06-producer-integration
branch
from
June 16, 2026 21:51
6b1f894 to
06c5043
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-05-policy-client
branch
from
June 16, 2026 21:59
f34359c to
7673339
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-06-producer-integration
branch
from
June 16, 2026 22:00
06c5043 to
cf403e3
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-05-policy-client
branch
from
July 16, 2026 15:12
7673339 to
74ce303
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-06-producer-integration
branch
from
July 16, 2026 15:12
cf403e3 to
8df0b25
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-05-policy-client
branch
from
July 16, 2026 15:41
74ce303 to
7d32137
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-06-producer-integration
branch
from
July 16, 2026 15:41
8df0b25 to
5a6e544
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-05-policy-client
branch
from
July 16, 2026 17:13
7d32137 to
42c5dc0
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-06-producer-integration
branch
from
July 16, 2026 17:13
5a6e544 to
d54a50d
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-05-policy-client
branch
from
July 16, 2026 17:27
42c5dc0 to
3d44957
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-06-producer-integration
branch
from
July 16, 2026 17:27
d54a50d to
4ff0d26
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-05-policy-client
branch
from
July 17, 2026 00:22
3d44957 to
1664d6a
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-06-producer-integration
branch
from
July 17, 2026 00:22
4ff0d26 to
8574895
Compare
Wires PolicyClient into the SDK runtime: PolicyClientProducer (record source for the chunk-aligned command stream), REGISTER_HARDWARE/REGISTER_PRODUCER under "policy_client", active_hardware_registry placement, producer_config, and the arm joint_names support the observation packer reads.
… + device-time docs - Re-add gtest_discover_tests for test_msgpack_ndarray and test_openpi_websocket_transport: both still compiled but had been dropped from ctest, so the untrusted-msgpack decoder suite silently stopped running while CI stayed green (PR254-F1). Note the add/discover pairing invariant so it can't drift again. - Reconcile a duplicate test_active_hardware_registry CMake target left by relocating unregister down the stack. - Document that write_moving_time_s affects every TrossenArmComponent write (not just the policy client) and must stay below the control period or the arm chases a moving goal (PR254-F4). - Document that use_device_time gives every row of a chunk the same received_at timestamp; per-row timing is a deferred follow-up (PR254-F2/F3).
shantanuparab-tr
force-pushed
the
06-15-policy-client-05-policy-client
branch
from
July 17, 2026 14:17
1664d6a to
3e64359
Compare
shantanuparab-tr
force-pushed
the
06-15-policy-client-06-producer-integration
branch
from
July 17, 2026 14:17
8574895 to
09f8db9
Compare
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.

Summary
Wires
PolicyClientinto the SDK runtime: aPolicyClientProducer(so the chunk-aligned command stream is a recordable source), registry placement so it constructs from config, and the small arm change the playback path needs.Changes
include/trossen_sdk/hw/policy/policy_client_producer.{hpp}+src/hw/policy/policy_client_producer.cpp:PolicyClientProduceremitting the commanded rows (withjoint_namesin the stream metadata/features);REGISTER_PRODUCER/REGISTER_HARDWAREunder"policy_client".include/trossen_sdk/hw/active_hardware_registry.hpp+src/hw/active_hardware_registry.cpp: registry placement so apolicy_clienthardware entry is constructed and configured from JSON.include/trossen_sdk/configuration/types/producers/producer_config.hpp: carry the policy-client producer config.include/trossen_sdk/configuration/types/hardware/arm_config.hpp+include/trossen_sdk/hw/arm/trossen_arm_component.{hpp,cpp}: addwrite_moving_time_s— the per-tick trajectory time passed toset_all_positions()inwrite_joint()(0 = apply immediately; non-zero smooths per-tick motion, on top of the Face EMA). Reconciled with control: per-episode hardware lifecycle driven by SessionManager #248's arm changes: built on control: per-episode hardware lifecycle driven by SessionManager #248'sslew_time_s/staged_position/episode_lifecycle_enabled, adding onlywrite_moving_time_s.tests/test_policy_client_producer.cpp,tests/test_active_hardware_registry.cpp,tests/CMakeLists.txt: producer metadata + registry construction coverage.cmake/policy_client.cmake: addpolicy_client_producer.cppto the gated sources.Test Plan
-DTROSSEN_SDK_ENABLE_POLICY_CLIENT=ONtest_policy_client_producer,test_active_hardware_registry,test_configpre-commit run --all-files)Breaking Changes
None.
write_moving_time_sis optional (defaults to 0.0 = previous behavior). New gated sources behindTROSSEN_SDK_ENABLE_POLICY_CLIENT(default OFF).Related
Based on #248. Depends on #248's
ArmConfigrework — this PR's arm change is reconciled on top ofslew_time_s/staging (adds onlywrite_moving_time_s), so it must merge after #248. Stacked on #253; followed by #255.