Pointcloud to laserscan node not launching as expected with multiple namespaces

asked 2021-12-21 01:19:03 -0500

Elle gravatar image

I am new to ros and I am trying to implement multi-jackal slam with gmapping, with Velodyne lidar. I added a pointcloud_to_laserscan_node to filter velodyne lidar readings to laser scan data. My implementation worked with one jackal, when it comes to two jackals, the (ns)/point_cloud_to_laserscan_node cannot launch properly, instead, it shows a node named n__jackal1__pointcloud_to_laserscan, and error showed up saying process has died.

Can anyone think of any reason I am getting this error? Thank you so much

Here's my implementation of the pointcloud to laser scan filter launch file <launch> <node name="floor_removal" pkg="vld16_process" type="floor_removal" output="screen" &gt;="" <remap="" from="/velodyne_points" to="/jackal1/velodyne_points"/> <remap from="/velodyne_points/floor_removed" to="/jackal1/velodyne_points/floor_removed"/> </node>

<!-- Launch the nodelet manager for pcl -->
<node pkg="nodelet" type="nodelet" name="pcl_manager" args="manager" output="screen" />

<!-- Passthrough to filter out points outside the CropBox -->
<node pkg="nodelet" type="nodelet" name="passthrough" args="load pcl/PassThrough pcl_manager" output="screen" >
    <remap from="~input" to="/jackal1/velodyne_points/floor_removed/" />
    <remap from="~output" to="/jackal1/velodyne_points/passthrough/" />
        filter_field_name: x
        filter_limit_min: -0.55
        filter_limit_max: 0.00
        filter_limit_negative: True

        filter_field_name: y
        filter_limit_min: -0.30
        filter_limit_max: 0.30
        filter_limit_negative: True

<!-- Get rid of pesky noise using radius outlier filter -->
<node pkg="nodelet" type="nodelet" name="radius_outlier_removal" args="load pcl/RadiusOutlierRemoval pcl_manager" output="screen" >
    <remap from="~input" to="/jackal1/velodyne_points/passthrough/" />
    <remap from="~output" to="/jackal1/velodyne_points/outlier_removed/" />
        <!-- Neighbor area to check points -->
        <!-- Keep points with neighbor points larger than this number -->
        radius_search: 0.10
        min_neighbors: 1

<!-- VoxelGrid downsampling to produce a less dense point cloud -->
<node pkg="nodelet" type="nodelet" name="voxel_grid" args="load pcl/VoxelGrid pcl_manager" output="screen" >
    <remap from="~input" to="/jackal1/velodyne_points/outlier_removed/" />
    <remap from="~output" to="/jackal1/velodyne_points/filtered/" />
        filter_field_name: z
        filter_limit_min: -0.28
        filter_limit_max: 0.10
        filter_limit_negative: False
        leaf_size: 0.05

<node pkg="tf" type="static_transform_publisher" name="velodyne_to_front_laser" 
        args="0 0 0 0 0 0 /jackal1/velodyne /jackal1/front_laser 100" />

<!-- Transfer 3D pointcloud data to 2D laserscan data -->
<node pkg="pointcloud_to_laserscan" type="pointcloud_to_laserscan_node" name="pointcloud_to_laserscan" ns="jackal1">
    <remap from="cloud_in" to="/jackal1/velodyne_points/filtered"/>
    <remap from="scan" to="/jackal1/front/scan"/>
        transform_tolerance: 0.01
        min_height: -1.0
        max_height: 1.0

        angle_min: -3.1416
        angle_max: 3.1416
        angle_increment: 0.0087
        scan_time: 0.1
        range_min: 0.1
        range_max: 20.0
        use_inf: true
        concurrency_level: 0


here's my main launch file.

<launch> <arg name="gui" default="true"/> <arg name="rviz" default="true"/> <arg name="ns0" default="jackal0"/> <arg name="ns1" default="jackal1"/> <arg name="ns2" default="jackal2"/> <arg name="config0" default="base"/> <arg name="config0_id" default="0"/> <arg name="config1" default="base"/> <arg name="config1_id" default="1"/> <arg name="config2" default="base"/> <arg name ... (more)

edit retag flag offensive close merge delete