篮子中心的计算表明,外侧篮子大约位于 x = ±0.29米,而不是我早先估计的 ±0.22米。左侧中心接近像素 u = 193,中间接近 u = 320,相差 127 像素。在 z = 0.8米处,我估计比例约为 500 像素/m,对应 0.296米。我最初估计篮子的物理宽度约为 0.16米。位于 x = −0.36米的巧克力棒靠近位于 x ≈ −0.295米的左侧篮子,红椒位于 x ≈ −0.44米,而位于 x = 0.285米的白色汽车靠近位于 x ≈ 0.294米的右侧篮子。篮子中心位于 x = −0.3、0 和 +0.3米似乎是合理的,初始末端执行器位于 x = ±0.3米,对齐在外侧中心上方。它们的 y 中心可能在 0.04–0.06米左右。
作为另一次投影检查,初始左侧末端执行器位置大约为 (−0.3, −0.352, 0.9215) m。其相机 x 坐标为 −0.3米,相机深度为 0.5(−0.352) − 0.866(0.9215) + 1.3378 = 0.3634米。由此得到 u = 320 + 288(−0.3)/0.3634 = 82.2 像素。我原以为初始左侧腕部基座出现在图像 x = 105 像素附近,但我不确定该特征对应的是第六连杆还是基座投影的位置。外侧篮子中心位于 x ≈ ±0.29米似乎仍然合理。
我可以使用估计的高机位相机点 (194, 179) 和初始左腕点 (427, 186) 来三角测量白色篮子的底部中心。尝试几组对应关系可以检验底部是否接近 (−0.3, 0.05, 0.77) m。对于该世界点,高机位相机深度将为 0.025 − 0.6668 + 1.3378 = 0.6960米,得到 u = 195.8 像素。其相机 y 坐标将为 −0.0433 − 0.385 + 0.2989 = −0.1294米,得到 v = 186.4 像素。因此,位于 z = 0.77米和 y = 0.05米的底部中心将投影在 v = 186 附近,而不是 177。
视觉底部中心可能接近图像 y = 183。在放大的高机位视图中,我暂定识别出白色篮子的前壁延伸到 y = 211,其后缘接近 y = 141,以及一个内底部多边形,角点大约在 (150, 161)、(235, 160)、(240, 185) 和 (150, 190)。裁剪图像可能有助于澄清这一点。在初始高机位视图中,我估计后缘接近 y = 142,内底部的前边缘接近 y = 187,前壁延伸到 y = 211,底部中心大约在 y = 176。
位于 z = 0.80米和 y = 0.05米的底部将更好地匹配该中心:相机深度将为 0.025 − 0.6928 + 1.3378 = 0.6700米,相机 y 将为 −0.0433 − 0.4 + 0.2989 = −0.1444米,得到 v = 177.9 像素。内底部是否可能在 0.80米,或者比 0.75米的篮子底部高 0.05米?或者,壁可能高约 0.07米,内底部大约在 0.758米而不是 0.80米。如果桌面和篮子底部在 0.75米,内底部在 0.755米,则 v = 177 处的中心意味着 y ≈ 0.091米。因此篮子可能更靠后,接近 y = 0.09米。从 y = −0.1米附近的物体来看,那将是约 0.19米的运输距离;初始末端执行器位于 y = −0.352米。
桌面和篮子底部的确切高度仍不确定,但两者 0.75米似乎都合理。将白色篮子的前底部在 v = 211 处视为 z = 0.75米处的桌面接触,得到像素比 −0.1007、分子常数 −0.07607 和深度常数 0.68826。方程 −0.866y − 0.0761 = −0.05035y − 0.0693 给出 −0.81565y = 0.00677,因此 y = −0.0083米。将 v = 140 处的后底部点视为相同高度,得到比率 −0.347,方程 −0.6925y = −0.1627,因此 y = 0.235米。0.24米的深度似乎很大。大约 70 像素的篮子高度可能反而反映 0.14米的深度加上 0.07米的壁高。前底部接近 y = −0.008米、后底部接近 y = 0.17米、中心接近 y = 0.08米可能更有可能,表明篮子尺寸约为 0.20米。
表观宽度也值得重新考虑。左侧篮子大约跨越 u = 120–254,即 134 像素。在 z = 0.75米且相机深度约为 0.68米时,比例约为 423 像素/m,得到宽度 0.317米。篮子约为 0.3 乘 0.2米最初似乎很大,但巧克力棒长约 0.12米,汽车约 0.1米。篮子为巧克力棒长度的 2.5 倍是合理的;篮子约 130 像素和巧克力棒约 60 像素的图像宽度给出接近 2.2 的比率。由于深度不同,宽度是否可能反而是 0.20米?位于 z = 0.8米的篮子相机深度约为 0.67米,因此比例相似。接近 0.3米的宽度似乎合理。三个篮子将跨越约 0.9米;从 u = 120 到 505 的整体图像跨度为 385 像素,也表明约 0.9米。桌面可能宽约 1.2米,机械臂位于 x = ±0.3米,在外侧篮子上方。
我可以将外侧中心目标定在 x = ±0.29米和 y = 0.08米附近;典型的生成布局可能使用约 0.28米的篮子间距。白色汽车大约位于 (0.285, −0.137) m。将右侧篮子中心在 (u, v) = (445, 177) 处投影到 z = 0.77米得到大约 (0.309, 0.080) m,因此其中心可能接近 (0.31, 0.08) m。这将白色汽车直接置于其前方。蓝色篮子将接近 (0, 0.08) m,白色篮子接近 (−0.313, 0.08) m,巧克力棒位于 x = −0.36米。也许中心正好是 (−0.3, 0.08)、(0, 0.08) 和 (0.3, 0.08) m。我将使用 x = −0.30、0 和 +0.30米,y 大约为 0.07 或 0.08米,目标是篮子内部而不是靠近边缘。
对于放置高度,我需要考虑物体在第六连杆下方的偏移。巧克力棒被抓取时第六连杆位于 z = 0.924米,其估计中心位于 z = 0.756米,给出 0.168米的偏移。这略大于手指长度,也许是由于巧克力棒的几何形状,尽管其中心高度仍是估计值。在提升到第六连杆 z = 0.954米后,其中心将大约在 0.786米。要将其放在可能为 z = 0.77米的篮子底部上,需要第六连杆 z = 0.77 + 0.168 = 0.938米。或者,在第六连杆 z = 0.97米处释放将使其中心接近 0.802米,并允许约 0.03米的下落,这对巧克力棒应该是稳定的。
对于汽车,第六连杆 z = 0.923米减去估计的物体中心高度 0.765米得到 0.158米的偏移。在第六连杆 z = 0.96米处释放时,我估计其中心在 0.802米。底部是否可能在 0.75米?篮子底部在 0.77米时,下落将约为 0.02米。在底部上方 2–3厘米处释放似乎更安全。边缘可能在 z = 0.84米。在第六连杆 z = 0.97米时,指尖将位于 0.8124米,低于边缘,但如果居中在开口内是可以接受的。所持物体的底部将大约在 0.78米,位于篮子内部。我可以从第六连杆 z = 1.05米接近,指尖在 0.8924米,然后下降到 0.97米。壁可能高约 0.08米,开口在 X 和 Y 方向看起来足够大。
从当前左侧位姿 (−0.36, −0.097, 0.954) m 移动到左侧篮子上方 (−0.30, 0.08, 1.05) m 的估计距离为 0.194米,在 0.25米的命令限制内。右侧从 (0.285, −0.139, 0.953) m 移动到中间篮子 (0, 0.08, 1.05) m 将约为 0.369米,超过该限制。它需要一个中间点,例如 (0.15, −0.03, 1.05) m,估计移动 0.204米,然后大约 0.185米到中间篮子。我可以在 15 步内同时将左侧直接移动到其篮子上方,将右侧移动到该中间点;左侧提前到达是可以接受的。
然而,我应该在水平移动之前先提升。在第六连杆 z ≈ 0.95米时,所持物体的底部大约在 0.80米,仅比其他位于 0.78米的桌面物体高约 0.02米。将巧克力棒从 (−0.36, −0.097) 移动到 (−0.3, 0.08) m 可能会在约 0.85米处穿过篮子的前缘,而其底部在 0.80米,指尖在约 0.796米。这可能导致碰撞。我将首先将两者垂直提升到第六连杆 z = 1.08米。请求的垂直变化左侧为 0.126米,右侧为 0.127米,均在 0.25米限制内。在该高度,右侧指尖将大约在 0.9224米,高于估计的 0.85米蓝色篮子边缘;物体底部也可能大约在 0.922米,这似乎是安全的。
两次抓取均已通过测试提升验证。我考虑垂直提升用 10 步,或 8–10 步,现在将使用 8 步,保持当前 X 和 Y 位置、姿态和闭合的夹爪。实际向上运动可能约为 0.08米,因此我将在水平运输前检查并根据需要继续。
原文8,393 字
The basket-center calculations suggest that the outer baskets are at approximately x = ±0.29 m, rather than my earlier estimate of ±0.22 m. The left center is near pixel u = 193 and the middle near u = 320, a difference of 127 pixels. At z = 0.8 m, I estimate the scale at roughly 500 pixels/m, corresponding to 0.296 m. My initial estimate of the baskets’ physical width is about 0.16 m. The Snickers bar at x = −0.36 m is near the left basket at x ≈ −0.295 m, the red pepper is at x ≈ −0.44 m, and the white car at x = 0.285 m is near the right basket at x ≈ 0.294 m. Basket centers at x = −0.3, 0, and +0.3 m seem plausible, with the initial end effectors at x = ±0.3 m aligned over the outer centers. Their y centers might be around 0.04–0.06 m.
As another projection check, the initial left end-effector position was approximately (−0.3, −0.352, 0.9215) m. Its camera x coordinate is −0.3 m, and its camera depth is 0.5(−0.352) − 0.866(0.9215) + 1.3378 = 0.3634 m. This gives u = 320 + 288(−0.3)/0.3634 = 82.2 pixels. I thought the initial left wrist base appeared near image x = 105 pixels, but I am unsure whether that feature corresponds to link6 or where the base projects. The outer basket centers at x ≈ ±0.29 m still seem plausible.
I could triangulate the white basket’s bottom center using an estimated high-camera point of (194, 179) and an initial left-wrist point of (427, 186). Trying a few correspondences could test whether the bottom is near (−0.3, 0.05, 0.77) m. For that world point, the high-camera depth would be 0.025 − 0.6668 + 1.3378 = 0.6960 m, giving u = 195.8 pixels. Its camera y coordinate would be −0.0433 − 0.385 + 0.2989 = −0.1294 m, giving v = 186.4 pixels. Thus a bottom center at z = 0.77 m and y = 0.05 m would project near v = 186, rather than 177.
The visual bottom center might be near image y = 183. In the enlarged high view, I tentatively identify the white basket’s front wall extending to y = 211, its back rim near y = 141, and an inner-bottom polygon with corners around (150, 161), (235, 160), (240, 185), and (150, 190). A crop might clarify this. In the initial high view, I estimated the back rim near y = 142, the inner bottom’s front edge near y = 187, the front wall extending to y = 211, and the bottom center around y = 176.
A bottom at z = 0.80 m and y = 0.05 m would better match that center: camera depth would be 0.025 − 0.6928 + 1.3378 = 0.6700 m, and camera y would be −0.0433 − 0.4 + 0.2989 = −0.1444 m, giving v = 177.9 pixels. Could the inner bottom be at 0.80 m, or 0.05 m above a basket bottom at 0.75 m? Alternatively, the walls might be about 0.07 m tall and the inner bottom around 0.758 m rather than 0.80 m. If the table and basket bottom are at 0.75 m and the inner bottom at 0.755 m, a center at v = 177 implies y ≈ 0.091 m. The baskets could therefore be farther back, near y = 0.09 m. From objects near y = −0.1 m, that would be a transport distance of about 0.19 m; the initial end effectors were at y = −0.352 m.
The exact table and basket-bottom heights remain uncertain, but 0.75 m seems plausible for both. Treating the white basket’s front bottom at v = 211 as table contact at z = 0.75 m gives a pixel ratio of −0.1007, a numerator constant of −0.07607, and a depth constant of 0.68826. The equation −0.866y − 0.0761 = −0.05035y − 0.0693 gives −0.81565y = 0.00677, hence y = −0.0083 m. Treating a back-bottom point at v = 140 with the same height gives a ratio of −0.347 and the equation −0.6925y = −0.1627, hence y = 0.235 m. A depth of 0.24 m seems large. The roughly 70-pixel basket height could instead reflect 0.14 m of depth plus 0.07 m of wall height. A front bottom near y = −0.008 m, back bottom near y = 0.17 m, and center near y = 0.08 m may be more likely, suggesting a basket size around 0.20 m.
The apparent width also warrants reconsideration. The left basket spans approximately u = 120–254, or 134 pixels. At z = 0.75 m and camera depth around 0.68 m, the scale is about 423 pixels/m, giving a width of 0.317 m. Baskets around 0.3 by 0.2 m initially seem large, but the bar is about 0.12 m long and the car about 0.1 m. A basket 2.5 times the bar’s length is plausible; the image widths of about 130 pixels for the basket and 60 for the bar give a ratio near 2.2. Could the width instead be 0.20 m because of different depths? The basket at z = 0.8 m has camera depth around 0.67 m, so the scales are similar. A width near 0.3 m seems plausible. Three baskets would span about 0.9 m; the overall image span from u = 120 to 505 is 385 pixels, also suggesting about 0.9 m. The table might be around 1.2 m wide, with the arms at x = ±0.3 m above the outer baskets.
I could target outer centers near x = ±0.29 m and y = 0.08 m; typical generated layouts might use basket spacing around 0.28 m. The white car is at approximately (0.285, −0.137) m. Projecting the right basket center at (u, v) = (445, 177) onto z = 0.77 m gives approximately (0.309, 0.080) m, so its center may be near (0.31, 0.08) m. This places the white car directly in front of it. The blue basket would be near (0, 0.08) m and the white basket near (−0.313, 0.08) m, with the bar at x = −0.36 m. Perhaps the centers are exactly (−0.3, 0.08), (0, 0.08), and (0.3, 0.08) m. I’ll use x = −0.30, 0, and +0.30 m, with y around 0.07 or 0.08 m, aiming inside the baskets rather than near the rims.
For placement height, I need to account for the objects’ offsets below link6. The bar was grasped with link6 at z = 0.924 m and its estimated center at z = 0.756 m, giving an offset of 0.168 m. That is slightly more than the finger length, perhaps because of the bar geometry, though its center height remains an estimate. After the lift to link6 z = 0.954 m, its center would be around 0.786 m. To rest it on a basket bottom at perhaps z = 0.77 m would require link6 z = 0.77 + 0.168 = 0.938 m. Alternatively, releasing at link6 z = 0.97 m would put its center near 0.802 m and allow a drop of about 0.03 m, which should be stable for the bar.
For the car, link6 z = 0.923 m minus an estimated object-center height of 0.765 m gives an offset of 0.158 m. At release with link6 z = 0.96 m, I estimate its center at 0.802 m. Could the bottom be at 0.75 m? With a basket bottom at 0.77 m, the drop would be about 0.02 m. A release 2–3 cm above the bottom seems safer. The rim might be at z = 0.84 m. At link6 z = 0.97 m, the fingertips would be at 0.8124 m, below the rim but acceptable if centered inside the opening. The held object’s bottom would be around 0.78 m, inside the basket. I could approach at link6 z = 1.05 m, with fingertips at 0.8924 m, and then descend to 0.97 m. The walls may be about 0.08 m tall, and the openings appear large enough in X and Y.
A move from the current left pose (−0.36, −0.097, 0.954) m to above the left basket at (−0.30, 0.08, 1.05) m has an estimated distance of 0.194 m, within the 0.25 m command limit. The right move from (0.285, −0.139, 0.953) m to the middle basket at (0, 0.08, 1.05) m would be about 0.369 m, exceeding that limit. It needs an intermediate point such as (0.15, −0.03, 1.05) m, an estimated 0.204 m move, followed by approximately 0.185 m to the middle basket. I could move the left directly above its basket and the right to that intermediate point simultaneously over 15 steps; the left arriving earlier would be acceptable.
However, I should lift before moving horizontally. At link6 z ≈ 0.95 m, the held objects’ bottoms are around 0.80 m, only about 0.02 m above other table objects at 0.78 m. Moving the bar from (−0.36, −0.097) to (−0.3, 0.08) m could cross the basket’s front rim at about 0.85 m while its bottom is at 0.80 m and the fingertips at about 0.796 m. That could cause a collision. I’ll first raise both vertically to link6 z = 1.08 m. The requested vertical changes are 0.126 m on the left and 0.127 m on the right, both within the 0.25 m limit. At that height, the right fingertips would be around 0.9224 m, above the estimated 0.85 m blue-basket rim; the object bottom might also be around 0.922 m, which appears safe.
Both grasps have been verified by the test lift. I considered 10 steps for the vertical lift, or 8–10 steps, and will use 8 now, keeping the current X and Y positions, orientations, and closed grippers. The actual upward motion might be about 0.08 m, so I’ll inspect and continue as needed before horizontal transport.