Repository navigation
feat(control): hybrid-teleop-sim, an xArm7 sim an operator can hold and e-stop - #4788
Conversation
There was a problem hiding this comment.
go2 replay realtime (arm64)
Details
| Benchmark suite | Current: 7c002e0 | Previous: d79ab4d | Ratio |
|---|---|---|---|
peak memory |
1719.316 MB |
1729.973 MB |
0.99 |
peak threads |
373 threads |
374 threads |
1.00 |
network (transport) |
2725.793 MB |
2736.274 MB |
1.00 |
disk write |
1.707 MB |
1.688 MB |
1.01 |
instructions |
136.478 G |
137.869 G |
0.99 |
This comment was automatically generated by workflow using github-action-benchmark.
Codecov Report❌ Patch coverage is
@@ Coverage Diff @@
## main #4788 +/- ##
==========================================
- Coverage 83.15% 82.92% -0.23%
==========================================
Files 1743 1745 +2
Lines 167633 167848 +215
Branches 13868 13872 +4
==========================================
- Hits 139393 139190 -203
- Misses 24485 24886 +401
- Partials 3755 3772 +17
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 35 files with indirect coverage changes 🚀 New features to boost your workflow:
|
ce97909 to
1205383
Compare
e773349 to
b24ea74
Compare
[Medium impact] No blocking issues found in the hold-stream implementation; browser use depends on PR #4789. SummaryAdds hold commands and status streams through
No blocking issues found. Full simulator startup and physical hardware operation were not exercised. Reviews (1) · Last reviewed commit: "feat(control): operator hold over stream..." · Reviewed by Greptile |
…nd e-stop
A new blueprint for a Dimensional Desktop operator page: the
xarm-perception-sim stack plus the operator hold, an e-stop, a point cloud
of the scene and the arm's URDF. The page talks to it through the dimos
gateway only: RPCs and standard LCM streams that Desktop's msgs.js decodes.
- OperatorHoldCoordinator (in the blueprint file) adds an operator_estop(stop)
RPC. True latches the e-stop, requests the hold (route "failsafe", reason
"e-stop") and cancels the running trajectory, in that order; a failed step
is logged and the rest still run. False only clears the latch; the hold
stays until acknowledged.
- Hold request, acknowledge and status use the existing task_invoke RPC; the
operator hold task and its registry are unchanged.
- operator_hold_status and operator_estop_status are std_msgs.Bool outputs.
diagnostic_msgs is not in dimos.msgs, so Desktop cannot decode it; route
and reason come from task_invoke("operator_hold", "get_status").
- MuJoCo raycast cloud from the wrist camera (80 x 60, 1 cm voxels) on
scene_pointcloud, kept apart from the object clouds on pointcloud.
- ObjectSceneRegistration distance_threshold 0.05 m: the objects on the table
are 10 to 17 cm apart and the 0.2 m default merges them.
- UrdfManager serves the URDF and meshes so Desktop draws the arm. Its joint
tf is off: the planner publishes link_base and link1..link7 on tf at the
arm's real mount on the 12 cm pedestal, which the URDF's world joint does
not have.
b24ea74 to
db63a71
Compare
…he coordinator subclass - OperatorHoldTask gets a set_estop hook, called from the coordinator's set_estop. An e-stop turns the hold on (route failsafe, reason e-stop) and it stays on until acknowledged. While stopped it commands nothing; after the clear it holds each joint at its new reading. - acknowledge is refused while the e-stop is latched. - OperatorHoldStatus carries estopped. - The operator_estop RPC is removed from OperatorHoldCoordinator, which now only adds the hold and e-stop on/off streams. The page uses the coordinator's existing set_estop.
Pull request removed from stack
|
@TomCC7 the following 4 PRs were me adding features on websdk using streams, since RPC is not supported on the websdk. But then moved to using the dimos gateway for teleop. and the remaining 4 are not relevant anymore. |

feat(control): hybrid-teleop-sim, an xArm7 sim an operator can hold and e-stop from a Desktop app
Changes
OperatorHoldCoordinator(in the blueprint file):operator_estopRPC, two status outputs, hold task status.operator_hold_task()added; MuJoCo cloud on and renamed toscene_pointcloud;distance_threshold=0.05on ObjectSceneRegistration (objects on the table are 10-17 cm apart);UrdfManageradded.all_blueprints.pyregenerated; gateway annotation and self-hosted blueprint list entries.Tests
test_hybrid_teleop_sim.py: e-stop order (set_estop, failsafe hold, cancel_trajectory), a failed step does not skip the rest, clear keeps the hold, Bool on both status streams, start sends the e-stop state.dimos/control/test_operator_hold.pyandtest_operator_hold_task.pyunchanged and passing.