Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (2024)

Weiming Zhi  Haozhan Tang  Tianyi Zhang  Matthew Johnson-RobersonThe authors are with the Robotics Institute, Carnegie Mellon University. Correspondence to wzhi@andrew.cmu.edu.

Abstract

Representing the environment is a central challenge in robotics, and is essential for effective decision-making. Traditionally, before capturing images with a manipulator-mounted camera, users need to calibrate the camera using a specific external marker, such as a checkerboard or AprilTag. However, recent advances in computer vision have led to the development of 3D foundation models. These are large, pre-trained neural networks that can establish fast and accurate multi-view correspondences with very few images, even in the absence of rich visual features. This paper advocates for the integration of 3D foundation models into scene representation approaches for robotic systems equipped with manipulator-mounted RGB cameras. Specifically, we propose the Joint Calibration and Representation (JCR) method. JCR uses RGB images, captured by a manipulator-mounted camera, to simultaneously construct an environmental representation and calibrate the camera relative to the robot’s end-effector, in the absence of specific calibration markers. The resulting 3D environment representation is aligned with the robot’s coordinate frame and maintains physically accurate scales. We demonstrate that JCR can build effective scene representations using a low-cost RGB camera attached to a manipulator, without prior calibration.

I Introduction

The manipulator-mounted camera setup, where the camera is rigidly attached to the manipulator, enables the robot to actively perceive its environment and is a common setup for robot manipulation. The robot needs to extract a concise representation of the physical properties of the environment from the collected data, enabling it to operate safely and make informed decisions. Compared to fixed cameras, manipulator-mounted cameras allow the robot system to adjust its viewing pose to reduce occlusion and obtain measurements at diverse angles and distances. However, manipulator-mounted cameras also come with their challenges — the camera must be calibrated before collecting data from the environment. Specifically, to obtain scene representations that the robot can plan within, it is important to transform the representation into the reference frame of the robot base. This process of finding the camera pose relative to the end of the manipulator, or end-effector, is known as hand-eye calibration [1].

Classical hand-eye calibration is an elaborate procedure that requires the camera to move to a diverse dataset of poses and record multiple images of an external calibration marker, usually a checkerboard or an AprilTag [2]. Then, the rigid body transformation between the camera and the end-effector can be computed. This complex procedure can be a hurdle for non-experts since it necessitates the creation of dedicated markers and the collection of a new dataset each time the camera is recalibrated.

Deep learning approaches have driven recent advances within the computer vision community. This has led to the emergence of large pre-trained models, such as DUSt3R [3], which greatly outperform classical approaches for multi-view problems. These models are trained on large datasets and intended as plug-and-play modules to facilitate a wide range of downstream tasks. We describe these models as 3D Foundation Models [4] and advocate for their integration in robot camera calibration and scene representation.

Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (1)

In this paper, we contribute the Joint Calibration and Representation (JCR) method. JCR leverages a 3D foundation model to jointly conduct hand-eye calibration and construct a scene representation in the coordinate frame of the manipulator’s base from a small set of images, collected from an RGB camera mounted on the manipulator. Previous approaches which use manipulator-mounted sensors require capturing images of external markers, which are then used to perform calibration. To the best of our knowledge, the proposed approach is the first to simultaneously calibrate the camera and build a scene representation from the same set of images captured by a manipulator-mounted camera. We obtain a model of our environment in the robot’s coordinate frame, without any a priori calibration, external markers, or depth readings. The constructed scene representation is a continuous model which can be used for collision-checking in subsequent motion planning. We validate the robustness of our approach using a variety of collected real-world datasets, collected from a low-cost camera mounted on a 6-DOF manipulator. A diagrammatic overview of JCR is presented in Figure1.

The remainder of the paper is organized as follows: We begin by discussing related work in SectionII and then introduce the necessary background on 3D foundation models in SectionIII. We detail the technical aspects of the Joint Calibration and Representation (JCR) method in SectionIV, follow with empirical evaluations of JCR in SectionV, and conclude by summarizing our findings and outlining future research directions in SectionVI.

II Related Work

Scene Representation:Early work on representing environments in robotics typically recorded environment properties in discretized cells, with the most notable approach being Occupancy Grid Maps [5]. Distance-based representations have also been applied for robotics tasks [6, 7] to check for collisions. Advances in machine learning have motivated the development of continuous representation methods, which functionally represent structure in the environment. For example, by using Gaussian processes [8], kernel regression [9, 10], Bayesian methods [11, 12, 13], and neural networks [14]. Deep learning approaches to directly operate on point clouds [15, 16] have also been developed. Methods to ingest point clouds directly for robot planning have also been explored [17]. Concurrently, in the computer vision community, there has been an effort to create photo-realistic scene representations. These approaches include Neural Radiance Fields (NeRFs) [18] and subsequent variants [19, 20]. They rely on obtaining an initial solution from Structure-from-Motion methods [21], and train an implicit model that matches the environment’s appearance.

Hand-eye Calibration: Hand-eye calibration is a well-studied problem with geometric solutions [1, 22, 23] developed to solve for the transformation when some external calibration marker, such as a checkerboard, is provided. A recent learning approach for hand-eye calibration is presented in [24], but requires a part of the robot’s gripper to be visible in the camera view. Additionally, there exist methods in end-to-end policy learning [25, 26] which directly train for actions from the camera images, and do not require hand-eye calibration. However, unlike our method, these methods are unable to construct an environment model which can then be used for collision-checking in downstream motion planning and decision-making [27, 28, 29].

Pre-trained Models:The machine learning community has made considerable efforts to develop large-scale models trained on extensive web data, resulting in significant advancements in large deep learning models for natural language processing [30] and computer vision [31]. In particular, [3, 32] are pre-trained models that can be applied to 3D tasks. These large pre-trained models are known as foundation models [4] and are typically treated as back-boxes whose output is used in subsequent downstream tasks. Although the outputs of these models generally require further processing before applying them to robotics tasks, there has been widespread interest in incorporating foundation models within robot systems [33].

III Prelminaries: 3D Foundation Models for Dense Reconstruction

Traditional methods for 3D tasks such as Structure-from-Motion [21] or multi-view stereo [34] depend on identifying visual features over a set of images to construct corresponding 3D structures. On the other hand, pre-trained models, such as Dense Unconstrained Stereo 3D Reconstruction (DUSt3R), have been trained on large datasets and can identify correspondences over a set of images without strong visual features. Throughout this work, we use DUSt3R [3] as the foundation model and follow its conventions. Here we shall briefly outline how the foundation model estimates relative camera poses from RGB images and more details can be found in [3].

Pairwise Pixel Correspondence: Suppose we have a pair of RGB images with width W𝑊Witalic_W and height H𝐻Hitalic_H, i.e. I1,I2W×H×3subscript𝐼1subscript𝐼2superscript𝑊𝐻3I_{1},I_{2}\in\mathbb{R}^{W\times H\times 3}italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_I start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_W × italic_H × 3 end_POSTSUPERSCRIPT, our foundation model can produces pointmaps, X1,1,X1,2W×H×3superscript𝑋11superscript𝑋12superscript𝑊𝐻3X^{1,1},X^{1,2}\in\mathbb{R}^{W\times H\times 3}italic_X start_POSTSUPERSCRIPT 1 , 1 end_POSTSUPERSCRIPT , italic_X start_POSTSUPERSCRIPT 1 , 2 end_POSTSUPERSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_W × italic_H × 3 end_POSTSUPERSCRIPT. Pointmaps assign each pixel in the 2D image to its predicted 3D coordinates and are critically in the same coordinate frame of I1subscript𝐼1I_{1}italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT. Confidence maps, C1,1,C1,2W×Hsuperscript𝐶11superscript𝐶12superscript𝑊𝐻C^{1,1},C^{1,2}\in\mathbb{R}^{W\times H}italic_C start_POSTSUPERSCRIPT 1 , 1 end_POSTSUPERSCRIPT , italic_C start_POSTSUPERSCRIPT 1 , 2 end_POSTSUPERSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_W × italic_H end_POSTSUPERSCRIPT, for each of the pointmaps are also produced. These indicate the uncertainty of the foundation model’s prediction for each point. By finding the nearest predicted 3D coordinates of each pixel in the pointmap with the coordinates of other pointmap, we can find dense correspondences between pixels in the image pair, without handcrafted features.

