从上方可以看到最后一个玩具,其躯干靠近腕部图像像素 (355, 215)。我初步将其臀部定位于 (285, 130),吻部定位于 (440, 230),但我不确定它是站立还是侧躺。黄色玩具出现在高机位相机像素 (294, 275) 附近。腕部像素 (430, 200) 附近的圆形特征可能是耳朵而非吻部。其初始高机位相机外观表明头部朝向下方偏左,而如今在腕部视图中其身体看起来大致呈水平且对角方向。
我选择左夹爪偏航 −20 度,假设世界坐标系中身体轴为对角方向。在该偏航角下,第一只猪的身体在观测_000052 中呈垂直方向,获得了良好的抓取对齐。而这个玩具似乎从大约 (280, 120) 延伸到 (450, 230),图像角度约为 32 度。它可能朝向不同或侧躺。在下降之前我应该分析这一点:手指在腕部图像中水平闭合,因此当前对齐可能沿玩具长度方向抓取,而非横跨其宽度。
我希望闭合方向垂直于躯干长轴,使身体在腕部图像中呈垂直方向。我当前的长轴估计为 +30 度,向右下方倾斜。要使其在 +90 度时垂直,需要大约再增加 +60 度的表观图像旋转。我不确定旋转符号。我最初回忆零偏航时杆的图像角度为 15 度,但相关的转移杆实际上在约 65 度时呈对角方向,之后 28 度的偏航变化使其在约 90 度时垂直。这表明增加偏航会使其表观图像角度增加约 25 度,我将其解释为视觉上的逆时针方向。基于此,将玩具夹爪的偏航从 −20 度增加到 +40 度可能会横跨身体对齐。我尚未厘清世界坐标系长轴角度、图像角度和偏航之间的确切关系;向下相机的垂直方向映射到环境 −Y 方向,且相机当前旋转了 −20 度。观察到的图像旋转足以提出分阶段调整,但该解释仍是初步的。
躯干靠近 (350, 215),垂直于其长轴的估计宽度为 110 像素,长度为 240 像素。张开的手指间隙看起来约 450 像素宽。在当前朝向下,手指可能在大约 0.06米的长度上接触吻部和臀部两端,仍在估计最大值 0.1米之内,但这可能不太稳定并会滑动。我更倾向于抓取躯干而非附肢,并在末端执行器高度 z = 0.98米处保持在其上方进行旋转。
我还需要细化躯干的水平位置。当前左末端执行器为 [−0.06, −0.185, 0.98] m。如果其 X 和 Y 坐标正确,绕末端执行器旋转应使抓取保持居中。躯干的腕部图像 X 坐标 355 大约在中心右侧 35 像素处。估计相机到玩具顶部的深度为 0.11米,偏移计算 35/397 × 0.11 给出沿相机右方向约 0.0097米。另一个可能的质心是 (350, 210),因此这是近似值。
我最初将其图像行 215 与之前一只猪在 z = 0.77米和末端执行器 z = 0.972米时抓取中心投影接近行 75 进行比较,并想知道这个玩具的顶部是否更低,或者其 Y 坐标是否有误。如果它侧躺,其顶部可能在 z = 0.78米,深度约 0.11米。使用相机中心 C = 末端执行器 + [0, 0.051, −0.085] m 重新检查投影,位于末端执行器 X 和 Y 坐标且 z = 0.78米的物体点具有 Δy = −0.051米和 Δz = −0.115米。其光学 Y 分量约为 0.044 − 0.0575 = −0.0135米,给出图像行 193.5 而非 75。较早的情况是末端执行器 z = 0.972米,物体 z = 0.77米,Δz = −0.117米,以及不同的偏航相关 Y 关系;基础投影大约在行 200。在零偏航时,我当前的估计是行 194,因此行 215 处的躯干与末端执行器的水平位置相当接近。
在偏航 −20 度时,我将相机右方向解释为 (−20°) 应用于环境 X,分量 [余弦, 正弦, 0] ≈ [0.94, −0.342, 0]。因此 +0.01米的相机右移将给出环境变化大约为 X 方向 +0.0094米和 Y 方向 −0.0034米,表明左末端执行器目标为 [−0.0506, −0.1884, 0.98] m。较早的高机位相机估计将玩具中心置于 z = 0.77米时 x = −0.0602米, y = −0.185米,或 z = 0.79米时 x = −0.058米, y = −0.1935米。顶部中心估计约 [−0.05, −0.188] m 是合理的,但我应该进行三角测量而不是现在就选定它。我将在观测_000570 中测试高机位相机像素 (294, 277) 与腕部躯干像素 (355, 215),以及候选的臀部和鼻部地标,以研究世界坐标系长轴。
右臂可以在细化玩具对齐的同时接近最后一块手表。中心手表出现在高机位相机像素 (306, 233) 附近,可能在之前玩具掉落之后略有偏移,估计世界 X 和 Y 坐标为 [−0.028, −0.08] m。右末端执行器当前为 [0.276, −0.111, 1.0] m,四元数为 [0.579, −0.407, 0.405, 0.579]。我不确定是将该朝向描述为倾斜还是涉及 −20 度偏航。直接位于手表上方的目标 [−0.028, −0.086, 0.98] m 使用零偏航向下四元数距离约 0.307米,超过 0.25米的命令限制。我可以先使用 [0.12, −0.12, 1.0] m 和向下朝向,然后接近手表。我的四元数点积估计为 0.289 + 0.203 + 0.203 + 0.289 = 0.984,对应约 20 度的旋转。我估计路径点移动为 0.157米,并考虑了 8 个控制步骤。
对于玩具,从偏航 −20 到 +40 度的直接移动将是 60 度的朝向变化,即 1.047弧度,超过 1.0弧度的限制。向下 +40 度偏航的四元数将是 [0.298836, −0.640856, 0.298836, 0.640856],但我需要一个中间位姿。我考虑先偏航 +10 度,即 30 度变化,然后 +40 度。我初步的 +10 度四元数估计包括 [0.4385, −0.5506, 0.4385, 0.5506] 以及可能的第一分量约 0.456;我应该计算它而不是依赖这些猜测。在检查公式时,我还将 [0.364, −0.606, …] 作为 +28 度的偏航 20 示例,而 −20 度示例是 [0.579, −0.405, 0.579, 0.405]。
一个可能的中间目标是 [−0.055, −0.188, 0.98] m,偏航 +10 度,5 个步骤,右路径点需要 8 个步骤。这将使玩具的表观长轴从约 30 度变为 60 度,与期望的垂直闭合方向留下约 30 度的偏差。然后我可以继续到偏航 +40 度。我还考虑了偏航 +20 后跟 +50 度,或偏航 +30 使长轴看起来接近 80 度。精确的垂直对齐可能不是必需的;约 ±15 度的误差可能是可接受的。+20 度的中间值将改变偏航 40 度,即 0.698弧度,然后再继续到 +40 度。
我现在倾向于先偏航 +15 度,即 35 度变化,应使表观长轴约为 65 度,然后偏航 +35 度使其接近 85 度。剩余 530 个控制步骤,因此分阶段对齐是可行的。另一个视觉估计将躯干椭圆从 (250, 170) 到 (440, 280),长轴角度更接近 20 度。在行 280 附近水平闭合可能接触靠近 (280, 280) 的左后腿,也许还有右侧的吻部,产生可能横跨对角躯干下三分之一的抓取。那可能可行,但不如横跨身体旋转那样可靠地最大化垫接触。我将首先计算候选三角测量和偏航 +15 与 +35 度的向下四元数,然后使用这些结果来细化抓取。
原文7,859 字
The last toy is visible from above, with its torso near wrist-image pixel (355, 215). I tentatively identify its rump at (285, 130) and snout at (440, 230), but I am unsure whether it is standing or lying on its side. The yellow toy appears near high-camera pixel (294, 275). The circular feature near wrist pixel (430, 200) might be an ear rather than the snout. Its initial high-camera appearance suggested that its head faced toward the lower left, whereas its body now looks roughly horizontal and diagonal in the wrist view.
I chose a left-gripper yaw of −20 degrees assuming a diagonal world-frame body axis. At that yaw, the first pig’s body appeared vertical in obs_000052, giving a good grasp alignment. This toy instead seems to extend from about (280, 120) to (450, 230), at an image angle of roughly 32 degrees. It may have a different orientation or be lying on its side. I should analyze that before lowering: the fingers close horizontally in the wrist image, so the present alignment may grip along the toy’s length rather than across its width.
I want the closing direction perpendicular to the torso’s long axis, with the body appearing vertical in the wrist image. My current long-axis estimate is +30 degrees, sloping down to the right. Making it vertical at +90 degrees would require about another +60 degrees of apparent image rotation. I am uncertain about the rotation sign. I initially recalled the bar at zero yaw having an image angle of 15 degrees, but the relevant transferred bar actually appeared diagonal at about 65 degrees before a 28-degree yaw change made it vertical at about 90 degrees. That suggests increasing yaw increases its apparent image angle by about 25 degrees, which I was interpreting as visually counterclockwise. On that basis, increasing the toy gripper’s yaw from −20 to +40 degrees might align across the body. I have not resolved the exact relationship between the world-frame long-axis angle, the image angle, and yaw; the downward camera’s vertical direction maps toward environment −Y, and the camera is currently rotated by −20 degrees. The observed image rotation is enough to propose a staged adjustment, but the interpretation remains tentative.
The torso is near (350, 215), with an estimated width perpendicular to its long axis of 110 pixels and a length of 240 pixels. The open finger gap appears about 450 pixels wide. At the current orientation, the fingers might contact the snout and rump ends across a length of about 0.06 m, still within an estimated maximum of 0.1 m, but that could be less stable and slip. I prefer to grasp the torso rather than appendages and rotate while remaining above it at EEF height z = 0.98 m.
I also need to refine the torso’s horizontal position. The current left EEF is [−0.06, −0.185, 0.98] m. If its X and Y coordinates are correct, rotation about the EEF should keep the grasp centered. The torso’s wrist-image X coordinate of 355 is about 35 pixels right of center. With an estimated camera depth to the toy’s top of 0.11 m, the offset calculation 35/397 × 0.11 gives about 0.0097 m along camera right. Another possible centroid is (350, 210), so this is approximate.
I initially compared its image row of 215 with an earlier grasp-center projection near row 75 for a pig at z = 0.77 m and EEF z = 0.972 m, and wondered whether this toy’s top was lower or whether its Y coordinate was wrong. If it is lying on its side, its top might be at z = 0.78 m with depth about 0.11 m. Rechecking the projection using camera center C = EEF + [0, 0.051, −0.085] m, an object point at the EEF’s X and Y coordinates and z = 0.78 m has Δy = −0.051 m and Δz = −0.115 m. Its optical Y component is approximately 0.044 − 0.0575 = −0.0135 m, giving image row 193.5 rather than 75. The earlier case had EEF z = 0.972 m, object z = 0.77 m, Δz = −0.117 m, and a different yaw-dependent Y relationship; the base projection was around row 200. At zero yaw, my present estimate is row 194, so the torso at row 215 is reasonably close to the EEF’s horizontal location.
At yaw −20 degrees, I interpret camera right as Rz(−20°) applied to environment X, with components [cos(yaw), sin(yaw), 0] ≈ [0.94, −0.342, 0]. A +0.01 m camera-right shift would therefore give environment changes of approximately +0.0094 m in X and −0.0034 m in Y, suggesting a left EEF target of [−0.0506, −0.1884, 0.98] m. Earlier high-camera estimates placed the toy center at x = −0.0602 m, y = −0.185 m for z = 0.77 m, or x = −0.058 m, y = −0.1935 m for z = 0.79 m. A top-center estimate around [−0.05, −0.188] m is plausible, but I should triangulate rather than select it yet. I will test high-camera pixel (294, 277) against wrist torso pixel (355, 215) in obs_000570, along with candidate rump and nose landmarks to investigate the world-frame long axis.
The right arm can approach the last watch while I refine the toy alignment. The center watch appears near high-camera pixel (306, 233), perhaps shifted slightly after the earlier toy drop, with estimated world X and Y coordinates [−0.028, −0.08] m. The right EEF is currently [0.276, −0.111, 1.0] m with quaternion [0.579, −0.407, 0.405, 0.579]. I am unsure whether to describe that orientation as tilted or as involving −20-degree yaw. A direct overhead watch target at [−0.028, −0.086, 0.98] m with the zero-yaw downward quaternion is about 0.307 m away, exceeding the 0.25 m command limit. I can first use [0.12, −0.12, 1.0] m with the downward orientation, then approach the watch. My quaternion dot-product estimate is 0.289 + 0.203 + 0.203 + 0.289 = 0.984, corresponding to about 20 degrees of rotation. I estimate the waypoint move as 0.157 m and considered 8 control steps.
For the toy, a direct move from yaw −20 to +40 degrees would be a 60-degree orientation change, or 1.047 rad, above the 1.0 rad limit. The downward +40-degree-yaw quaternion would be [0.298836, −0.640856, 0.298836, 0.640856], but I need an intermediate pose. I considered yaw +10 degrees first, a 30-degree change, then +40 degrees. My tentative +10-degree quaternion estimates included [0.4385, −0.5506, 0.4385, 0.5506] and a possible first component around 0.456; I should calculate it rather than rely on those guesses. In checking the formula, I also referred to [0.364, −0.606, …] as a yaw-20 example for +28 degrees, while the −20-degree example was [0.579, −0.405, 0.579, 0.405].
One possible intermediate target was [−0.055, −0.188, 0.98] m at yaw +10 degrees for 5 steps, with the right waypoint taking 8 steps. That would bring the toy’s apparent long axis from about 30 to 60 degrees, leaving roughly 30 degrees of misalignment from the desired perpendicular closing direction. I could then continue to yaw +40 degrees. I also considered yaw +20 followed by +50 degrees, or yaw +30 to make the long axis appear near 80 degrees. Exact vertical alignment may not be necessary; an error of about ±15 degrees could be acceptable. A +20-degree intermediate would change yaw by 40 degrees, or 0.698 rad, before continuing to +40 degrees.
I now prefer yaw +15 degrees first, a 35-degree change that should put the apparent long axis around 65 degrees, followed by yaw +35 degrees to bring it near 85 degrees. There are 530 control steps remaining, so staged alignment is affordable. Another visual estimate puts the torso ellipse from (250, 170) to (440, 280), with a long-axis angle closer to 20 degrees. Closing horizontally near row 280 might contact the left hind leg near (280, 280) and perhaps the snout on the right, producing a possible grasp across the lower third of the diagonal torso. That might work, but it would not maximize pad contact as reliably as rotating across the body. I will first calculate the candidate triangulations and the downward quaternions for yaw +15 and +35 degrees, then use those results to refine the grasp.