Skip to content

Commit 4a96b3d

Browse files
Merge pull request #21 from NVIDIA-ISAAC-ROS/release-2.0.0
Isaac ROS 2.0.0
2 parents 970c643 + 1169b34 commit 4a96b3d

24 files changed

+363
-461
lines changed

README.md

Lines changed: 79 additions & 351 deletions
Large diffs are not rendered by default.

docs/isaac-sim-nav2-tutorial.md

Lines changed: 0 additions & 59 deletions
This file was deleted.

isaac_ros_occupancy_grid_localizer/CMakeLists.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#
1616
# SPDX-License-Identifier: Apache-2.0
1717

18-
cmake_minimum_required(VERSION 3.23.2)
18+
cmake_minimum_required(VERSION 3.22.1)
1919
project(isaac_ros_occupancy_grid_localizer LANGUAGES C CXX)
2020

2121
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
@@ -39,6 +39,12 @@ if(BUILD_TESTING)
3939
find_package(ament_lint_auto REQUIRED)
4040
ament_lint_auto_find_test_dependencies()
4141

42+
43+
# The FindPythonInterp and FindPythonLibs modules are removed
44+
if(POLICY CMP0148)
45+
cmake_policy(SET CMP0148 OLD)
46+
endif()
47+
4248
find_package(launch_testing_ament_cmake REQUIRED)
4349
add_launch_test(test/isaac_ros_occupancy_grid_localizer_pol_test.py)
4450
endif()

isaac_ros_occupancy_grid_localizer/config/occupancy_grid_localizer_node.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,10 @@ components:
4949
parameters:
5050
cell_size: 0.05 # Will be overidden with ROS parameter 'resolution'
5151
threshold: 200 # Will be overidden with ROS parameter 'occupancy_grid_map_threshold'
52-
binary_occupancy_map_tensor: binary_occupancy_map
52+
occupancy_map_image: binary_occupancy_map
5353
map_frame: global_pose_tree/map_frame
5454
device_allocator: device_allocator
55+
allocator: host_allocator
5556
- type: nvidia::gxf::CountSchedulingTerm
5657
parameters:
5758
count: 1
@@ -104,7 +105,7 @@ components:
104105
parameters:
105106
policy: 0
106107
- name: localization_to_pose3d
107-
type: nvidia::isaac::localization::LocalizationToPose3d
108+
type: nvidia::isaac::localization::LocalizationResultToPose3d
108109
parameters:
109110
rx_localization_result: rx_localization_result
110111
tx_pose3d_cov: tx_pose3d_cov
@@ -196,6 +197,9 @@ name: flatscan_beams_tensor_copier
196197
components:
197198
- name: rx_flatscan
198199
type: nvidia::gxf::DoubleBufferReceiver
200+
parameters:
201+
capacity: 1
202+
policy: 0
199203
- name: tx_flatscan
200204
type: nvidia::gxf::DoubleBufferTransmitter
201205
- type: nvidia::gxf::DownstreamReceptiveSchedulingTerm

isaac_ros_occupancy_grid_localizer/launch/isaac_ros_occupancy_grid_localizer_nav2.launch.py

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -108,19 +108,9 @@ def generate_launch_description():
108108
package='tf2_ros', executable='static_transform_publisher',
109109
parameters=[{'use_sim_time': LaunchConfiguration('use_sim_time')}],
110110
output='screen',
111-
arguments=['0.0', '0.0', '-0.3', '0.0', '0.0', '0.0', 'base_link',
112-
'base_footprint'],
111+
arguments=['0.0', '0.0', '0', '0.0', '0.0', '0.0', 'base_link', 'base_footprint'],
113112
condition=IfCondition(LaunchConfiguration('run_nav2')))
114113

115-
# Seting transform between lidar_frame and base_link
116-
# since Isaac Sim does not set this transform
117-
baselink_lidar_publisher = Node(
118-
package='tf2_ros', executable='static_transform_publisher',
119-
parameters=[{'use_sim_time': LaunchConfiguration('use_sim_time')}],
120-
output='screen',
121-
arguments=['0.0', '0.0', '0.0', '0.0', '0.0', '0.0', 'base_link',
122-
'lidar_frame'])
123-
124114
return LaunchDescription([
125115
map_file_arg,
126116
params_file_arg,
@@ -130,6 +120,5 @@ def generate_launch_description():
130120
rviz_launch,
131121
nav2_launch,
132122
baselink_basefootprint_publisher,
133-
baselink_lidar_publisher,
134123
occupancy_grid_localizer_container
135124
])

isaac_ros_occupancy_grid_localizer/package.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
2222
<package format="3">
2323
<name>isaac_ros_occupancy_grid_localizer</name>
24-
<version>0.31.0</version>
24+
<version>2.0.0</version>
2525
<description>Occupancy Grid Global Localizer.</description>
2626

2727
<maintainer email="[email protected]">Ashwin Varghese Kuruttukulam</maintainer>
@@ -39,6 +39,7 @@
3939
<depend>isaac_ros_nitros</depend>
4040
<depend>isaac_ros_nitros_pose_cov_stamped_type</depend>
4141
<depend>isaac_ros_nitros_flat_scan_type</depend>
42+
<depend>isaac_ros_pointcloud_utils</depend>
4243

