在物体高度 z = 0.79米处,夹爪轴线应出现在像素 (320, 151) 附近,而不是图像中心 (320, 240)。我初步将棕色玩具的身体定位在 (390, 65),头部定位在 (350, 150),由此得到身体中心估计为 x = -0.255米、y = -0.236米。我可以将左夹爪移动到这些 x 和 y 坐标以抓取身体。
右侧巧克力棒部分超出了腕部图像的上边缘。其估计的 y = -0.19米位于右连杆的 y = -0.275米前方。在 z = 0.765米处,夹爪轴线投影在 v = 136 像素附近,而巧克力棒可能投影在负的 v 坐标处。在 y = -0.2237米处位于相机中心前方,是否意味着它位于朝向 -Y 的相机后方?其较低的高度仍可使其沿向下观察方向位于相机前方。为使巧克力棒与夹爪轴线像素 (320, 133) 附近对齐,我应将连杆移动到大约 y = -0.19米,即 +0.085米的变化。
棕色玩具的位置不太确定。一个可能的目标是 x = -0.25米、y = -0.21米。早先的俯视估计为 (-0.259, -0.209, 0.76) m,而使用像素 (390, 65) 在 z = 0.79米处的腕部估计约为 (-0.255, -0.236, 0.79) m。y 方向 0.027米的差异可能来自选择了不同的图像点。在腕部视图中,大的身体可能在 (400, 110) 附近,头部在 (350, 140) 附近,暗示一条对角长轴。俯视中心可能更接近 (181, 289) 而非 u = 190,这可能意味着 x = -0.276米。我应检查当前腕部和俯视视图的更大裁剪区域,不过原始图像可能已经足够。
棕色玩具似乎有一个大的鞍状身体在 (400, 110) 附近,头部在 (350, 155) 附近,还有腿。也许 (408, 101) 附近的抓取点可行。我曾认为它是一只熊或乌龟,但当前视图看起来更像一只雕刻的大象,大的身体在 (408, 92) 附近,可能有两个象牙特征,以及装饰过的背部。它可能是一只棕色木象,前方白色篮子附近还有另一只浅色大象。黄色玩具可能是一只小鸡。我的清单仍然是三只木制玩具。
在当前左腕视图中,棕色玩具大致跨越 x = 320–480 和 y = 0–200 像素。另一个身体中心估计是 (405, 85),头部在 (350, 140)。我将使用 z = 0.80米作为身体顶部,并比较来自多个像素的射线-平面估计。俯视物体在 (180, 287) 附近,这可能给出 x = -0.278米。我也可以不假设高度,在俯视相机和左腕相机之间对对应点进行三角测量。一个独特的身体顶部点可能在俯视中位于 (180, 278) 附近,在腕部视图中位于 (400, 80) 附近,但匹配这些点并不简单。
我假设桌子在 z = 0.75米处,这是常见的桌子高度。末端执行器的初始高度 0.9215米似乎典型,篮子可能高 0.08米,手表可能在 z = 0.75米处。这些是估计值而非测量的物体高度。
棕色玩具可能高约 0.07米,其身体顶部在 z = 0.82米。我希望在其中部附近接触,即 z = 0.78–0.80米。第六连杆的高度应为接触高度加上手指接触偏移,也许是 0.12米。当手指指向下方时,其最远延伸为 0.1576米,而垫片可能在约 0.1–0.157米的局部距离上延伸。我应选择一个连杆高度,使指尖在桌子上方约 0.01米,同时使垫片围绕身体。
如果玩具高 0.06米,在 z = 0.78–0.81米处抓取身体可能可行,第六连杆在 z = 0.91米。我估计此时指尖将在 z = 0.752米,垫片在 z = 0.78–0.85米附近。连杆高度为桌子高度加 0.16米,即 0.91米,似乎合理。对于仅 0.01米厚的巧克力棒,桌子高度加 0.15米会使第六连杆在 0.90米,指尖在 0.742米,低于桌面。我应避免这种情况,考虑改用 0.91米,指尖在 0.752米。垫片仍可位于 z = 0.76米的巧克力棒上方,因此接触可能取决于其靠近指尖的下边缘。由于接触区域通常接近指尖,0.91米可能对两个物体都适用。对于高约 0.015米的手表环,我可能使用 0.905米。也许这些任务通常使用 0.93米的末端执行器高度;我将从第一次抓取棕色玩具和巧克力棒中学习。我的初步计划是在第六连杆 z = 1.0米处对齐 x 和 y,然后通过短动作下降到 0.92米。
张开的手指间隙可能约为 0.11米。沿局部 Y(当前为世界 -X)闭合,应能容纳约 0.08米宽的棕色身体。右侧巧克力棒可能长 0.12米、宽 0.025米,在桌面内斜向放置。我应调整闭合方向横跨其宽度以改善接触。
在向下四元数下,局部 Y 指向世界 -X,局部 Z 指向世界 +Y。绕局部 X(指向世界 -Z)旋转会改变桌面内的闭合方向。巧克力棒的长轴在世界中的位移大致为 (0.07, -0.04) m:其红色端在俯视图像中位于左上,白色端位于右下。端点大约在 (415, 274) 和 (445, 290) 像素。因此长轴指向 +X 和 -Y,可能在 +X 下方约 40 度。垂直的闭合方向可能是 (0.5, 0.866)。我可以绕世界 Z 旋转大约 -50 度。或者,在倾斜约 35 度的巧克力棒中心沿世界 X 闭合可能仍能夹住它,有效宽度为 0.04米,尽管接触不会完全对跖。该技能倾向于根据物体调整方向。
我可以通过将向下旋转与绕局部 X 的旋转组合来获得所需方向。在向下方向下,局部 X 为 [0, 0, -1],局部 Y 为 [-1, 0, 0],局部 Z 为 [0, 1, 0]。绕局部 X 旋转得到局部 Y = [-余弦, 正弦, 0],因为 (-Z) 叉乘 (-X) 得到 +Y。对于闭合方向 [-0.5, -0.866],等价于相反方向 [0.5, 0.866], 应为 -60 度。这垂直于巧克力棒轴 [0.866, -0.5],点积为 -0.433 + 0.433 = 0。组合为 × ,或 × (-60 度)。
60 度的变化为 1.047弧度,略超出 1.0弧度的命令限制。我可以在避开物体时使用中间方向。-45 度的局部 X 旋转会给出闭合方向 [-0.707, -0.707],其与 [0.866, -0.5] 的点积为 -0.612 + 0.354 = -0.258。这不完全垂直,但可能足够。沿长度方向夹取巧克力棒是另一种可能,但 0.1米的张开间隙可能无法容纳长 0.11米的巧克力棒,因此横跨宽度抓取更可取。我计划在 1.02米高度对齐后,分两个阶段将右夹爪旋转 -60 度。
对于棕色玩具,其装饰身体的长轴可能沿世界 Y 方向。俯视身体在 (180, 287) 附近,但我不确定头部方向,可能需要裁剪。如果它是一只沿 Y 方向放置的大象,保持闭合方向沿世界 X 横跨约 0.07米的身体宽度似乎是合理的。
我的初步对齐目标是棕色身体上方的 x = -0.255米、y = -0.215米,以及白色巧克力棒上方的 x = 0.225米、y = -0.19米。在移动之前,我将使用俯视相机和假设高度来细化这些。棕色身体中心可能在 (181, 288) 像素附近;在放大的俯视视图中,我的估计是 (365, 574) 除以二,即 (182.5, 287)。
在 z = 0.80米处,俯视投影给出相机 = -0.866y - 0.4 + 0.29893 = -0.866y - 0.10107,以及相机 = 0.5y - 0.69282 + 1.33776 = 0.5y + 0.64494。对于 v = 287,归一化垂直坐标为 47/288 = 0.1631。解 -0.866y - 0.1011 = 0.08155y + 0.1052 得到 y = -0.2177米和相机 = 0.5361米。然后 x = (182.5 - 320)/288 × 0.5361 = -0.2560米。这给出棕色身体的估计约为 (-0.256, -0.218, 0.80) m。其 x 与早先的腕部估计 -0.255米一致,但 y 与 -0.236米相差 0.018米。我现在将使用身体像素 (400, 90) 在 z = 0.80米处计算腕部估计,并比较各视图中所选的点。
原文8,157 字
The gripper axis at an object height of z = 0.79 m should appear around pixel (320, 151), rather than at the image center, (320, 240). I tentatively locate the brown toy’s body at (390, 65) and its head at (350, 150), giving a body-center estimate of x = -0.255 m and y = -0.236 m. I could move the left gripper to those x and y coordinates to grasp the body.
The right chocolate bar is partly beyond the top of the wrist image. Its estimated y = -0.19 m is ahead of the right link’s y = -0.275 m. At z = 0.765 m, the gripper axis projects near v = 136 pixels, whereas the bar may project at a negative v coordinate. Does being ahead of the camera center at y = -0.2237 m put it behind the camera, which looks toward -Y? Its lower height can still put it in front of the camera along the downward viewing direction. To align the bar with the gripper-axis pixel near (320, 133), I should move the link to approximately y = -0.19 m, a +0.085 m change.
The brown toy’s position is less certain. A possible target is x = -0.25 m, y = -0.21 m. The earlier overhead estimate was (-0.259, -0.209, 0.76) m, while the wrist estimate using pixel (390, 65) at z = 0.79 m was approximately (-0.255, -0.236, 0.79) m. The 0.027 m difference in y may come from choosing different image points. In the wrist view, the large body may be around (400, 110), with the head around (350, 140), suggesting a diagonal long axis. The overhead center may be nearer (181, 289) than u = 190, which might imply x = -0.276 m. I should inspect a larger crop of the current wrist and overhead views, though the original image may be enough.
The brown toy seems to have a large saddle-like body around (400, 110), a head around (350, 155), and legs. Perhaps a grasp point near (408, 101) would work. I had considered it a bear or turtle, but the current view looks more like a carved elephant, with a large body around (408, 92), possibly two ivory features, and a decorated back. It is probably a brown wooden elephant, with another light elephant at the front near the white basket. The yellow toy may be a chick. My inventory remains three wooden toys.
In the current left wrist view, the brown toy spans approximately x = 320–480 and y = 0–200 pixels. Another body-center estimate is (405, 85), with the head at (350, 140). I will use z = 0.80 m for the body top and compare ray-plane estimates from several pixels. The overhead object is around (180, 287), which might give x = -0.278 m. I could instead triangulate corresponding points between the overhead and left wrist cameras without assuming a height. A distinctive body-top point might be around (180, 278) overhead and (400, 80) in the wrist view, but matching those points is not straightforward.
I am assuming the table is at z = 0.75 m, which is a common RoboDojo table height. The initial end-effector height of 0.9215 m seems typical, the baskets may be 0.08 m tall, and the watches may be at z = 0.75 m. These are estimates rather than measured object heights.
The brown toy may be about 0.07 m tall, with its body top at z = 0.82 m. I want contact around its middle, at z = 0.78–0.80 m. The link6 height should be the contact height plus a finger-contact offset, perhaps 0.12 m. With the fingers pointing downward, their farthest extent is 0.1576 m, and the pads may extend over local distances of about 0.1–0.157 m. I should choose a link height that leaves the tips about 0.01 m above the table while putting the pads around the body.
If the toy is 0.06 m tall, a body grasp at z = 0.78–0.81 m might work with link6 at z = 0.91 m. I estimate the tips would then be at z = 0.752 m and the pads around z = 0.78–0.85 m. A link height of table height plus 0.16 m, or 0.91 m, seems plausible. For a chocolate bar only 0.01 m thick, table height plus 0.15 m would put link6 at 0.90 m and the tips at 0.742 m, below the table. I should avoid that and consider 0.91 m instead, with tips at 0.752 m. The pads could still sit above a bar at z = 0.76 m, so contact might depend on their lower edges near the fingertips. Since the contact area usually reaches near the tips, 0.91 m may work for both objects. For a watch ring about 0.015 m tall, I might use 0.905 m. Perhaps these tasks normally use an end-effector height of 0.93 m; I will learn from the first brown-toy and bar grasps. My initial plan is to align x and y at link6 z = 1.0 m, then descend toward 0.92 m in short actions.
The open finger gap may be about 0.11 m. With closing along local Y, currently world -X, that should accommodate a brown body about 0.08 m wide. The right bar may be 0.12 m long and 0.025 m wide, lying diagonally in the table plane. I should orient the closing direction across its width to improve contact.
At the downward quaternion, local Y points along world -X and local Z along world +Y. Rotating about local X, which points along world -Z, changes the closing direction within the table plane. The bar’s long axis appears to have a world displacement roughly (0.07, -0.04) m: its red end is left and up in the overhead image and its white end right and down. The endpoints are approximately (415, 274) and (445, 290) pixels. Thus the long axis points toward +X and -Y, perhaps about 40 degrees below +X. A perpendicular closing direction might be (0.5, 0.866). I could rotate about world Z by perhaps -50 degrees. Alternatively, closing along world X at the center of a bar angled about 35 degrees might still hold it, with an effective width of 0.04 m, although the contacts would not be perfectly antipodal. The skill favors adapting the orientation to the object.
I can obtain the desired orientation by composing the downward rotation with a rotation about local X. At the downward orientation, local X is [0, 0, -1], local Y is [-1, 0, 0], and local Z is [0, 1, 0]. A local-X rotation by alpha gives local Y = [-cos(alpha), sin(alpha), 0], since (-Z) crossed with (-X) gives +Y. For a closing direction of [-0.5, -0.866], equivalent to the opposite direction [0.5, 0.866], alpha should be -60 degrees. This is perpendicular to a bar axis [0.866, -0.5], with dot product -0.433 + 0.433 = 0. The composition is R_down × Rx(alpha), or q_down × qx(-60 degrees).
A 60-degree change is 1.047 rad, slightly beyond the 1.0 rad command limit. I could use an intermediate orientation while clear of the objects. A -45-degree local-X rotation would give a closing direction [-0.707, -0.707], whose dot product with [0.866, -0.5] is -0.612 + 0.354 = -0.258. That is not exactly perpendicular but may be adequate. Gripping the bar along its length is another possibility, but an open gap of 0.1 m may not fit a bar 0.11 m long, so grasping across its width is preferable. I plan to rotate the right gripper by -60 degrees in two stages after alignment at a height of 1.02 m.
For the brown toy, its decorated body’s long axis may lie along world Y. The overhead body is around (180, 287), but I am uncertain about the head direction and may need a crop. Keeping the closing direction along world X across a body width of about 0.07 m seems reasonable if it is an elephant oriented along Y.
My tentative alignment targets are x = -0.255 m, y = -0.215 m over the brown body, and x = 0.225 m, y = -0.19 m over the white chocolate bar. Before moving, I will refine these using the overhead camera and assumed heights. The brown body center may be around (181, 288) pixels; in the enlarged overhead view, my estimate is (365, 574) divided by two, or (182.5, 287).
At z = 0.80 m, the overhead projection gives y_camera = -0.866y - 0.4 + 0.29893 = -0.866y - 0.10107, and z_camera = 0.5y - 0.69282 + 1.33776 = 0.5y + 0.64494. For v = 287, the normalized vertical coordinate is 47/288 = 0.1631. Solving -0.866y - 0.1011 = 0.08155y + 0.1052 gives y = -0.2177 m and z_camera = 0.5361 m. Then x = (182.5 - 320)/288 × 0.5361 = -0.2560 m. This gives a brown-body estimate of approximately (-0.256, -0.218, 0.80) m. Its x agrees with the earlier wrist estimate of -0.255 m, but y differs from -0.236 m by 0.018 m. I will now calculate the wrist estimate using body pixel (400, 90) at z = 0.80 m and compare the selected points across the views.