# 3D OctoMap SLAM on a TurtleBot3 Burger (RealSense D435i)

**URL:** https://discourse.openrobotics.org/t/3d-octomap-slam-on-a-turtlebot3-burger-realsense-d435i/57220
**Category:** Projects
**Tags:** release, ros2, turtlebot3
**Created:** [August 7, 2026, 2:15pm UTC](https://discourse.openrobotics.org/t/3d-octomap-slam-on-a-turtlebot3-burger-realsense-d435i/57220 "2026-08-07T14:15:12Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![prakash-aryan](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/prakash-aryan/32/34045_2.png) [@prakash-aryan](https://discourse.openrobotics.org/u/prakash-aryan)
#### Post date: [August 7, 2026, 2:15pm UTC](https://discourse.openrobotics.org/t/3d-octomap-slam-on-a-turtlebot3-burger-realsense-d435i/57220/1 "2026-08-07T14:15:12Z")

</div>

A small project building a growing 3D occupancy map (OctoMap) on a TurtleBot3 Burger with an Intel RealSense D435i. The robot streams depth, color, and wheel odometry over WiFi; a laptop turns the depth into a point cloud and `octomap_server` builds the voxel map, updating live in RViz. Every session records to a bag and replays offline.

![octomap_growth](https://us1.discourse-cdn.com/flex022/uploads/ros/original/3X/2/b/2bea4c08552fb874e4c8cf1bb6c506f44697aee3.gif)

A few things that were worth working out:

- **camera\_info QoS.** `depth_image_proc`’s `PointCloudXyzNode` subscribes to the depth `camera_info` as `TRANSIENT_LOCAL`, but the RealSense driver publishes it `VOLATILE`. The two never connect, so no cloud is produced and no error is raised. A small node that subscribes with a matched QoS and back-projects the depth resolves it.
- **Where the mapping runs.** The Pi only captures and streams the camera; the point cloud and `octomap_server` run on the laptop. With the clocks synchronized, the transform lookups succeed and the map builds during operation.
- **Thermal limit.** At 640x480 the Pi throttles at 80 C and depth falls to about 2.5 fps; 424x240 holds 6 fps. Map detail comes from the 2.5 cm voxel resolution, not the camera pixels.
- **Mount.** The D435i sits on a 3D-printed friction-clip front mount (STL in the repo).

 ![WhatsApp Image 2026-08-07 at 15.28.32](https://us1.discourse-cdn.com/flex022/uploads/ros/original/3X/9/1/916bd90329eac3a36ccfa810a9e5db2aa29776c1.jpeg)

The write-up, launch files, the cloud node, the mount STL, and the offline video renderer are in the repo:

> **[GitHub - prakash-aryan/tbot3-octomap-guide: 3D octomap SLAM on a TurtleBot3 Burger with a...](https://github.com/prakash-aryan/tbot3-octomap-guide)**
>
> 3D octomap SLAM on a TurtleBot3 Burger with a RealSense D435i: pipeline, 3D-printed camera mount, and offline replay
