Repo symbol

dual_laser_merger repository

dual_laser_merger

Repository Summary

Checkout URI https://github.com/pradyum/dual_laser_merger.git
VCS Type git
VCS Version humble
Last Updated 2024-11-23
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
dual_laser_merger 0.1.1

README

dual_laser_merger

License

ROS 2 Package to merge dual lidar scan data. This package provide a node to concatenate pointcloud. First the laser scans are coverted to pointclouds which is then transformed to target_frame and concatenated. After this concatenated pointcloud is convert to laserscan.

demo

Build from source

This package currently works on ROS 2 Distributions: Humble, Jazzy, Rolling

mkdir laser_merger_ws/src -p
cd laser_merger_ws/src
git clone -b humble https://github.com/pradyum/dual_laser_merger.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
colcon build --symlink-install
source install/setup.bash

Example Demo using recorded bag file

This demo shows merging of laser scan data from 2 lidars.

ros2 launch dual_laser_merger demo_laser_merger.launch.py

Requirements

  1. Lidar 1 scan topic, the messages in the topic are required to have frame_id.
   ~$ ros2 topic info /lidar1/scan
      Type: sensor_msgs/msg/LaserScan
   
  1. Lidar 2 scan topic, the messages in the topic are required to have frame_id.
   ~$ ros2 topic info /lidar2/scan
      Type: sensor_msgs/msg/LaserScan
   
  1. TF from Lidar 1 (laser_1) and Lidar 2 (laser_2) to Target frame (lsc_mount)
  ~$ ros2 topic echo /tf_static 
  transforms:
    - header:
        stamp:
          sec: 1729076136
          nanosec: 564956753
        frame_id: lsc_mount
      child_frame_id: laser_1
      transform:
        translation:
          x: 0.321967
          y: 0.221817
          z: 0.0
        rotation:
          x: 0.3826834321814926
          y: 0.9238795325873352
          z: 3.9573888241688663e-14
          w: -9.553981776262265e-14
  
  transforms:
    - header:
        stamp:
          sec: 1729076136
          nanosec: 580013258
        frame_id: lsc_mount
      child_frame_id: laser_2
      transform:
        translation:
          x: -0.321967
          y: -0.221817
          z: 0.0
        rotation:
          x: -0.9238795324744832
          y: 0.38268343245394154
          z: -9.553981775095244e-14
          w: -3.957388826986303e-14
  

tf

Usage

This is included as a launch file as shown

``` from ament_index_python.packages import get_package_share_directory from launch import LaunchDescription from launch.actions import IncludeLaunchDescription from launch.launch_description_sources import PythonLaunchDescriptionSource

def generate_launch_description():

ld = LaunchDescription()

dual_laser_merger_node = IncludeLaunchDescription(
    PythonLaunchDescriptionSource(
        [
            f"{get_package_share_directory('dual_laser_merger')}/dual_laser_merger.launch.py"
        ]
    ),
    launch_arguments={

File truncated at 100 lines see the full file

CONTRIBUTING

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

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.
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. ~~~
Repo symbol

dual_laser_merger repository

dual_laser_merger

Repository Summary

Checkout URI https://github.com/pradyum/dual_laser_merger.git
VCS Type git
VCS Version jazzy
Last Updated 2024-11-23
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
dual_laser_merger 0.3.1

README

dual_laser_merger

License

ROS 2 Package to merge dual lidar scan data. This package provide a node to concatenate pointcloud. First the laser scans are coverted to pointclouds which is then transformed to target_frame and concatenated. After this concatenated pointcloud is convert to laserscan.

demo

Build from source

This package currently works on ROS 2 Distributions: Humble, Jazzy, Rolling

mkdir laser_merger_ws/src -p
cd laser_merger_ws/src
git clone -b jazzy https://github.com/pradyum/dual_laser_merger.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
colcon build --symlink-install
source install/setup.bash

Example Demo using recorded bag file

This demo shows merging of laser scan data from 2 lidars.

ros2 launch dual_laser_merger demo_laser_merger.launch.py

Requirements

  1. Lidar 1 scan topic, the messages in the topic are required to have frame_id.
   ~$ ros2 topic info /lidar1/scan
      Type: sensor_msgs/msg/LaserScan
   
  1. Lidar 2 scan topic, the messages in the topic are required to have frame_id.
   ~$ ros2 topic info /lidar2/scan
      Type: sensor_msgs/msg/LaserScan
   
  1. TF from Lidar 1 (laser_1) and Lidar 2 (laser_2) to Target frame (lsc_mount)
  ~$ ros2 topic echo /tf_static 
  transforms:
    - header:
        stamp:
          sec: 1729076136
          nanosec: 564956753
        frame_id: lsc_mount
      child_frame_id: laser_1
      transform:
        translation:
          x: 0.321967
          y: 0.221817
          z: 0.0
        rotation:
          x: 0.3826834321814926
          y: 0.9238795325873352
          z: 3.9573888241688663e-14
          w: -9.553981776262265e-14
  
  transforms:
    - header:
        stamp:
          sec: 1729076136
          nanosec: 580013258
        frame_id: lsc_mount
      child_frame_id: laser_2
      transform:
        translation:
          x: -0.321967
          y: -0.221817
          z: 0.0
        rotation:
          x: -0.9238795324744832
          y: 0.38268343245394154
          z: -9.553981775095244e-14
          w: -3.957388826986303e-14
  

tf

Usage

This is included as a launch file as shown

``` from ament_index_python.packages import get_package_share_directory from launch import LaunchDescription from launch.actions import IncludeLaunchDescription from launch.launch_description_sources import PythonLaunchDescriptionSource

