-
 

dual_laser_merger package from dual_laser_merger repo

dual_laser_merger

Package Summary

Tags No category tags.
Version 0.1.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

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)

Package Description

merge dual lidar's scans.

Additional Links

No additional links.

Maintainers

  • pradyum

Authors

No additional authors.

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={
            'laser_1_topic': 'lidar1/scan',
            'laser_2_topic': 'lidar2/scan',
            'merged_topic': 'merged/scan',
            'publish_rate': '100',
            'target_frame': 'lsc_mount',
            'angle_increment': '0.001',
            'scan_time': '0.067',
            'range_min': '0.01',
            'range_max': '25.0',
            'min_height': '-1.0',
            'max_height': '1.0',
            'angle_min': '-3.141592654',
            'angle_max': '3.141592654',
            'use_inf': 'false',
        }.items(),
    )

    ld.add_action(dual_laser_merger_node)

    return ld


The following arguments can be changed as needed | Argument | Description | | — | — | | laser_1_topic | Input topic name of first laser scan | | laser_2_topic | Input topic name of second laser scan | | merged_topic | Output topic name of merged laser scan | | publish_rate | Merged laser scan publisher loop delay in milliseconds $( frequency = \frac{1}{publish\_rate} \times 1000 )$ | | target_frame | The target TF frame on which the merged laser scan will be publisher. | | angle_increment | angular distance between measurements [rad] of merged laser scan data | | scan_time | time between scans [seconds] of merged laser scan data | | range_min | minimum range value [m] of merged laser scan data | | range_max | maximum range value [m] of merged laser scan data | | min_height | minimum height from target frame in which the scan ports are accepted [m] | | max_height | maximum height from target frame in which the scan ports are accepted [m] | | angle_min | minimum angle value [rad] of merged laser scan data | | angle_max | maximum angle value [rad] of merged laser scan data | | use_inf | if true reports infinite values as +inf, else reported as range_max + 1 |

Issues

If you encounter any bugs, issues, or have suggestions for improvements, feel free to raise them by opening an issue on this repository. We appreciate your feedback and contributions to make this package better!

CHANGELOG

Changelog for package dual_laser_merger

0.1.1 (2024-11-23)

  • minor version bump denoting ros2 distro - humble

0.0.1 (2024-11-22)

  • added missing dependency
  • added shadow and average filters
  • added calibration functions
  • made node as ros component
  • added demo files
  • created ros package and added node cpp, launch file
  • Initial commit
  • Contributors: Pradyum Aadith, pradyum

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dual_laser_merger at Robotics Stack Exchange

No version for distro iron. Known supported distros are highlighted in the buttons above.

dual_laser_merger package from dual_laser_merger repo

dual_laser_merger

Package Summary

Tags No category tags.
Version 0.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

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)

Package Description

merge dual lidar's scans.

Additional Links

No additional links.

Maintainers

  • pradyum

Authors

No additional authors.

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={
            'laser_1_topic': 'lidar1/scan',
            'laser_2_topic': 'lidar2/scan',
            'merged_topic': 'merged/scan',
            'publish_rate': '100',
            'target_frame': 'lsc_mount',
            'angle_increment': '0.001',
            'scan_time': '0.067',
            'range_min': '0.01',
            'range_max': '25.0',
            'min_height': '-1.0',
            'max_height': '1.0',
            'angle_min': '-3.141592654',
            'angle_max': '3.141592654',
            'use_inf': 'false',
        }.items(),
    )

    ld.add_action(dual_laser_merger_node)

    return ld


The following arguments can be changed as needed | Argument | Description | | — | — | | laser_1_topic | Input topic name of first laser scan | | laser_2_topic | Input topic name of second laser scan | | merged_topic | Output topic name of merged laser scan | | publish_rate | Merged laser scan publisher loop delay in milliseconds $( frequency = \frac{1}{publish\_rate} \times 1000 )$ | | target_frame | The target TF frame on which the merged laser scan will be publisher. | | angle_increment | angular distance between measurements [rad] of merged laser scan data | | scan_time | time between scans [seconds] of merged laser scan data | | range_min | minimum range value [m] of merged laser scan data | | range_max | maximum range value [m] of merged laser scan data | | min_height | minimum height from target frame in which the scan ports are accepted [m] | | max_height | maximum height from target frame in which the scan ports are accepted [m] | | angle_min | minimum angle value [rad] of merged laser scan data | | angle_max | maximum angle value [rad] of merged laser scan data | | use_inf | if true reports infinite values as +inf, else reported as range_max + 1 |

Issues

If you encounter any bugs, issues, or have suggestions for improvements, feel free to raise them by opening an issue on this repository. We appreciate your feedback and contributions to make this package better!

CHANGELOG

Changelog for package dual_laser_merger

0.3.1 (2024-11-23)

  • minor version bump denoting ros2 distro - jazzy

0.0.1 (2024-11-22)

  • added missing dependency
  • added shadow and average filters
  • added calibration functions
  • made node as ros component
  • added demo files
  • created ros package and added node cpp, launch file
  • Initial commit
  • Contributors: Pradyum Aadith, pradyum

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dual_laser_merger at Robotics Stack Exchange

dual_laser_merger package from dual_laser_merger repo

dual_laser_merger

Package Summary

Tags No category tags.
Version 0.0.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

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)

Package Description

merge dual lidar's scans.

Additional Links

No additional links.

Maintainers

  • pradyum

Authors

No additional authors.

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={
            'laser_1_topic': 'lidar1/scan',
            'laser_2_topic': 'lidar2/scan',
            'merged_topic': 'merged/scan',
            'publish_rate': '100',
            'target_frame': 'lsc_mount',
            'angle_increment': '0.001',
            'scan_time': '0.067',
            'range_min': '0.01',
            'range_max': '25.0',
            'min_height': '-1.0',
            'max_height': '1.0',
            'angle_min': '-3.141592654',
            'angle_max': '3.141592654',
            'use_inf': 'false',
        }.items(),
    )

    ld.add_action(dual_laser_merger_node)

    return ld


The following arguments can be changed as needed | Argument | Description | | — | — | | laser_1_topic | Input topic name of first laser scan | | laser_2_topic | Input topic name of second laser scan | | merged_topic | Output topic name of merged laser scan | | publish_rate | Merged laser scan publisher loop delay in milliseconds $( frequency = \frac{1}{publish\_rate} \times 1000 )$ | | target_frame | The target TF frame on which the merged laser scan will be publisher. | | angle_increment | angular distance between measurements [rad] of merged laser scan data | | scan_time | time between scans [seconds] of merged laser scan data | | range_min | minimum range value [m] of merged laser scan data | | range_max | maximum range value [m] of merged laser scan data | | min_height | minimum height from target frame in which the scan ports are accepted [m] | | max_height | maximum height from target frame in which the scan ports are accepted [m] | | angle_min | minimum angle value [rad] of merged laser scan data | | angle_max | maximum angle value [rad] of merged laser scan data | | use_inf | if true reports infinite values as +inf, else reported as range_max + 1 |

Issues

If you encounter any bugs, issues, or have suggestions for improvements, feel free to raise them by opening an issue on this repository. We appreciate your feedback and contributions to make this package better!

CHANGELOG

Changelog for package dual_laser_merger

0.0.1 (2024-11-22)

  • added missing dependency
  • added shadow and average filters
  • added calibration functions
  • made node as ros component
  • added demo files
  • created ros package and added node cpp, launch file
  • Initial commit
  • Contributors: Pradyum Aadith, pradyum

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dual_laser_merger at Robotics Stack Exchange

No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.