4344
<build_depend>isaac_ros_common</build_depend>
4445

isaac_ros_occupancy_grid_localizer/src/occupancy_grid_localizer_node.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -324,14 +324,14 @@ void OccupancyGridLocalizerNode::FlatScanNitrosSubCallback(
324324
// and FlatScan frame_id
325325
pose_tree_handle->set(
326326
robot_frame_uid, pose_frame_uid->uid, 0.0,
327-
::isaac::Pose3d{
328-
::isaac::SO3d::FromQuaternion(
329-
::isaac::Quaterniond{
327+
::nvidia::isaac::Pose3d{
328+
::nvidia::isaac::SO3d::FromQuaternion(
329+
::nvidia::isaac::Quaterniond{
330330
baselink_to_lidar_transform.transform.rotation.w,
331331
baselink_to_lidar_transform.transform.rotation.x,
332332
baselink_to_lidar_transform.transform.rotation.y,
333333
baselink_to_lidar_transform.transform.rotation.z}),
334-
::isaac::Vector3d(
334+
::nvidia::isaac::Vector3d(
335335
baselink_to_lidar_transform.transform.translation.x,
336336
baselink_to_lidar_transform.transform.translation.y,
337337
baselink_to_lidar_transform.transform.translation.z)}
@@ -346,7 +346,7 @@ void OccupancyGridLocalizerNode::LocResultNitrosSubCallback(
346346
{
347347
auto msg_entity = nvidia::gxf::Entity::Shared(context, msg.handle);
348348
// Get pose
349-
auto maybe_pose = msg_entity->get<::isaac::Pose3d>(kPoseName);
349+
auto maybe_pose = msg_entity->get<::nvidia::isaac::Pose3d>(kPoseName);
350350
if (!maybe_pose) {
351351
std::stringstream error_msg;
352352
error_msg <<
@@ -364,15 +364,15 @@ void OccupancyGridLocalizerNode::LocResultNitrosSubCallback(
364364
// with the X-axis in pointing down and the Y-axis pointing to the right.
365365
// Hence the transformation matrix from the Isaac map frame to the
366366
// ROS map frame is as shown below
367-
auto ros_pose_isaac_transform = ::isaac::Pose3d{
368-
::isaac::SO3d::FromQuaternion(
369-
::isaac::Quaterniond{0.7071068, 0.0, 0.0, -0.7071068}),
370-
::isaac::Vector3d(0.0, map_png_height_ * cell_size_, 0.0)
367+
auto ros_pose_isaac_transform = ::nvidia::isaac::Pose3d{
368+
::nvidia::isaac::SO3d::FromQuaternion(
369+
::nvidia::isaac::Quaterniond{0.7071068, 0.0, 0.0, -0.7071068}),
370+
::nvidia::isaac::Vector3d(0.0, map_png_height_ * cell_size_, 0.0)
371371
};
372372

373373
auto ros_map_origin_transform =
374-
::isaac::Pose3d::FromPose2XY(
375-
{::isaac::SO2d::FromAngle(
374+
::nvidia::isaac::Pose3d::FromPose2XY(
375+
{::nvidia::isaac::SO2d::FromAngle(
376376
map_origin_[2]), {map_origin_[0], map_origin_[1]}});
377377

378378
// The ros_pose_isaac_transform transformation matrix is

isaac_ros_occupancy_grid_localizer/test/isaac_ros_occupancy_grid_localizer_pol_test.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ def test_occupancy_grid_localizer_pipeline(self) -> None:
117117
self.assertTrue(
118118
done, "Didn't receive output on localization_result topic!")
119119

120+
self.node._logger.info('At least one message was received.')
121+
120122
loc_result_actual = received_messages['localization_result'][0]
121123
self.assertAlmostEqual(loc_result_actual.pose.pose.position.x,
122124
33.5, None,
@@ -152,6 +154,8 @@ def test_occupancy_grid_localizer_pipeline(self) -> None:
152154
'received covariance is not within tolerance',
153155
TEST_COV_TOLERANCE)
154156

157+
self.node._logger.info('Received message was verified successfully.')
158+
155159
finally:
156160
pass
157161
self.assertTrue(self.node.destroy_subscription(

isaac_ros_pointcloud_utils/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,16 @@ if(BUILD_TESTING)
4949
find_package(ament_lint_auto REQUIRED)
5050
ament_lint_auto_find_test_dependencies()
5151

52+
53+
# The FindPythonInterp and FindPythonLibs modules are removed
54+
if(POLICY CMP0148)
55+
cmake_policy(SET CMP0148 OLD)
56+
endif()
57+
5258
find_package(launch_testing_ament_cmake REQUIRED)
5359
add_launch_test(test/isaac_ros_pointcloud_to_flatscan_pol_test.py)
60+
add_launch_test(test/isaac_ros_laserscan_to_flatscan_pol_test.py)
61+
add_launch_test(test/isaac_ros_flatscan_to_laserscan_pol_test.py)
5462
endif()
5563

5664
ament_auto_package(INSTALL_TO_SHARE config launch)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:eb847874ff8e7385fb4248d1a6db97cb0d99b6c04addfc2dafed7ec26a94cfba
3+
size 884736

0 commit comments

Comments
 (0)