# OG Nav - Modular Navigation System
[](https://www.python.org/downloads/)
[](https://pypi.org/project/og_nav/)
[](https://opensource.org/licenses/MIT)
[](https://github.com/StanfordVL/OmniGibson)
A comprehensive, modular navigation system designed for robot navigation in OmniGibson environments. This package provides a clean, well-structured interface for path planning, robot control, occupancy grid mapping, and visualization.
## ๐ Features
### ๐งญ **Unified Navigation Interface**
- Clean, intuitive API for seamless robot navigation
- Automatic path planning and goal tracking
- Real-time navigation state management
- Interactive keyboard controls for manual path planning
### ๐บ๏ธ **Advanced Path Planning**
- Integration with OmniGibson's built-in path planning
- Point availability validation and collision checking
- Visual waypoint markers with interactive controls
- Automatic nearest available point finding
### ๐ฎ **Sophisticated Control Systems**
- **Pure Pursuit Algorithm**: Advanced path following with configurable lookahead
- **PID Controllers**: Precise velocity and heading control
- **Dynamic Action Management**: Automatic action tensor generation for Tiago robot
- Support for both base movement and arm pose management
### ๐บ๏ธ **Occupancy Grid Mapping**
- Real-time occupancy grid generation using OmniGibson
- Configurable map resolution and update strategies
- Automatic robot occlusion handling for accurate mapping
- Export capabilities for various map formats
### ๐จ **Rich Visualization**
- Interactive 3D markers for start/goal/waypoints
- Real-time path visualization in OmniGibson viewer
- Keyboard shortcuts for intuitive navigation control
- Customizable marker colors and sizes
### โ๏ธ **Flexible Configuration System**
- YAML-based configuration with intelligent defaults
- Module-specific configurations with override hierarchy
- Constructor arguments > YAML config > Module defaults
- Automatic visualization marker generation
## ๐ ๏ธ Installation
### Prerequisites
- Python 3.8 or higher
- OmniGibson (latest version)
- NVIDIA GPU with CUDA support (recommended)
### Install from PyPI (Recommended)
```bash
pip install og_nav
```
### Development Installation
```bash
# Clone the repository
git clone https://github.com/Gonglitian/og_nav.git
cd og_nav
# Install in development mode
pip install -e .
```
### Dependencies
The package automatically installs the following dependencies:
- `omnigibson` - Physics simulation and robotics framework
- `torch` - Deep learning framework (used for tensor operations)
- `numpy` - Numerical computing
- `opencv-python` - Computer vision and image processing
- `matplotlib` - Plotting and visualization
- `pyyaml` - YAML configuration file support
## ๐ Quick Start
### Basic Navigation Example
```python
import omnigibson as og
from og_nav import NavigationInterface
from og_nav.core.config_loader import NavigationConfig
# Create environment
config_path = "og_nav/configs/navigation_config.yaml"
nav_config = NavigationConfig(config_path=config_path)
env = og.Environment(configs=nav_config.get_omnigibson_config())
robot = env.robots[0]
# Initialize navigation system
navigator = NavigationInterface(env, robot, nav_config.og_nav_config)
# Set navigation goal
navigator.set_goal((2.0, 3.0)) # Move to position (2.0, 3.0)
# Main navigation loop
while not navigator.is_arrived():
navigator.update()
env.step([])
print("๐ Navigation completed!")
```
### Advanced Usage with Custom Configuration
```python
from og_nav import NavigationInterface, NavigationConfig
from og_nav.planning import PathPlanner
from og_nav.control import PathTrackingController
from og_nav.mapping import OGMGenerator
# Custom configuration
custom_config = {
'controller': {
'lookahead_distance': 0.8,
'cruise_speed': 0.7,
'max_angular_vel': 0.3
},
'ogm': {
'resolution': 0.05
},
'visualization': {
'enable': True,
'n_waypoints': 100
}
}
# Initialize with custom config
navigator = NavigationInterface(env, robot, custom_config)
# Use individual components
planner = PathPlanner(env, robot, config=custom_config.get('planning', {}))
controller = PathTrackingController(robot, config=custom_config['controller'])
mapper = OGMGenerator(config=custom_config['ogm'])
```
## ๐ฏ Interactive Controls
When running with visualization enabled, use these keyboard shortcuts in the OmniGibson viewer:
- **Z** - Set start point at camera position
- **X** - Set goal point at camera position
- **V** - Plan path between start and goal
- **C** - Clear all waypoints and markers
## ๐ Project Structure
```
og_nav/
โโโ __init__.py # Main package interface
โโโ core/ # Core navigation components
โ โโโ navigation.py # Main NavigationInterface class
โ โโโ config_loader.py # Unified configuration management
โ โโโ constants.py # System constants
โโโ planning/ # Path planning algorithms
โ โโโ path_planning.py # PathPlanner with OmniGibson integration
โ โโโ utils.py # Planning utilities
โโโ control/ # Robot control systems
โ โโโ controllers.py # Pure Pursuit and PID controllers
โ โโโ control_utils.py # Joint and action management utilities
โโโ mapping/ # Occupancy grid mapping
โ โโโ occupancy_grid.py # OGMGenerator for real-time mapping
โโโ demos/ # Example demonstrations
โ โโโ navigation_demo.py # Complete navigation demo
โโโ configs/ # Configuration files
โ โโโ navigation_config.yaml # Main navigation configuration
โ โโโ config.example.yaml # Example configuration template
โโโ ogm_cv2_window/ # OpenCV visualization tools
โ โโโ ui.py # Interactive UI components
โโโ assets/ # Documentation and resources
โโโ *.png # Example images
โโโ *.md # Technical documentation
```
## โ๏ธ Configuration
### YAML Configuration Structure
```yaml
og_nav:
# Occupancy Grid Mapping
ogm:
resolution: 0.1 # Map resolution in meters
# Path Planning
planning:
# Algorithm-specific parameters
# Path Tracking Controller
controller:
lookahead_distance: 0.5 # Pure pursuit lookahead (m)
cruise_speed: 0.5 # Forward speed (m/s)
max_angular_vel: 0.2 # Max rotation speed (rad/s)
waypoint_threshold: 0.2 # Arrival threshold (m)
# Robot Configuration
robot:
nav_arm_pose: [1.5, 1.5, 0, 2.3, 0, -1.4, 0] # Arm pose during navigation
# Visualization
visualization:
enable: true
n_waypoints: 50 # Number of waypoint markers
start_marker_color: [0, 1, 0, 1] # Green
goal_marker_color: [1, 0, 0, 1] # Red
waypoint_color: [0, 0, 1, 1] # Blue
# Standard OmniGibson configuration
scene:
type: InteractiveTraversableScene
scene_model: Pomaria_1_int
robots:
- type: Tiago
position: [-2, -0.3, 0]
# ... robot configuration
```
### Configuration Priority
The system follows a clear configuration priority hierarchy:
1. **Constructor Arguments** - Highest priority
2. **YAML Configuration** - Medium priority
3. **Module Defaults** - Fallback defaults
## ๐ค Robot Support
Currently optimized for **Tiago robot** with:
- Differential drive base control
- Dual-arm manipulation capabilities
- Automatic arm pose management during navigation
- Base action tensor management (indices 0-2 for x, y, rotation)
Support for additional robots can be added by extending the base controller classes.
## ๐งช Running Demos
Explore the package capabilities with included demonstrations:
```bash
# Basic navigation demo with sequential goal visiting
python -m og_nav.demos.navigation_demo
# Test configuration system
python -c "from og_nav.core.config_loader import NavigationConfig; print('Config system working!')"
# Test with custom YAML config
python -c "from og_nav.core.config_loader import NavigationConfig; config = NavigationConfig(config_path='og_nav/configs/navigation_config.yaml'); print('YAML config loaded successfully!')"
```
## ๐๏ธ Development
### Code Architecture Philosophy
- **Modular Design**: Clean separation between planning, control, mapping, and visualization
- **Configuration-Driven**: All behavior configurable through YAML files or code
- **Extensible**: Easy to add new planners, controllers, or robot types
- **Type-Safe**: Comprehensive type hints throughout the codebase
- **Well-Documented**: Detailed docstrings and inline documentation
### Adding New Components
To add a new path planner:
```python
from og_nav.planning.path_planning import PathPlanner
class MyCustomPlanner(PathPlanner):
@staticmethod
def get_default_cfg():
return {
'algorithm': 'my_algorithm',
'param1': 1.0,
'param2': True
}
def __init__(self, env, robot=None, config=None):
super().__init__(env, robot, config)
# Your custom initialization
def plan_path(self):
# Your custom planning logic
pass
```
### Testing
```bash
# Run configuration tests
python -c "from og_nav.core.config_loader import NavigationConfig; NavigationConfig().test_config_system()"
# Run demo to test complete pipeline
python -m og_nav.demos.navigation_demo
```
## ๐ Documentation
- **[CLAUDE.md](CLAUDE.md)** - Comprehensive architecture documentation for AI development
- **[og_nav/README.md](og_nav/README.md)** - Package-specific technical documentation
- **[og_nav/assets/](og_nav/assets/)** - Technical analysis and robot documentation
## ๐ค Contributing
We welcome contributions! Please:
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Make your changes following the existing code style
4. Add tests if applicable
5. Commit your changes (`git commit -m 'Add amazing feature'`)
6. Push to the branch (`git push origin feature/amazing-feature`)
7. Open a Pull Request
### Code Standards
- **Type Hints**: All public functions must include type annotations
- **Docstrings**: Comprehensive documentation for all public APIs
- **Configuration**: All behavior should be configurable
- **Error Handling**: Robust error handling with informative messages
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## ๐ Acknowledgments
- **[OmniGibson](https://github.com/StanfordVL/OmniGibson)** - Physics simulation framework
- **[Stanford Vision and Learning Lab](https://svl.stanford.edu/)** - OmniGibson development team
- **[PyTorch](https://pytorch.org/)** - Deep learning framework used for tensor operations
## ๐ Links
- **Homepage**: [https://github.com/Gonglitian/og_nav](https://github.com/Gonglitian/og_nav)
- **Documentation**: [og_nav/README.md](og_nav/README.md)
- **Issues**: [https://github.com/Gonglitian/og_nav/issues](https://github.com/Gonglitian/og_nav/issues)
- **OmniGibson**: [https://github.com/StanfordVL/OmniGibson](https://github.com/StanfordVL/OmniGibson)
---
**Built with โค๏ธ for the robotics community**
Raw data
{
"_id": null,
"home_page": null,
"name": "og-nav",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "robotics, navigation, omnigibson, path-planning, robot-control",
"author": null,
"author_email": "Litian Gong <gonglitian2002@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/f5/cc/1f43e90e1f6478b6d3069059c99513e7270115364f631c13fa9c157979e4/og_nav-0.1.1.dev0.tar.gz",
"platform": null,
"description": "# OG Nav - Modular Navigation System\n\n[](https://www.python.org/downloads/)\n[](https://pypi.org/project/og_nav/)\n[](https://opensource.org/licenses/MIT)\n[](https://github.com/StanfordVL/OmniGibson)\n\nA comprehensive, modular navigation system designed for robot navigation in OmniGibson environments. This package provides a clean, well-structured interface for path planning, robot control, occupancy grid mapping, and visualization.\n\n## \ud83d\ude80 Features\n\n### \ud83e\udded **Unified Navigation Interface**\n- Clean, intuitive API for seamless robot navigation\n- Automatic path planning and goal tracking\n- Real-time navigation state management\n- Interactive keyboard controls for manual path planning\n\n### \ud83d\uddfa\ufe0f **Advanced Path Planning**\n- Integration with OmniGibson's built-in path planning\n- Point availability validation and collision checking\n- Visual waypoint markers with interactive controls\n- Automatic nearest available point finding\n\n### \ud83c\udfae **Sophisticated Control Systems**\n- **Pure Pursuit Algorithm**: Advanced path following with configurable lookahead\n- **PID Controllers**: Precise velocity and heading control\n- **Dynamic Action Management**: Automatic action tensor generation for Tiago robot\n- Support for both base movement and arm pose management\n\n### \ud83d\uddfa\ufe0f **Occupancy Grid Mapping**\n- Real-time occupancy grid generation using OmniGibson\n- Configurable map resolution and update strategies\n- Automatic robot occlusion handling for accurate mapping\n- Export capabilities for various map formats\n\n### \ud83c\udfa8 **Rich Visualization**\n- Interactive 3D markers for start/goal/waypoints\n- Real-time path visualization in OmniGibson viewer\n- Keyboard shortcuts for intuitive navigation control\n- Customizable marker colors and sizes\n\n### \u2699\ufe0f **Flexible Configuration System**\n- YAML-based configuration with intelligent defaults\n- Module-specific configurations with override hierarchy\n- Constructor arguments > YAML config > Module defaults\n- Automatic visualization marker generation\n\n## \ud83d\udee0\ufe0f Installation\n\n### Prerequisites\n- Python 3.8 or higher\n- OmniGibson (latest version)\n- NVIDIA GPU with CUDA support (recommended)\n\n### Install from PyPI (Recommended)\n\n```bash\npip install og_nav\n```\n\n### Development Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/Gonglitian/og_nav.git\ncd og_nav\n\n# Install in development mode\npip install -e .\n```\n\n### Dependencies\nThe package automatically installs the following dependencies:\n- `omnigibson` - Physics simulation and robotics framework\n- `torch` - Deep learning framework (used for tensor operations)\n- `numpy` - Numerical computing\n- `opencv-python` - Computer vision and image processing\n- `matplotlib` - Plotting and visualization\n- `pyyaml` - YAML configuration file support\n\n## \ud83d\udcd6 Quick Start\n\n### Basic Navigation Example\n\n```python\nimport omnigibson as og\nfrom og_nav import NavigationInterface\nfrom og_nav.core.config_loader import NavigationConfig\n\n# Create environment\nconfig_path = \"og_nav/configs/navigation_config.yaml\"\nnav_config = NavigationConfig(config_path=config_path)\nenv = og.Environment(configs=nav_config.get_omnigibson_config())\nrobot = env.robots[0]\n\n# Initialize navigation system\nnavigator = NavigationInterface(env, robot, nav_config.og_nav_config)\n\n# Set navigation goal\nnavigator.set_goal((2.0, 3.0)) # Move to position (2.0, 3.0)\n\n# Main navigation loop\nwhile not navigator.is_arrived():\n navigator.update()\n env.step([])\n\nprint(\"\ud83c\udf89 Navigation completed!\")\n```\n\n### Advanced Usage with Custom Configuration\n\n```python\nfrom og_nav import NavigationInterface, NavigationConfig\nfrom og_nav.planning import PathPlanner\nfrom og_nav.control import PathTrackingController\nfrom og_nav.mapping import OGMGenerator\n\n# Custom configuration\ncustom_config = {\n 'controller': {\n 'lookahead_distance': 0.8,\n 'cruise_speed': 0.7,\n 'max_angular_vel': 0.3\n },\n 'ogm': {\n 'resolution': 0.05\n },\n 'visualization': {\n 'enable': True,\n 'n_waypoints': 100\n }\n}\n\n# Initialize with custom config\nnavigator = NavigationInterface(env, robot, custom_config)\n\n# Use individual components\nplanner = PathPlanner(env, robot, config=custom_config.get('planning', {}))\ncontroller = PathTrackingController(robot, config=custom_config['controller'])\nmapper = OGMGenerator(config=custom_config['ogm'])\n```\n\n## \ud83c\udfaf Interactive Controls\n\nWhen running with visualization enabled, use these keyboard shortcuts in the OmniGibson viewer:\n\n- **Z** - Set start point at camera position\n- **X** - Set goal point at camera position \n- **V** - Plan path between start and goal\n- **C** - Clear all waypoints and markers\n\n## \ud83d\udcc1 Project Structure\n\n```\nog_nav/\n\u251c\u2500\u2500 __init__.py # Main package interface\n\u251c\u2500\u2500 core/ # Core navigation components\n\u2502 \u251c\u2500\u2500 navigation.py # Main NavigationInterface class\n\u2502 \u251c\u2500\u2500 config_loader.py # Unified configuration management\n\u2502 \u2514\u2500\u2500 constants.py # System constants\n\u251c\u2500\u2500 planning/ # Path planning algorithms\n\u2502 \u251c\u2500\u2500 path_planning.py # PathPlanner with OmniGibson integration\n\u2502 \u2514\u2500\u2500 utils.py # Planning utilities\n\u251c\u2500\u2500 control/ # Robot control systems\n\u2502 \u251c\u2500\u2500 controllers.py # Pure Pursuit and PID controllers\n\u2502 \u2514\u2500\u2500 control_utils.py # Joint and action management utilities\n\u251c\u2500\u2500 mapping/ # Occupancy grid mapping\n\u2502 \u2514\u2500\u2500 occupancy_grid.py # OGMGenerator for real-time mapping\n\u251c\u2500\u2500 demos/ # Example demonstrations\n\u2502 \u2514\u2500\u2500 navigation_demo.py # Complete navigation demo\n\u251c\u2500\u2500 configs/ # Configuration files\n\u2502 \u251c\u2500\u2500 navigation_config.yaml # Main navigation configuration\n\u2502 \u2514\u2500\u2500 config.example.yaml # Example configuration template\n\u251c\u2500\u2500 ogm_cv2_window/ # OpenCV visualization tools\n\u2502 \u2514\u2500\u2500 ui.py # Interactive UI components\n\u2514\u2500\u2500 assets/ # Documentation and resources\n \u251c\u2500\u2500 *.png # Example images\n \u2514\u2500\u2500 *.md # Technical documentation\n```\n\n## \u2699\ufe0f Configuration\n\n### YAML Configuration Structure\n\n```yaml\nog_nav:\n # Occupancy Grid Mapping\n ogm:\n resolution: 0.1 # Map resolution in meters\n \n # Path Planning \n planning:\n # Algorithm-specific parameters\n \n # Path Tracking Controller\n controller:\n lookahead_distance: 0.5 # Pure pursuit lookahead (m)\n cruise_speed: 0.5 # Forward speed (m/s)\n max_angular_vel: 0.2 # Max rotation speed (rad/s)\n waypoint_threshold: 0.2 # Arrival threshold (m)\n \n # Robot Configuration\n robot:\n nav_arm_pose: [1.5, 1.5, 0, 2.3, 0, -1.4, 0] # Arm pose during navigation\n \n # Visualization\n visualization:\n enable: true\n n_waypoints: 50 # Number of waypoint markers\n start_marker_color: [0, 1, 0, 1] # Green\n goal_marker_color: [1, 0, 0, 1] # Red\n waypoint_color: [0, 0, 1, 1] # Blue\n\n# Standard OmniGibson configuration\nscene:\n type: InteractiveTraversableScene\n scene_model: Pomaria_1_int\n \nrobots:\n - type: Tiago\n position: [-2, -0.3, 0]\n # ... robot configuration\n```\n\n### Configuration Priority\n\nThe system follows a clear configuration priority hierarchy:\n\n1. **Constructor Arguments** - Highest priority\n2. **YAML Configuration** - Medium priority \n3. **Module Defaults** - Fallback defaults\n\n## \ud83e\udd16 Robot Support\n\nCurrently optimized for **Tiago robot** with:\n- Differential drive base control\n- Dual-arm manipulation capabilities\n- Automatic arm pose management during navigation\n- Base action tensor management (indices 0-2 for x, y, rotation)\n\nSupport for additional robots can be added by extending the base controller classes.\n\n## \ud83e\uddea Running Demos\n\nExplore the package capabilities with included demonstrations:\n\n```bash\n# Basic navigation demo with sequential goal visiting\npython -m og_nav.demos.navigation_demo\n\n# Test configuration system\npython -c \"from og_nav.core.config_loader import NavigationConfig; print('Config system working!')\"\n\n# Test with custom YAML config \npython -c \"from og_nav.core.config_loader import NavigationConfig; config = NavigationConfig(config_path='og_nav/configs/navigation_config.yaml'); print('YAML config loaded successfully!')\"\n```\n\n## \ud83c\udfd7\ufe0f Development\n\n### Code Architecture Philosophy\n\n- **Modular Design**: Clean separation between planning, control, mapping, and visualization\n- **Configuration-Driven**: All behavior configurable through YAML files or code\n- **Extensible**: Easy to add new planners, controllers, or robot types\n- **Type-Safe**: Comprehensive type hints throughout the codebase\n- **Well-Documented**: Detailed docstrings and inline documentation\n\n### Adding New Components\n\nTo add a new path planner:\n\n```python\nfrom og_nav.planning.path_planning import PathPlanner\n\nclass MyCustomPlanner(PathPlanner):\n @staticmethod\n def get_default_cfg():\n return {\n 'algorithm': 'my_algorithm',\n 'param1': 1.0,\n 'param2': True\n }\n \n def __init__(self, env, robot=None, config=None):\n super().__init__(env, robot, config)\n # Your custom initialization\n \n def plan_path(self):\n # Your custom planning logic\n pass\n```\n\n### Testing\n\n```bash\n# Run configuration tests\npython -c \"from og_nav.core.config_loader import NavigationConfig; NavigationConfig().test_config_system()\"\n\n# Run demo to test complete pipeline\npython -m og_nav.demos.navigation_demo\n```\n\n## \ud83d\udcda Documentation\n\n- **[CLAUDE.md](CLAUDE.md)** - Comprehensive architecture documentation for AI development\n- **[og_nav/README.md](og_nav/README.md)** - Package-specific technical documentation\n- **[og_nav/assets/](og_nav/assets/)** - Technical analysis and robot documentation\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Make your changes following the existing code style\n4. Add tests if applicable\n5. Commit your changes (`git commit -m 'Add amazing feature'`)\n6. Push to the branch (`git push origin feature/amazing-feature`)\n7. Open a Pull Request\n\n### Code Standards\n\n- **Type Hints**: All public functions must include type annotations\n- **Docstrings**: Comprehensive documentation for all public APIs\n- **Configuration**: All behavior should be configurable\n- **Error Handling**: Robust error handling with informative messages\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- **[OmniGibson](https://github.com/StanfordVL/OmniGibson)** - Physics simulation framework\n- **[Stanford Vision and Learning Lab](https://svl.stanford.edu/)** - OmniGibson development team\n- **[PyTorch](https://pytorch.org/)** - Deep learning framework used for tensor operations\n\n## \ud83d\udd17 Links\n\n- **Homepage**: [https://github.com/Gonglitian/og_nav](https://github.com/Gonglitian/og_nav)\n- **Documentation**: [og_nav/README.md](og_nav/README.md)\n- **Issues**: [https://github.com/Gonglitian/og_nav/issues](https://github.com/Gonglitian/og_nav/issues)\n- **OmniGibson**: [https://github.com/StanfordVL/OmniGibson](https://github.com/StanfordVL/OmniGibson)\n\n---\n\n**Built with \u2764\ufe0f for the robotics community**\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A modular navigation system for robot navigation in OmniGibson environments.",
"version": "0.1.1.dev0",
"project_urls": {
"Homepage": "https://github.com/Gonglitian/og_nav",
"Repository": "https://github.com/Gonglitian/og_nav"
},
"split_keywords": [
"robotics",
" navigation",
" omnigibson",
" path-planning",
" robot-control"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "e9085ce32150ae3bcc4519849c68ffa7a69416fae4437299129c6efb937a648e",
"md5": "6f65345303d9890157f6b3b089979b82",
"sha256": "ac67678edb0e023bc7a9415e46c48228347265ee8656b4e39cd0f5912e58593a"
},
"downloads": -1,
"filename": "og_nav-0.1.1.dev0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6f65345303d9890157f6b3b089979b82",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 482770,
"upload_time": "2025-07-26T04:43:05",
"upload_time_iso_8601": "2025-07-26T04:43:05.308558Z",
"url": "https://files.pythonhosted.org/packages/e9/08/5ce32150ae3bcc4519849c68ffa7a69416fae4437299129c6efb937a648e/og_nav-0.1.1.dev0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f5cc1f43e90e1f6478b6d3069059c99513e7270115364f631c13fa9c157979e4",
"md5": "e4bbc80419e38a92d2af5f242beef8f4",
"sha256": "caf6202588fad1ff731bbd877b3ce3d7ba9cd750cc55bdf332359cc1c1fbe456"
},
"downloads": -1,
"filename": "og_nav-0.1.1.dev0.tar.gz",
"has_sig": false,
"md5_digest": "e4bbc80419e38a92d2af5f242beef8f4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 1834353,
"upload_time": "2025-07-26T04:43:07",
"upload_time_iso_8601": "2025-07-26T04:43:07.164897Z",
"url": "https://files.pythonhosted.org/packages/f5/cc/1f43e90e1f6478b6d3069059c99513e7270115364f631c13fa9c157979e4/og_nav-0.1.1.dev0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-26 04:43:07",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Gonglitian",
"github_project": "og_nav",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "omnigibson",
"specs": []
},
{
"name": "matplotlib",
"specs": []
}
],
"lcname": "og-nav"
}