Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate ROS 1 elevation_mapping_cupy to ROS 2 (Humble) with Existing pybind11 Integration #107

Open
wants to merge 15 commits into
base: ros2_py
Choose a base branch
from

Conversation

amilearning
Copy link

Description

This pull request continues the migration of elevation_mapping_cupy to ROS 2, including the already existing pybind11 functionality from the ROS 1. Below are the details of the migration effort:

Changes Made

  1. Core ROS 2 Migration:
    • Migrated key components from ROS 1 to ROS 2:
      • Pointcloud-based map update.
      • Image-based map update.
    • Updated node interactions and replaced ROS 1 APIs with ROS 2 equivalents.
  2. pybind11 Integration:
    • Adapted the existing pybind11 bindings to work seamlessly in the ROS 2 framework.
    • Verified Python-C++ interactions for all existing functionality.
  3. Parameter Handling:
    • Currently, all parameters are centralized in core_param.yaml. This is not desirable for modularity and maintainability.
      To-Do: Split parameters into separate YAML files specific to individual components or nodes to improve clarity and reusability.
  4. Build System Updates:
    • Updated CMakeLists.txt and package.xml to ensure compatibility with ROS 2 while preserving pybind11 dependencies.
    • Updated to use ament_cmake for ROS 2 builds.
  5. Launch Files:
    • Replaced ROS 1 .launch files with .py launch files compatible with ROS 2.

Testing and Validation

  • ROS 2 Environment: Verified functionality in a ROS 2 environment (22.04, Humble).
  • pybind11 Compatibility: Tested existing pybind11 bindings to ensure smooth integration with the migrated ROS 2 components.
  • Launch Verification: Confirmed that the new .py launch files initialize nodes and bindings correctly.
  • Performance Checks: Ensured Python and C++ modules work together without degradation in performance(tested in Jetson AGX Orin).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant