From 8a62e13ae75c1a2cb4f7b136d86dc9b9364c136d Mon Sep 17 00:00:00 2001 From: babu Date: Thu, 25 Jan 2024 11:46:24 +0100 Subject: [PATCH] update examples --- docs/USAGE.md | 135 ++++++++++++++++++++++++++++++++++ examples/03_view_map.py | 2 +- examples/resources/open3d.png | Bin 0 -> 56651 bytes 3 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 examples/resources/open3d.png diff --git a/docs/USAGE.md b/docs/USAGE.md index 3a3fe0f..e43a50b 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -211,3 +211,138 @@ Let's consider an example where we want to connect the second storey of two adja print("path through world 0:", path0) print("path through world 1:", path1) ``` + +## Visualizing the Path + +Sometimes it is helpful to visualize the path to better understand the algorithm. Here is a simple example using the `open3d` library for this purpose. + +### Prerequisites + +- Install the `open3d` library: + + ```bash + pip install open3d + ``` + +### Example with Open3D + +1. Import the required libraries: + + ```python + import os + + import numpy as np + import open3d as o3d + + from pathfinding3d.core.diagonal_movement import DiagonalMovement + from pathfinding3d.core.grid import Grid + from pathfinding3d.finder.a_star import AStarFinder + ``` + +2. Load the sample map: + + ```python + # Load the map + matrix = np.load("sample_map.npy") + ``` + `sample_map.npy` is a numpy array of shape (42, 42, 42), where each element indicates an obstacle or free space. This file can be downloaded from the provided [GitHub link](https://github.com/harisankar95/pathfinding3D/blob/main/examples/sample_map.npy). + +3. Create the Grid and define the start and end nodes: + + ```python + # define start and end points as [x, y, z] coordinates + start_pt = [21, 21, 21] + end_pt = [5, 38, 33] + + # create grid representation and start and end nodes + grid = Grid(matrix=matrix) + start = grid.node(*start_pt) + end = grid.node(*end_pt) + ``` + Note: The `*` operator unpacks the list into individual arguments. + Here, we define the start and end points of our path and create a grid representation of our 3D space. + +4. Find the path: + + ```python + # initialize A* finder with specified diagonal movement setting + finder = AStarFinder(diagonal_movement=DiagonalMovement.only_when_no_obstacle) + + # use the finder to get the path + path, runs = finder.find_path(start, end, grid) + + # print results + path_cost = end.g + print(f"path cost: {path_cost:.4f}, path length: {len(path)}, runs: {runs}") + ``` + + This will output: + + ```bash + path cost: 28.6130, path length: 20, runs: 458 + ``` + + The path cost can be accessed from the `end` node's `g` attribute for A\*. + +5. Visualize the path: + - Find the obstacles and represent them in blue. The `colors` array is a numpy array of shape (n, 3) where n is the number of obstacles. The first column represents the red channel, the second column represents the green channel, and the third column represents the blue channel. The `xyz_pt` array is a numpy array of shape (n, 3) where n is the number of obstacles. The first column represents the x coordinate, the second column represents the y coordinate, and the third column represents the z coordinate. The `xyz_pt` array is used to create a `PointCloud` object which is then visualized using `draw_geometries`. + + ```python + # Identifying obstacles and representing them in blue + obstacle_indices = np.where(matrix == 0) + xyz_pt = np.stack(obstacle_indices, axis=-1).astype(float) + colors = np.zeros((xyz_pt.shape[0], 3)) + colors[:, 2] = obstacle_indices[2] / np.max(obstacle_indices[2]) + ``` + + - The start point is represented in red and the end point is represented in green. The path is represented in grey. `path_colors` is a numpy array of shape (len(path) - 2, 3) where len(path) is the number of waypoints in the path. Since we already have the start and end points which are also part of the path, we subtract 2 from the length of the path to get the number of remaining waypoints. + + ```python + # Prepare start and end colors + start_color = np.array([[1.0, 0, 0]]) # Red + end_color = np.array([[0, 1.0, 0]]) # Green + path_colors = np.full((len(path) - 2, 3), [0.7, 0.7, 0.7]) # Grey for the path + ``` + + - Now we can add the start and end points to the `xyz_pt` array along with the remaining waypoints in the path. Similarly the colors can be added to the `colors` array. For every point in the `xyz_pt` array, there is a corresponding color in the `colors` array. + + ```python + # Combine points and colors for visualization + xyz_pt = np.concatenate((xyz_pt, [start_pt], [end_pt], path[1:-1])) + colors = np.concatenate((colors, start_color, end_color, path_colors)) + ``` + + - Create a `PointCloud` object with the `xyz_pt` and `colors` arrays. + + ```python + # Create the point cloud + pcd = o3d.geometry.PointCloud() + pcd.points = o3d.utility.Vector3dVector(xyz_pt) + pcd.colors = o3d.utility.Vector3dVector(colors) + ``` + + - Create a `VoxelGrid` object from the `PointCloud` object. This will generate a voxel grid from the point cloud. The `voxel_size` parameter determines the size of the voxels. + + ```python + # Create the voxel grid from the point cloud + voxel_grid = o3d.geometry.VoxelGrid.create_from_point_cloud(pcd, voxel_size=1.0) + axes = o3d.geometry.TriangleMesh.create_coordinate_frame(size=15.0, origin=np.array([-3.0, -3.0, -3.0])) + ``` + + The axes is for reference and can be removed if not needed. + + - Visualize the voxel grid. The `width` and `height` parameters determine the size of the window. + + ```python + # Visualize the voxel grid + o3d.visualization.draw_geometries([axes, voxel_grid], window_name="Voxel Env", width=1024, height=768) + ``` + + You can rotate the voxel grid by clicking and dragging the mouse. You can also zoom in and out using the mouse wheel. + + - The output should look like this: + + ![voxel_grid](https://github.com/harisankar95/pathfinding3D/blob/main/examples/resources/open3d.png) + + +The full code is available [here](https://github.com/harisankar95/pathfinding3D/blob/main/examples/03_view_map.py) \ No newline at end of file diff --git a/examples/03_view_map.py b/examples/03_view_map.py index 93de41d..588abec 100644 --- a/examples/03_view_map.py +++ b/examples/03_view_map.py @@ -54,7 +54,7 @@ # visualize path in open3d if USE_OPEN3D: - # Identifying obstacles and representing them in blu + # Identifying obstacles and representing them in blue obstacle_indices = np.where(matrix == 0) xyz_pt = np.stack(obstacle_indices, axis=-1).astype(float) colors = np.zeros((xyz_pt.shape[0], 3)) diff --git a/examples/resources/open3d.png b/examples/resources/open3d.png new file mode 100644 index 0000000000000000000000000000000000000000..753f23c9655e99bcd5c944feb9feb033ba205155 GIT binary patch literal 56651 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.fgMpCx4?$Mz$nYU@q{$4zzz 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⋘b#_1hpQiss&$2WEYkoMI@V350qNLJ)ODSDIb{( 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 C4m02Y literal 0 HcmV?d00001