-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from NVIDIA-ISAAC-ROS/release-dp3
Isaac ROS 0.30.0 (DP3)
- Loading branch information
Showing
45 changed files
with
3,968 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# Ignore Python files in linguist | ||
*.py linguist-detectable=false | ||
|
||
# Images | ||
*.gif filter=lfs diff=lfs merge=lfs -text | ||
*.jpg filter=lfs diff=lfs merge=lfs -text | ||
*.png filter=lfs diff=lfs merge=lfs -text | ||
*.psd filter=lfs diff=lfs merge=lfs -text | ||
|
||
# Archives | ||
*.gz filter=lfs diff=lfs merge=lfs -text | ||
*.tar filter=lfs diff=lfs merge=lfs -text | ||
*.zip filter=lfs diff=lfs merge=lfs -text | ||
|
||
# Documents | ||
*.pdf filter=lfs diff=lfs merge=lfs -text | ||
|
||
# Shared libraries | ||
*.so filter=lfs diff=lfs merge=lfs -text | ||
*.so.* filter=lfs diff=lfs merge=lfs -text | ||
|
||
# ROS Bags | ||
**/resources/**/*.zstd filter=lfs diff=lfs merge=lfs -text | ||
**/data/**/*.db3 filter=lfs diff=lfs merge=lfs -text | ||
**/data/**/*.yaml filter=lfs diff=lfs merge=lfs -text |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# Ignore all pycache files | ||
**/__pycache__/** |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# Isaac ROS Contribution Rules | ||
|
||
Any contribution that you make to this repository will | ||
be under the Apache 2 License, as dictated by that | ||
[license](http://www.apache.org/licenses/LICENSE-2.0.html): | ||
|
||
> **5. Submission of Contributions.** Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. | ||
Contributors must sign-off each commit by adding a `Signed-off-by: ...` | ||
line to commit messages to certify that they have the right to submit | ||
the code they are contributing to the project according to the | ||
[Developer Certificate of Origin (DCO)](https://developercertificate.org/). | ||
|
||
[//]: # (202201002) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
# Isaac ROS Occupancy Grid Localizer Nav2 Isaac Sim Tutorial | ||
|
||
<div align="center"><img alt="Isaac ROS Occupancy Grid Localizer Expected Output" src="../resources/nav2_isaac_sim.png" width="600px"/></div> | ||
|
||
## Overview | ||
|
||
This tutorial describes how to integrate the Isaac ROS Occupancy Grid Localizer with a simulated robot running in Isaac Sim with Nav2. | ||
|
||
Last validated with [Isaac Sim 2022.1.0](https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/release_notes.html#id10). | ||
|
||
## Tutorial Walkthrough | ||
|
||
1. Complete the [Quickstart section](../README.md#quickstart) in the main README. | ||
2. Launch the Docker container using the `run_dev.sh` script: | ||
|
||
```bash | ||
cd ~/workspaces/isaac_ros-dev/src/isaac_ros_common && \ | ||
./scripts/run_dev.sh | ||
``` | ||
|
||
3. Inside the container, build and source the workspace: | ||
|
||
```bash | ||
cd /workspaces/isaac_ros-dev && \ | ||
colcon build --symlink-install && \ | ||
source install/setup.bash | ||
``` | ||
|
||
4. Install and launch Isaac Sim following the steps in the [Isaac ROS Isaac Sim Setup Guide](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common/blob/main/docs/isaac-sim-sil-setup.md) | ||
5. Open up the Isaac ROS Common USD scene (using the *Content* tab) located at: | ||
|
||
```text | ||
http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/2022.2.1/Isaac/Samples/ROS2/Scenario/carter_warehouse_apriltags_worker.usd | ||
``` | ||
And wait for it to load completely. | ||
6. Press **Play** to start publishing data from the Isaac Sim application. | ||
|
||
7. Run the launch file and you should see a nav2 window pop up. | ||
|
||
```bash | ||
ros2 launch isaac_ros_occupancy_grid_localizer isaac_ros_occupancy_grid_localizer_nav2.launch.py | ||
``` | ||
|
||
8. Open a new terminal using the `run_dev.sh` script: | ||
|
||
```bash | ||
cd ~/workspaces/isaac_ros-dev/src/isaac_ros_common && \ | ||
./scripts/run_dev.sh | ||
``` | ||
|
||
9. Trigger the localization service using the command line interface: | ||
|
||
```bash | ||
ros2 service call /trigger_grid_search_localization std_srvs/srv/Empty {} | ||
``` | ||
|
||
10. You should see the laser scan in rviz. This happens when the transform between map and carter_lidar frame is available. The robot is now localized. You can give a position setpoint using the `2D Nav Goal` button as shown below. You can relocalize again at any point by running the `ros2 service call` command above. | ||
|
||
<div align="center"><img alt="Isaac ROS Occupancy Grid Localizer Expected Output" src="../resources/nav2_isaac_sim.gif" width="600px"/></div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES | ||
# Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
cmake_minimum_required(VERSION 3.23.2) | ||
project(isaac_ros_occupancy_grid_localizer LANGUAGES C CXX) | ||
|
||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") | ||
add_compile_options(-Wall -Wextra -Wpedantic) | ||
endif() | ||
|
||
find_package(ament_cmake_auto REQUIRED) | ||
ament_auto_find_build_dependencies() | ||
|
||
# # Dependencies | ||
find_package(Eigen3 3.3 REQUIRED NO_MODULE) | ||
|
||
# OccupancyGridLocalizerNode | ||
ament_auto_add_library(occupancy_grid_localizer SHARED src/occupancy_grid_localizer_node.cpp) | ||
rclcpp_components_register_nodes(occupancy_grid_localizer "nvidia::isaac_ros::occupancy_grid_localizer::OccupancyGridLocalizerNode") | ||
set(node_plugins "${node_plugins}nvidia::isaac_ros::occupancy_grid_localizer::OccupancyGridLocalizerNode;\ | ||
$<TARGET_FILE:occupancy_grid_localizer>\n") | ||
target_link_libraries(occupancy_grid_localizer Eigen3::Eigen) | ||
|
||
if(BUILD_TESTING) | ||
find_package(ament_lint_auto REQUIRED) | ||
ament_lint_auto_find_test_dependencies() | ||
|
||
find_package(launch_testing_ament_cmake REQUIRED) | ||
add_launch_test(test/isaac_ros_occupancy_grid_localizer_pol_test.py) | ||
endif() | ||
|
||
ament_auto_package(INSTALL_TO_SHARE config launch maps params rviz) |
30 changes: 30 additions & 0 deletions
30
isaac_ros_occupancy_grid_localizer/config/namespace_injector_rule.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
%YAML 1.2 | ||
# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES | ||
# Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
--- | ||
name: OccupancyGridLocalizer Node Namespace Injector Rule | ||
operation: namespace_injector | ||
body: | ||
components: | ||
- type: nvidia::isaac::AtlasFrontend | ||
path_parameter_keys: [occupancy_grid_map] | ||
- type: nvidia::isaac::localization::Occupancy2DMapProvider | ||
path_parameter_keys: [atlas] | ||
- type: nvidia::isaac::localization::GridSearchLocalizer | ||
path_parameter_keys: [atlas, occupancy_2d_map_provider] | ||
- type: nvidia::isaac::TensorCopier | ||
path_parameter_keys: [cuda_stream] |
Oops, something went wrong.