| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
This repository contains a customized navigation system based on the ROS 2 Navigation Stack (Nav2), adapted for DIT Robotics' Eurobot 2027 competition requirements.
Enables smooth and efficient autonomous movement.
Seamlessly integrates docking and navigation for autonomous charging or station return.
Offers a variety of commands for enhanced control and flexibility:
Control the robot's emergency stop or resume behavior via the /stopRobot topic.
The keepout zones correspond to specific regions on the Eurobot 2027 field, used to restrict robot access dynamically via /keepout_zone.
global_costmap:
global_costmap:
ros__parameters:
keepout_layer:
inflation_length: 0.15 # distance over which cost is inflated
cost_scaling_factor: 5.0 # higher value -> steeper cost increase
keepout_expand_mode: 1 # 0: Circle, 1: Squaresee more about the params /navigation2_run/params/nav2_params_default.yaml
We use the TEB controller with multiple profiles (Fast/Slow/LinearBoost/AngularBoost) tuned for different speeds and obstacle conditions.
Main features:
Time‑elastic band optimization
Optimizes a short‑horizon trajectory (poses + timing) to satisfy kinematic limits
while progressing toward the goal.
Obstacle‑aware trajectory shaping
Penalizes proximity to obstacles and can slow down or replan when the costmap
indicates blocked space ahead.
Goal handling
Uses goal distance thresholds to decide when to stop in position vs. rotate
toward the final heading.
Profile‑based tuning
Different parameter sets for fast/slow/boost behaviors (e.g., max_v/max_w,
obstacle distances, cooldowns).
See more about the params /navigation2_run/params/nav2_params_default.yaml
SmacPlanner2D
Straight-line refinement
SMAC 2D expands 8-connected neighbors, which can produce zig-zag paths even in free space.
We add a line-of-sight check after A* (LineIterator + collision check): if a straight segment
is collision-free, intermediate nodes are skipped and the segment is resampled into evenly
spaced points with consistent orientation. This yields straighter, smoother paths.
New parameters (planner_server -> GridBased)
NavfnPlanner2D
Straight-line refinement
New parameters (planner_server -> GridBased)
# A* / propagation parameters
heuristic_scale: 1.0 # Weight of heuristic term in A* (higher = more greedy toward goal)
priority_increment_scale: 2.0 # Scale factor for A* priority threshold increment (larger = faster but less optimal)
# Obstacle-aware bias
obstacle_bias_scale: 0.4 # Strength of extra cost added for high-cost cells to avoid obstacles/inflation (0.15 ~ 0.5)
obstacle_bias_offset: 10.0 # Cost offset before obstacle bias is applied (ignore small cost variations) (3.0 ~ 10.0)
# Path extraction / fallback
plateau_stagnation_steps: 3 # Number of stagnant steps to trigger plateau handling
min_gradient_norm: 0.9 # Minimum gradient norm to continue path extraction without fallback
potential_epsilon: 1.0e-3 # Minimum potential decrease to reset stagnation counter(Keyword order does not matter and is designed for compatibility.)
Template Base:
Functional Tags:
rival_parameters:
rival_inscribed_radius: *data(double)*This repository includes a convenient nav2.sh script for managing Docker containers and development workflows.
git clone https://github.com/DIT-ROBOTICS/Eurobot-2027-Navigation2.git
cd Eurobot-2027-Navigation2./nav2.sh installecho 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrcOnce installed, you can use the following commands from anywhere:
Build & Development
Running Services
Container Management
Monitoring & Debugging
Help
# Build the workspace
nav2 build
# Enter development container
nav2 dev
# Inside the container, you can:
# - source install/local_setup.bash
# - ros2 launch navigation2_run real_launch.py
# - ros2 topic list
# - rviz2
# Run navigation (detached)
nav2 run
# Check logs
nav2 logs run
# Stop a specific service
nav2 stop runFor detailed environment setup instructions and Docker configurations, please refer to the docker/ directory.
Eurobot-2027
└── Eurobot-2027-ws/
└── src/
├── Eurobot-2027-Navigation2/ # Core navigation system code
├── custom_bts/ # Custom behavior trees
├── custom_controller/ # Custom controller plugins
├── custom_layer/ # Custom costmap layers
├── navigation2_run/ # Navigation system packages
├── Navigation2/ # Modified version of Nav2
└── opennav_docking/ # Docking server implementation
└── Eurobot-2027-Navigation2-envs/ # Docker environments
├── Navigation2-humble-local/ # Local PC environment
└── Navigation2-humble-deploy/ # Remote machine environment
Contributions are welcome! Please follow these steps:
This project is licensed under the MIT License. See the LICENSE file for details.
Portions of this software are based on the ROS 2 Navigation Stack (Nav2), which is licensed under the Apache License 2.0. See the Navigation2 submodule for more details.
For any issues or inquiries, please open an issue on GitHub or contact the DIT Robotics team.
| Back | FazBrowse Home | New Git URL |