右侧张开命令再次达到 0,且提升后横杆仍留在桌面上,因此这次抓取未成功。横杆是否太窄,或者它是否被压缩到足以让命令达到 0?在高机位相机视图中,它现在大约出现在 (430, 270) 像素处,而初始位置为 (432, 259) 像素。在尝试过程中,它似乎朝机器人方向(环境 Y 负方向)移动了约 0.02米。它未被抓住。
我应该尝试不同的抓取策略,也许是自上而下的抓取,或者在横杆端部附近沿其长度方向使用拇指。我能否横跨其厚度抓住其短端?我需要确保手指确实与横杆相交。在高机位相机视图中,夹爪似乎位于横杆的上方和左侧:手指大约在 (418, 260) 像素处,横杆大约在 (430, 268) 像素处。也许沿 X 方向的接触位置不对,导致手指在远端附近闭合并将横杆推开。沿环境 X 负方向向后移动夹爪会使横杆更深地进入夹垫之间。我已经将第六连杆的 X 从 0.125米改为 0.11米,向后调整了 0.015米,但接触可能仍然太靠近端部。另一种可能是向后移动 0.04米至 x = 0.07米。
在腕部视图中,横杆的远端接近图像 y = 225 像素,其近端延伸到图像下方,指尖接近 y = 255 像素。闭合时,指尖大约在 (320, 255) 像素处。横杆在该点上方和下方均有延伸,使指尖位于其长度范围内靠近远端处。夹垫接触区域从图像 y = 255 像素向下延伸到图像底部,因此沿横杆长度方向似乎应该有重叠。横杆的中心线和闭合手指的汇合点都在图像 x = 320 像素处。为什么仍然抓不住?
也许横杆仍在手指下方,因为抓取高度仍然太高。在第六连杆 z = 0.845米时,我估计指尖高度为 z = 0.755米,桌面为 z = 0.75米,横杆顶部为 z = 0.765米。这应该能提供接触,但我不确定夹垫的几何形状。夹垫是否可能位于局部横纵平面内?手指沿局部 X 延伸,沿局部 Y 闭合,并沿局部 Z 具有厚度。我估计当前局部 Z 轴大约为 (0.569, 0, 0.823),具有垂直分量。手指的垂直范围可能沿局部 Z 向任一方向偏移,而不是以第六连杆的 X 轴为中心。在高机位相机视图中,黑色手指似乎从主体向下延伸。如果它们沿 +X 在 z = 0.78米处延伸,垂直厚度可能为 0.02米,我预期会接触。
我可以将第六连杆再降低 0.02米至 z = 0.825米,使尖端大约在 z = 0.735米,低于桌面。这会有接触桌面的风险,尽管抓取扁平物体可能需要手指轻微接触桌面。在之前的手表接近过程中,第六连杆在 z = 0.821米附近停滞,目标姿态水平,估计尖端高度为 z = 0.772米,这与桌面高度可能为 z = 0.75米相符。在这里,降低到 z = 0.825米会使尖端大约在 z = 0.736米,并导致其下边缘与桌面碰撞。先做较小的调整,将第六连杆降至 z = 0.835米(降低 10毫米),会使尖端大约在 z = 0.746米,可能让手指跨在横杆两侧。横向对齐也仍略有不确定:在观测_000322 的张开夹爪视图中,横杆中心接近图像 x = 355 像素,位于中心右侧。闭合可能已将其推向中心。
更陡的向下姿态似乎更可取,因为它可以将夹垫垂直放置在扁平横杆周围,同时避免接触桌面。当前俯仰约为 35°。进一步向下旋转可以让手指从上方接近横杆然后闭合。之前的自上而下四元数 [0.5, -0.5, 0.5, 0.5](顺序)将局部 X 映射到环境 −Z,但将闭合轴(局部 Y)映射到环境 −X。这对于长度沿环境 X 方向的横杆不合适。我需要局部 X 沿环境 −Z,局部 Y 沿环境 Y。
所需旋转的列为 (0, 0, -1)、(0, 1, 0) 和 (1, 0, 0),因为 (−Z) × Y = +X。其矩阵为 [[0, 0, 1], [0, 1, 0], [-1, 0, 0]]。我最初想知道其四元数是否为 [0, 0.707, 0, 0.707];我应该计算它。这似乎是绕 Y 轴 +90° 的旋转,将局部 X 映射到 (0, 0, -1),局部 Y 映射到 Y,局部 Z 映射到 X, 四元数为 [0.707, 0, 0.707, 0]。从当前四元数 [0.977, -0.025, 0.213, 0.002] 来看,姿态变化可能约为 1.11弧度,因此我可能需要一个中间姿态。
对于向下抓取,将第六连杆放置在物体上方约 0.13米处,高度将接近 z = 0.91米,X 和 Y 直接位于横杆中心上方。这似乎更适合扁平横杆。我可以将右侧第六连杆提升至 z = 1.0米,同时旋转并朝估计的横杆坐标 x = 0.23米、y = -0.14米移动。在向下姿态下,第六连杆位于 (横杆 X, 横杆 Y, 0.92) m 会使指尖接近 z = 0.76米,允许沿环境 Y 方向横跨横杆宽度闭合。右臂姿态 (0.23, -0.14, 0.92) m 似乎可达。我将计算从当前四元数到自上而下 Y 旋转四元数 [0.707, 0, 0.707, 0] 的姿态距离,并得到一个中间四元数。
原文5,366 字
The right opening command has again reached 0, and the bar remains on the table after the lift, so this grasp missed. Could the bar be too narrow, or could it compress enough for the command to reach 0? In the high-camera view, it now appears around (430, 270) pixels, compared with its initial position at (432, 259) pixels. It seems to have shifted toward the robot, in negative environment Y, by about 0.02 m during the attempts. It is not held.
I should try a different grasp strategy, perhaps a top-down grasp or using a thumb along the bar’s length near an end. Could I grasp its short end across its thickness? I need to ensure that the fingers actually intersect the bar. In the high-camera view, the gripper appears above and left of the bar: the fingers are around (418, 260) pixels and the bar around (430, 268) pixels. Perhaps the contact position is wrong along X, causing the fingers to close near the far end and push the bar away. Moving the gripper backward along negative environment X would put the bar deeper between the pads. I already changed link6 X from 0.125 m to 0.11 m, a backward adjustment of 0.015 m, but contact may still be too close to the end. Another possibility is to move backward by 0.04 m to x = 0.07 m.
In the wrist view, the bar’s far end is near image y = 225 pixels, its near end extends below the image, and the fingertips are near y = 255 pixels. When closed, the fingertips are around (320, 255) pixels. The bar extends both above and below that point, placing the fingertips within its length near the far end. The pad contact area extends from image y = 255 pixels down toward the bottom, so it seems that there should be overlap along the bar’s length. The bar’s centerline and the meeting point of the closed fingers are both at image x = 320 pixels. Why does it still fail to hold?
Perhaps the bar remains underneath the fingers because the grasp height is still too high. At link6 z = 0.845 m, I estimate the fingertip height at z = 0.755 m, the table at z = 0.75 m, and the bar’s top at z = 0.765 m. That should provide contact, but I am uncertain about the pad geometry. Could the pads lie in the local XY plane? The fingers extend along local X, close along local Y, and have thickness along local Z. I estimate the current local Z axis at approximately (0.569, 0, 0.823), which has a vertical component. The fingers’ vertical extent may be offset in either direction along local Z rather than centered on the link6 X axis. In the high-camera view, the black fingers appear to extend downward from the body. If they extend along +X at z = 0.78 m with perhaps 0.02 m of vertical thickness, I would expect contact.
I could lower link6 another 0.02 m to z = 0.825 m, putting the tip around z = 0.735 m, below the table. That would risk table contact, although a flat-object grasp might require the fingers to contact the table lightly. During the earlier watch approach, link6 stalled around z = 0.821 m with a level target orientation and an estimated tip height of z = 0.772 m, which was consistent with a possible table height of z = 0.75 m. Here, lowering to z = 0.825 m would put the tip around z = 0.736 m and cause its lower edge to collide with the table. A smaller first adjustment to link6 z = 0.835 m, 10 mm lower, would put the tip around z = 0.746 m and might let the fingers straddle the bar. The lateral alignment also remains slightly uncertain: in the open-gripper view at obs_000322, the bar center was near image x = 355 pixels, right of center. Closure may have pushed it toward the center.
A steeper downward orientation seems preferable because it could put the pads vertically around the flat bar while avoiding table contact. The current pitch is about 35°. Rotating farther downward would let the fingers approach the bar from above and then close. The earlier top-down quaternion [0.5, -0.5, 0.5, 0.5] in wxyz order maps local X to environment −Z, but it maps the closing axis, local Y, to environment −X. That is unsuitable for a bar whose length runs along environment X. I need local X along environment −Z and local Y along environment Y.
The desired rotation has columns (0, 0, -1), (0, 1, 0), and (1, 0, 0), since (−Z) × Y = +X. Its matrix is [[0, 0, 1], [0, 1, 0], [-1, 0, 0]]. I initially wondered whether its quaternion was [0, 0.707, 0, 0.707]; I should compute it. This appears to be a +90° rotation about Y, mapping local X to (0, 0, -1), local Y to Y, and local Z to X, with wxyz quaternion [0.707, 0, 0.707, 0]. From the current quaternion [0.977, -0.025, 0.213, 0.002], the orientation change may be about 1.11 rad, so I may need an intermediate orientation.
For a downward grasp, placing link6 about 0.13 m above the object would give a height near z = 0.91 m, with X and Y directly over the bar’s center. This seems better suited to the flat bar. I can lift the right link6 to z = 1.0 m while rotating and moving toward the estimated bar coordinates x = 0.23 m, y = -0.14 m. At the downward orientation, link6 at (bar X, bar Y, 0.92) m would put the fingertips near z = 0.76 m, allowing closure along environment Y across the bar’s width. The right-arm pose (0.23, -0.14, 0.92) m seems reachable. I will calculate the orientation distance from the current quaternion to the top-down Y-rotation quaternion [0.707, 0, 0.707, 0] and obtain an intermediate quaternion.