第一个辣椒和手表已经在它们的篮子里。黄色辣椒在蓝色篮子底部看起来很小,手表似乎立在红色篮子的边缘上但得到了支撑。我应该在收回手臂后确认两者都保持稳定。
放置两个物体后,原来的八个物体中还剩下六个:最左侧的黄色辣椒、黑色手表、红色巧克力棒、被移动过的绿色辣椒、紫色巧克力棒和远处的手表。最左侧的辣椒可能位于世界坐标 x = -0.40米;其高机位相机位置仍在 (121, 274) 附近。其他高机位相机位置大约为:黑色手表 (283, 240),红色棒 (321, 274),被移动过的绿色辣椒 (393, 260),紫色棒 (500, 280),远处的手表 (475, 237)。
巧克力放入左侧白色篮子,辣椒放入中间蓝色篮子,手表放入右侧红色篮子。我可以让左臂把红色棒送到白色篮子,然后把最左侧的辣椒送到蓝色篮子,也许再把黑色手表送到红色篮子。右臂可以把远处的手表送到红色篮子,把绿色辣椒送到蓝色篮子,把紫色棒送到白色篮子。黑色手表也可以由右臂处理,因为它的世界 x 坐标只是略微为负,或者由左臂使用倾斜的搬运姿态处理。
在规划时,我估计红色棒大约在世界横纵 [0, -0.18] m,最左侧的辣椒大约在 [-0.4, -0.17] m,黑色手表大约在 [-0.08, -0.09] m。右侧物体大约为:远处的手表 [0.32, -0.10] m,绿色辣椒 [0.18, -0.14] m,紫色棒 [0.35, -0.18] m。最初把黑色手表分配给右侧会让左臂有两个物体、右臂有四个;让左臂在红色棒和黄色辣椒之后处理它,则每边各三个。另一种选择是右臂处理黑色手表,而左臂处理黄色辣椒,然后继续处理绿色辣椒和紫色棒。我应该选择能避免路径交叉的顺序。
最简单的分工是左臂处理剩余的左侧物体——黄色辣椒、红色棒和黑色手表——右臂处理绿色辣椒、紫色棒和远处的手表。我可以先把左臂的红色棒转移到白色篮子与右臂的远处手表转移到红色篮子配对。接下来,两臂都将把辣椒送到蓝色篮子;由于它们共享目的地,我应该按顺序放置它们或使用不同的侧边。最后,左臂的黑色手表转移到红色篮子和右臂的紫色棒转移到白色篮子会路径交叉,所以这些可以按顺序或在不同高度完成。篮子分配与哪只手臂处理物体无关。
这样每只手臂有三个循环。按每个循环大约 100 个控制步计算,我估计大约 300 步,完全在剩余的 972 步之内。我可以使用第六连杆 z = 1.08米附近的清晰搬运姿态,并将手指向前倾斜以便够到篮子。从篮子返回物体需要向后向下移动并旋转到抓取姿态。
我现在应该把张开的手指向上向后收回,并检查已放置的物体。一种选择是把两个第六连杆姿态从当前高度 1.05米和 1.061米垂直升高到 z = 1.12米,也许用六步,然后再导航到下一个物体。更好的选择可能是把收回与朝下一个物体的高位接近结合起来,并在途中向下旋转。当前倾斜的张开手指向前延伸约 0.157米,大约在 z = 0.95米,我相信它们能越过边缘。
对于直接接近,左侧红色棒大约在世界横纵 [0.002, -0.18] m,远处的手表大约在 [0.338, -0.102] m。将左侧第六连杆从 [-0.038, -0.071, 1.05] m 移动到红色棒的预抓取位置 [0.002, -0.18, 1.02] m 大约为 0.128米。从中间姿态旋转到竖直向下会使方向改变 45°,即 0.785弧度。手指在该旋转过程中可能朝前边缘下降,但在第六连杆初始高度 1.05米时,我估计指尖在 z = 0.94米,当它们指向下方时会降到大约 z = 0.89米。这仍然高于我估计的边缘 z = 0.875米,而且向后运动会带它们远离篮子。在第六连杆最终高度 1.02米时,红色棒估计顶部 z = 0.78米将约有 0.08米的间隙。
对于右臂,从 [0.319, -0.037, 1.061] m 移动到远处手表的预抓取位置 [0.338, -0.102, 1.00] m 大约为 0.094米。从红色篮子向后移动同时向下旋转似乎没有障碍,因为目标手表在篮子后面。最终指尖高度将约为 z = 0.842米,高于大约 z = 0.77米的手表。我可以为这些接近使用十步,同时认识到测量到的运动可能只能部分到达目标。
我还需要检查附近物体的间隙。黑色手表大约在世界横纵 [-0.08, -0.10] m,靠近 [0.002, -0.18] m 的红色棒,估计间隔为 0.12米。张开的左夹爪在 X 方向可能跨 0.1米,但其手指沿 Y 方向的延伸只有约 0.02米。手表在 Y 方向距离 0.08米,所以我预计它能避开红色棒的抓取。对于右臂,远处的手表在 [0.338, -0.102] m,紫色棒在 [0.35, -0.185] m,在 Y 方向相差 0.083米。由于开口沿 X 方向,而在向下姿态中手指长度沿 Y 方向约为 0.02米,这似乎也没有障碍。绿色辣椒在 [0.18, -0.14] m,距离更远。
腕部相机目前朝向篮子,不显示它们后面的物体,所以我还不能获得新的立体定位。我可以使用高机位相机和先前的标定估计,然后在预抓取姿态用腕部视图细化位置。我取桌面高度为 z = 0.765米。红色棒的高机位相机中心接近 (321, 275),可能的厚度为 0.015米,顶部接近 z = 0.78米。
对于远处的手表,我估计表带环中心接近高机位相机像素 (475, 236),表盘接近 (476, 243)。这次我将直接瞄准表带环中心,因为白色手表的环抓取在桌面高度成功了。先前的视图可能显示远处的环接近腕部像素 (402, 214)。我之前将高机位相机像素 (476, 242) 处的表盘三角测量到大约 [0.338, -0.102, 0.766] m;假设的对应关系给出 z = 0.7658米。这表明该表盘实际上可能接近桌面高度 z = 0.766米,而不是 z = 0.774米。白色手表先前的表盘估计 z = 0.774米可能反映了不同的表壳厚度。
我不确定观测 41 中远处手表的表盘是否在腕部像素 (400, 253) 附近,我可以检查一个裁剪图。或者,我可以从高机位相机像素 (474, 235) 在 z = 0.767米处估计环中心,这是假设的桌面高度 0.765米加上 0.002米。我想知道使用 z = 0.768米和像素 (475, 236) 是否会给出大约 x = 0.335米和 y = -0.092米;我应该精确计算一下。在 z = 0.77米处的原始投影给出远处手表中心为 [0.337, -0.089, 0.77] m。我当前的环中心估计是 [0.335, -0.095, 0.767] m,我可以使用目标横纵 [0.337, -0.095] m。黑色手表大约在世界横纵 [-0.08, -0.085] m,之后可能允许类似的表带抓取。
红色棒的位置也需要细化。在假设的 z = 0.775米处,其中心可能是 x = 0.002米和 y = -0.176米。之前,z = 0.77米给出横纵 [0.002, -0.179] m,而 z = 0.78米给出 [0.002, -0.183] m。其实际顶部可能在 z = 0.779米附近。我考虑选择 y = -0.177米,但使用其顶部中心像素 (321, 274) 和 z = 0.778米给出估计 y = -0.181米。
在闭合之前,我应该将左手指与红色棒的宽度对齐。在高机位相机图像中,棒大致跨越 u = 307–334 和 v = 258–291,中心为 (321, 275)。其长轴似乎从底部左侧到顶部右侧呈对角线,顶部端点大约在 (331, 258),底部端点大约在 (309, 290),像素变化为 X 方向 22、Y 方向 32。我最初的世界估计是长轴在 X 方向变化约 0.04米,在 Y 方向变化约 0.12米,主要沿 Y 方向且 X 为负。因此沿世界 X 方向闭合大约横跨其 0.025米的宽度。我考虑过 20° 的偏航调整,尽管标准的向下姿态可能就足够了。
使用 z = 0.775米处的端点估计,顶部在世界横纵 [0.024, -0.145] m,底部在 [-0.024, -0.215] m。长轴向量则为 [-0.048, -0.07] m,与世界 X 方向约成 -124°。垂直的闭合方向是 -34° 或 146°,而当前的世界 X 闭合线在 0°,相差 34°。投影的接触宽度将约为 0.025/余弦(34°) = 0.03米,所以不旋转的抓取仍然可能有效,但偏航调整应该能改善对齐。
在竖直向下姿态中,局部 Y 指向世界 -X 方向。经过世界 Z 偏航 θ 后,该闭合向量变为 [-余弦(θ), -正弦(θ)],有向角为 θ + 180°。期望方向大约为 [0.83, -0.56],角度为 -34°。偏航 146° 会给出该方向,但如此大的旋转是不必要的。偏航 -34° 给出大约 [-0.83, 0.56],即沿同一闭合线的相反向量,而局部 +X 仍然指向下方。因此,带有 -34° 偏航的向下姿态,类似于之前 -20° 的辣椒偏航,会使闭合线垂直于棒。我可以竖直向下抓取并在抬起后偏航,但在抓取前对齐更可取。远处手表的表带环不需要相同的方向调整,所以右臂可以使用标准的向下姿态。
我应该计算 -34° 偏航的四元数。附着的腕部相机会随夹爪旋转,但这应该可以处理。对于之后的紫色棒抓取,其长轴在高机位相机图像中似乎主要是垂直的,跨越 u = 493–506 和 v = 264–295。我估计世界 X 方向变化约 0.025米,沿 Y 方向约 0.10米。像素 (502, 264) 和 (491, 293) 附近的端点可能对应世界 x 值大约 0.374米和 0.35米,给出向量大约 [-0.024, -0.10] m。其垂直闭合角度会是 -76° 吗,我应该使用该偏航吗?我稍后会解决这个问题。
对于当前的红色棒接近,我倾向于使用带有 -30° 偏航的向下姿态,而远处手表的接近使用标准的向下姿态。从左臂当前接近中间姿态且偏航约为 0° 出发,改变为带有 -30° 偏航的向下姿态可能超过 45°,也许 60°。我的近似组合估计是平方根(45² + 30²) = 54°,即 0.94弧度,在 1.0弧度的方向界限内。右侧的方向变化是 45°。我将使用建议的预抓取位置 [0.002, -0.181, 1.02] m 用于红色棒,[0.337, -0.095, 1.00] m 用于远处的手表。左臂靠近中心,右臂大约在 x = 0.319米,似乎充分分离。我计划用十步进行接近,但首先我会计算偏航后的向下四元数。
原文10,926 字
The first pepper and watch are in their baskets. The yellow pepper looks small on the blue basket floor, and the watch appears to be standing on an edge in the red basket but supported. I should verify that both remain stable after withdrawing the arms.
Six objects remain from the original eight after placing two: the far-left yellow pepper, the black watch, the red chocolate bar, the shifted green pepper, the purple chocolate bar, and the far watch. The far-left pepper may be at world x = -0.40 m; its high-camera position is still around (121, 274). The other high-camera positions are approximately (283, 240) for the black watch, (321, 274) for the red bar, (393, 260) for the shifted green pepper, (500, 280) for the purple bar, and (475, 237) for the far watch.
Chocolate goes into the left white basket, peppers into the middle blue basket, and watches into the right red basket. I could have the left arm take the red bar to the white basket, then the far-left pepper to the blue basket, and perhaps the black watch to the red basket. The right arm could take the far watch to the red basket, the green pepper to the blue basket, and the purple bar to the white basket. The black watch could also be handled by the right arm, since its world x coordinate is only slightly negative, or by the left arm using a tilted carrying pose.
For planning, I estimate the red bar near world XY [0, -0.18] m, the far-left pepper near [-0.4, -0.17] m, and the black watch near [-0.08, -0.09] m. The right-side objects are approximately [0.32, -0.10] m for the far watch, [0.18, -0.14] m for the green pepper, and [0.35, -0.18] m for the purple bar. Initially assigning the black watch to the right would give the left arm two objects and the right four; letting the left arm handle it after the red bar and yellow pepper would give three each. Another option is for the right arm to handle the black watch while the left handles the yellow pepper, then continue with the green pepper and purple bar. I should choose the sequence to avoid crossing paths.
The simplest division is for the left arm to handle the remaining left-side objects—the yellow pepper, red bar, and black watch—and the right arm to handle the green pepper, purple bar, and far watch. I can first pair the left red-bar transfer to the white basket with the right far-watch transfer to the red basket. Next, both arms would take peppers to the blue basket; because they share a destination, I should place them sequentially or use separate sides. Finally, the left black-watch transfer to the red basket and right purple-bar transfer to the white basket would cross paths, so those could be done sequentially or at different heights. Basket assignments are independent of which arm handles an object.
That gives three cycles per arm. At roughly 100 control steps per cycle, I estimate about 300 steps, comfortably within the remaining 972. I can use clear carrying poses around link6 z = 1.08 m and tilt the fingers forward for basket reach. Returning from the baskets to the objects will require moving backward and downward and rotating into grasp poses.
I should now withdraw the open grippers upward and backward and check the placed objects. One option is to raise both link6 poses vertically to z = 1.12 m from their current heights of 1.05 m and 1.061 m, perhaps over six steps, before navigating to the next objects. A better option may be to combine withdrawal with the high approach toward the next objects and rotate downward along the way. The currently tilted open fingers extend about 0.157 m forward and are around z = 0.95 m, which I believe clears the rims.
For a direct approach, the left red bar is around world XY [0.002, -0.18] m, and the far watch around [0.338, -0.102] m. Moving the left link6 from [-0.038, -0.071, 1.05] m to a red-bar pregrasp at [0.002, -0.18, 1.02] m would be about 0.128 m. Rotating from the intermediate pose to straight down would change orientation by 45°, or 0.785 rad. The fingers could descend toward the front rim during that rotation, but at the initial link6 height of 1.05 m I estimate their tips at z = 0.94 m, falling to about z = 0.89 m as they point down. That is still above my rim estimate of z = 0.875 m, and the backward motion takes them away from the basket. At the final link6 height of 1.02 m, the red bar’s estimated top at z = 0.78 m would have about 0.08 m of clearance.
For the right arm, moving from [0.319, -0.037, 1.061] m to a far-watch pregrasp at [0.338, -0.102, 1.00] m would be about 0.094 m. Moving backward from the red basket while rotating down seems clear, since the target watch is behind the basket. The final fingertip height would be about z = 0.842 m, above the watch at roughly z = 0.77 m. I could use ten steps for these approaches, recognizing that the measured motion may only partially reach the targets.
I also need to check nearby-object clearance. The black watch is around world XY [-0.08, -0.10] m, near the red bar at [0.002, -0.18] m, with an estimated separation of 0.12 m. The open left gripper may span 0.1 m across X, but its finger extent along Y is only about 0.02 m. The watch is 0.08 m away in Y, so I expect it to clear the red-bar grasp. For the right arm, the far watch at [0.338, -0.102] m and purple bar at [0.35, -0.185] m differ by 0.083 m in Y. With the opening across X and finger length along Y around 0.02 m in the downward pose, that also seems clear. The green pepper at [0.18, -0.14] m is farther away.
The wrist cameras currently face the baskets and do not show the objects behind them, so I cannot yet obtain a fresh stereo fix. I can use the high camera and prior calibration estimates, then refine the positions with wrist views at the pregrasp poses. I am taking the table height as z = 0.765 m. The red bar’s high-camera center is near (321, 275), with a possible thickness of 0.015 m and top near z = 0.78 m.
For the far watch, I estimate the strap-ring center near high-camera pixel (475, 236) and the face near (476, 243). I will target the strap-ring center directly this time, since the white watch’s ring grasp worked at table level. A prior view may have shown the far ring near wrist pixel (402, 214). I previously triangulated the face at high-camera pixel (476, 242) to approximately [0.338, -0.102, 0.766] m; the assumed correspondences gave z = 0.7658 m. That suggests this face may actually lie near table height, z = 0.766 m, rather than z = 0.774 m. The white watch’s earlier face estimate of z = 0.774 m might reflect a different case thickness.
I am uncertain whether the far watch face in observation 41 was around wrist pixel (400, 253), and I could inspect a crop. Alternatively, I can estimate the ring center from high-camera pixel (474, 235) at z = 0.767 m, which is the assumed table height of 0.765 m plus 0.002 m. I wondered whether using z = 0.768 m with pixel (475, 236) would give about x = 0.335 m and y = -0.092 m; I should calculate that precisely. The original projection at z = 0.77 m gave the far-watch center as [0.337, -0.089, 0.77] m. My current ring-center estimate is [0.335, -0.095, 0.767] m, and I can use target XY [0.337, -0.095] m. The black watch near world XY [-0.08, -0.085] m may allow a similar strap grasp later.
The red bar’s position also needs refinement. At an assumed z = 0.775 m, its center might be x = 0.002 m and y = -0.176 m. Earlier, z = 0.77 m gave XY [0.002, -0.179] m, while z = 0.78 m gave [0.002, -0.183] m. Its actual top may be around z = 0.779 m. I considered choosing y = -0.177 m, but using its top-center pixel (321, 274) with z = 0.778 m gives an estimate of y = -0.181 m.
I should align the left fingers with the red bar’s width before closing. In the high-camera image, the bar spans roughly u = 307–334 and v = 258–291, with center (321, 275). Its long axis appears diagonal from bottom-left to top-right, with a top endpoint around (331, 258) and bottom endpoint around (309, 290), a pixel change of 22 across X and 32 across Y. My initial world estimate was a long-axis change of about 0.04 m in X and 0.12 m in Y, mostly along Y with negative X. Closing along world X would therefore be approximately across its width of 0.025 m. I considered a 20° yaw adjustment, although the standard downward pose might be sufficient.
Using endpoint estimates at z = 0.775 m gives a top at world XY [0.024, -0.145] m and bottom at [-0.024, -0.215] m. The long-axis vector is then [-0.048, -0.07] m, at about -124° from world X. A perpendicular closing direction is -34° or 146°, whereas the current world-X closing line is at 0°, differing by 34°. The projected contact width would be about 0.025/cos(34°) = 0.03 m, so the unrotated grasp could still work, but a yaw adjustment should improve alignment.
In the straight-down pose, local Y points along world -X. After a world-Z yaw of θ, that closing vector becomes [-cos(θ), -sin(θ)], with directed angle θ + 180°. A desired direction of approximately [0.83, -0.56] has angle -34°. A yaw of 146° would give that direction, but that large rotation is unnecessary. A yaw of -34° gives approximately [-0.83, 0.56], the opposite vector along the same closing line, while local +X still points down. Thus, a downward pose with -34° yaw, similar to the earlier -20° pepper yaw, would align the closing line perpendicular to the bar. I could grasp straight down and yaw after lifting, but alignment before grasp is preferable. The far watch’s strap ring does not require the same orientation adjustment, so the right arm can use the standard downward pose.
I should calculate the quaternion for a -34° yaw. The attached wrist camera will rotate with the gripper, but that should be manageable. For the later purple-bar grasp, its long axis appears mostly vertical in the high-camera image, spanning u = 493–506 and v = 264–295. I estimate about 0.025 m of world-X variation and 0.10 m along Y. Endpoints near pixels (502, 264) and (491, 293) might correspond to world x values around 0.374 m and 0.35 m, giving a vector around [-0.024, -0.10] m. Would its perpendicular closing angle be -76°, and should I use that yaw? I will resolve that later.
For the immediate red-bar approach, I am leaning toward a downward pose with -30° yaw, while the far-watch approach uses the standard downward pose. From the left arm’s current nearly intermediate pose with yaw around 0°, changing to downward with -30° yaw may be more than 45°, perhaps 60°. My approximate combined estimate is sqrt(45² + 30²) = 54°, or 0.94 rad, within the 1.0 rad orientation bound. The right orientation change is 45°. I will use proposed pregrasp positions [0.002, -0.181, 1.02] m for the red bar and [0.337, -0.095, 1.00] m for the far watch. The left arm near the center and right arm around x = 0.319 m appear sufficiently separated. I plan ten steps for the approach, but first I will calculate the yawed downward quaternions.