# Occupancy grids, point clouds and meshes.. oh my!

**URL:** https://discourse.openrobotics.org/t/occupancy-grids-point-clouds-and-meshes-oh-my/52525
**Category:** Projects
**Created:** [February 15, 2026, 6:25pm UTC](https://discourse.openrobotics.org/t/occupancy-grids-point-clouds-and-meshes-oh-my/52525 "2026-02-15T18:25:08Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Gglaspell](https://avatars.discourse-cdn.com/v4/letter/g/ed8c4c/32.png) [@Gglaspell](https://discourse.openrobotics.org/u/Gglaspell)
#### Post date: [February 15, 2026, 6:25pm UTC](https://discourse.openrobotics.org/t/occupancy-grids-point-clouds-and-meshes-oh-my/52525/1 "2026-02-15T18:25:08Z")

</div>

Hi, I have been working on a couple tools that may be of interest to others:

> **[GitHub - gglaspell/PC\_to\_OG: This project uses a docker container to convert a...](https://github.com/gglaspell/PC_to_OG)**
>
> This project uses a docker container to convert a point cloud to an occupancy grid.

> **[GitHub - gglaspell/bag\_to\_OG: Transform your ROS 2 bag files into Nav2-ready...](https://github.com/gglaspell/bag_to_OG)**
>
> Transform your ROS 2 bag files into Nav2-ready occupancy grid maps with terrain-aware processing.

> **[GitHub - gglaspell/bag\_to\_mesh: Convert ROS 2 bag files containing LiDAR point...](https://github.com/gglaspell/bag_to_mesh)**
>
> Convert ROS 2 bag files containing LiDAR point clouds into high-quality 3D models with precision-tuned registration and drift correction.

The first one converts a point cloud to an occupancy grid. We had a point cloud of a building that we were planning to re-visit. I thought having a tool to convert the point cloud to an occupancy grid would be useful.

The second tool does pretty much the same thing as the first tool, generating occupancy grids, but uses a bag file as in input.

Feeling braver, the third tool takes a bag file and generates a point cloud and mesh. The inspiration behind this one was to have a tool that can generate point clouds and meshes if the odometry slips during a run. I wanted something that could potentially save me from having to do a second run.

All three tools are a work in progress and leverage Docker.

---

<div class="post-metadata">

### Author: ![Gglaspell](https://avatars.discourse-cdn.com/v4/letter/g/ed8c4c/32.png) [@Gglaspell](https://discourse.openrobotics.org/u/Gglaspell)
#### Post date: [March 19, 2026, 1:19pm UTC](https://discourse.openrobotics.org/t/occupancy-grids-point-clouds-and-meshes-oh-my/52525/2 "2026-03-19T13:19:20Z")

</div>

Here a a few updates that may be of interest. I am pretty happy with the meshing logic so I started looking at adding color to the meshes and this is the result:

> **[GitHub - gglaspell/bag\_to\_color\_mesh: Convert ROS 2 bag files containing LiDAR point...](https://github.com/gglaspell/bag_to_color_mesh)**
>
> Convert ROS 2 bag files containing LiDAR point clouds and camera topics into high-quality 3D color models.

Also, I started looking into turning the meshes into Gazebo worlds:

> **[GitHub - gglaspell/bag\_to\_gazebo\_world: Convert a ROS 2 bag file containing 3D LiDAR scans...](https://github.com/gglaspell/bag_to_gazebo_world)**
>
> Convert a ROS 2 bag file containing 3D LiDAR scans into a ready-to-use Gazebo simulation world

Updates to the aforementioned projects include:

- [point cloud to occupancy grid](https://github.com/gglaspell/PC_to_OG)
  - noise filter

- [bag to occupancy grid](https://github.com/gglaspell/bag_to_OG)
  - noise filter
  - odom max latency param

- [bag to mesh](https://github.com/gglaspell/bag_to_mesh)
  - noise filters
  - normal orientation
  - manifold validation
  - mesh clean up and decimation

---

<div class="post-metadata">

### Author: ![Gglaspell](https://avatars.discourse-cdn.com/v4/letter/g/ed8c4c/32.png) [@Gglaspell](https://discourse.openrobotics.org/u/Gglaspell)
#### Post date: [April 29, 2026, 7:38pm UTC](https://discourse.openrobotics.org/t/occupancy-grids-point-clouds-and-meshes-oh-my/52525/3 "2026-04-29T19:38:29Z")

</div>

The following projects now have GUI front ends that can be used to construct and execute the docker run command:

> **[GitHub - gglaspell/PC\_to\_OG: This project uses a docker container to convert a...](https://github.com/gglaspell/PC_to_OG)**
>
> This project uses a docker container to convert a point cloud to an occupancy grid.

> **[GitHub - gglaspell/bag\_to\_OG: Transform your ROS 2 bag files into Nav2-ready...](https://github.com/gglaspell/bag_to_OG)**
>
> Transform your ROS 2 bag files into Nav2-ready occupancy grid maps with terrain-aware processing.

> **[GitHub - gglaspell/bag\_to\_mesh: Convert ROS 2 bag files containing LiDAR point...](https://github.com/gglaspell/bag_to_mesh)**
>
> Convert ROS 2 bag files containing LiDAR point clouds into 3D models with precision-tuned registration and drift correction.

> **[GitHub - gglaspell/bag\_to\_color\_mesh: Convert ROS 2 bag files containing LiDAR point...](https://github.com/gglaspell/bag_to_color_mesh)**
>
> Convert ROS 2 bag files containing LiDAR point clouds and camera topics into high-quality 3D color models.

> **[GitHub - gglaspell/bag\_to\_gazebo\_world: Convert a ROS 2 bag file containing 3D LiDAR scans...](https://github.com/gglaspell/bag_to_gazebo_world)**
>
> Convert a ROS 2 bag file containing 3D LiDAR scans into a ready-to-use Gazebo simulation world

> **[GitHub - gglaspell/bag\_to\_navmap: Convert ROS 2 bag files containing LiDAR point...](https://github.com/gglaspell/bag_to_navmap)**
>
> Convert ROS 2 bag files containing LiDAR point clouds into binary NavMap files.

> **[GitHub - gglaspell/bag\_to\_vdb: Convert ROS 2 bag files containing LiDAR point...](https://github.com/gglaspell/bag_to_vdb)**
>
> Convert ROS 2 bag files containing LiDAR point clouds into OpenVDB level-set maps.
