3D Perception : Things to Master for Modern Robotics
From pixels and laser returns to a robot that understands physical space
A camera sees an image.
A LiDAR sees laser returns.
A depth camera sees distances.
But a robot ultimately needs something more fundamental:
What exists around me, where is it in 3D space, which space is free, and how certain am I about all of this?
That is 3D perception.
If ordinary computer vision asks:
“What is in this image?”
3D perception asks:
“What physically exists around me?”
And robotics adds one more question:
“Given that understanding, where can I safely move?”
That difference is enormous.
A self-driving vehicle does not merely need to know:
pedestrian detected
It needs approximately:
pedestrian
position: 12.3 m ahead, 1.7 m left
height: ~1.75 m
velocity: approaching road
uncertainty: moderate
An autonomous robot seeing a chair does not only need:
chair
It may need:
chair occupies this volume
floor is underneath it
this region is traversable
this region is not
chair is 2.4 m away
there is free space behind this point until ...
That is why 3D perception sits directly underneath:
SLAM
autonomous navigation
manipulation
grasping
drones
self-driving
warehouse robotics
AR/VR
digital twins
scene reconstruction
embodied AI
1. The master mental model
Almost everything in this chapter can be understood through four stages:
SENSOR
↓
3D MEASUREMENTS
↓
3D REPRESENTATION
↓
ROBOT DECISION
For example:
LiDAR
↓
laser ranges
↓
point cloud
↓
voxel map / occupancy map
↓
collision avoidance
Or:
RGB-D camera
↓
RGB + depth
↓
colored point cloud
↓
TSDF / mesh
↓
robot understands room geometry
Or modern learned perception:
multiple cameras
↓
images
↓
learned 3D features
↓
BEV / occupancy / object representation
↓
planning
The sensors change.
The representation changes.
The underlying question stays the same:
How should the physical world be represented computationally?
That is the central problem of 3D perception.
2. The most important distinction: measurement vs representation
Never confuse these.
A sensor produces measurements.
Your software converts those measurements into a representation of the world.
For example, LiDAR may give:
range = 8.31 m
angle = 42.1°
After conversion:
(x, y, z) = (5.64, 6.09, 0.72)
Now you have a point.
Collect thousands of them:
Point Cloud
But a point cloud is still not necessarily a map.
You might transform it into:
voxel grid
occupancy map
mesh
TSDF
ESDF
semantic map
learned feature map
depending on the job.
Senior-engineer rule
Do not ask “What is the best 3D representation?”
Ask:
Best representation for what downstream operation?
Because the answer changes completely.
For rendering?
NeRF or Gaussian representation may be attractive.
For collision checking?
Occupancy or ESDF may be better.
For surface reconstruction?
Mesh or TSDF.
For neural perception?
Point, voxel, BEV, implicit, or hybrid representations.
3. Point clouds
The most basic 3D representation is beautifully simple.
A point cloud is just a collection of 3D points:
Pi=(xi,yi,zi)P_i = (x_i,y_i,z_i)
For example:
[
(1.2, 0.4, 2.1),
(1.3, 0.4, 2.0),
(1.4, 0.5, 1.9),
...
]
Each point says:
“The sensor observed something here.”
A point may contain extra information:
(x, y, z)
(x, y, z, intensity)
(x, y, z, R, G, B)
(x, y, z, semantic_class)
(x, y, z, timestamp)
LiDAR commonly adds intensity.
RGB-D cameras can produce:
XYZRGB
so each 3D point also has color.
4. Think of a point cloud as 3D graph paper without the paper
An image is organized.
Pixel:
image[row][column]
has neighbors:
left
right
up
down
A point cloud usually has no such convenient grid.
You might have:
P17 = (3.1, 8.2, 0.5)
P18 = (-1.2, 5.9, 2.7)
Nothing guarantees that P17 and P18 are spatial neighbors.
This makes point clouds powerful but awkward.
They are:
unordered
irregular
sparse
density-varying
potentially noisy
This matters enormously for algorithms and neural networks.
A normal CNN expects something like:
height × width × channels
A raw point cloud instead looks like:
N × features
with no inherent ordering.
This difficulty helped motivate architectures such as PointNet, which directly process sets of points while respecting the fact that point order should not matter.
5. Where point clouds come from
Point clouds can come from:
LiDAR
laser measurements
→ XYZ
RGB-D camera
depth image + camera intrinsics
→ XYZ
Stereo vision
left image + right image
→ disparity
→ depth
→ XYZ
Structure from Motion
many RGB photographs
→ feature matches
→ triangulation
→ sparse point cloud
Multi-view stereo
multiple calibrated images
→ dense reconstruction
→ dense point cloud
So:
Point cloud is a representation, not a specific sensor technology.
That is worth remembering.
6. Depth maps
A depth map looks like an ordinary image, except every pixel stores distance instead of color.
Instead of:
pixel = (R,G,B)
you might have:
pixel = depth
Example:
2.1 2.1 2.2
2.0 1.2 2.1
2.0 2.0 2.1
The 1.2 might be an object closer to the camera.
7. Depth map intuition
Imagine painting the world according to distance.
Near:
dark
Far:
bright
or vice versa.
Then the image becomes a map of geometry.
Suppose an RGB image contains:
chair
wall
table
A depth map might tell you:
chair: 1.7 m
table: 2.3 m
wall: 4.9 m
Now your robot understands not only appearance but spatial layout.
8. Depth map → 3D point
Suppose a pixel is at:
(u,v)(u,v)
and the measured depth is:
ZZ
Using the camera intrinsics:
fx,fy,cx,cyf_x,\quad f_y,\quad c_x,\quad c_y
we obtain approximately:
X=(u−cx)ZfxX = \frac{(u-c_x)Z}{f_x}Y=(v−cy)ZfyY = \frac{(v-c_y)Z}{f_y}Z=ZZ = Z
So:
pixel + depth + camera calibration
→ 3D point
Do this for every valid depth pixel:
depth map
→ point cloud
This relationship is extremely important.
9. Depth map vs point cloud
They may describe almost the same geometry, but their structure differs.
Depth map
organized
H × W
Every depth value corresponds to a camera pixel.
Great for:
image-like processing
CNNs
RGB association
local neighborhood operations
Point cloud
N × 3
or:
N × features
Great for:
arbitrary 3D geometry
combining measurements from many viewpoints
spatial processing
global mapping
A useful mental conversion:
Depth map = 2.5D view from one camera
Point cloud = explicit samples in 3D space
Why “2.5D”?
Because a depth camera normally sees only the first visible surface along each ray.
If a chair is in front of a wall:
camera → chair → wall
the pixel usually records the chair's depth.
It does not tell you what exists behind the chair.
10. RGB-D
RGB-D means:
RGB + Depth
Example:
RGB camera:
"What does the object look like?"
Depth sensor:
"How far away is it?"
Together:
"What does it look like, and where is it?"
That is extremely useful for robotics.
11. RGB-D example
Suppose your robot sees:
RGB:
red cup on wooden table
Depth provides:
cup ≈ 0.8 m
table surface ≈ 0.82 m
wall ≈ 3.5 m
Now the robot can potentially estimate:
cup position in camera frame
→ transform to robot frame
→ plan arm motion
→ grasp cup
This is why RGB-D cameras became very important for indoor robotics and manipulation.
12. RGB-D alignment matters
A subtle engineering problem:
The RGB camera and depth sensor may not have exactly the same viewpoint.
You therefore need calibration between them:
Depth frame
↓ extrinsic transform
RGB frame
Otherwise:
red pixel from cup
could accidentally be associated with:
depth belonging to background
Always remember:
Multisensor perception is useless without correct geometry between sensors.
Calibration is not housekeeping.
Calibration is part of perception.
13. LiDAR data
LiDAR stands for:
Light Detection and Ranging
Very roughly:
emit laser
↓
laser hits object
↓
light returns
↓
measure travel
↓
estimate distance
A rotating LiDAR repeats this many thousands or millions of times.
The result is a geometric scan of the environment.
14. LiDAR does not fundamentally “see images”
A LiDAR thinks more like:
direction θ, φ
distance r
intensity I
which becomes:
x = r cos(...)
y = r sin(...)
z = ...
The exact equations depend on sensor geometry.
Result:
Point Cloud
Example:
x y z intensity
--------------------------------
8.22 1.31 0.44 118
8.19 1.39 0.46 123
8.16 1.48 0.45 115
15. Why robotics loves LiDAR
LiDAR gives direct geometric measurements.
Advantages often include:
accurate range
long range
works without scene texture
straightforward geometry
useful day or night
strong for mapping and localization
But it has limitations:
sparse compared with camera images
expensive hardware depending on sensor class
reflective/transparent materials can be difficult
rain/fog/dust can affect measurements
moving sensor creates temporal distortion
mechanical systems have scanning patterns
No sensor is universally superior.
Modern systems often combine sensors.
16. One subtle LiDAR problem: the scan is not instantaneous
Suppose a spinning LiDAR requires some time to complete a rotation.
Meanwhile the vehicle moves:
start scan:
car at position A
middle:
car at position B
end:
car at position C
If you pretend all points were captured from position A:
walls bend
objects stretch
geometry distorts
The correction is often called:
deskewing
You use motion estimates from things such as:
IMU
odometry
high-rate pose estimation
to transform every point according to its measurement timestamp.
This is the kind of issue that separates a demo from a production robotics system.
17. Filtering
Real 3D data is messy.
Imagine LiDAR returns:
real wall points
real floor points
dust
multipath artifacts
random isolated points
vehicle body
extremely distant measurements
NaNs
Before reasoning about them, we often filter.
18. Pass-through filtering
The simplest filter:
Keep only points inside some range.
Example:
0 < x < 20 m
-10 < y < 10 m
-2 < z < 3 m
Useful when you know the robot only cares about a region.
Example:
A warehouse robot may ignore everything higher than:
2.5 m
for local ground navigation.
19. Range filtering
Discard points too close or too far:
r < minimum_range → reject
r > maximum_useful_range → reject
For example:
keep 0.5 m ≤ r ≤ 80 m
Why?
Measurements outside the reliable operating range may add noise without helping perception.
20. Statistical outlier removal
Suppose most points form a wall:
...............
...............
...............
but one random measurement appears far away:
.
For every point, estimate distances to neighboring points.
If one point's neighborhood distances are extremely unusual:
likely outlier
remove it.
Mental model:
Real surfaces create communities of points. Random noise often lives alone.
21. Radius outlier filtering
Ask:
“How many neighboring points exist within radius rr?”
If:
neighbors < threshold
remove the point.
Example:
within 10 cm:
only 1 neighbor
Probably noise.
22. Ground filtering
For autonomous vehicles and mobile robots, the ground may contain enormous numbers of points.
Sometimes you need it.
Sometimes you want to remove it before object detection.
Methods include:
height thresholds
plane fitting
RANSAC
slope reasoning
grid-based ground estimation
learned ground segmentation
But be careful.
This:
z < 0.2 → ground
works beautifully...
until the robot drives:
uphill
downhill
over a ramp
over uneven terrain
Production systems should reason about surfaces, not blindly assume the world is flat.
23. Voxelization
A voxel is the 3D equivalent of a pixel.
Pixel:
2D square
Voxel:
3D cube
Imagine dividing the world into tiny cubes:
┌───┬───┬───┐
│ │ │ │
├───┼───┼───┤
│ │ X │ │
├───┼───┼───┤
│ │ │ │
└───┴───┴───┘
but in three dimensions.
24. Why voxelize a point cloud?
Suppose you have:
2,000,000 points
Many may describe essentially the same small patch of wall.
Divide space into:
5 cm × 5 cm × 5 cm
voxels.
If 30 points fall inside one voxel, replace them with:
centroid
Now:
2,000,000 points
→ maybe 300,000 points
while retaining useful geometry.
This is called:
voxel grid downsampling
25. Voxelization performs two jobs
First:
Compression
Reduce redundant points.
Second:
Regularization
Convert irregular 3D samples into spatial cells.
That makes many algorithms easier.
26. The voxel-resolution tradeoff
Suppose voxel size:
1 cm
Result:
high geometric detail
large memory
high computation
Voxel size:
50 cm
Result:
low computation
poor detail
small objects disappear
This tradeoff appears everywhere in 3D perception:
Resolution versus memory versus computation.
27. Why dense voxel grids become expensive
Imagine a volume:
100 m × 100 m × 10 m
using:
0.1 m voxels
Number of cells:
1000 × 1000 × 100
= 100,000,000
Most may contain nothing.
Storing all of them is wasteful.
Hence modern 3D systems frequently use:
sparse voxels
octrees
hashed grids
sparse tensors
hierarchical structures
Store or compute only where useful.
28. KD-trees
Now suppose you have a point:
p = (3.1, 2.7, 1.0)
and one million points in your map.
You ask:
Which existing point is closest to
p?
Brute force:
compare p against 1,000,000 points
Do that for every point during registration and you quickly get expensive computation.
A KD-tree is a spatial search structure designed to accelerate queries such as:
nearest neighbor
k nearest neighbors
points inside radius r
29. KD-tree intuition
Imagine repeatedly splitting space:
first by x
then by y
then by z
then x again
...
Instead of searching the entire world, you eliminate huge regions quickly.
Conceptually:
"Point is on the left side."
→ ignore right half
"Point is above this split."
→ ignore lower half
Eventually only a small region needs detailed searching.
30. Where KD-trees appear
They are everywhere in classical point-cloud processing:
ICP
normal estimation
outlier removal
surface analysis
clustering
nearest-neighbor matching
Whenever you hear:
“Find nearby points”
think:
spatial index
KD-tree
voxel hash
octree
depending on the application.
31. Surface normals
A point tells you:
where the surface is
A normal tells you:
which direction the surface faces
For a floor:
normal ≈ upward
For a vertical wall:
normal ≈ sideways
For a tilted ramp:
normal ≈ tilted upward
32. Normal intuition
Imagine placing a tiny arrow perpendicular to a surface:
↑ normal
│
──────────┴──────────
surface
That arrow is the surface normal.
Represented as:
n=(nx,ny,nz)n=(n_x,n_y,n_z)
usually normalized:
∥n∥=1\|n\|=1
33. How do you estimate a normal from points?
Suppose you want the normal at point PP.
Find nearby points:
P1 P2 P3 ... Pk
using something like a KD-tree.
Those points approximately lie on a local surface.
Find their centroid:
μ\mu
Build a covariance matrix from:
Pi−μP_i-\mu
Then compute its eigenvectors.
Here is the intuition that matters.
If the points lie roughly on a plane, they vary strongly:
along direction 1
along direction 2
but very little:
perpendicular to the plane
The eigenvector associated with the smallest eigenvalue therefore approximates the surface normal.
That is the memorable idea.
The normal points in the direction where neighboring surface points vary least.
34. Why normals matter
Normals help with:
Surface classification
horizontal normal
→ maybe floor/table
Registration
Point-to-plane ICP uses normals.
Mesh reconstruction
Normals help determine surface orientation.
Grasping
Robot needs object surface orientation.
Traversability
normal too steep
→ slope unsafe
Rendering
Lighting calculations depend heavily on normals.
35. Registration
Now we reach one of the most important concepts in robotics.
Suppose your robot scans a room at time:
t1
Then moves and scans again at:
t2
You obtain:
Point Cloud A
Point Cloud B
But B is measured from a different sensor position.
Registration asks:
What rigid transformation aligns B with A?
In other words, find:
rotation R
translation t
such that:
PA≈RPB+tP_A \approx R P_B+t
36. Registration in plain English
You have:
scan 1
and:
scan 2
Find how scan 2 must be:
rotated
+
shifted
so that both scans describe the same physical environment.
That is registration.
37. Why registration is fundamental
If the robot repeatedly collects:
scan1
scan2
scan3
scan4
...
and registers them together:
scan1
+ scan2
+ scan3
+ scan4
↓
larger map
This lies at the heart of:
LiDAR odometry
scan matching
mapping
SLAM
3D reconstruction
object pose estimation
38. Registration has two broad stages
A very useful engineering distinction:
Coarse registration
Get reasonably close.
Possible sources:
odometry
IMU
GPS
feature matching
descriptors
RANSAC
learned correspondence methods
Then:
Fine registration
Refine alignment.
The classic tool:
ICP
39. ICP — Iterative Closest Point
ICP is one of the classic algorithms that every robotics engineer should understand.
The name explains the algorithm:
Iterative
Closest
Point
Suppose:
Cloud A = target
Cloud B = source
Goal:
move B until it overlaps A
40. ICP algorithm
Repeat:
Step 1 — Find correspondences
For every point in B:
find nearest point in A
KD-tree often helps.
Step 2 — Estimate transform
Compute the:
rotation + translation
that best aligns those pairs.
Step 3 — Transform B
B ← R B + t
Step 4 — Repeat
Continue until:
change becomes tiny
or iteration limit is reached.
Conceptually:
wrong alignment
↓
find closest points
↓
move clouds closer
↓
find new closest points
↓
move closer
↓
...
↓
aligned
41. ICP's biggest weakness
ICP is generally a local optimization technique.
Suppose the correct alignment is:
10 meters away
but you initialize the clouds badly.
ICP may match:
wall A
to:
wrong wall B
and happily converge to a wrong solution.
Therefore:
ICP usually needs a reasonable initial guess.
That initial guess may come from:
wheel odometry
IMU
GPS
visual odometry
previous pose
feature-based registration
Never mentally classify ICP as:
“magic global alignment.”
It is not.
42. Point-to-point ICP
The simplest objective says:
Matched points should occupy the same location.
Approximately minimize:
∑i∥pi−(Rqi+t)∥2\sum_i \|p_i-(Rq_i+t)\|^2
where:
pᵢ = target point
qᵢ = source point
Good conceptual starting point.
43. Point-to-plane ICP
Suppose a source point lies slightly away from a wall.
Instead of minimizing full point-to-point distance:
point → point
minimize displacement along the target surface normal:
point → plane
Approximately:
∑i[ni⊤(pi−(Rqi+t))]2\sum_i \left[ n_i^\top \left(p_i-(Rq_i+t)\right) \right]^2
This often converges better for dense surfaces.
Why?
Because if two sampled points lie at different locations along the same wall:
x target point
---------------- wall
x source point
point-to-point may penalize sideways displacement unnecessarily.
Point-to-plane primarily asks:
“How far is this point from the actual surface?”
That is often what we really care about.
44. ICP engineering problems
Real ICP requires handling:
Partial overlap
Clouds may only partially see the same environment.
Outliers
Nearest neighbor may not be a true correspondence.
Dynamic objects
Cars and people move.
Repetitive geometry
Two walls may look geometrically identical.
Different point densities
One scan may be much denser.
Poor initial pose
Local minima.
Degenerate scenes
A long flat corridor may not constrain every degree of freedom equally.
This leads to an important robotics idea:
Not every environment gives enough geometric information to estimate every motion reliably.
45. Occupancy maps
A point cloud says:
“I observed surfaces here.”
But navigation needs another question:
Can I move through this location?
Enter occupancy maps.
Each cell represents whether space is:
free
occupied
unknown
For a 2D navigation map:
0 = free
1 = occupied
? = unknown
In 3D, the equivalent may be an occupancy voxel map.
46. Occupied and free space are different pieces of information
Suppose LiDAR sends a ray:
robot ----------------------------> wall
The laser travels through all the space before hitting the wall.
Therefore:
space before hit = probably free
endpoint = probably occupied
space behind wall = unknown
This is extremely important.
A point cloud records mainly:
the endpoint
An occupancy mapping process can record:
free ray
+
occupied endpoint
+
unknown behind it
That is much more useful for navigation.
47. Unknown is not free
One of the most dangerous conceptual mistakes in robotics:
unknown == free
No.
Suppose the robot cannot see behind a wall.
That region is:
unknown
It could contain:
empty space
another room
a person
a staircase
a machine
A robust navigation system treats these categories deliberately.
48. Probabilistic occupancy
Real sensors are noisy.
Instead of:
occupied = true
maintain:
P(occupied)P(\text{occupied})
For example:
0.95 → very likely occupied
0.50 → uncertain
0.05 → very likely free
Repeated observations update confidence.
49. Log-odds occupancy
Probabilities are often represented internally using log odds:
L=logp1−pL = \log\frac{p}{1-p}
Why?
Because repeated Bayesian updates become convenient additions:
old belief
+ sensor evidence
= updated belief
Conceptually:
repeated obstacle hits
→ occupancy confidence increases
repeated rays passing through
→ free-space confidence increases
You do not need to memorize the derivation initially.
Remember the engineering meaning:
Occupancy mapping accumulates evidence instead of believing one measurement absolutely.
50. 2D vs 3D occupancy
A mobile robot moving on a floor may use:
2D occupancy grid
because navigation largely happens in:
x, y
A drone may need:
3D occupancy
because motion includes:
x, y, z
Again:
Representation follows task.
Do not build a giant 3D map merely because 3D sounds more advanced.
51. Meshes
Point clouds sample surfaces:
. . . . .
. . . .
. . . . .
A mesh explicitly connects surface elements:
/\____/\
/__\__/__\
The most common primitive is the triangle.
A mesh contains roughly:
vertices
+
edges
+
faces
Example:
vertex 1 = (x1,y1,z1)
vertex 2 = (x2,y2,z2)
vertex 3 = (x3,y3,z3)
face = [1,2,3]
The triangle connecting those vertices represents a surface.
52. Point cloud vs mesh
Point cloud:
samples of surface
Mesh:
connected surface
Imagine drawing a sphere.
Point cloud:
thousands of dots on sphere
Mesh:
thousands of small triangles forming sphere
53. Why meshes matter
Meshes are excellent for:
visualization
simulation
CAD-like geometry
surface reconstruction
collision geometry
texture mapping
digital twins
rendering
But meshes require topology:
which vertices belong together?
That can be hard to recover robustly from noisy sensor data.
54. Signed Distance Fields — SDF
Now we reach one of the most useful geometric representations in modern robotics.
An SDF answers:
For any location in space, how far am I from the nearest surface?
But distance has a sign.
Common convention:
outside object → positive
surface → zero
inside object → negative
So:
SDF(x,y,z)SDF(x,y,z)
returns a scalar.
Example:
+2.3 m → 2.3 m outside nearest surface
+0.1 m → 10 cm outside
0.0 → on surface
-0.1 m → 10 cm inside
55. SDF intuition
Imagine a wall:
distance
↓
+3 +2 +1 | 0 | -1 -2 -3
wall
The zero level set:
SDF(x)=0SDF(x)=0
defines the actual surface.
This is powerful.
Instead of explicitly saying:
here are 10 million triangles
you can say:
“The surface consists of all locations where this function equals zero.”
56. Why distance fields are powerful for robots
Suppose a robot arm is planning motion.
At configuration A:
distance to obstacle = 0.8 m
At B:
distance = 0.15 m
At C:
distance = -0.02 m
C means collision.
This gives planners more information than:
collision?
true/false
It tells them:
how close
which creates useful gradients for optimization.
57. TSDF — Truncated Signed Distance Field
In mapping, you will often encounter:
TSDF
The T means:
Truncated
Instead of storing arbitrarily large distances from a surface:
8.7 m
12.3 m
54.1 m
we only care about a region close to surfaces.
Example:
distance > +0.3 m → clamp to +0.3
distance < -0.3 m → clamp to -0.3
Hence:
TSDF
This is very useful when fusing many depth observations into a smooth reconstructed surface.
Conceptually:
RGB-D frames
↓
camera poses
↓
TSDF fusion
↓
smooth surface model
↓
mesh
A common final step is extracting the:
zero-crossing
to recover the surface.
58. ESDF — Euclidean Signed Distance Field
Another acronym that matters tremendously in robotics:
ESDF
An ESDF stores approximately the Euclidean distance to the nearest obstacle.
That is especially valuable for:
motion planning
trajectory optimization
collision avoidance
Mental separation:
TSDF
→ excellent for integrating sensor measurements near surfaces
ESDF
→ excellent for asking "How far am I from obstacles?"
These are related but serve different downstream needs.
Remember that distinction.
59. Occupancy vs SDF
Occupancy asks:
occupied or not?
SDF asks:
how far from a surface?
Example:
Occupancy:
cell = FREE
SDF:
distance = 0.42 m from obstacle
For simple graph search, occupancy may be enough.
For smooth trajectory optimization, distance information can be extremely valuable.
60. Registration + mapping together
Let's connect everything.
Robot has LiDAR.
At time t1t_1:
scan A
At time t2t_2:
scan B
You estimate pose change:
ICP / LiDAR odometry
Transform B into map frame:
B_world = T_world_sensor × B_sensor
Then insert measurements into:
occupancy map
voxel map
TSDF
point cloud map
Repeat:
sense
→ estimate pose
→ transform measurements
→ update map
→ move
→ sense again
That loop is one of the central loops of robotics.
61. Coordinate frames: the invisible source of thousands of bugs
A 3D point is meaningless without a coordinate frame.
This:
(1,2,3)
means almost nothing.
You need:
(1,2,3) in camera frame
or:
(1,2,3) in LiDAR frame
or:
(1,2,3) in robot base frame
or:
(1,2,3) in world/map frame
These are different statements.
62. Typical robot frame chain
In ROS-like systems you may encounter:
map
↓
odom
↓
base_link
↓
lidar
↓
camera
A point measured in LiDAR frame:
pLp_L
must be transformed before inserting into map coordinates:
pmap=Tmap,baseTbase,lidarpLp_{map} = T_{map,base} T_{base,lidar} p_L
The exact notation varies.
The mental model does not:
Every sensor measures the world from its own coordinate frame.
63. Three things must agree
Successful 3D fusion requires:
SPACE
TIME
CALIBRATION
Meaning:
Space
Correct transforms.
Time
Measurements correspond to correct robot poses.
Calibration
Sensor models and inter-sensor transformations are accurate.
If one is wrong:
map becomes blurry
walls duplicate
objects ghost
ICP fails
depth colors misalign
This is a major practical lesson.
64. NeRF concepts
Now we move from classical geometric maps into neural scene representations.
NeRF means:
Neural Radiance Field
The original NeRF formulation represents a scene using a neural network mapping continuous spatial position and viewing direction to density and view-dependent color. Images are generated by querying points along camera rays and applying differentiable volume rendering.
Forget the equations for one minute.
The central idea is:
Instead of explicitly storing millions of points or triangles, learn a function describing the scene.
65. Classical representation
Point cloud says:
I explicitly store these points.
Mesh says:
I explicitly store these triangles.
Voxel map says:
I explicitly store these spatial cells.
NeRF says something closer to:
“Give me any position and viewing direction, and my learned function will tell you what this region contributes to the image.”
That is a profound change in representation.
66. What goes into a NeRF?
Original conceptual input:
3D location:
(x,y,z)
view direction:
(θ,φ)
Output:
density σ
color (r,g,b)
So conceptually:
F(x,y,z,θ,ϕ)→(r,g,b,σ)F(x,y,z,\theta,\phi) \rightarrow (r,g,b,\sigma)
Density roughly answers:
"How much matter is present here?"
Color answers:
"What color would this region appear from this direction?"
67. How does a NeRF render a pixel?
Camera emits a conceptual ray:
camera
\
\
•
•
•
•
Sample positions along the ray:
x1
x2
x3
...
Ask the neural field:
density?
color?
at every sample.
Then combine them with volume rendering.
Intuitively:
empty space
→ contributes almost nothing
surface-like dense region
→ contributes strongly
anything behind an opaque region
→ contributes little
The result becomes the pixel color.
68. How is NeRF learned?
Suppose you photograph a room from many viewpoints.
You know approximately:
image 1 + camera pose 1
image 2 + camera pose 2
image 3 + camera pose 3
...
The network renders what it predicts each camera should see.
Compare:
predicted pixel
vs
actual pixel
Adjust parameters using gradient descent.
Eventually the learned field explains the set of observations.
In beautiful conceptual shorthand:
many 2D images
+
camera geometry
+
differentiable rendering
→
learned 3D scene representation
69. Why NeRF was such an important idea
It demonstrated powerfully that scene geometry and appearance could be represented using a continuous learned field, rather than only explicit meshes, voxels, or points. The original work particularly targeted high-quality novel-view synthesis.
Later neural-field research explored many related representations, including faster encodings such as multiresolution hash features. NVIDIA's Instant-NGP, for example, combined trainable multiresolution hash-table features with a small neural network to greatly accelerate neural graphics primitives.
For a robotics engineer, however, one important caution is:
A representation optimized for photorealistic rendering is not automatically the representation you want for safety-critical geometric planning.
A robot may prefer an explicit:
occupancy
ESDF
collision mesh
for downstream planning even if a neural representation is also maintained.
70. Never remember NeRF as merely “AI making 3D”
Remember:
coordinates
↓
learned continuous function
↓
density + appearance
↓
differentiable ray rendering
↓
image
That is the conceptual heart.
71. Gaussian Splatting concepts
Another important modern scene representation is:
3D Gaussian Splatting
The original 3D Gaussian Splatting method represents a scene using a collection of anisotropic 3D Gaussians, optimizes their properties from images, and renders them efficiently using a visibility-aware splatting procedure. Its original work emphasized high-quality real-time novel-view rendering.
Again, first understand the intuition.
72. What is a Gaussian “splat”?
Instead of representing a scene as:
hard point
imagine placing a tiny fuzzy 3D blob:
....
........
...###...
........
....
The influence is strongest around its center and fades outward.
Each Gaussian can have properties such as:
position
size
orientation
opacity
appearance/color coefficients
And importantly, the blob does not need to be spherical.
It can be stretched:
───────
or flattened:
pancake-like
That anisotropic shape helps Gaussians approximate surfaces.
73. Gaussian representation intuition
Suppose a wall exists.
Rather than:
millions of mesh triangles
or:
one giant neural network queried repeatedly along every ray
you might approximate visible scene structure using many optimized Gaussians:
○ ○ ○ ○ ○ ○
○ ○ ○ ○ ○
○ ○ ○ ○ ○ ○
They collectively produce the appearance of the surface.
74. Why call it “splatting”?
When rendering, a 3D Gaussian is projected into the image.
Its projected contribution becomes something like an elliptical footprint:
....
........
...####...
........
....
That footprint is blended with other projected Gaussians.
Conceptually:
3D Gaussian
↓ projection
2D elliptical splat
↓ compositing
pixel colors
The original method's efficient rasterization is a major reason the representation can render quickly.
75. NeRF vs Gaussian Splatting: intuitive comparison
Do not reduce the distinction to:
NeRF slow
Gaussian fast
That is too shallow.
The deeper representational difference is approximately:
NeRF-style field
query continuous coordinates
→ neural function produces scene properties
3D Gaussian representation
explicit collection of optimized spatial primitives
→ project/rasterize them
A good mental image:
NeRF
= the scene lives largely inside a learned function
Gaussian splatting
= the scene lives as many explicit fuzzy 3D primitives
There are many hybrids and later variations, but this is the useful conceptual starting point.
76. Are Gaussian splats a normal point cloud?
Not really.
A normal point may store:
position
color
A Gaussian primitive may encode something more like:
mean position
3D covariance / shape
opacity
appearance information
So instead of:
"there is a sample exactly here"
you have:
“There is a spatially extended contribution centered here with this shape and appearance.”
77. Why robotics engineers should care about NeRFs and splats
Because the boundary between:
perception
mapping
reconstruction
graphics
world models
is increasingly blurry.
A robot may want a representation that allows:
novel-view rendering
localization
semantic querying
geometry extraction
simulation
planning
language grounding
potentially from a shared world model.
But this also creates an important engineering question:
Does the representation encode the information my controller actually needs?
Photorealism is not the same as:
metric accuracy
free-space certainty
collision safety
dynamic-object reasoning
Never forget that distinction.
78. Learned 3D representations
Classical geometry often builds representations manually:
points
voxels
meshes
SDF
occupancy
Modern learned 3D perception asks:
Can the system learn features or representations that are better suited for perception?
The answer has produced several families of approaches.
79. Family 1 — Point-based learning
Input:
raw points
Example:
N × (x,y,z,intensity,...)
Network learns directly from point sets.
Classic conceptual example:
PointNet
Its key insight was to process unordered points in a way that does not depend on arbitrary input ordering.
Later approaches build richer local neighborhood structures.
Useful for:
classification
point segmentation
object detection
scene understanding
80. Family 2 — Voxel-based learning
Convert points into voxels:
point cloud
↓
voxelization
↓
3D tensor / sparse tensor
↓
3D convolution
The problem with dense 3D convolution:
empty space everywhere
So modern systems often use:
sparse convolutions
which focus computation primarily on occupied/active regions.
Conceptually:
dense grid:
compute everywhere
sparse grid:
compute where data exists
81. Family 3 — Range-image representations
A spinning LiDAR has structured scan geometry.
Instead of treating measurements as fully unordered points, project them into something like:
vertical laser channel × horizontal angle
forming a range image.
Then:
LiDAR
→ 2D-like representation
→ CNN-style processing
Advantages:
efficient
preserves sensor structure
can use mature image-network ideas
Tradeoff:
The representation is tied more strongly to sensor viewpoint.
82. Family 4 — Bird's-Eye View
One of the most useful representations in autonomous driving is:
BEV — Bird's-Eye View
Imagine looking straight down at the world:
road
car car
ego vehicle
pedestrian
Instead of reasoning primarily in camera perspective:
far objects tiny
near objects huge
BEV converts perception into a common ground-plane-centric spatial representation.
This is useful because planning also happens spatially.
83. Why BEV feels natural to a planner
Camera asks:
where in image?
Planner asks:
where in world?
BEV bridges that gap.
Multiple sensors may be fused into:
shared top-down feature space
allowing reasoning about:
lanes
vehicles
free space
occupancy
trajectories
map structure
84. Family 5 — Occupancy networks
Instead of explicitly storing every voxel, learn a function:
f(x,y,z)→P(occupied)f(x,y,z) \rightarrow P(\text{occupied})
Ask:
Is point (x,y,z) inside the object?
The network answers approximately:
0.02 → likely outside
0.97 → likely inside
The object surface occurs near the decision boundary.
Occupancy Networks formalized this style of continuous learned occupancy representation for 3D reconstruction.
This is another example of implicit geometry.
85. Family 6 — Learned SDFs
Instead of:
network → occupancy probability
use:
network → signed distance
fθ(x,y,z)→sf_\theta(x,y,z) \rightarrow s
where:
s > 0 outside
s = 0 surface
s < 0 inside
DeepSDF is an influential example of learning continuous signed-distance functions as shape representations.
Again, the geometry exists implicitly through:
f(x,y,z)=0
86. Family 7 — Radiance fields
NeRF belongs here.
Input:
position + viewing direction
Output:
density + appearance
Optimized heavily around explaining visual observations.
87. Family 8 — Gaussian scene representations
Represent the scene with many learned spatial Gaussian primitives.
These sit interestingly between:
explicit geometry
and:
learned appearance representation
because the Gaussians themselves have explicit spatial positions and shapes, while their parameters are optimized from observations.
88. Family 9 — Learned 3D feature fields
A modern robot may need more than geometry.
At position:
(x,y,z)
you may want a feature vector:
f(x,y,z)∈Rdf(x,y,z)\in \mathbb{R}^d
representing things such as:
geometry
appearance
semantics
object identity
language-related concepts
traversability
interaction affordances
Then the world is no longer merely:
occupied/free
but something closer to:
this region is probably floor
this region belongs to chair #4
this handle is graspable
this object corresponds to "red mug"
this space is traversable
That direction is highly relevant to embodied AI.
89. Geometry alone is not enough
Consider two surfaces with identical geometry:
surface A = concrete floor
surface B = deep water
Geometrically both might look:
flat
But for a ground robot:
A → traversable
B → dangerous
Therefore useful world models increasingly combine:
geometry
+
semantics
+
physics
+
affordances
+
uncertainty
90. A powerful hierarchy of representations
You can think of 3D understanding as increasingly semantic:
Level 1 — Measurements
depth
laser return
Level 2 — Geometry
point cloud
surface normal
mesh
Level 3 — Space structure
free
occupied
distance to obstacle
Level 4 — Objects
chair
car
person
Level 5 — Semantics
floor
door
table
road
Level 6 — Affordances
walkable
graspable
openable
sit-able
drivable
Level 7 — Dynamic/world reasoning
person moving toward doorway
door likely to open
vehicle trajectory
object permanence
Autonomous intelligence lives increasingly toward the bottom of this hierarchy.
But the lower levels depend on the upper ones being geometrically sound.
91. The representation cheat sheet
Depth Map
Think:
Distance image
Shape:
H × W
Best mental use:
geometry from one camera view
Point Cloud
Think:
3D dots
Shape:
N × 3+
Great for:
sensor geometry
registration
LiDAR processing
Voxels
Think:
3D pixels
Great for:
spatial discretization
occupancy
3D neural processing
Occupancy Map
Think:
Can I be here?
Values:
free
occupied
unknown
Great for:
navigation
mapping
Mesh
Think:
Connected skin of triangles
Great for:
surfaces
visualization
simulation
SDF
Think:
How far am I from the nearest surface?
Great for:
geometry
collision distance
optimization
TSDF
Think:
SDF near measured surfaces
Great for:
sensor fusion
surface reconstruction
ESDF
Think:
Distance to obstacles everywhere useful
Great for:
motion planning
NeRF
Think:
Learned continuous scene function for appearance + density
Great conceptual strength:
novel views
continuous neural scene representation
Gaussian Splatting
Think:
Scene made from optimized fuzzy 3D ellipsoids
Great conceptual strength:
explicit spatial primitives
+
fast high-quality rendering
92. A complete robot example
Imagine an autonomous warehouse robot.
Sensors:
LiDAR
RGB-D camera
IMU
wheel encoders
Stage 1 — measurements
LiDAR:
ranges + intensity
RGB-D:
RGB + depth map
IMU:
angular velocity + acceleration
Encoders:
wheel movement
Stage 2 — preprocessing
LiDAR:
remove invalid points
range filtering
deskew
voxel downsample
RGB-D:
remove invalid depth
align depth with RGB
Stage 3 — geometric features
Estimate:
surface normals
planes
edges
local descriptors
Stage 4 — registration
New LiDAR scan:
initial guess from odometry/IMU
↓
ICP / scan matching
↓
refined pose
Stage 5 — mapping
Transform points into world frame:
sensor frame
↓
robot frame
↓
map frame
Update:
occupancy map
Maybe also:
TSDF
for reconstruction.
Maybe:
ESDF
for trajectory planning.
Stage 6 — semantics
RGB network recognizes:
box
pallet
person
forklift
Depth associates them with 3D positions.
Now the map can contain:
geometry
+
semantic labels
Stage 7 — navigation
Planner receives:
robot pose
goal pose
occupancy
distance field
dynamic obstacles
and generates:
safe trajectory
That is 3D perception becoming autonomy.
93. Another example: robot arm
A manipulation robot needs to grab a mug.
Camera obtains:
RGB-D
From RGB:
detect mug
From depth:
recover mug points
Filtering:
remove table plane
Point processing:
cluster mug points
Normals:
estimate surface orientation
Pose estimation:
estimate mug transform
Then:
mug frame
↓
grasp pose
↓
collision check using geometry/SDF
↓
arm trajectory
↓
grasp
Again, perception is not merely recognizing:
"mug"
It is converting sensory evidence into actionable physical coordinates.
94. Another example: drone
Drone enters unknown building.
Depth/LiDAR creates:
3D points
Registration estimates motion:
scan-to-scan
scan-to-map
Map updates:
3D occupancy
ESDF calculates:
distance to walls
distance to ceiling
distance to furniture
Planner searches for trajectory:
current pose
→ doorway
→ corridor
→ target room
A 2D map is insufficient because the drone can move:
up/down
Hence representation choice changes with robot dynamics.
95. What beginners often misunderstand
Mistake 1
Point cloud = complete 3D world.
No.
A point cloud usually contains sampled visible surfaces.
Occluded regions remain unknown.
Mistake 2
More points always means better perception.
No.
More points may mean:
more redundancy
more noise
more computation
A well-designed voxelized cloud can outperform an unnecessarily huge cloud computationally.
Mistake 3
ICP always finds correct alignment.
No.
ICP is typically local and depends on:
initialization
geometry
overlap
outlier handling
Mistake 4
Empty measurement means free space.
No.
There is a difference between:
observed free
and:
never observed
Mistake 5
Mesh, point cloud and occupancy grid are interchangeable.
No.
They answer different questions.
Mistake 6
Photorealistic reconstruction means geometrically perfect reconstruction.
Not necessarily.
Rendering quality and metric geometric accuracy are distinct engineering goals.
Mistake 7
Neural representations replace classical robotics geometry.
Usually the better mental model is:
classical geometry
+
learned perception
+
probabilistic estimation
+
task-specific representations
Modern robotics is heavily hybrid.
96. The hidden variable: uncertainty
Imagine a depth camera reports:
2.000 m
Do not mentally interpret that as:
the object is exactly 2.000000000 m away
Sensor measurements contain uncertainty.
Likewise:
LiDAR point
camera pose
ICP transform
normal
object position
all have uncertainty.
When several uncertain stages are chained:
sensor
→ pose
→ mapping
→ detection
→ planning
errors propagate.
Superior robotics engineering therefore asks not just:
“What is my estimate?”
but:
“How much should I trust my estimate?”
97. Dynamic scenes break static assumptions
Many classical mapping systems implicitly assume:
world is static
robot moves
Real world:
robot moves
people move
cars move
doors move
forklifts move
chairs move
Suppose a walking person contributes points to a static map.
After several seconds you might create:
ghost person
stretched geometry
false obstacles
Modern perception therefore frequently separates:
static structure
vs
dynamic objects
This is essential for autonomous systems.
98. Temporal perception matters
A single point cloud gives geometry now.
A sequence:
Pₜ₋₂
Pₜ₋₁
Pₜ
allows reasoning about:
velocity
motion
object persistence
trajectory
A person does not merely exist at:
(x,y,z)
but may be moving with:
(vx,vy,vz)
Planning needs the future:
Where will the person be when my robot reaches that location?
That is the bridge from:
3D perception
to:
4D perception
where time becomes a first-class dimension.
99. The most important practical pipeline to remember
For classical LiDAR robotics:
RAW LIDAR
↓
CALIBRATE / DESKEW
↓
FILTER
↓
DOWNSAMPLE
↓
FEATURES / NORMALS
↓
REGISTRATION
↓
POSE
↓
TRANSFORM INTO MAP FRAME
↓
MAP UPDATE
↓
OCCUPANCY / TSDF / ESDF
↓
PLANNING
Memorize the logic, not necessarily every algorithm.
100. RGB-D pipeline
RGB IMAGE
+
DEPTH IMAGE
↓
ALIGNMENT / CALIBRATION
↓
DEPTH BACK-PROJECTION
↓
COLORED POINT CLOUD
↓
FILTERING
↓
SEGMENTATION / OBJECT DETECTION
↓
3D OBJECTS / SURFACES
↓
MAP / MANIPULATION
101. Modern learned pipeline
A modern system might instead look like:
CAMERAS + LIDAR + RADAR
↓
SENSOR ENCODERS
↓
LEARNED FEATURES
↓
COMMON 3D / BEV SPACE
↓
OBJECTS + OCCUPANCY + SEMANTICS
↓
TEMPORAL FUSION
↓
WORLD MODEL
↓
PLANNER
Notice something interesting.
Classical robotics explicitly computes:
point
normal
plane
correspondence
Modern systems may learn some of these relationships.
But the underlying geometry has not disappeared.
A model still has to solve the physical problem:
where?
how far?
which frame?
what moves?
what is free?
The computation is merely represented differently.
102. Explicit vs implicit 3D representation
This distinction is worth permanently remembering.
Explicit
Store geometry directly.
Examples:
points
voxels
meshes
Gaussians
Advantages:
easy to inspect
easy spatial lookup in many cases
straightforward geometry
Potential drawbacks:
memory
resolution
topology
Implicit
Store a function.
Examples:
SDF function
occupancy network
NeRF-like neural field
DeepSDF
Instead of:
store every surface location
ask:
f(x,y,z) = ?
Advantages can include:
continuous representation
compact learned structure
smooth interpolation
Potential drawbacks:
network queries
training/optimization
harder direct inspection
extracting explicit geometry may be needed
103. Dense vs sparse
Another fundamental axis:
Dense
Store every spatial location.
Example:
dense voxel grid
Good:
simple indexing
Bad:
huge memory in 3D
Sparse
Store only active regions.
Example:
sparse voxels
octree
hash map
point cloud
Good:
efficient in mostly empty environments
This is why sparsity matters far more in 3D than many beginners expect.
104. Surface vs volume representations
Point cloud:
mostly surface samples
Mesh:
surface
Occupancy:
volume
SDF:
field throughout space
NeRF:
volumetric radiance/density field
This distinction matters because robots often care about:
empty space
just as much as they care about surfaces.
105. A surface alone is not enough for navigation
Imagine a wall point cloud:
. . . . . .
You know a wall is there.
But the robot asks:
Can I move here?
Can I move 20 cm from it?
What about behind it?
Was that region observed?
How wide is the doorway?
That is why perception systems frequently transform raw surfaces into representations designed for planning.
106. Geometry quality is not uniform
A 3D system might know:
wall → very accurately
glass door → badly
dark reflective object → uncertain
distant pedestrian → sparse
floor nearby → excellent
Different materials and geometries affect sensors differently.
Therefore:
Never treat every point as equally trustworthy merely because it appears in the same point cloud.
Real systems often exploit:
sensor confidence
distance
incidence angle
intensity
temporal consistency
semantic class
to reason about reliability.
107. Incidence angle intuition
Suppose a laser hits a wall almost perpendicularly:
laser → | wall
Good geometry.
Now nearly parallel:
laser ───────→
/
/ surface
Small measurement errors can produce larger spatial uncertainty along some directions.
Geometry has conditioning.
This matters in:
normal estimation
registration
plane fitting
depth reconstruction
108. Degeneracy
Suppose your robot sees only one perfectly flat wall.
Can scan matching determine every possible movement?
Imagine sliding sideways along an infinite featureless wall.
Many poses may explain nearly identical measurements.
The environment does not provide enough constraints.
This is called a form of:
degeneracy
Engineering consequence:
LiDAR geometry weak
→ rely more on IMU / odometry / additional sensors
Sensor fusion exists partly because no single sensing modality is always informative.
109. Choosing a representation by task
SLAM / scan matching
Often useful:
point clouds
features
voxels
surfel maps
Mobile navigation
Often useful:
occupancy map
cost map
ESDF
Manipulation
Often useful:
RGB-D
point cloud
object pose
mesh
SDF
Surface reconstruction
Often useful:
TSDF
mesh
neural implicit field
Photorealistic novel-view synthesis
Often useful:
NeRF-like fields
Gaussian splatting
Learned LiDAR perception
Often useful:
points
voxels
range view
BEV
hybrids
Embodied semantic world models
Potentially useful:
geometry
+
semantic features
+
language-aligned features
+
temporal state
There is no universally winning representation.
110. One world, many representations
A sophisticated robot may simultaneously maintain:
point cloud
+
occupancy grid
+
ESDF
+
semantic objects
+
camera features
+
dynamic tracks
All representing the same physical environment for different purposes.
That is not duplication by accident.
It is often good system design.
Think of it like a database with multiple indexes optimized for different queries.
111. The database analogy
The physical world is the underlying truth.
Different representations answer different queries.
Point cloud:
Where were surfaces measured?
Occupancy:
Can I move here?
ESDF:
How far am I from collision?
Mesh:
What does the surface look like?
Semantic map:
What objects exist here?
Neural field:
What would this scene look like from here?
Planner:
What actions are safe?
This analogy makes representation design much easier to reason about.
112. The deepest idea behind learned 3D representations
Traditional perception engineers hand-designed the representation:
occupancy cell
voxel
surface normal
feature descriptor
Learning-based systems increasingly ask the machine to discover useful internal features.
But learned representations still face unavoidable physical constraints:
3D geometry
occlusion
perspective
sensor noise
motion
time
coordinate frames
Deep learning changes how we approximate the solution.
It does not repeal geometry.
113. Occlusion: the permanent enemy of perception
Camera sees:
front surface
not:
everything behind it
LiDAR similarly often sees first-return geometry along rays.
Therefore the robot's world model is always partly inferred.
Suppose:
camera → box → hidden region
Behind the box could be:
nothing
wall
person
another box
This is why:
unknown
must remain a first-class concept.
114. Perception is not reconstruction of absolute truth
A useful philosophical correction:
A robot does not need a mathematically perfect replica of reality.
It needs a representation sufficient for its task.
Warehouse robot:
Is aisle free?
Where is pallet?
Can I turn safely?
does not necessarily require:
photorealistic reconstruction of every screw
Likewise a rendering system may care greatly about:
view-dependent reflections
while a navigation robot may not.
Engineering is choosing the information worth preserving.
115. The four questions to ask about every 3D representation
Whenever you encounter a new 3D representation, ask:
1. What does it store?
points?
occupancy?
distance?
density?
features?
Gaussians?
triangles?
2. What queries are cheap?
nearest neighbor?
collision?
rendering?
surface extraction?
semantic lookup?
3. What is expensive?
memory?
updates?
training?
rendering?
nearest-neighbor search?
4. What information is lost?
free space?
texture?
topology?
uncertainty?
dynamic state?
If you can answer those four questions, you understand the representation far better than someone who merely knows its name.
116. The same scene represented six ways
Imagine a chair.
Point cloud
• • • •
• • •
• •
Meaning:
sampled visible chair surfaces
Voxel grid
occupied cubes
Meaning:
chair occupies these regions
Mesh
connected triangles
Meaning:
chair surface geometry
SDF
distance field
Meaning:
distance from every queried location to chair surface
NeRF-like field
density + appearance function
Meaning:
how scene produces observed views
Gaussian representation
many oriented fuzzy spatial primitives
Meaning:
optimized explicit scene primitives that render the chair
Same physical object.
Completely different computational worlds.
117. The critical boundary between perception and planning
Perception might output:
obstacle at (x,y,z)
Planning needs:
obstacle volume
uncertainty
future motion
safety margin
Therefore a mature autonomy system does not simply pass raw detections directly into control.
There are transformations:
sensor observation
↓
estimated world state
↓
prediction
↓
planning representation
↓
trajectory
The better you understand 3D representations, the easier these interfaces become to design.
118. Safety margins
Suppose estimated obstacle boundary is:
x = 2.00 m
Your localization uncertainty is:
±5 cm
sensor uncertainty:
±3 cm
robot controller tracking error:
±4 cm
Planning directly against the mathematical boundary is foolish.
Instead systems often inflate obstacles or incorporate margins.
Conceptually:
estimated geometry
+
uncertainty
+
robot radius
+
safety margin
→
effective forbidden region
Perception cannot be separated from uncertainty when the robot physically moves.
119. Resolution is a design parameter, not a random constant
Suppose robot width:
0.6 m
Using occupancy voxels:
1.0 m
may destroy useful doorway geometry.
Using:
1 mm
may be computationally absurd.
Choose resolution based on:
sensor accuracy
robot size
object size
environment scale
compute budget
planning requirements
This is systems engineering.
120. What happens when resolution is too coarse?
Thin obstacle:
chair leg
wire
pole
may disappear.
Doorway geometry may change.
Two obstacles may merge.
A corridor may appear blocked.
121. What happens when resolution is too fine?
Memory explodes.
Processing slows.
Sensor noise becomes overrepresented.
Map becomes expensive to update.
Remember:
More precision in representation does not automatically mean more useful information.
122. Multi-resolution representations
A smart approach is often:
high resolution nearby
lower resolution far away
or:
fine geometry around surfaces
coarse representation elsewhere
Hierarchical structures such as octrees use this idea.
Neural multiresolution features use related intuition computationally.
The world does not need uniform computational attention everywhere.
123. 2D, 2.5D and 3D
Useful vocabulary:
2D
x, y
Example:
occupancy floor map
2.5D
One surface depth per image/grid location.
Example:
depth map
height map
Full 3D
Multiple structures may exist at same x/y but different z.
Example:
tabletop
space below table
floor
represented separately.
This matters when deciding map structures.
124. Point density is not uniform
LiDAR points often spread apart with distance.
Near sensor:
•••••••••••
Far away:
• • •
because angular spacing translates into larger metric spacing.
Therefore algorithms using a fixed neighbor radius behave differently at different ranges.
This affects:
normal estimation
clustering
object detection
outlier filtering
Never assume point density is uniform unless your representation explicitly makes it so.
125. RGB-D noise also depends on geometry
Depth measurements can become unreliable around:
object boundaries
reflective surfaces
transparent objects
very dark materials
large distances
grazing angles
Suppose depth:
cup edge = invalid
If you blindly convert to a cloud, the object geometry may contain holes.
3D perception engineering is largely the art of treating measurements according to how they were produced.
126. Sensor models matter
A measurement is not simply:
number
It is:
number produced by a physical sensing process
Understanding that process explains:
noise
bias
failure modes
resolution
field of view
latency
This principle applies to:
LiDAR
stereo
ToF depth cameras
structured light
radar
sonar
A superior engineer learns sensor physics sufficiently to understand what the data means.
127. Data association: the hidden problem
Registration asks:
which point in scan A corresponds to which point in scan B?
Tracking asks:
is this person the same person as last frame?
Stereo asks:
which left pixel corresponds to which right pixel?
3D reconstruction asks:
which observations belong to the same physical surface?
This family of problems is called:
data association
Many perception failures are fundamentally correspondence failures.
128. Geometry optimization needs good correspondences
Suppose two points are matched:
chair leg ↔ chair leg
Excellent.
Wrong match:
chair leg ↔ wall
Now even perfect mathematics optimizes the wrong relationship.
This is why robust estimators such as:
RANSAC
robust losses
correspondence rejection
are so important.
Optimization cannot rescue incorrect assumptions indefinitely.
129. ICP and SLAM relationship
ICP answers approximately:
How did I move between overlapping geometric observations?
SLAM asks:
Where am I, and what does the environment look like, while both are initially unknown?
ICP can therefore be one component inside a LiDAR SLAM system.
Example:
new scan
↓
ICP / scan matching
↓
relative pose
↓
pose graph / state estimator
↓
map update
Do not equate:
ICP = SLAM
ICP is an alignment technique.
SLAM is the larger estimation problem.
130. Registration and loop closure are different scales
Local registration:
scan 101 ↔ scan 102
Loop closure:
current location
↔
place visited 20 minutes ago
Local geometric methods can accumulate drift.
Loop closures give global constraints that can correct it.
Again:
3D perception
+
state estimation
+
optimization
work together.
131. Learned representations do not remove coordinate frames
Suppose a transformer produces brilliant 3D features.
The robot still must know:
camera pose
sensor calibration
temporal relationship
map orientation
robot body location
Even very learned systems frequently contain explicit geometry somewhere in the pipeline.
Do not let neural-network terminology hide physical structure from you.
132. NeRF, SDF and occupancy are all functions—but answer different questions
This is a great connection.
Occupancy field
f(x,y,z)→P(occupied)f(x,y,z) \rightarrow P(\text{occupied})
Question:
Is material here?
SDF
f(x,y,z)→distancef(x,y,z) \rightarrow distance
Question:
How far is the surface?
NeRF-style field
f(x,y,z,d)→density,colorf(x,y,z,d) \rightarrow density,color
Question:
How does this scene contribute to images?
Same concept:
coordinate → function → scene property
Different outputs.
Different tasks.
This is one of the deepest unifying ideas in modern 3D representations.
133. Explicit geometry can be extracted from implicit fields
Suppose you have an SDF:
f(x,y,z)f(x,y,z)
Surface:
f(x,y,z)=0f(x,y,z)=0
Algorithms such as Marching Cubes can extract a mesh near that zero-level surface.
So the pipeline may be:
implicit field
↓
sample grid
↓
find zero crossings
↓
mesh
Therefore explicit and implicit representations are not isolated worlds.
Systems often convert between them.
134. Learned occupancy example
Imagine a network trained on incomplete chair scans.
Input:
partial point cloud
Visible:
front half of chair
Network may infer:
likely complete chair geometry
Output occupancy field can represent the completed object.
This is powerful—but note the philosophical shift.
Classical geometry says:
I reconstruct what was observed.
Learned reconstruction may say:
I infer what probably exists based on learned priors.
For robotics, the distinction between:
observed
and:
inferred
can matter tremendously.
135. Do not confuse inference with measurement
Suppose a network predicts:
there is probably a back surface here
That may be useful.
But it is not equivalent to:
LiDAR directly measured a back surface here.
A sophisticated world model should ideally retain provenance or confidence:
observed
predicted
uncertain
Especially for safety-critical decisions.
136. The future-facing robotics world model
A useful conceptual target is a representation containing:
GEOMETRY
What shape does the world have?
SEMANTICS
What are these things?
INSTANCE
Which individual object is this?
DYNAMICS
How is it moving?
UNCERTAINTY
How sure am I?
AFFORDANCE
What can I do with it?
TEMPORAL MEMORY
What existed before?
PREDICTION
What will likely happen next?
That is much richer than:
point cloud
But point clouds, occupancy, SDFs and geometry remain foundational because all those higher-level concepts must eventually correspond to physical space.
137. The simplest possible memory chain
If you forget everything, remember this:
DEPTH
= distance per pixel
POINT CLOUD
= 3D dots
VOXEL
= 3D pixel
KD-TREE
= fast nearby-point search
NORMAL
= which way surface faces
REGISTRATION
= align two 3D observations
ICP
= repeatedly match closest points and refine alignment
OCCUPANCY
= free / occupied / unknown
MESH
= connected triangular surface
SDF
= signed distance to surface
TSDF
= truncated distance field useful for reconstruction
ESDF
= obstacle-distance field useful for planning
NeRF
= learned continuous radiance/density field
GAUSSIAN SPLATTING
= scene represented by optimized fuzzy 3D Gaussian primitives
LEARNED 3D REPRESENTATION
= let neural networks learn spatial features/functions useful for downstream tasks
That is the entire chapter compressed.
138. And the master pipeline
Burn this into memory:
PHYSICAL WORLD
↓
SENSORS
┌──────┴──────┐
CAMERA LiDAR
↓ ↓
RGB + DEPTH POINTS
└──────┬────────┘
↓
PREPROCESSING
↓
3D REPRESENTATION
┌──────────┼──────────┐
POINTS VOXELS FIELDS
│ │ │
normals occupancy SDF
│ │ NeRF
└──────────┴───────────┘
↓
REGISTRATION
↓
WORLD MODEL
↓
GEOMETRY + SEMANTICS
+ MOTION + UNCERTAINTY
↓
PLANNING
↓
ACTION
That is modern robotic perception in one picture.
139. What a superior robotics engineer understands
A beginner sees:
a point cloud
A strong engineer sees:
measurements
coordinate frames
timestamps
noise
sampling density
occlusion
calibration
sensor physics
uncertainty
representation choices
A beginner sees:
ICP returned a transform
A strong engineer asks:
Was initialization good?
How much overlap existed?
Was geometry degenerate?
Were dynamic objects removed?
What were residuals?
How certain is this transform?
A beginner sees:
beautiful NeRF reconstruction
A strong engineer asks:
How accurate is metric geometry?
Where is free space?
How are unseen regions treated?
Can I query collision distance?
What happens when objects move?
A beginner sees:
AI 3D model
A strong engineer asks:
What representation?
What coordinate system?
What supervision?
What information is explicit?
What is inferred?
What downstream queries are efficient?
That difference is engineering maturity.
140. The final principle
3D perception is ultimately about building an internal model of physical reality from incomplete, noisy observations.
The robot never sees the entire truth.
It receives pieces:
a laser return
a depth pixel
an RGB image
an IMU reading
another scan
another frame
and gradually constructs:
something is here
nothing was observed here
this surface faces this way
this scan overlaps the previous scan
this object is moving
this region is safe
this region is unknown
this wall is 42 cm away
this mug can be grasped
That is the real meaning of perception.
And the final lesson to keep forever is:
Sensors do not give the robot a world. They give it evidence.
3D perception is the machinery that turns that evidence into a useful belief about the world.
And autonomy begins when that belief becomes good enough to act on.