在观测 501 中,左夹爪 60° 倾斜时的相机轴大约为 [[1, 0, 0], [0, -1, 0], [0, 0, -1]],因此相机垂直向下看。起初这看起来可疑:我预期世界 x 轴保持为相机的水平轴,但预期其他轴会组合前向和向下方向。相机位置约为 [-0.397, -0.0477, 0.8828] m。是我选错了图像,还是遇到了舍入的标定、外参,或稳定后的腕部相机?我确实使用了 [1],即左腕部相机。
安装几何关系解释了这一点。在初始夹爪姿态下,相机轴大约为 [[1, 0, 0], [0, -0.5, -0.866], [0, 0.866, -0.5]]。以列形式在连杆坐标系中表示的相机轴为 [[0, -0.5, 0.866], [-1, 0, 0], [0, -0.866, -0.5]]。在 60° 倾斜时,R = (-60°)(90°),局部 X 指向 [0, 0.5, -0.866],局部 Z 指向 [0, 0.866, 0.5]。相机的前向方向为 0.866 倍局部 X 减去 0.5 倍局部 Z,得到 [0, 0, -1]。其初始前向方向已经比局部 X 低 30°,因此将手指向下倾斜 60° 会使相机垂直向下看,即 90°。在夹爪倾斜 45° 时,它向下看 75°。因此俯视相机轴是一致的,图像 y 增大对应世界 y 减小。
旋转相机的局部位置偏移 [0.0848, 0, 0.0509] m 得到世界 y 偏移 0.0424 + 0.0441 = 0.0865米,世界 z 偏移 -0.0734 + 0.0255 = -0.0480米。因此相机_y = 第六连杆_y + 0.0865 ≈ -0.0475米,相机_z = 第六连杆_z - 0.048 ≈ 0.883米,与标定一致。相机位于第六连杆下方,第六连杆的测量高度为 0.931米,相机比它低约 0.048米。
指尖中心是第六连杆沿局部 X 加 0.1576米。其世界 y 偏移为 +0.0788米,得到 y ≈ -0.0552米;其世界 z 偏移为 -0.1365米,得到 z ≈ 0.7945米。相对于相机, ≈ -0.0075米, ≈ -0.0883米。相机的垂直坐标为 - ≈ +0.0075米,使指尖参考点接近图像 v = 274 像素。
估计的手表点 [-0.40, -0.065, 0.78] m 投影到接近 [308, 307] 像素。我对表中心的视觉估计大约是 [330, 360] 像素;这一差异可能意味着其实际世界 y 更负,约为 -0.08米,高度更接近 0.80米。在提议的第六连杆高度 0.90米下,相机将位于 z ≈ 0.852米。z = 0.78米的物体深度将为 0.072米。物体 y = -0.065米,相机 y ≈ -0.0485米, ≈ -0.0165米,得到图像 v ≈ 331 像素,与沿手指局部 x = 0.14米附近的接触一致。
因此,将第六连杆从 0.931米降到 0.90米会使该估计物体点从 v = 307 移到 331 像素,向下移动 24 像素。我早先预期从 360 到 390 像素的偏移依赖于不确定的视觉中心。表带似乎从图像 y ≈ 280 延伸到 440 像素,其环中心约在 360 像素,但孔的中心不是抓取点。世界 z = 0.78米处投影到接近 307 像素的点可能位于上部。环的几何形状以及可能接近 -0.085米的世界 y 反而可能使其质心接近图像 v = 360 像素。
我需要接触表带靠近其上缘的位置,而不是穿过空孔闭合。夹爪应跨外径闭合,并接触其左右边缘。最终图像位置仍不确定,因此我可以先下降并检查再闭合。在第六连杆 z = 0.90米时,指尖将位于 z ≈ 0.7635米,略低于估计的桌面高度 0.765米。目标高度 0.903米似乎更好。垫片将位于 z = 0.78米附近,表带外径约为 0.04米。如果环中心投影接近 v = 360 像素,而夹爪在 v = 275 像素附近闭合,它们仍可能夹住上弧。这是偏心抓取,但刚性边缘可能支持它。
小幅向前调整应能改善接触位置。对于此俯视图,v = 240 - f(- 相机_y)/。将第六连杆向负世界 y 方向移动也会使相机向负 y 方向移动,使物体在图像中向上移动。我考虑从第六连杆 y = -0.134 到 -0.154米移动 0.02米;在深度 0.07米处,0.02 × 397 / 0.07 约为 113 像素,大约向上 110 像素。要将估计的环中心从 v = 360 移到 330 像素,负 y 方向调整 0.005米会更合适;在最终深度 0.07米处,这对应约 28 像素。
早先第六连杆 y = -0.135米的估计假设物体中心在 y = -0.065米,而实际环中心可能接近 -0.072米。我可以使用第六连杆 y = -0.14 或 -0.145米。在提议高度 0.903米和 y = -0.145米下,指尖 y 将为 -0.145 + 0.0788 = -0.0662米,接近估计的物体中心 -0.065米。局部 x = 0.14米处的垫片接触将位于 y = -0.145 + 0.07 = -0.075米,靠近表带前半部分。当前第六连杆 y = -0.134米使指尖接近 -0.055米,比估计中心靠后约 0.01米。对于杆,我使用局部 x = 0.14米处的垫片位置进行瞄准;对于这个环,我将把指尖放得更靠近其中心,得到第六连杆_y = - 0.0788 ≈ -0.144米,并选择 -0.145米作为目标。手表的估计 x 约为 -0.40米,接近当前第六连杆 x = -0.397米。
我将使用 3 个控制步骤,左夹爪保持张开,在相同 60° 倾斜下目标为 [-0.40, -0.145, 0.903] m。右夹爪将保持闭合,并继续朝 [0.10, -0.10, 1.05] m 移动。其测量位置为 [0.019, -0.168, 1.006] m;我估计剩余目标距离约为 0.103米,因此它在这 3 步中可能只取得部分进展。
原文5,685 字
The camera axes at the left gripper’s 60° tilt in observation 501 are approximately [[1, 0, 0], [0, -1, 0], [0, 0, -1]], so the camera looks straight down. Initially, that seems suspicious: I expected world x to remain the horizontal camera axis, but expected the other axes to combine forward and downward directions. The camera position is approximately [-0.397, -0.0477, 0.8828] m. Did I select the wrong image or encounter rounded calibration, an extrinsic bug, or a stabilized wrist camera? I did use images[1], the left wrist camera.
The mounting geometry explains it. At the initial gripper orientation q0, the camera axes are approximately [[1, 0, 0], [0, -0.5, -0.866], [0, 0.866, -0.5]]. The camera axes expressed as columns in the link frame are [[0, -0.5, 0.866], [-1, 0, 0], [0, -0.866, -0.5]]. At the 60° tilt, R = Rx(-60°)Rz(90°), local X points along [0, 0.5, -0.866], and local Z points along [0, 0.866, 0.5]. The camera’s forward direction is 0.866 times local X minus 0.5 times local Z, giving [0, 0, -1]. Its initial forward direction was already 30° below local X, so tilting the fingers downward by 60° makes the camera look vertically downward at 90°. At the 45° gripper tilt, it looks downward at 75°. The top-down camera axes are therefore consistent, with increasing image y corresponding to decreasing world y.
Rotating the camera’s local position offset [0.0848, 0, 0.0509] m gives a world-y offset of 0.0424 + 0.0441 = 0.0865 m and a world-z offset of -0.0734 + 0.0255 = -0.0480 m. Thus camera_y = link6_y + 0.0865 ≈ -0.0475 m and camera_z = link6_z - 0.048 ≈ 0.883 m, matching the calibration. The camera is below link6, whose measured height is 0.931 m, by about 0.048 m.
The fingertip center is link6 plus 0.1576 m along local X. Its world-y offset is +0.0788 m, giving y ≈ -0.0552 m, and its world-z offset is -0.1365 m, giving z ≈ 0.7945 m. Relative to the camera, dy ≈ -0.0075 m and dz ≈ -0.0883 m. The camera’s vertical coordinate is -dy ≈ +0.0075 m, putting the fingertip reference near image v = 274 pixels.
The estimated watch point [-0.40, -0.065, 0.78] m projects near [308, 307] pixels. My visual estimate of the watch center was perhaps [330, 360] pixels; that discrepancy could mean its actual world y is more negative, around -0.08 m, and its height closer to 0.80 m. At a proposed link6 height of 0.90 m, the camera would be at z ≈ 0.852 m. An object at z = 0.78 m would have depth 0.072 m. With object y = -0.065 m and camera y ≈ -0.0485 m, dy ≈ -0.0165 m, giving image v ≈ 331 pixels, consistent with contact around local x = 0.14 m along the fingers.
Lowering link6 from 0.931 to 0.90 m would therefore move that estimated object point from v = 307 to 331 pixels, downward by 24 pixels. My earlier expectation of a shift from 360 to 390 pixels relied on an uncertain visual center. The band appears to extend from image y ≈ 280 to 440 pixels, with its ring center around 360 pixels, but the hole’s center is not the grasp point. The point at world z = 0.78 m projecting near 307 pixels might be on the upper portion. The ring’s geometry and a possible world y near -0.085 m could instead put its center of mass near image v = 360 pixels.
I need to contact the band near its upper rim, rather than close through the empty hole. The jaws should close across the outer diameter and meet its left and right edges. The final image position remains uncertain, so I can lower and inspect before closing. At link6 z = 0.90 m, the fingertips would be at z ≈ 0.7635 m, slightly below the estimated table height of 0.765 m. A target height of 0.903 m seems better. The pads would be around z = 0.78 m, and the band’s outer diameter is about 0.04 m. If the ring center projects near v = 360 pixels while the jaws meet near v = 275 pixels, they could still pinch the upper arc. That is an off-center grasp, but the rigid rim may support it.
A small forward adjustment should improve the contact location. For this top-down view, v = 240 - f(object_y - camera_y)/depth. Moving link6 toward negative world y also moves the camera toward negative y, making the object move upward in the image. I considered a 0.02 m shift from link6 y = -0.134 to -0.154 m; at depth 0.07 m, 0.02 × 397 / 0.07 gives about 113 pixels, roughly 110 pixels upward. To shift the estimated ring center from v = 360 toward 330 pixels, a 0.005 m negative-y adjustment would be more appropriate; at the final depth of 0.07 m, that corresponds to about 28 pixels.
The earlier link6 y = -0.135 m estimate assumed an object center at y = -0.065 m, whereas the actual ring center might be near -0.072 m. I could use link6 y = -0.14 or -0.145 m. At the proposed height of 0.903 m and y = -0.145 m, the fingertip y would be -0.145 + 0.0788 = -0.0662 m, close to the estimated object center at -0.065 m. The pad contact at local x = 0.14 m would lie at y = -0.145 + 0.07 = -0.075 m, near the band’s front half. The current link6 y = -0.134 m puts the fingertip near -0.055 m, about 0.01 m behind the estimated center. For the bar, I aimed using the pad location at local x = 0.14 m; for this ring, I will put the fingertip nearer its center, giving link6_y = object_y - 0.0788 ≈ -0.144 m and choosing -0.145 m as the target. The watch’s estimated x is around -0.40 m, close to the current link6 x = -0.397 m.
I’ll use 3 control steps with the left gripper open, targeting [-0.40, -0.145, 0.903] m at the same 60° tilt. The right gripper will remain closed and continue toward [0.10, -0.10, 1.05] m. Its measured position is [0.019, -0.168, 1.006] m; I estimate the remaining target distance at about 0.103 m, so it will probably make only partial progress during these 3 steps.