def generate_launch_description():

ld = LaunchDescription()

dual_laser_merger_node = IncludeLaunchDescription(
    PythonLaunchDescriptionSource(
        [
            f"{get_package_share_directory('dual_laser_merger')}/dual_laser_merger.launch.py"
        ]
    ),
    launch_arguments={

File truncated at 100 lines see the full file

CONTRIBUTING

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

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.
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. ~~~
Repo symbol

dual_laser_merger repository

dual_laser_merger

Repository Summary

Checkout URI https://github.com/pradyum/dual_laser_merger.git
VCS Type git
VCS Version rolling
Last Updated 2024-11-22
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
dual_laser_merger 0.0.1

README

dual_laser_merger

License

ROS 2 Package to merge dual lidar scan data. This package provide a node to concatenate pointcloud. First the laser scans are coverted to pointclouds which is then transformed to target_frame and concatenated. After this concatenated pointcloud is convert to laserscan.

demo

Build from source

This package currently works on ROS 2 Distributions: Humble, Jazzy, Rolling

mkdir laser_merger_ws/src -p
cd laser_merger_ws/src
git clone https://github.com/pradyum/dual_laser_merger.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
colcon build --symlink-install
source install/setup.bash

Example Demo using recorded bag file

This demo shows merging of laser scan data from 2 lidars.

ros2 launch dual_laser_merger demo_laser_merger.launch.py

Requirements

  1. Lidar 1 scan topic, the messages in the topic are required to have frame_id.
   ~$ ros2 topic info /lidar1/scan
      Type: sensor_msgs/msg/LaserScan
   
  1. Lidar 2 scan topic, the messages in the topic are required to have frame_id.
   ~$ ros2 topic info /lidar2/scan
      Type: sensor_msgs/msg/LaserScan
   
  1. TF from Lidar 1 (laser_1) and Lidar 2 (laser_2) to Target frame (lsc_mount)
  ~$ ros2 topic echo /tf_static 
  transforms:
    - header:
        stamp:
          sec: 1729076136
          nanosec: 564956753
        frame_id: lsc_mount
      child_frame_id: laser_1
      transform:
        translation:
          x: 0.321967
          y: 0.221817
          z: 0.0
        rotation:
          x: 0.3826834321814926
          y: 0.9238795325873352
          z: 3.9573888241688663e-14
          w: -9.553981776262265e-14
  
  transforms:
    - header:
        stamp:
          sec: 1729076136
          nanosec: 580013258
        frame_id: lsc_mount
      child_frame_id: laser_2
      transform:
        translation:
          x: -0.321967
          y: -0.221817
          z: 0.0
        rotation:
          x: -0.9238795324744832
          y: 0.38268343245394154
          z: -9.553981775095244e-14
          w: -3.957388826986303e-14
  

tf

Usage

This is included as a launch file as shown

``` from ament_index_python.packages import get_package_share_directory from launch import LaunchDescription from launch.actions import IncludeLaunchDescription from launch.launch_description_sources import PythonLaunchDescriptionSource

def generate_launch_description():

ld = LaunchDescription()

dual_laser_merger_node = IncludeLaunchDescription(
    PythonLaunchDescriptionSource(
        [
            f"{get_package_share_directory('dual_laser_merger')}/dual_laser_merger.launch.py"
        ]
    ),
    launch_arguments={

File truncated at 100 lines see the full file

CONTRIBUTING

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

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.
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. ~~~
Repo symbol

dual_laser_merger repository

dual_laser_merger

Repository Summary

Checkout URI https://github.com/pradyum/dual_laser_merger.git
VCS Type git
VCS Version rolling
Last Updated 2024-11-22
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
dual_laser_merger 0.0.1

README

dual_laser_merger

License

ROS 2 Package to merge dual lidar scan data. This package provide a node to concatenate pointcloud. First the laser scans are coverted to pointclouds which is then transformed to target_frame and concatenated. After this concatenated pointcloud is convert to laserscan.

demo

Build from source

This package currently works on ROS 2 Distributions: Humble, Jazzy, Rolling

mkdir laser_merger_ws/src -p
cd laser_merger_ws/src
git clone https://github.com/pradyum/dual_laser_merger.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
colcon build --symlink-install
source install/setup.bash

Example Demo using recorded bag file

This demo shows merging of laser scan data from 2 lidars.

ros2 launch dual_laser_merger demo_laser_merger.launch.py

Requirements

  1. Lidar 1 scan topic, the messages in the topic are required to have frame_id.
   ~$ ros2 topic info /lidar1/scan
      Type: sensor_msgs/msg/LaserScan
   
  1. Lidar 2 scan topic, the messages in the topic are required to have frame_id.
   ~$ ros2 topic info /lidar2/scan
      Type: sensor_msgs/msg/LaserScan
   
  1. TF from Lidar 1 (laser_1) and Lidar 2 (laser_2) to Target frame (lsc_mount)
  ~$ ros2 topic echo /tf_static 
  transforms:
    - header:
        stamp:
          sec: 1729076136
          nanosec: 564956753
        frame_id: lsc_mount
      child_frame_id: laser_1
      transform:
        translation:
          x: 0.321967
          y: 0.221817
          z: 0.0
        rotation:
          x: 0.3826834321814926
          y: 0.9238795325873352
          z: 3.9573888241688663e-14
          w: -9.553981776262265e-14
  
  transforms:
    - header:
        stamp:
          sec: 1729076136
          nanosec: 580013258
        frame_id: lsc_mount
      child_frame_id: laser_2
      transform:
        translation:
          x: -0.321967
          y: -0.221817
          z: 0.0
        rotation:
          x: -0.9238795324744832
          y: 0.38268343245394154
          z: -9.553981775095244e-14
          w: -3.957388826986303e-14
  

tf

Usage

This is included as a launch file as shown

``` from ament_index_python.packages import get_package_share_directory from launch import LaunchDescription from launch.actions import IncludeLaunchDescription from launch.launch_description_sources import PythonLaunchDescriptionSource

def generate_launch_description():

ld = LaunchDescription()

dual_laser_merger_node = IncludeLaunchDescription(
    PythonLaunchDescriptionSource(
        [
            f"{get_package_share_directory('dual_laser_merger')}/dual_laser_merger.launch.py"
        ]
    ),
    launch_arguments={

File truncated at 100 lines see the full file

CONTRIBUTING

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

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.
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. ~~~
Repo symbol

dual_laser_merger repository

Repo symbol

dual_laser_merger repository

Repo symbol

dual_laser_merger repository

Repo symbol

dual_laser_merger repository

Repo symbol

dual_laser_merger repository

Repo symbol

dual_laser_merger repository

Repo symbol

dual_laser_merger repository

Repo symbol

dual_laser_merger repository

Repo symbol

dual_laser_merger repository

Repo symbol

dual_laser_merger repository

Repo symbol

dual_laser_merger repository

Repo symbol

dual_laser_merger repository

Repo symbol

dual_laser_merger repository

Repo symbol

dual_laser_merger repository

Repo symbol

dual_laser_merger repository