C2TAM
Riazuelo 2014 · Paper
One-line summary — C2TAM (Cloud framework for Cooperative Tracking And Mapping) pioneered cloud-based collaborative monocular SLAM, offloading bundle adjustment, relocation, place recognition and map fusion to a server while each robot keeps only lightweight real-time tracking on board.
Problem
Collaborative monocular SLAM asks each robot to track its own pose and maintain a consistent global map — and the map-side cost (especially bundle adjustment) vastly exceeds what lightweight embedded platforms can sustain. Cloud computing offers the obvious division of labor, but raises the make-or-break question: can the SLAM problem be split so that its strong real-time constraints are not affected by network delays? C2TAM’s answer: only camera-rate tracking is latency-critical; mapping, relocation at scale, place recognition and map fusion can all tolerate the delays of a standard wireless connection if the two loops are decoupled.
Method & architecture
PTAM’s split, stretched across a network. Extending the tracking/mapping thread decomposition of PTAM, the tracking client runs on the robot against a locally cached copy of the map; the mapping service runs in the cloud, holding maps , each of 3D points and keyframes. Each point carries multi-scale patch descriptors; each keyframe carries a “tiny image” global descriptor — the frame subsampled to 40×30, Gaussian-filtered and mean-normalized: .
Cloud mapping = bundle adjustment. The server computes the maximum-likelihood map by minimizing robust reprojection error over all points and keyframes :
where is the projection model, a median-based noise estimate, and Tukey’s biweight function, which zeroes out residuals with to reject outliers.
Client tracking. Per frame: (1) constant-velocity pose prediction; (2) coarse pose from the coarsest-scale points, ; (3) fine pose re-minimized over every map point at every scale. Map initialization replaces PTAM’s manual translation ritual with an interacting multiple-model filter on the client, sending the first two keyframes to the server once parallax is sufficient.
What crosses the network. The tracker uploads a new raw keyframe (640×480 RGB, ~1 MB) only when the image contains new information relative to the map; the server streams back optimized 3D points. Tracking never blocks on the network: it continues on the cached (possibly suboptimal) map and swaps in updates as they arrive.
Relocation, place recognition, map fusion — all cloud services. Relocation after tracking loss is two-step: nearest keyframe by Euclidean distance between tiny-image descriptors, then rotation-compensated pose refinement. Place recognition runs the same search over all stored maps to recognize which map a new user is in. Map fusion fires when a newly uploaded keyframe of matches a keyframe of : 3D points of both maps are projected into the common keyframe, correspondences give the rigid transformation, maps merge and duplicated points are deleted — entirely server-side, while the client keeps tracking on its suboptimal map.
Results
All experiments ran in real time over the university’s standard WiFi, with RGB-D cameras at 640×480 (only RGB used for SLAM; depth for visualization).
- Cost and bandwidth (4961-frame sequence): client tracking stays ~10 ms/frame — constant even as the map grows to thousands of points, well under the 33 ms frame budget (automatic initialization costs ~70 ms/frame for the first 20 frames). Average bandwidth ~1 MB/s against a measured 1.45 MB/s available link; keyframe upload (~1 MB) implies ~1 s delay, map download 100-200 ms — both far above the 1/30 s frame period, justifying the asynchronous design.
- Relocation in multiple maps: three stored maps (desktop, wall/bookshelf, hospital room) are each recognized and extended by a new sequence traversing the lab — desktop 2662 points/28 keyframes → 3313/47; wall 2711/32 → 3987/58; room 642/29 → 1624/58.
- Accuracy: tape-measured ground truth vs map measurements agree to millimeters-centimeters, e.g. laptop 0.340 m vs 0.337 m, bed 2.039 m vs 2.044 m, walls 3.105 m vs 3.096 m.
- Map fusion: an online desktop-A map (112 keyframes, 7925 points) fused with a stored desktop-B map (42 keyframes, 4098 points); the ~16 MB post-fusion download took ~5 s while client tracking continued unaffected.
- A cooperative two-user experiment showed two independent maps of the same room fused on overlap, then jointly extended by both trackers.
Why it matters for SLAM
C2TAM established the cloud-robotics division of labor for SLAM — heavy optimization in the cloud, camera-rate tracking at the edge — and demonstrated that real network latency is compatible with real-time visual SLAM when the two loops are decoupled asynchronously. Its stored-map relocation and server-side map fusion prefigure map reuse as a cloud service (it grew out of the RoboEarth project). It is the direct conceptual ancestor of CCM-SLAM, which rebuilt the same architecture on an ORB-SLAM backbone with a far more bandwidth-frugal protocol (keypoints and descriptors instead of C2TAM’s raw keyframe images).