Skip to content

Commit d3feb1b

Browse files
committed
Merge remote-tracking branch 'amilearning/orin' into fix_commits
2 parents b6465a3 + 0f617f5 commit d3feb1b

22 files changed

+3270
-822
lines changed

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
## ROS2 Elevation Mapping Cupy
2+
**Status**: Under Development 🚧
3+
### Features
4+
- **Point cloud-based map update**: *Functional*
5+
- **Image-based map update**: *Ongoing development*
6+
7+
### Dependencies -
8+
- **ROS 2 Humble**
9+
- **CUDA 12.4**
10+
- **PyTorch 2.4.0**
11+
12+
![Elevation Map in ROS 2 Humble with Gazebo ](https://github.com/user-attachments/assets/0dd9ebbe-a90d-486f-9871-81921308fab9)
13+
114
# Elevation Mapping cupy
215

316
![python tests](https://github.com/leggedrobotics/elevation_mapping_cupy/actions/workflows/python-tests.yml/badge.svg)

elevation_map_msgs/CMakeLists.txt

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ project(elevation_map_msgs)
44
find_package(ament_cmake REQUIRED)
55
find_package(geometry_msgs REQUIRED)
66
find_package(rosidl_default_generators REQUIRED)
7-
find_package(std_msgs REQUIRED) # Added dependency
7+
find_package(std_msgs REQUIRED) # Added std_msgs
88

99
set(msg_files
1010
"msg/Statistics.msg"
@@ -19,8 +19,37 @@ set(srv_files
1919
rosidl_generate_interfaces(${PROJECT_NAME}
2020
${msg_files}
2121
${srv_files}
22-
DEPENDENCIES geometry_msgs std_msgs # Combined dependencies
22+
DEPENDENCIES geometry_msgs std_msgs std_msgs # Added std_msgs
2323
)
2424

2525
ament_export_dependencies(rosidl_default_runtime)
26+
2627
ament_package()
28+
29+
# cmake_minimum_required(VERSION 3.8)
30+
# project(elevation_map_msgs)
31+
32+
# if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
33+
# add_compile_options(-Wall -Wextra -Wpedantic)
34+
# endif()
35+
36+
# # find dependencies
37+
# find_package(ament_cmake REQUIRED)
38+
# find_package(rosidl_default_generators REQUIRED)
39+
# find_package(builtin_interfaces REQUIRED)
40+
# find_package(std_msgs REQUIRED)
41+
# find_package(geometry_msgs REQUIRED)
42+
# find_package(action_msgs REQUIRED)
43+
44+
# rosidl_generate_interfaces(${PROJECT_NAME}
45+
# "msg/Statistics.msg"
46+
# "msg/ChannelInfo.msg"
47+
# "srv/CheckSafety.srv"
48+
# "srv/Initialize.srv"
49+
# DEPENDENCIES builtin_interfaces geometry_msgs std_msgs action_msgs
50+
# )
51+
52+
# ament_export_dependencies(rosidl_default_runtime)
53+
54+
# ament_package()
55+

elevation_map_msgs/package.xml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,25 @@
77
<author email="[email protected]">Takahiro Miki</author>
88
<license>MIT</license>
99

10+
<!-- Build and Runtime Dependencies -->
1011
<buildtool_depend>ament_cmake</buildtool_depend>
11-
12+
1213
<build_depend>geometry_msgs</build_depend>
1314
<build_depend>rosidl_default_generators</build_depend>
14-
<build_depend>std_msgs</build_depend> <!-- Added dependency -->
15-
15+
<build_depend>std_msgs</build_depend>
16+
1617
<exec_depend>geometry_msgs</exec_depend>
1718
<exec_depend>rosidl_default_runtime</exec_depend>
18-
<exec_depend>std_msgs</exec_depend> <!-- Added dependency -->
19+
<exec_depend>std_msgs</exec_depend>
1920

2021
<member_of_group>rosidl_interface_packages</member_of_group>
2122

23+
<!-- Testing Dependencies -->
24+
<test_depend>ament_lint_auto</test_depend>
25+
<test_depend>ament_lint_common</test_depend>
26+
2227
<export>
23-
<build_type>ament_cmake</build_type>
28+
<build_type>ament_cmake</build_type>
29+
<member_of_group>rosidl_interface_packages</member_of_group>
2430
</export>
2531
</package>
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
cmake_minimum_required(VERSION 3.8)
2+
project(elevation_mapping_cupy)
3+
4+
# # Enable C++11 (or higher if needed for ROS 2 and pybind11)
5+
# set(CMAKE_CXX_STANDARD 11)
6+
# set(CMAKE_CXX_STANDARD_REQUIRED ON)
7+
8+
# Compiler options
9+
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
10+
add_compile_options(-Wall -Wextra -Wpedantic)
11+
endif()
12+
# Additional dependencies
13+
# find_package(Python COMPONENTS Interpreter Development)
14+
find_package(PythonInterp 3 REQUIRED)
15+
find_package(pybind11 CONFIG REQUIRED)
16+
find_package(Eigen3 REQUIRED)
17+
find_package(OpenCV REQUIRED)
18+
19+
# Find pybind11
20+
21+
message([MAIN] "Found pybind11 v${pybind11_VERSION}: ${pybind11_INCLUDE_DIRS}")
22+
message([MAIN] "pybind11_INCLUDE_DIRS = ${pybind11_INCLUDE_DIRS}")
23+
message([MAIN] "pybind11_LIBRARIES = ${pybind11_LIBRARIES}")
24+
25+
# Find ROS 2 dependencies
26+
find_package(message_filters REQUIRED)
27+
find_package(ament_cmake REQUIRED)
28+
find_package(rclcpp REQUIRED)
29+
find_package(rclpy REQUIRED)
30+
find_package(builtin_interfaces REQUIRED)
31+
find_package(std_msgs REQUIRED)
32+
find_package(std_srvs REQUIRED)
33+
find_package(sensor_msgs REQUIRED)
34+
find_package(grid_map_msgs REQUIRED)
35+
find_package(geometry_msgs REQUIRED)
36+
find_package(elevation_map_msgs REQUIRED)
37+
find_package(grid_map_ros REQUIRED)
38+
find_package(image_transport REQUIRED)
39+
find_package(pcl_ros REQUIRED)
40+
find_package(tf2_eigen REQUIRED)
41+
find_package(ament_cmake_python REQUIRED)
42+
find_package(python_cmake_module REQUIRED)
43+
find_package(point_cloud_transport REQUIRED)
44+
45+
_ament_cmake_python_register_environment_hook()
46+
ament_python_install_package(${PROJECT_NAME} PACKAGE_DIR script/${PROJECT_NAME})
47+
48+
# List dependencies for ament_target_dependencies
49+
set(dependencies
50+
rclcpp
51+
rclpy
52+
std_msgs
53+
std_srvs
54+
builtin_interfaces
55+
geometry_msgs
56+
sensor_msgs
57+
elevation_map_msgs
58+
grid_map_msgs
59+
grid_map_ros
60+
image_transport
61+
pcl_ros
62+
message_filters
63+
tf2_eigen
64+
point_cloud_transport
65+
)
66+
67+
# Include directories
68+
include_directories(
69+
include
70+
${PYTHON_INCLUDE_DIRS}
71+
${Eigen3_INCLUDE_DIRS}
72+
${OpenCV_INCLUDE_DIRS}
73+
${pybind11_INCLUDE_DIRS}
74+
${elevation_map_msgs_INCLUDE_DIRS}
75+
)
76+
77+
# Declare C++ library
78+
add_library(elevation_mapping_ros
79+
src/elevation_mapping_wrapper.cpp
80+
src/elevation_mapping_ros.cpp
81+
)
82+
83+
# Link the library with necessary dependencies
84+
target_link_libraries(elevation_mapping_ros ${PYTHON_LIBRARIES} ${OpenCV_LIBRARIES} pybind11::embed)
85+
ament_target_dependencies(elevation_mapping_ros ${dependencies})
86+
87+
# Declare C++ executable
88+
add_executable(elevation_mapping_node src/elevation_mapping_node.cpp)
89+
90+
# Link the executable with the library and dependencies
91+
target_link_libraries(elevation_mapping_node elevation_mapping_ros ${OpenCV_LIBRARIES} pybind11::embed)
92+
ament_target_dependencies(elevation_mapping_node ${dependencies})
93+
94+
95+
96+
# Install targets
97+
install(
98+
TARGETS elevation_mapping_node
99+
DESTINATION lib/${PROJECT_NAME}
100+
ARCHIVE DESTINATION lib
101+
LIBRARY DESTINATION lib
102+
RUNTIME DESTINATION bin
103+
)
104+
105+
106+
install(TARGETS
107+
elevation_mapping_node
108+
DESTINATION lib/${PROJECT_NAME}
109+
)
110+
111+
112+
install(
113+
TARGETS elevation_mapping_ros
114+
DESTINATION lib/${PROJECT_NAME}
115+
ARCHIVE DESTINATION lib
116+
LIBRARY DESTINATION lib
117+
RUNTIME DESTINATION bin
118+
)
119+
120+
121+
122+
123+
install(PROGRAMS
124+
DESTINATION lib/${PROJECT_NAME}
125+
)
126+
127+
# Install launch and config directories
128+
install(
129+
DIRECTORY launch config
130+
DESTINATION share/${PROJECT_NAME}
131+
)
132+
133+
134+
135+
_ament_cmake_python_register_environment_hook()
136+
137+
138+
# ament_python_install_package(script/${PROJECT_NAME})
139+
# ament_python_install_package(script/${PROJECT_NAME})
140+
141+
142+
# Ament package declaration
143+
ament_package()

0 commit comments

Comments
 (0)