Skip to content

Commit a28cf7e

Browse files
authored
Merge pull request #3 from midemig/rolling
Rolling paper version
2 parents c38e48f + ae86805 commit a28cf7e

28 files changed

Lines changed: 1805 additions & 52 deletions

.github/workflows/rolling.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ jobs:
2424
required-ros-distributions: rolling
2525
- name: install pcl
2626
run: sudo apt install libpcl-dev libpcl-*
27+
- name: install g2o
28+
run: sudo apt install libg2o-dev
2729
- name: build and test
2830
uses: ros-tooling/action-ros-ci@0.3.13
2931
with:

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.pyc
2+
.vscode

README.md

Lines changed: 79 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,81 @@
1-
# global_navigation
1+
[![rolling](https://github.com/midemig/global_navigation/actions/workflows/rolling.yaml/badge.svg)](https://github.com/midemig/global_navigation/actions/workflows/rolling.yaml)
22

3-
[![rolling](https://github.com/IntelligentRoboticsLabs/global_navigation/actions/workflows/rolling.yaml/badge.svg)](https://github.com/IntelligentRoboticsLabs/global_navigation/actions/workflows/rolling.yaml)
3+
# Global Navigation
44

5-
This package contains a new approach to navigate at outdoors
5+
This repository introduces an innovative approach for outdoor navigation using ROS2.
6+
7+
## Packages
8+
9+
This repository comprises two packages:
10+
11+
- **local_navigation**: Reconstructs the navigated area into a grid map incorporating elevation and RGB data.
12+
- **traversability_updater**: Computes a navigability score based on previously traversed areas.
13+
14+
The animation below highlights highly navigable areas in yellow and green. As the robot traverses the grass, all mapped zones with similar characteristics are marked as highly navigable.
15+
16+
![Navigation Demo](media/navigation_demo.gif)
17+
18+
## Usage
19+
20+
To reproduce our results, follow these instructions:
21+
22+
### Installation
23+
24+
- Requirements
25+
- Ubuntu 24.04
26+
- Ros2 Rolling
27+
- Python 3.12.3
28+
29+
30+
- Create a workspace and clone the repository
31+
32+
```sh
33+
mkdir -p global_navigation_ws/src
34+
cd global_navigation_ws/src
35+
git clone https://github.com/midemig/global_navigation -b rolling
36+
```
37+
38+
- Install dependences and build workspace
39+
40+
```sh
41+
sudo apt install libg2o-dev
42+
rosdep update
43+
vcs import --recursive . < global_navigation/dependencies.repos
44+
cd ..
45+
rosdep install --from-paths src --ignore-src -r -y
46+
colcon build --symlink-install
47+
```
48+
49+
- Install python dependences
50+
51+
```sh
52+
sudo apt install python3.12-venv
53+
python3 -m venv global_nav_env
54+
source global_nav_env/bin/activate
55+
pip3 install -r src/global_navigation/requirements.txt
56+
```
57+
58+
### Launch Demo
59+
60+
1. Download and unzip the [demo bagfile](https://urjc-my.sharepoint.com/:u:/g/personal/juancarlos_serrano_urjc_es/EQI9T9RNYuFJg6reV-pq-7IBjMEeEo7RxaJCudMs9IyRTg?e=hSNyQB).
61+
2. In a terminal, play the downloaded bag:
62+
63+
```sh
64+
ros2 bag play cesped_00/ --clock -p
65+
```
66+
67+
3. In another terminal, execute:
68+
69+
```sh
70+
source global_nav_env/bin/activate
71+
export PYTHONPATH=$VIRTUAL_ENV/lib/python3.12/site-packages:$PYTHONPATH
72+
ros2 launch local_navigation demo.launch.py
73+
```
74+
75+
## Authors
76+
77+
- [Francisco Martín Rico](github.com/fmrico)
78+
- [Miguel Ángel de Miguel](github.com/midemig)
79+
- [Juan Sebastián Cely](github.com/juanscelyg)
80+
- [Juan Carlos Manzanares](github.com/Juancams)
81+
- [Alberto García](github.com/aaggj)

dependencies.repos

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
repositories:
2-
ThirdParty/grid_map:
2+
ThirdParty/lidarslam_ros2:
33
type: git
4-
url: https://github.com/ANYbotics/grid_map.git
5-
version: rolling
4+
url: https://github.com/fmrico/lidarslam_ros2
5+
version: summit-xl
66
ThirdParty/navigation2:
77
type: git
8-
url: https://github.com/ros-navigation/navigation2.git
8+
url: https://github.com/ros-navigation/navigation2
99
version: main
10+
ThirdParty/grid_map:
11+
type: git
12+
url: https://github.com/ANYbotics/grid_map.git
13+
version: rolling
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
scan_matcher:
2+
ros__parameters:
3+
use_sim_time: false
4+
global_frame_id: "map"
5+
robot_frame_id: "base_link"
6+
registration_method: "NDT"
7+
ndt_resolution: 2.0
8+
ndt_num_threads: 2
9+
gicp_corr_dist_threshold: 5.0
10+
trans_for_mapupdate: 1.5
11+
vg_size_for_input: 0.5
12+
vg_size_for_map: 0.1
13+
use_min_max_filter: true
14+
scan_min_range: 1.0
15+
scan_max_range: 200.0
16+
scan_period: 0.1
17+
map_publish_period: 15.0
18+
num_targeted_cloud: 20
19+
set_initial_pose: true
20+
initial_pose_x: 0.0
21+
initial_pose_y: 0.0
22+
initial_pose_z: 0.0
23+
initial_pose_qx: 0.0
24+
initial_pose_qy: 0.0
25+
initial_pose_qz: 0.0
26+
initial_pose_qw: 1.0
27+
use_imu: false
28+
use_odom: false
29+
debug_flag: false
30+
31+
graph_based_slam:
32+
ros__parameters:
33+
use_sim_time: false
34+
registration_method: "NDT"
35+
ndt_resolution: 1.0
36+
ndt_num_threads: 2
37+
voxel_leaf_size: 0.1
38+
loop_detection_period: 3000
39+
threshold_loop_closure_score: 2.5
40+
distance_loop_closure: 100.0
41+
range_of_searching_loop_closure: 20.0
42+
search_submap_num: 2
43+
num_adjacent_pose_cnstraints: 5
44+
use_save_map_in_loop: true
45+
debug_flag: true
46+
47+
rviz:
48+
ros__parameters:
49+
use_sim_time: false

0 commit comments

Comments
 (0)