Skip to main content

No project description provided

Project description


# mesh_nav_3D

This package provides a 3D mesh-based navigation framework with multiple path planning algorithms and visualization tools.

## 📦 Installation

1. Install python3-venv python3-pip Python 3.12 and `pip`.
2. Download the `.whl` file provided.
3. Open a terminal in the directory containing the `.whl` file.
4. Run:

```bash
pip install mesh_nav_3D-<version>-py3-none-any.whl
```

> Replace `<version>` with the actual version string in the filename.

---

## 🚀 Quick Start

### Visualizing Planners

To visualize a single or multiple planners on a mesh, use the following code:

```python
from mesh_nav_3D import visualize_single_planner, visualize_multiple_planners, PlannerConfig

if __name__ == "__main__":
# To visualize a single planner
# visualize_single_planner('dijkstra_planner', PlannerConfig(mesh_file_path="terrain_mesh"))

# To visualize multiple planners
visualize_multiple_planners(
['AStarPlanner', 'HeatMethodPlanner'],
PlannerConfig(mesh_file_path="terrain_mesh")
)
```

Use the inbuilt `"terrain_mesh"` or a path to a valid mesh file.

---

### Benchmarking Multiple Planners

You can compare multiple planners across several scenarios using the following code:

```python
from mesh_nav_3D import compare_planners, PlannerConfig
import numpy as np

if __name__ == "__main__":
scenarios = [
(1, np.array([5.00, 9.55, 0.95]), np.array([6.82, 1.36, 0.10]), 8.42),
(2, np.array([9.09, 9.55, -0.33]), np.array([7.73, 1.36, 0.20]), 8.31),
(3, np.array([5.00, 9.55, 0.95]), np.array([0.91, 0.91, 0.48]), 9.57),
(4, np.array([9.09, 10.00, -0.27]), np.array([2.73, 0.91, 0.25]), 11.11),
(5, np.array([0.45, 9.55, -0.44]), np.array([8.18, 1.36, 0.19]), 11.27),
]

for scenario in scenarios:
print(f">>>>>>>>>>>>>>>>>>>>> Scenario {scenario[0]}")
start_point = scenario[1]
goal_point = scenario[2]
planners = [
"AStarPlanner",
"DijkstraPlanner",
"FlipOutPlanner",
"FastMarchingPlanner",
"GreedyBFSPlanner",
"HeatMethodPlanner",
"MMPPlanner",
"ThetaStarPlanner"
]
results = compare_planners(
mesh_file_path="terrain_mesh",
start_point=start_point,
goal_point=goal_point,
planners=planners,
output_dir="metrics_outputs",
save_results=True
)
```

Results will be saved to the `metrics_outputs/` folder.

---

## 📝 Notes

- Replace mesh file paths with actual paths to your `.obj`, `.ply`, or supported mesh files.
- Ensure all dependencies are installed. If not bundled in the wheel, manually install them:

```bash
pyvista = "^0.44.2"
tqdm = "^4.67.1"
pygeodesic = "^0.1.11"
potpourri3d = "^1.2.1"
pydantic = "^2.11.2"
psutil = "^7.0.0"
```

- **Planner Naming**: Planner names can be provided in the following formats:
- **snake_case**: e.g., `"dijkstra_planner"`,
- **PascalCase**: e.g., `"AStarPlanner"`,
- **Class instances**: e.g., `AStarPlanner()` (direct class instance).
All these formats will work and the system will handle the conversion automatically.

---

## 🤝 License

MIT.

```

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mesh_nav_3d-0.1.0.tar.gz (29.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mesh_nav_3d-0.1.0-py3-none-any.whl (36.9 kB view details)

Uploaded Python 3

File details

Details for the file mesh_nav_3d-0.1.0.tar.gz.

File metadata

  • Download URL: mesh_nav_3d-0.1.0.tar.gz
  • Upload date:
  • Size: 29.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.12.3 Linux/6.11.0-21-generic

File hashes

Hashes for mesh_nav_3d-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ffa72a30b0b5cca56ac6e08c6a678e402c8a3d39e6c5131401db65806199ddf3
MD5 868492d9cf14f603b633054935ec021d
BLAKE2b-256 e8bc26fa12f4c38a59a45e7ba2c603fdb03dec0302ad14a386adc4840367aa13

See more details on using hashes here.

File details

Details for the file mesh_nav_3d-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mesh_nav_3d-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 36.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.12.3 Linux/6.11.0-21-generic

File hashes

Hashes for mesh_nav_3d-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4df25163803dab1410455594d5595dda3e18fef80834b72db3678f337e9b004b
MD5 97e206b5c7660aa98d3f486e28ada8b6
BLAKE2b-256 f3950539551b26d7f1f8874dbeddb8d8a9720a33302b7b1c151569ab46887802

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page