added ruff test
This commit is contained in:
@@ -61,6 +61,30 @@ which can put the face on the far side of the body from the default camera. The
|
||||
axis is drawn with depth testing **off** for that reason — it is a reference line,
|
||||
and hiding it behind the body it is meant to align with is the opposite of useful.
|
||||
|
||||
## Running the pose on the machine
|
||||
|
||||
Three buttons, and where each one lives is deliberate:
|
||||
|
||||
| Button | Where | What it does |
|
||||
| --- | --- | --- |
|
||||
| **执行动作** Execute | this screen, next to 播放动作 | Sends the selected point's solved pose to the platform: **yaw, then pitch, then table X/Y**. The press axis **z is not commanded** — pressing is P7, with contact detection and press depth, neither of which exists here, so a move to the contact height would be a press with none of its guards. |
|
||||
| **停止** Stop | here *and* the strip's 全部停止 | The same command. Two access points, one implementation: during a move the operator's eyes are on this pane, and an emergency stop has to be where they are. |
|
||||
| **回初始位** Return to zero | the axis rail, on every tab | Every drive to 0 — press axis first, then the stages, then the table. A machine-level action, wanted after work in any tab, so it is not repeated inside one. |
|
||||
|
||||
**移动前确认** decides whether the moving buttons ask first. The prompt lists the steps
|
||||
with their numbers and the drive each one uses, and says what is *not* being moved.
|
||||
|
||||
The order is the model's own: the kinematics composes `R_pitch · R_yaw`, so yaw acts on
|
||||
the body first and the machine yaws first — every intermediate pose is one the preview
|
||||
drew. Table X/Y last, because the translation is what the rotations are resolved
|
||||
against.
|
||||
|
||||
Each drive is commanded on its own and the next goes out only once the previous has
|
||||
arrived, which is what keeps the move interruptible; a step that stops short, times out
|
||||
or alarms aborts the rest rather than finishing a sequence nobody has verified. What is
|
||||
checked *before* the first axis moves — the mapping, the P0 limits, the rotary
|
||||
calibration — is in `../README.md` under **Safety model**.
|
||||
|
||||
The chain the solver and the drawing share is, in order: **mount** (sensor axes into
|
||||
table axes) → **setup** (the mounting pose above) → **stages** (the solved yaw and
|
||||
pitch, about the table origin) → **table** (the XY slide). A point of the sensor is
|
||||
|
||||
@@ -236,6 +236,17 @@ measured time per point.
|
||||
**Gate:** the operator has seen the path and a dry run has completed without a
|
||||
guard violation.
|
||||
|
||||
**The single-point dry run is built**, in the finger debug screen: 执行动作 sends the
|
||||
selected point's *solved pose* to the platform — yaw, then pitch, then table X/Y — and
|
||||
does **not** command the press axis, so it cannot reach the sensor. The order is the
|
||||
model's own (`R_pitch · R_yaw`), so every intermediate pose is one the operator
|
||||
watched in the preview. Before it moves it checks the mapping, the target against the
|
||||
P0 limits (millimetres for x/y/z, degrees for yaw/pitch) and the rotary calibration —
|
||||
all in `motion/service.py`, so a later caller cannot walk around them — and the drives
|
||||
are commanded one at a time, each waiting for the previous to arrive, with a stall or
|
||||
an alarm aborting the rest. 停止 next to it is the same command as the strip's
|
||||
全部停止; 回初始位 in the rail sends every axis to zero with the press axis first.
|
||||
|
||||
---
|
||||
|
||||
## P7 — Run + acquire
|
||||
|
||||
Reference in New Issue
Block a user