每条都来自真实轨迹:上面是中文译文,灰色小字是英文原文,下面一句话说明“模型到底在干嘛”。
我可以利用已知朝向和相机投影,对当前头部和腕部视图中的对应点进行三角测量,从而估计更准确的物体三维位置。我可以使用初始对应点,也可以使用当前对应点。在当前头部图像中,巴士大约位于像素 (198, 224)。在 640 × 480 的腕部图像中,它的车顶中心可能在 (317, 356) 附近。
I could estimate more accurate 3D object positions by triangulating corresponding points in the current head and wrist views using the known orientation and camera projections. I could use either the initial correspondences or the current ones. In the current head image, the bus is around pixel (198, 224). In the 640 × 480 wrist image, its roof center might be around (317, 356).
两张不同角度的照片里认出同一个点,两条视线一交,就能算出它离相机多远。
只看一张图只知道“在画面哪个位置”,两张才能算出“离多远、有多高”。
我将使用当前观测中精确测得的朝向,计算每条手臂当前朝向与向下位姿之间的中间四元数。
I’ll use the exact measured orientations from the current observation to calculate a quaternion halfway between each arm’s current orientation and the downward pose.
知道手臂现在朝哪、要朝哪,先算一个“中间姿势”,分两步转过去。
因为一次动作最多只能转约 1 弧度,想一步到位会被直接拒绝。
当右臂移动到棕褐色玩具上方时,我应检查巧克力棒的间隙。我估计玩具顶部在 z = 0.80 m,巧克力棒底部在 z = 0.85 m,因此间隙似乎足够。
As the right arm moves above the tan toy, I should check the bar’s clearance. I estimate the toy’s top at z = 0.80 m and the bar’s bottom at z = 0.85 m, so the clearance appears adequate.
伸手之前先算高度:玩具顶 0.80 m,巧克力底 0.85 m,中间还有 5 cm。
有这段空隙才敢过;没有就先抬手臂,免得把东西撞翻。
上一个动作被拒绝,因为向下的旋转超过了单次动作的姿态限制,所以两只手臂都没有移动。我将使用较小的中间倾斜角度,同时继续让左臂朝黄色辣椒移动、右臂朝大象玩具移动,两个夹爪都保持张开。
The previous action was rejected because the downward rotation exceeded the per-action orientation limit, so neither arm moved. I’ll use a smaller intermediate tilt while continuing the left arm toward the yellow pepper and the right arm toward the elephant toy, with both grippers open.
动作被系统拒了,先弄清原因:一次转太多。
然后把一步拆小重试,而不是原样再发一遍。
还剩 240 个控制步。我将继续合拢 10 步,目标张开指令接近 0.4,然后测试抓取。
There are 240 control steps remaining. I will continue closing for 10 steps, aiming for an opening command near 0.4 before testing the grasp.
先看总预算还剩多少(240 步),再决定这一小步花几步(10 步)。
每步都在算“够不够、要不要省”,否则任务做一半就没步数了。
我称为牛的右侧物体实际上是一只躺在矩形基座上的白色狗。我可以横跨其躯干抓取,靠近图像中上部点 (345, 120)。
The right object I called a cow is actually a white dog lying on a rectangular base. I could grasp across its torso, near the upper-center image point (345, 120).
指令里的名字对不上:模型先当成“牛”,看清后改叫“白狗”。
词 → 物体 → 抓法,三者要对上,才不算抓错东西。
同时,我可以将右夹爪绕世界X轴向前倾斜+20°。我将使用SciPy计算倾斜后的四元数q_tilt = R_x(+20°) × q90,其中q90是右夹爪当前的俯视姿态。
At the same time, I can tilt the right gripper forward by +20° about world X. I’ll use SciPy to compute the tilted quaternion as q_tilt = R_x(+20°) × q90, where q90 is the right gripper’s current top-down orientation.
手算四元数容易错,干脆写两行 SciPy 算,再把结果填回动作。
工具不是装饰:它是把“想清楚”变成“算准确”的那一步。
在高机位相机视图中,大象现在独自位于像素 (255, 244) 附近,白色汽车位于 (232, 289),中央手表位于 (385, 294)。……我可以用左臂处理大象,用右臂处理白色汽车,然后用左臂处理手表,或者从右臂转移过来。
In the high-camera view, the elephant is now standing alone near pixel (255, 244), the white car is at (232, 289), and the center watch is at (385, 294).……I could handle the elephant with the left arm and the white car with the right, then use the left arm for the watch or transfer it from the right.
两只手分工:左手搬大象,右手搬白车,还要排先后。
排顺序是为了别抢道——两只手臂会撞在一起。