Recovering Relative Camera Poses: We optimize to globally align the pairwise pointmaps predicted by the foundation model to recover the relative camera poses corresponding to a set of images. For a set of N𝑁Nitalic_N images, we have the cameras n=1,,N𝑛1𝑁n=1,\dots,Nitalic_n = 1 , … , italic_N and possible image pairs with indices (n,m)ε𝑛𝑚𝜀(n,m)\in\varepsilon( italic_n , italic_m ) ∈ italic_ε, where m=1,,N𝑚1𝑁m=1,\ldots,Nitalic_m = 1 , … , italic_N and mn𝑚𝑛m\neq nitalic_m ≠ italic_n. For each pair, the foundation model gives us:(1) Pointmaps in Xn,n,Xn,mW×H×3superscript𝑋𝑛𝑛superscript𝑋𝑛𝑚superscript𝑊𝐻3X^{n,n},X^{n,m}\in\mathbb{R}^{W\times H\times 3}italic_X start_POSTSUPERSCRIPT italic_n , italic_n end_POSTSUPERSCRIPT , italic_X start_POSTSUPERSCRIPT italic_n , italic_m end_POSTSUPERSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_W × italic_H × 3 end_POSTSUPERSCRIPT in the frame of Insubscript𝐼𝑛I_{n}italic_I start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT;(2) Corresponding confidence maps Cn,n,Cn,mW×Hsuperscript𝐶𝑛𝑛superscript𝐶𝑛𝑚superscript𝑊𝐻C^{n,n},C^{n,m}\in\mathbb{R}^{W\times H}italic_C start_POSTSUPERSCRIPT italic_n , italic_n end_POSTSUPERSCRIPT , italic_C start_POSTSUPERSCRIPT italic_n , italic_m end_POSTSUPERSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_W × italic_H end_POSTSUPERSCRIPT.With these, we seek to optimize to find:(1) For each of the N𝑁Nitalic_N images, a pointmap in global coordinates X¯nsuperscript¯𝑋𝑛\bar{X}^{n}over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT;(2) A rigid transformation described Pn3×4subscript𝑃𝑛superscript34P_{n}\in\mathbb{R}^{3\times 4}italic_P start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 3 × 4 end_POSTSUPERSCRIPT and factor σn>0subscript𝜎𝑛0\sigma_{n}>0italic_σ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT > 0.

Intuitively, the same transformation should be able to align both images in each pair to their equivalents in the global coordinate. We can then minimize the distance between the transformed pointmaps and the predicted pointmaps in global coordinates:

minX^,P,σ(n,m)i(n,m)(w,h)Cw,hn,i||X^iσePeXw,hn,e||2.\min_{\hat{X},P,\sigma}\sum_{(n,m)}\sum_{i\in(n,m)}\sum_{(w,h)}C^{n,i}_{w,h}%\lvert\lvert\hat{X}_{i}-\sigma_{e}P_{e}X^{n,e}_{w,h}\lvert\lvert_{2}.roman_min start_POSTSUBSCRIPT over^ start_ARG italic_X end_ARG , italic_P , italic_σ end_POSTSUBSCRIPT ∑ start_POSTSUBSCRIPT ( italic_n , italic_m ) end_POSTSUBSCRIPT ∑ start_POSTSUBSCRIPT italic_i ∈ ( italic_n , italic_m ) end_POSTSUBSCRIPT ∑ start_POSTSUBSCRIPT ( italic_w , italic_h ) end_POSTSUBSCRIPT italic_C start_POSTSUPERSCRIPT italic_n , italic_i end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_w , italic_h end_POSTSUBSCRIPT | | over^ start_ARG italic_X end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_σ start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT italic_P start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT italic_X start_POSTSUPERSCRIPT italic_n , italic_e end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_w , italic_h end_POSTSUBSCRIPT | | start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT .(1)

Here, (n,m)ε𝑛𝑚𝜀(n,m)\in\varepsilon( italic_n , italic_m ) ∈ italic_ε denotes the pairs, i𝑖iitalic_i iterates through the two images in each pair, and (w,h)𝑤(w,h)( italic_w , italic_h ) iterates through each pixel in the image. Equation1 can be optimized efficiently via gradient descent. With the pointmaps over a set of images in the same coordinate frame, we can extract the set of camera poses P𝑃Pitalic_P and the globally aligned pointmaps X^^𝑋\hat{X}over^ start_ARG italic_X end_ARG over the set of images, and form a pointset representation of the environment.

However, the obtained outputs of the foundation model cannot be directly used to build representations for robots to operate in. We need the outputs of the foundation model to be in the robot’s coordinate frame. Additionally, the 3D foundation models typically cannot recover physically accurate scale. Here, σnsubscript𝜎𝑛\sigma_{n}italic_σ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT does not correspond to physical scales, and we need to re-scale distances by the unknown model-to-reality factor to be physically accurate.

input :End-effector poses {Ei,,EN}subscript𝐸𝑖subscript𝐸𝑁\{E_{i},\ldots,E_{N}\}{ italic_E start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , … , italic_E start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT }, Captured images {I1,,IN}subscript𝐼1subscript𝐼𝑁\{I_{1},\ldots,I_{N}\}{ italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_I start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT }, 3D foundation model (𝟹𝙳𝙵𝙼3𝙳𝙵𝙼\mathtt{3DFM}typewriter_3 typewriter_D typewriter_F typewriter_M), Neural network fθsubscript𝑓𝜃f_{\theta}italic_f start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT

1 {Pi}i=1N,{X^i}i=1N,{Ci}i=1N𝟹𝙳𝙵𝙼({I1,,IN})superscriptsubscriptsubscript𝑃𝑖𝑖1𝑁superscriptsubscriptsubscript^𝑋𝑖𝑖1𝑁superscriptsubscriptsubscript𝐶𝑖𝑖1𝑁3𝙳𝙵𝙼subscript𝐼1subscript𝐼𝑁\{P_{i}\}_{i=1}^{N},\{\hat{X}_{i}\}_{i=1}^{N},\{C_{i}\}_{i=1}^{N}\leftarrow%\mathtt{3DFM}(\{I_{1},\ldots,I_{N}\}){ italic_P start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT , { over^ start_ARG italic_X end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT , { italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT ← typewriter_3 typewriter_D typewriter_F typewriter_M ( { italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_I start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT } ); Input images into foundation model to find uncalibrated camera poses, pointmaps, confidence.

2 {TEiEi+1=Ei+1(Ei)1,TPiPi+1=Pi+1(Pi)1.fori=1,,N1casessuperscriptsubscript𝑇subscript𝐸𝑖subscript𝐸𝑖1subscript𝐸𝑖1superscriptsubscript𝐸𝑖1superscriptsubscript𝑇subscript𝑃𝑖subscript𝑃𝑖1subscript𝑃𝑖1superscriptsubscript𝑃𝑖1for𝑖1𝑁1\bigg{\{}\begin{array}[]{l}T_{E_{i}}^{E_{i+1}}=E_{i+1}(E_{i})^{-1},\\T_{P_{i}}^{P_{i+1}}=P_{i+1}(P_{i})^{-1}.\end{array}\text{for }i\!=\!1,\ldots,N-1{ start_ARRAY start_ROW start_CELL italic_T start_POSTSUBSCRIPT italic_E start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_E start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT = italic_E start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT ( italic_E start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT , end_CELL end_ROW start_ROW start_CELL italic_T start_POSTSUBSCRIPT italic_P start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_P start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT = italic_P start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT ( italic_P start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT . end_CELL end_ROW end_ARRAY for italic_i = 1 , … , italic_N - 1; Rearranging Equation4.

3 Obtain Rce*superscriptsuperscriptsubscript𝑅𝑐𝑒{R_{c}^{e}}^{*}italic_R start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT via Equation12;

4 Solve for 𝐭ce*,λsuperscriptsuperscriptsubscript𝐭𝑐𝑒𝜆{\mathbf{t}_{c}^{e}}^{*},\lambdabold_t start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT , italic_λ via Equation13;

5 Obtain {𝐱i}i=1Npcsuperscriptsubscriptsubscript𝐱𝑖𝑖1subscript𝑁𝑝𝑐\{\mathbf{x}_{i}\}_{i=1}^{N_{pc}}{ bold_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_p italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT by filtering confident 3D points from {X^i}i=1Nsuperscriptsubscriptsubscript^𝑋𝑖𝑖1𝑁\{\hat{X}_{i}\}_{i=1}^{N}{ over^ start_ARG italic_X end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT with {Ci}i=1Nsuperscriptsubscriptsubscript𝐶𝑖𝑖1𝑁\{C_{i}\}_{i=1}^{N}{ italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT;

6 𝐱¯i=E1Tce*(λ*𝐱i)subscript¯𝐱𝑖superscript𝐸1superscriptsuperscriptsubscript𝑇𝑐𝑒superscript𝜆subscript𝐱𝑖\mathbf{\bar{x}}_{i}=E^{-1}{T_{c}^{e}}^{*}(\lambda^{*}\mathbf{x}_{i})over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = italic_E start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_T start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT ( italic_λ start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT bold_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ), where Tce*=[Rce*𝐭ce*0001]superscriptsuperscriptsubscript𝑇𝑐𝑒matrixsuperscriptsuperscriptsubscript𝑅𝑐𝑒superscriptsuperscriptsubscript𝐭𝑐𝑒0001{T_{c}^{e}}^{*}=\begin{bmatrix}{R_{c}^{e}}^{*}&{\mathbf{t}_{c}^{e}}^{*}\\0\quad 0\quad 0&1\end{bmatrix}italic_T start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT = [ start_ARG start_ROW start_CELL italic_R start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT end_CELL start_CELL bold_t start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL 0 0 0 end_CELL start_CELL 1 end_CELL end_ROW end_ARG ]; Transform 𝐱𝐱\mathbf{x}bold_x into robot’s frame via Equation17.

7 Train fθsubscript𝑓𝜃f_{\theta}italic_f start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT via Equation18.

output :Occupancy Representation fθsubscript𝑓𝜃f_{\theta}italic_f start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT, and transformation Tce*superscriptsuperscriptsubscript𝑇𝑐𝑒{T_{c}^{e}}^{*}italic_T start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT.

IV Joint Calibration and Representation

IV-A Overview

We tackle the problem setup of a manipulator with an inexpensive RGB camera rigidly mounted on the manipulator. Here, we do not require the mounted camera to be calibrated, that is, the camera pose relative to the end-effector is unknown. We control the end-effector manipulator to go to a small set of N𝑁Nitalic_N poses, {E1,,EN}subscript𝐸1subscript𝐸𝑁\{E_{1},\ldots,E_{N}\}{ italic_E start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_E start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT }, and capture an image at each pose. This gives us a set of images N𝑁Nitalic_N of the environment, {I1,,IN}subscript𝐼1subscript𝐼𝑁\{I_{1},\ldots,I_{N}\}{ italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_I start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT }, which can be inputted into the foundation model to obtain a set of aligned relative camera poses {P1,,PN}subscript𝑃1subscript𝑃𝑁\{P_{1},\ldots,P_{N}\}{ italic_P start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_P start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT } and pointmaps {X^1,,X^N}subscript^𝑋1subscript^𝑋𝑁\{\hat{X}_{1},\ldots,\hat{X}_{N}\}{ over^ start_ARG italic_X end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , over^ start_ARG italic_X end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT } with respect to an arbitrary coordinate system and scale. Figure2 shows an example of before and after calibration and scaling. We observe that the relative camera poses from the foundation model are inconsistent with the end-effector poses and physical scaling.

Here, JCR seeks to recover:

  • The rigid transformation, Tcesuperscriptsubscript𝑇𝑐𝑒T_{c}^{e}italic_T start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT, from the frame of the mounted camera to that of the end-effector.

  • A scale factor λ𝜆\lambdaitalic_λ, that scales the foundation model’s unscaled outputs to true physical scale.

  • A representation of the environment in the robot’s frame that identifies occupied space, and other properties of interest, such as segmentation classes and RGB colour.

Obtaining Tcesuperscriptsubscript𝑇𝑐𝑒T_{c}^{e}italic_T start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT will enable us to efficiently incorporate new images from the camera into the robot’s frame, while the environment representation is critical downstream to planning tasks. An algorithmic outline of JCR is presented in Algorithm1.

Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (2)Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (3)

Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (4)Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (5)

IV-B Calibration With Foundation Model Outputs

Here, we seek to solve for Tcesuperscriptsubscript𝑇𝑐𝑒T_{c}^{e}italic_T start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT with the end-effector poses {E1,,EN}subscript𝐸1subscript𝐸𝑁\{E_{1},\ldots,E_{N}\}{ italic_E start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_E start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT } the predicted unscaled relative camera poses {P1,,PN}subscript𝑃1subscript𝑃𝑁\{P_{1},\ldots,P_{N}\}{ italic_P start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_P start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT }. We shall consider transformations between subsequent end-effector poses TEiEi+1superscriptsubscript𝑇subscript𝐸𝑖subscript𝐸𝑖1T_{E_{i}}^{E_{i+1}}italic_T start_POSTSUBSCRIPT italic_E start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_E start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT and transformations between camera poses TPiPi+1superscriptsubscript𝑇subscript𝑃𝑖subscript𝑃𝑖1T_{P_{i}}^{P_{i+1}}italic_T start_POSTSUBSCRIPT italic_P start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_P start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT, where

{Ei+1=TEiEi+1EiPi+1=TPiPi+1Pifori=1,,N1.formulae-sequencecasessubscript𝐸𝑖1superscriptsubscript𝑇subscript𝐸𝑖subscript𝐸𝑖1subscript𝐸𝑖subscript𝑃𝑖1superscriptsubscript𝑇subscript𝑃𝑖subscript𝑃𝑖1subscript𝑃𝑖for𝑖1𝑁1\displaystyle\Bigg{\{}\begin{array}[]{l}E_{i+1}=T_{E_{i}}^{E_{i+1}}E_{i}\\P_{i+1}=T_{P_{i}}^{P_{i+1}}P_{i}\end{array}\quad\text{for }i=1,\ldots,N-1.{ start_ARRAY start_ROW start_CELL italic_E start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT = italic_T start_POSTSUBSCRIPT italic_E start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_E start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_E start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_P start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT = italic_T start_POSTSUBSCRIPT italic_P start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_P start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_P start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_CELL end_ROW end_ARRAY for italic_i = 1 , … , italic_N - 1 .(4)

As the foundation model does not recover absolute scale, we introduce a scale factor λ𝜆\lambdaitalic_λ. The transformation between scaled estimated camera poses as:

TPiPi+1(λ)=[RPiPi+1λ𝐭PiPi+10001]𝐒𝐄(3),superscriptsubscript𝑇subscript𝑃𝑖subscript𝑃𝑖1𝜆matrixsuperscriptsubscript𝑅subscript𝑃𝑖subscript𝑃𝑖1𝜆superscriptsubscript𝐭subscript𝑃𝑖subscript𝑃𝑖10001𝐒𝐄3T_{P_{i}}^{P_{i+1}}(\lambda)=\begin{bmatrix}R_{P_{i}}^{P_{i+1}}&\lambda\mathbf%{t}_{P_{i}}^{P_{i+1}}\\0\quad 0\quad 0&1\end{bmatrix}\in\mathbf{SE}(3),italic_T start_POSTSUBSCRIPT italic_P start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_P start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ( italic_λ ) = [ start_ARG start_ROW start_CELL italic_R start_POSTSUBSCRIPT italic_P start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_P start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT end_CELL start_CELL italic_λ bold_t start_POSTSUBSCRIPT italic_P start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_P start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL 0 0 0 end_CELL start_CELL 1 end_CELL end_ROW end_ARG ] ∈ bold_SE ( 3 ) ,(5)

where RPiPi+1𝐒𝐎(3)superscriptsubscript𝑅subscript𝑃𝑖subscript𝑃𝑖1𝐒𝐎3R_{P_{i}}^{P_{i+1}}\in\mathbf{SO}(3)italic_R start_POSTSUBSCRIPT italic_P start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_P start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ∈ bold_SO ( 3 ) denotes the rotation component of TPiPi+1superscriptsubscript𝑇subscript𝑃𝑖subscript𝑃𝑖1T_{P_{i}}^{P_{i+1}}italic_T start_POSTSUBSCRIPT italic_P start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_P start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT and 𝐭PiPi+13superscriptsubscript𝐭subscript𝑃𝑖subscript𝑃𝑖1superscript3\mathbf{t}_{P_{i}}^{P_{i+1}}\in\mathbb{R}^{3}bold_t start_POSTSUBSCRIPT italic_P start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_P start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT denotes the translation. Here, we note that scaling the distances between predicted camera poses does not affect the rotation but scales the translation.

The relationship between TEiEi+1superscriptsubscript𝑇subscript𝐸𝑖subscript𝐸𝑖1T_{E_{i}}^{E_{i+1}}italic_T start_POSTSUBSCRIPT italic_E start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_E start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT, TPiPi+1(λ)superscriptsubscript𝑇subscript𝑃𝑖subscript𝑃𝑖1𝜆T_{P_{i}}^{P_{i+1}}(\lambda)italic_T start_POSTSUBSCRIPT italic_P start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_P start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ( italic_λ ) and the desired Tcesuperscriptsubscript𝑇𝑐𝑒T_{c}^{e}italic_T start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT follows the matrix equation from classical hand-eye calibration [1]:

TEiEi+1Tce=TceTPiPi+1(λ),superscriptsubscript𝑇subscript𝐸𝑖subscript𝐸𝑖1superscriptsubscript𝑇𝑐𝑒superscriptsubscript𝑇𝑐𝑒superscriptsubscript𝑇subscript𝑃𝑖subscript𝑃𝑖1𝜆T_{E_{i}}^{E_{i+1}}T_{c}^{e}=T_{c}^{e}T_{P_{i}}^{P_{i+1}}(\lambda),italic_T start_POSTSUBSCRIPT italic_E start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_E start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_T start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT = italic_T start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT italic_T start_POSTSUBSCRIPT italic_P start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_P start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ( italic_λ ) ,(6)

and we shall solve for the best fit Tcesuperscriptsubscript𝑇𝑐𝑒T_{c}^{e}italic_T start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT and λ𝜆\lambdaitalic_λ. We begin by solving for the rotational term Rcesuperscriptsubscript𝑅𝑐𝑒R_{c}^{e}italic_R start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT by following [23], and considering the log map of 𝐒𝐎(3)𝐒𝐎3\mathbf{SO}(3)bold_SO ( 3 ) to its lie algebra (𝔰𝔬(3)𝔰𝔬3\mathfrak{so}(3)fraktur_s fraktur_o ( 3 )) where for some R𝐒𝐎(3)𝑅𝐒𝐎3R\in\mathbf{SO}(3)italic_R ∈ bold_SO ( 3 ),

ω=𝜔absent\displaystyle\omega=italic_ω =arccos(Tr(R)12),Tr𝑅12\displaystyle\arccos(\frac{\mathrm{Tr}(R)-1}{2}),roman_arccos ( divide start_ARG roman_Tr ( italic_R ) - 1 end_ARG start_ARG 2 end_ARG ) ,(7)
LogMap(R):=assignLogMap𝑅absent\displaystyle\mathrm{LogMap}(R):=roman_LogMap ( italic_R ) :=ω2sin(ω)[R3,2R2,3R1,3R3,1R2,1R1,2]𝔰𝔬(3).𝜔2𝜔matrixsubscript𝑅32subscript𝑅23subscript𝑅13subscript𝑅31subscript𝑅21subscript𝑅12𝔰𝔬3\displaystyle\frac{\omega}{2\sin(\omega)}\begin{bmatrix}R_{3,2}-R_{2,3}\\R_{1,3}-R_{3,1}\\R_{2,1}-R_{1,2}\end{bmatrix}\in\mathfrak{so}(3).divide start_ARG italic_ω end_ARG start_ARG 2 roman_sin ( italic_ω ) end_ARG [ start_ARG start_ROW start_CELL italic_R start_POSTSUBSCRIPT 3 , 2 end_POSTSUBSCRIPT - italic_R start_POSTSUBSCRIPT 2 , 3 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_R start_POSTSUBSCRIPT 1 , 3 end_POSTSUBSCRIPT - italic_R start_POSTSUBSCRIPT 3 , 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_R start_POSTSUBSCRIPT 2 , 1 end_POSTSUBSCRIPT - italic_R start_POSTSUBSCRIPT 1 , 2 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] ∈ fraktur_s fraktur_o ( 3 ) .(11)

Here, the subscripts indicate the elements in R𝑅Ritalic_R, and Tr()Tr\mathrm{Tr}(\cdot)roman_Tr ( ⋅ ) indicates the trace operator. Then, the best fit rotation Rce*superscriptsuperscriptsubscript𝑅𝑐𝑒{R_{c}^{e}}^{*}italic_R start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT can be found via:

Rce*superscriptsuperscriptsubscript𝑅𝑐𝑒\displaystyle{R_{c}^{e}}^{*}italic_R start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT=(MM)12M,absentsuperscriptsuperscript𝑀top𝑀12superscript𝑀top\displaystyle=(M^{\top}M)^{-\frac{1}{2}}M^{\top},= ( italic_M start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_M ) start_POSTSUPERSCRIPT - divide start_ARG 1 end_ARG start_ARG 2 end_ARG end_POSTSUPERSCRIPT italic_M start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT ,(12)
whereMwhere𝑀\displaystyle\text{where }Mwhere italic_M=i=1N1LogMap(REiEi+1)LogMap(RPiPi+1),absentsuperscriptsubscript𝑖1𝑁1tensor-productLogMapsuperscriptsubscript𝑅subscript𝐸𝑖subscript𝐸𝑖1LogMapsuperscriptsubscript𝑅subscript𝑃𝑖subscript𝑃𝑖1\displaystyle=\sum_{i=1}^{N-1}\mathrm{LogMap}(R_{E_{i}}^{E_{i+1}})\otimes%\mathrm{LogMap}(R_{P_{i}}^{P_{i+1}}),= ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N - 1 end_POSTSUPERSCRIPT roman_LogMap ( italic_R start_POSTSUBSCRIPT italic_E start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_E start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ) ⊗ roman_LogMap ( italic_R start_POSTSUBSCRIPT italic_P start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_P start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ) ,

where tensor-product\otimes denotes the outer product and the matrix inverse square root can be computed efficiently via singular value decomposition.

Next, we formulate a residual optimization problem to find the best-fit translation 𝐭ce*superscriptsuperscriptsubscript𝐭𝑐𝑒{\mathbf{t}_{c}^{e}}^{*}bold_t start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT and scale λ*superscript𝜆{\lambda}^{*}italic_λ start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT by minimizing the residuals. We formulate the Scale Recovery Problem (SRP):

SRP:argmin𝐭ce,λSRP:subscriptsuperscriptsubscript𝐭𝑐𝑒𝜆\displaystyle\text{SRP:}\quad\arg\min_{\mathbf{t}_{c}^{e},\lambda}SRP: roman_arg roman_min start_POSTSUBSCRIPT bold_t start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT , italic_λ end_POSTSUBSCRIPTi=1N1||Ci𝐭ce𝐝i(λ)||22,\displaystyle\sum^{N-1}_{i=1}\lvert\lvert C_{i}\mathbf{t}_{c}^{e}-\mathbf{d}_{%i}(\lambda)\lvert\lvert_{2}^{2},∑ start_POSTSUPERSCRIPT italic_N - 1 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT | | italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_t start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT - bold_d start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_λ ) | | start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ,(13)
whereCi=IREiEi+1wheresubscript𝐶𝑖𝐼superscriptsubscript𝑅subscript𝐸𝑖subscript𝐸𝑖1\displaystyle\text{where }C_{i}=I-R_{E_{i}}^{E_{i+1}}where italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = italic_I - italic_R start_POSTSUBSCRIPT italic_E start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_E start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT,𝐝i(λ)=𝐭EiEi+1Rce*(λ𝐭ce).\displaystyle,\quad\mathbf{d}_{i}(\lambda)=\mathbf{t}_{E_{i}}^{E_{i+1}}-{R_{c}%^{e}}^{*}(\lambda\mathbf{t}_{c}^{e})., bold_d start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_λ ) = bold_t start_POSTSUBSCRIPT italic_E start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_E start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT - italic_R start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT ( italic_λ bold_t start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT ) .(14)

For a fixed λ𝜆\lambdaitalic_λ, the translation solution admits the closed-form solution

𝐭ce*(λ)=(CTC)1CT𝐝(λ).superscriptsuperscriptsubscript𝐭𝑐𝑒𝜆superscriptsuperscript𝐶𝑇𝐶1superscript𝐶𝑇𝐝𝜆\displaystyle{\mathbf{t}_{c}^{e}}^{*}(\lambda)=(C^{T}C)^{-1}C^{T}\mathbf{d}(%\lambda).bold_t start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT ( italic_λ ) = ( italic_C start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_C ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_C start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT bold_d ( italic_λ ) .(15)

Here, C𝐶Citalic_C is a matrix composed of Cisubscript𝐶𝑖C_{i}italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT stacked vertically and 𝐝(λ)𝐝𝜆\mathbf{d}(\lambda)bold_d ( italic_λ ) is a vector composed of the corresponding 𝐝i(λ)subscript𝐝𝑖𝜆\mathbf{d}_{i}(\lambda)bold_d start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_λ ) values. We can then optimize λ𝜆\lambdaitalic_λ numerically to obtain can obtain the optimal scale factor λ*superscript𝜆\lambda^{*}italic_λ start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT. The entire camera to end-effector transformation can then be obtained via

Tce*=[Rce*𝐭ce*0001]𝐒𝐄(3).superscriptsuperscriptsubscript𝑇𝑐𝑒matrixsuperscriptsuperscriptsubscript𝑅𝑐𝑒superscriptsuperscriptsubscript𝐭𝑐𝑒0001𝐒𝐄3{T_{c}^{e}}^{*}=\begin{bmatrix}{R_{c}^{e}}^{*}&{\mathbf{t}_{c}^{e}}^{*}\\0\quad 0\quad 0&1\end{bmatrix}\in\mathbf{SE}(3).italic_T start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT = [ start_ARG start_ROW start_CELL italic_R start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT end_CELL start_CELL bold_t start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL 0 0 0 end_CELL start_CELL 1 end_CELL end_ROW end_ARG ] ∈ bold_SE ( 3 ) .(16)

Light TabletopLight TabletopDark Tabletop(8 items)(7 items)Images Provided10 images12 images15 images10 images12 images15 images10 images12 images15 imagesConvergedbold-✓\bm{\checkmark}bold_✓bold-✓\bm{\checkmark}bold_✓bold-✓\bm{\checkmark}bold_✓bold-✓\bm{\checkmark}bold_✓bold-✓\bm{\checkmark}bold_✓bold-✓\bm{\checkmark}bold_✓bold-✓\bm{\checkmark}bold_✓bold-✓\bm{\checkmark}bold_✓bold-✓\bm{\checkmark}bold_✓OursResidual δ𝐭subscript𝛿𝐭\delta_{\mathbf{t}}italic_δ start_POSTSUBSCRIPT bold_t end_POSTSUBSCRIPT0.04200.04190.03960.02080.03170.03570.03100.05360.0414Residual δRsubscript𝛿𝑅\delta_{R}italic_δ start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT0.06550.06570.05130.05190.06230.07010.07320.07420.0818No. of Poses101215101215101215Converged×××bold-✓\bm{\checkmark}bold_✓bold-✓\bm{\checkmark}bold_✓bold-✓\bm{\checkmark}bold_✓××bold-✓\bm{\checkmark}bold_✓COLMAP [21]Residual δ𝐭subscript𝛿𝐭\delta_{\mathbf{t}}italic_δ start_POSTSUBSCRIPT bold_t end_POSTSUBSCRIPTNANANA0.04120.04120.0469NANA0.0454+ CalibrationResidual δRsubscript𝛿𝑅\delta_{R}italic_δ start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPTNANANA1.271.270.0662NANA0.0503No. of Poses22255104410

IV-C Map Construction with Foundation Model Outputs

Next, we seek to build representations of the environment with the output of the foundation model: (1) a set of aligned pointmaps {X^1,,X^N}subscript^𝑋1subscript^𝑋𝑁\{\hat{X}_{1},\ldots,\hat{X}_{N}\}{ over^ start_ARG italic_X end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , over^ start_ARG italic_X end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT } with associated confidence maps {C1,,CN}subscript𝐶1subscript𝐶𝑁\{C_{1},\ldots,C_{N}\}{ italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_C start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT }. From there, we can set a confidence threshold and filter out points in each X^^𝑋\hat{X}over^ start_ARG italic_X end_ARG to be below the threshold, and obtain a 3D point cloud {𝐱i}i=1Npcsuperscriptsubscriptsubscript𝐱𝑖𝑖1subscript𝑁𝑝𝑐\{\mathbf{x}_{i}\}_{i=1}^{N_{pc}}{ bold_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_p italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT, which is in the coordinate frame of some camera pose P𝑃Pitalic_P, with the end-effector pose E𝐸Eitalic_E. We transform the point cloud from the coordinate frame of the camera to that of the robot and adjust the scale to match the real world via:

𝐱¯i=E1Tce*(λ*𝐱i),subscript¯𝐱𝑖superscript𝐸1superscriptsuperscriptsubscript𝑇𝑐𝑒superscript𝜆subscript𝐱𝑖\displaystyle\mathbf{\bar{x}}_{i}=E^{-1}{T_{c}^{e}}^{*}(\lambda^{*}\mathbf{x}_%{i}),over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = italic_E start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_T start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT ( italic_λ start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT bold_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ,fori=1,,Npc,for𝑖1subscript𝑁𝑝𝑐\displaystyle\text{for }i=1,\ldots,N_{pc},for italic_i = 1 , … , italic_N start_POSTSUBSCRIPT italic_p italic_c end_POSTSUBSCRIPT ,(17)

where 𝐱¯i3subscript¯𝐱𝑖superscript3\mathbf{\bar{x}}_{i}\in\mathbb{R}^{3}over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT are now in the robot’s frame, and Tce*superscriptsuperscriptsubscript𝑇𝑐𝑒{T_{c}^{e}}^{*}italic_T start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT, λ*superscript𝜆\lambda^{*}italic_λ start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT are solutions of Equation13.

Representing Occupancy: The occupancy information, i.e. whether a coordinate is occupied or not, is useful for planning tasks in the environment. Here, we use a small neural network fθsubscript𝑓𝜃f_{\theta}italic_f start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT to learn a continuous and implicit model of occupancy. It assigns each spatial coordinate a probability of being occupied. We take a Noise Contrastive Estimate (NCE) [35] approach and minimize the binary cross-entropy loss (BCELoss) [36], with 𝐱¯isubscript¯𝐱𝑖\mathbf{\bar{x}}_{i}over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT as positive examples and uniformly drawing negative examples 𝐱¯inegsubscriptsuperscript¯𝐱𝑛𝑒𝑔𝑖\mathbf{\bar{x}}^{neg}_{i}over¯ start_ARG bold_x end_ARG start_POSTSUPERSCRIPT italic_n italic_e italic_g end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT. Similar to NeRF models [18], we apply sinusoidal position embedding ϕitalic-ϕ\phiitalic_ϕ on the positions before inputting the encoding to the network. Our loss function is given by:

L(θ)=𝐿𝜃absent\displaystyle L(\theta)=italic_L ( italic_θ ) =BCELoss({fθ(ϕ(𝐱¯i))}i=1Npc,{fθ(ϕ(𝐱¯ineg))}i=1Npc),𝐵𝐶𝐸𝐿𝑜𝑠𝑠superscriptsubscriptsubscript𝑓𝜃italic-ϕsubscript¯𝐱𝑖𝑖1subscript𝑁𝑝𝑐superscriptsubscriptsubscript𝑓𝜃italic-ϕsuperscriptsubscript¯𝐱𝑖𝑛𝑒𝑔𝑖1subscript𝑁𝑝𝑐\displaystyle BCELoss(\{f_{\theta}(\phi(\mathbf{\bar{x}}_{i}))\}_{i=1}^{N_{pc}%},\{f_{\theta}(\phi(\mathbf{\bar{x}}_{i}^{neg}))\}_{i=1}^{N_{pc}}),italic_B italic_C italic_E italic_L italic_o italic_s italic_s ( { italic_f start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT ( italic_ϕ ( over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ) } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_p italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT , { italic_f start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT ( italic_ϕ ( over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n italic_e italic_g end_POSTSUPERSCRIPT ) ) } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_p italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ) ,
where𝐱¯inegU(𝐱¯minneg,𝐱¯maxneg),similar-towheresuperscriptsubscript¯𝐱𝑖𝑛𝑒𝑔𝑈superscriptsubscript¯𝐱𝑚𝑖𝑛𝑛𝑒𝑔superscriptsubscript¯𝐱𝑚𝑎𝑥𝑛𝑒𝑔\displaystyle\text{where}\quad\mathbf{\bar{x}}_{i}^{neg}\sim U(\mathbf{\bar{x}%}_{min}^{neg},\mathbf{\bar{x}}_{max}^{neg}),where over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n italic_e italic_g end_POSTSUPERSCRIPT ∼ italic_U ( over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n italic_e italic_g end_POSTSUPERSCRIPT , over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n italic_e italic_g end_POSTSUPERSCRIPT ) ,(18)

where U(𝐱¯minneg,𝐱¯maxneg)𝑈superscriptsubscript¯𝐱𝑚𝑖𝑛𝑛𝑒𝑔superscriptsubscript¯𝐱𝑚𝑎𝑥𝑛𝑒𝑔U(\mathbf{\bar{x}}_{min}^{neg},\mathbf{\bar{x}}_{max}^{neg})italic_U ( over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n italic_e italic_g end_POSTSUPERSCRIPT , over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n italic_e italic_g end_POSTSUPERSCRIPT ) denotes a uniform distribution between boundaries 𝐱¯minnegsuperscriptsubscript¯𝐱𝑚𝑖𝑛𝑛𝑒𝑔\mathbf{\bar{x}}_{min}^{neg}over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n italic_e italic_g end_POSTSUPERSCRIPT, 𝐱¯maxnegsuperscriptsubscript¯𝐱𝑚𝑎𝑥𝑛𝑒𝑔\mathbf{\bar{x}}_{max}^{neg}over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n italic_e italic_g end_POSTSUPERSCRIPT. We can then train the fully connected neural network, with a Sigmoid output layer, by optimizing fθsubscript𝑓𝜃f_{\theta}italic_f start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT with respect to parameters θ𝜃\thetaitalic_θ. We can then query the trained neural network to predict whether a region of space is occupied. We can further build representations that capture properties in the occupied spatial coordinates.

Representing Segmentation: After querying for occupancy in the environment, we may also wish to capture the segmentation of the 3D space into semantically meaningful parts. For example, we may want to be able to differentiate objects on the tabletop in the representation. As pointmaps outputted by the foundation model correspond to pixels in the RGB images, we can run 2D segmentation on the images (for example, using pre-trained models such as Segment Anything [37]). Provided segmentation labels over each pixel in the set of provided images, we can assign a segmentation class to each 3D point. We arrive at {𝐱¯i,yiseg}i=1Npcsuperscriptsubscriptsubscript¯𝐱𝑖subscriptsuperscript𝑦𝑠𝑒𝑔𝑖𝑖1subscript𝑁𝑝𝑐\{\mathbf{\bar{x}}_{i},{y}^{seg}_{i}\}_{i=1}^{N_{pc}}{ over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_y start_POSTSUPERSCRIPT italic_s italic_e italic_g end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_p italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT, where yisegsubscriptsuperscript𝑦𝑠𝑒𝑔𝑖{y}^{seg}_{i}italic_y start_POSTSUPERSCRIPT italic_s italic_e italic_g end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT are segmentation class labels that correspond to each 𝐱¯¯𝐱\mathbf{\bar{x}}over¯ start_ARG bold_x end_ARG. Then, we can treat the representation construction as a multi-class classification problem, and apply a positional encoding ϕitalic-ϕ\phiitalic_ϕ and optimize the multi-class cross-entropy [36] loss:

L(θ)=CrossEntropy({fθ(ϕ(𝐱¯i))}i=1Npc,{yiseg}i=1Npc).𝐿𝜃𝐶𝑟𝑜𝑠𝑠𝐸𝑛𝑡𝑟𝑜𝑝𝑦superscriptsubscriptsubscript𝑓𝜃italic-ϕsubscript¯𝐱𝑖𝑖1subscript𝑁𝑝𝑐superscriptsubscriptsubscriptsuperscript𝑦𝑠𝑒𝑔𝑖𝑖1subscript𝑁𝑝𝑐\displaystyle L(\theta)=CrossEntropy(\{f_{\theta}(\phi(\mathbf{\bar{x}}_{i}))%\}_{i=1}^{N_{pc}},\{{y}^{seg}_{i}\}_{i=1}^{N_{pc}}).italic_L ( italic_θ ) = italic_C italic_r italic_o italic_s italic_s italic_E italic_n italic_t italic_r italic_o italic_p italic_y ( { italic_f start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT ( italic_ϕ ( over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ) } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_p italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT , { italic_y start_POSTSUPERSCRIPT italic_s italic_e italic_g end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_p italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ) .(19)

Here fθsubscript𝑓𝜃f_{\theta}italic_f start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT will be a fully connected neural network with a Softmax activation output layer.

Representing Continuous Properties: We can learn a neural network model fθsubscript𝑓𝜃f_{\theta}italic_f start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT to assign potentially multi-dimensional continuous properties to spatial coordinates by simply regressing onto labels. We can, for example, assign continuous colour values to points in the scene. As the pointmaps from the foundation model correspond pixel-wise to input images, we can obtain a 3-dimensional RGB colour label for each point, giving us a dataset {𝐱¯i,𝐲irgb}i=1Npcsuperscriptsubscriptsubscript¯𝐱𝑖subscriptsuperscript𝐲𝑟𝑔𝑏𝑖𝑖1subscript𝑁𝑝𝑐\{\mathbf{\bar{x}}_{i},\mathbf{y}^{rgb}_{i}\}_{i=1}^{N_{pc}}{ over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , bold_y start_POSTSUPERSCRIPT italic_r italic_g italic_b end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_p italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT. Then, we can optimize the MSE loss:

L(θ)=MSELoss({fθ(ϕ(𝐱¯i))}i=1Npc,{𝐲irgb}i=1Npc).𝐿𝜃𝑀𝑆𝐸𝐿𝑜𝑠𝑠superscriptsubscriptsubscript𝑓𝜃italic-ϕsubscript¯𝐱𝑖𝑖1subscript𝑁𝑝𝑐superscriptsubscriptsubscriptsuperscript𝐲𝑟𝑔𝑏𝑖𝑖1subscript𝑁𝑝𝑐\displaystyle L(\theta)=MSELoss(\{f_{\theta}(\phi(\mathbf{\bar{x}}_{i}))\}_{i=%1}^{N_{pc}},\{\mathbf{y}^{rgb}_{i}\}_{i=1}^{N_{pc}}).italic_L ( italic_θ ) = italic_M italic_S italic_E italic_L italic_o italic_s italic_s ( { italic_f start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT ( italic_ϕ ( over¯ start_ARG bold_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ) } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_p italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT , { bold_y start_POSTSUPERSCRIPT italic_r italic_g italic_b end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_p italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ) .(20)

After training, we can check for occupied regions from the occupancy representation, and then predict the colour assigned of the coordinates via a forward pass of fθsubscript𝑓𝜃f_{\theta}italic_f start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT.

Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (6) Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (7)

V Empirical Evaluations

In this section, we evaluate the quality of the proposed Joint calibration and Representation (JCR) method to calibrate the camera with respect to the manipulator end-effector, as well as to build environment representations. We attach an inexpensive USB webcam (with an estimated retail cost of 10101010 USD), which captures low-resolution RGB images, onto a Unitree Z1 6 degrees-of-freedom manipulator. We illustrate our robot setup in Figure3. Compared to depth cameras, RGB cameras are smaller in size and lower in cost, making our vision-only setup an attractive option. The foundation model used within the joint calibration and representation framework is DUSt3R [3], using pre-trained weights for image inputs with width 512512512512 pixels. Here, the questions we seek to answer are:

  1. 1.

    Can JCR, with foundation models, enable image efficient hand-eye calibration, when the number of images provided is low?

  2. 2.

    Can we recover the scale accurately by solving the scale recovery problem 13, such that our representation’s sizes match the physical world?

  3. 3.

    Can high-quality environment representations be built with JCR?

TapeBoxMugToolbox8 Images7.8%8.6%1.2%1.2%10 Images2.5%2.9%3.1%0.7%

Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (8)

Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (9)Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (10)
Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (11)Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (12)

Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (13)Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (14)
Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (15)Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (16)

Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (17)Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (18)
Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (19)Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (20)

Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (21)Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (22)Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (23)

V-A Hand-Eye Calibration with JFR

Hand-eye calibration requires the determination of relative camera poses. Historically, this has been done via artificial external markers such as checkerboards or Apriltags [2], which are highly feature-rich and easy to identify. In the absence of such markers, Structure-from-Motion (SfM) methods, such as COLMAP [21], are typical alternative approaches to estimate relative camera poses. Here, we compare our calibration results against using COLMAP, instead of a 3D foundation model, to retrieve camera poses, with the rest of the calibration process remaining the same.

We take images in 3 different environments, two of which are table-top scenes on a light-coloured table with 2 sets of different objects with 8 and 7 items respectively, along with a scene on a dark table. We evaluate JCR with an increasing number of input images, then check whether the calibration has converged and the residual values of Equation6 rearranged as

δT=TEiEi+1TceTceTPiPi+1(λ),𝛿𝑇superscriptsubscript𝑇subscript𝐸𝑖subscript𝐸𝑖1superscriptsubscript𝑇𝑐𝑒superscriptsubscript𝑇𝑐𝑒superscriptsubscript𝑇subscript𝑃𝑖subscript𝑃𝑖1𝜆\delta T=T_{E_{i}}^{E_{i+1}}T_{c}^{e}-T_{c}^{e}T_{P_{i}}^{P_{i+1}}(\lambda),italic_δ italic_T = italic_T start_POSTSUBSCRIPT italic_E start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_E start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_T start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT - italic_T start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT italic_T start_POSTSUBSCRIPT italic_P start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_P start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ( italic_λ ) ,(21)

where lower residual values indicate a higher degree of consistency. We report the L2𝐿2L2italic_L 2 norm of the translation term residuals δ𝐭subscript𝛿𝐭\delta_{\mathbf{t}}italic_δ start_POSTSUBSCRIPT bold_t end_POSTSUBSCRIPT and the Frobenius norm of the rotation term residuals δRsubscript𝛿𝑅\delta_{R}italic_δ start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT.

We compare against running hand-eye calibration on camera poses estimated from COLMAP, across three different scenes. COLMAP is a widely-used SfM software, and similar to DUSt3R, estimates the relative camera poses along with the environment structure. Here, we note that running COLMAP to obtain relative camera poses is the first step in constructing NeRF [18] models, and constructing NeRF models requires successful solutions from COLMAP. We are interested in investigating the behaviour of both methods when the number of images is low: we run the methods on image sets of sizes 10, 12 and 15. The sizes of these sets of images are much lower than the image datasets used to build NeRF models, which often exceed 100 images.

We tabulate the results in TableI. As COLMAP relies on matching consistent hand-crafted features, many camera poses cannot be found when the number of provided images is low, resulting in divergence during calibration. On the other hand, JCR leverages foundation models to predict the correspondence and can consistently estimate relative camera poses. This results in convergent hand-eye calibration as demonstrated by the small residual sizes. As a result, JCR is more image-efficient and allows for hand-eye calibration to be conducted even when the number of images is low.

V-B Scale Recovery with JCR

Unlike traditional hand-eye calibration, JCR requires not only solving for the hand-eye transformation but also recovering a scale factor λ𝜆\lambdaitalic_λ to obtain real-world scales. Here, we run JCR on sets of 8 images and 10 images of a tabletop with a roll of tape, a box, a mug, and a toolbox (displayed in Figure3(a)). We measure the heights of the objects and compare them against their respective heights in the reconstruction. The percentage height errors are given in TableI(a), we observe that even with very few images, we can obtain sufficiently small errors. In particular, with just 10 images, the percentage errors in height for every item are at most 3.1%percent3.13.1\%3.1 %, highlighting the accuracy of the recovered scale.

V-C Constructing Representations with JFR

We construct representations of the three environments to capture occupancy and colour. Neural networks with one hidden layer of size 256256256256 with ReLU𝑅𝑒𝐿𝑈ReLUitalic_R italic_e italic_L italic_U activation functions were used as the continuous representations, where each representation can be trained to convergence within 15 seconds on a standard laptop with an NVIDIA RTX 4090 GPU. We sample points at locations with high occupancy and visualize their predicted colours. We observe that JCR can construct accurate and dense representations from small sets of RGB images, without depth information. Example images taken by the manipulator-mounted camera and visualizations of our constructed representations are provided in Figure5. Additionally, we provide segmentation labels for the 2D images of each of the environments and visualize the reconstructed segmented 3D representations in Figure6.

Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (24)

As our JCR method leverages DUSt3R, which has been trained to find correspondences by predicting pointmaps, we can extract much denser representations than traditional SfM methods, which rely on visual feature-based pixel matching. In Figure7, we overlay the point clouds produced by COLMAP, followed by its built-in densification, onto points produced by the foundation model. Previous methods to create structures from multi-view images generally rely on correspondences between visual features. We observe that COLMAP cannot produce dense point clouds over smooth surfaces such as the tabletop, as the tabletop generally lacks clear features. Instead, COLMAP can primarily identify regions that correspond to highly identifiable edges with sharp contrast, such as the text on the open book. The dense outputs of the foundation model enable us to calibrate the camera and map the environment jointly.

VI Conclusions and Future Work

The last few years have seen the rapid boom of using large pre-trained models, or foundation models, to facilitate a range of downstream tasks. In this paper, we advocate for the usage of foundation models to construct environment representations from a small set of images taken by a manipulator-mounted RGB camera. In particular, we propose the Joint Calibration and Representation (JCR) method which leverages foundation models to jointly calibrate the RGB camera with respect to the robot’s end-effector and construct a map. JCR enables the accurate construction of 3D representations of the environment from RBG images, in the coordinate frame of the robot without tedious a priori calibration of the camera against external markers. We demonstrate JCR’s ability to calibrate and represent the environment in an image-efficient manner, in several real-world environments. Future avenues of research include adapting JCR to dynamic environments and incorporating uncertainty information from the calibration into the constructed representations.

References

  • [1]R.Y. Tsai and R.K. Lenz, “A new technique for fully autonomous and efficient 3d robotics hand/eye calibration,” IEEE Trans. Robotics Autom., 1988.
  • [2]E.Olson, “Apriltag: A robust and flexible visual fiducial system,” in IEEE International Conference on Robotics and Automation, 2011.
  • [3]S.Wang, V.Leroy, Y.Cabon, B.Chidlovskii, and J.Revaud, “Dust3r: Geometric 3d vision made easy,” CoRR, 2023.
  • [4]R.Bommasani and etal., “On the opportunities and risks of foundation models,” CoRR, 2021.
  • [5]A.Elfes, “Sonar-based real-world mapping and navigation,” IEEE Journal on Robotics and Automation, 1987.
  • [6]R.Malladi, J.A. Sethian, and B.C. Vemuri, “Shape modeling with front propagation: a level set approach,” IEEE Transactions on Pattern Analysis and Machine Intelligence, 1995.
  • [7]R.A. Newcombe, S.Izadi, O.Hilliges, D.Molyneaux, D.Kim, A.J. Davison, P.Kohi, J.Shotton, S.Hodges, and A.Fitzgibbon, “Kinectfusion: Real-time dense surface mapping and tracking,” in 2011 10th IEEE International Symposium on Mixed and Augmented Reality, 2011.
  • [8]S.O’Callaghan, F.T. Ramos, and H.Durrant-Whyte, “Contextual occupancy maps using gaussian processes,” in 2009 IEEE International Conference on Robotics and Automation, 2009.
  • [9]F.Ramos and L.Ott, “Hilbert maps: Scalable continuous occupancy mapping with stochastic gradient descent,” International Journal Robotics Research, 2016.
  • [10]W.Zhi, R.Senanayake, L.Ott, and F.Ramos, “Spatiotemporal learning of directional uncertainty in urban environments with kernel recurrent mixture density networks,” IEEE Robotics and Automation Letters, 2019.
  • [11]W.Zhi, L.Ott, R.Senanayake, and F.Ramos, “Continuous occupancy map fusion with fast bayesian hilbert maps,” in International Conference on Robotics and Automation (ICRA), 2019.
  • [12]R.Senanayake and F.Ramos, “Bayesian hilbert maps for dynamic continuous occupancy mapping,” in Conference on Robot Learning (CoRL), 2017.
  • [13]H.Wright, W.Zhi, M.Johnson-Roberson, and T.Hermans, “V-prism: Probabilistic mapping of unknown tabletop scenes,” arXiv, 2024.
  • [14]J.J. Park, P.Florence, J.Straub, R.Newcombe, and S.Lovegrove, “Deepsdf: Learning continuous signed distance functions for shape representation,” in The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 2019.
  • [15]R.Q. Charles, H.Su, M.Kaichun, and L.J. Guibas, “Pointnet: Deep learning on point sets for 3d classification and segmentation,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017.
  • [16]C.R. Qi, L.Yi, H.Su, and L.J. Guibas, “Pointnet++: deep hierarchical feature learning on point sets in a metric space,” in Proceedings of the 31st International Conference on Neural Information Processing Systems, 2017.
  • [17]W.Zhi, I.Akinola, K.van Wyk, N.Ratliff, and F.Ramos, “Global and reactive motion generation with geometric fabric command sequences,” in IEEE International Conference on Robotics and Automation, ICRA, 2023.
  • [18]B.Mildenhall, P.P. Srinivasan, M.Tancik, J.T. Barron, R.Ramamoorthi, and R.Ng, “Nerf: Representing scenes as neural radiance fields for view synthesis,” in ECCV, 2020.
  • [19]T.Müller, A.Evans, C.Schied, and A.Keller, “Instant neural graphics primitives with a multiresolution hash encoding,” ACM Trans. Graph., 2022.
  • [20]T.Zhang, K.Huang, W.Zhi, and M.Johnson-Roberson, “Darkgs: Learning neural illumination and 3d gaussians relighting for robotic exploration in the dark,” CoRR, 2024.
  • [21]J.L. Schönberger and J.-M. Frahm, “Structure-from-motion revisited,” in Conference on Computer Vision and Pattern Recognition (CVPR), 2016.
  • [22]R.Horaud and F.Dornaika, “Hand-eye calibration,” I. J. Robotic Res., 1995.
  • [23]F.Park and B.Martin, “Robot Sensor Calibration: Solving AX = XB on the Euclidean Group,” IEEE Transactions on Robotics and Automation, 1994.
  • [24]E.Valassakis, K.Dreczkowski, and E.Johns, “Learning eye-in-hand camera calibration from a single image,” in Proceedings of the 5th Conference on Robot Learning, 2022.
  • [25]L.Chen, K.Lu, A.Rajeswaran, K.Lee, A.Grover, M.Laskin, P.Abbeel, A.Srinivas, and I.Mordatch, “Decision transformer: Reinforcement learning via sequence modeling,” in Advances in Neural Information Processing Systems, 2021.
  • [26]P.Florence, C.Lynch, A.Zeng, O.Ramirez, A.Wahid, L.Downs, A.Wong, J.Lee, I.Mordatch, and J.Tompson, “Implicit behavioral cloning,” in Conference on Robot Learning (CoRL), 2021.
  • [27]S.M. LaValle, “Rapidly-exploring random trees: A new tool for path planning,”
  • [28]T.Lai, W.Zhi, T.Hermans, and F.Ramos, “Parallelised diffeomorphic sampling-based motion planning,” in Conference on Robot Learning (CoRL), 2021.
  • [29]W.Zhi, T.Zhang, and M.Johnson-Roberson, “Instructing robots by sketching: Learning from demonstration via probabilistic diagrammatic teaching,” in IEEE International Conference on Robotics and Automation, 2024.
  • [30]H.Touvron, T.Lavril, G.Izacard, X.Martinet, M.-A. Lachaux, T.Lacroix, B.Rozière, N.Goyal, E.Hambro, F.Azhar, A.Rodriguez, A.Joulin, E.Grave, and G.Lample, “Llama: Open and efficient foundation language models,” CoRR, 2023.
  • [31]A.Radford, J.W. Kim, C.Hallacy, A.Ramesh, G.Goh, S.Agarwal, G.Sastry, A.Askell, P.Mishkin, J.Clark, G.Krueger, and I.Sutskever, “Learning transferable visual models from natural language supervision,” CoRR, 2021.
  • [32]L.Yang, B.Kang, Z.Huang, X.Xu, J.Feng, and H.Zhao, “Depth anything: Unleashing the power of large-scale unlabeled data,” in CVPR, 2024.
  • [33]R.Firoozi, J.Tucker, S.Tian, A.Majumdar, J.Sun, W.Liu, Y.Zhu, S.Song, A.Kapoor, K.Hausman, B.Ichter, D.Driess, J.Wu, C.Lu, and M.Schwager, “Foundation models in robotics: Applications, challenges, and the future,” CoRR, 2023.
  • [34]Y.Furukawa and C.Hernández, “Multi-view stereo: A tutorial,” 2015.
  • [35]M.Gutmann and A.Hyvärinen, “Noise-contrastive estimation: A new estimation principle for unnormalized statistical models,” in Conference on Artificial Intelligence and Statistics, 2010.
  • [36]C.M. Bishop, Pattern recognition and machine learning, 5th Edition.Information science and statistics, Springer, 2007.
  • [37]A.Kirillov, E.Mintun, N.Ravi, H.Mao, C.Rolland, L.Gustafson, T.Xiao, S.Whitehead, A.C. Berg, W.-Y. Lo, P.Dollár, and R.Girshick, “Segment anything,” arXiv, 2023.
Unifying Scene Representation and Hand-Eye Calibration with 3D Foundation Models (2024)
Top Articles
Latest Posts
Article information

Author: Sen. Emmett Berge

Last Updated:

Views: 6351

Rating: 5 / 5 (80 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Sen. Emmett Berge

Birthday: 1993-06-17

Address: 787 Elvis Divide, Port Brice, OH 24507-6802

Phone: +9779049645255

Job: Senior Healthcare Specialist

Hobby: Cycling, Model building, Kitesurfing, Origami, Lapidary, Dance, Basketball

Introduction: My name is Sen. Emmett Berge, I am a funny, vast, charming, courageous, enthusiastic, jolly, famous person who loves writing and wants to share my knowledge and understanding with you.