You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
When loading the Ouster nodelets into an existing nodelet manager, I noticed that sometimes the LIDAR does not start streaming. The other thing I noticed is that running rosservice call /existing_nodelet_manager/list doesn't return when this happens, indicating that very likely some nodelet is blocking in OnInit(). It appears the issue can be made to happen more frequently by reducing the sleep times in the launch-prefix entries (i.e. launch-prefix="bash -c 'sleep 6; $0 $@' "). I'd be interested why those weird sleeps are there in the first place and strongly suggest to make things work without them as this appears very brittle (due to system load and other factors might be impacting when a sleep duration is "enough" or not).
To Reproduce
Assume there is a existing existing_nodelet_manager getting started. Simultaneously start below launch file. When the sleeps are "too short" the LIDAR might not come up correctly. I managed to make it work by doubling the sleep times, but as mentioned above this appears quite brittle.
Platform (please complete the following information):
OS0-32 Rev.6
2.51
ROS melodic
Ubuntu 18.04
Arm64/Jetson
<?xml version="1.0"?>
<launch>
<argname="manager"default="existing_nodelet_manager" />
<argname="ouster_ns"default="ouster"doc="Override the default namespace of all ouster nodes"/>
<argname="sensor_hostname"default="192.168.45.50"doc="hostname or IP in dotted decimal form of the sensor" />
<argname="udp_dest"default="192.168.45.1"doc="hostname or IP where the sensor will send data packets" />
<argname="lidar_port"default="55500"doc="port to which the sensor should send lidar data" />
<argname="imu_port"default="55501"doc="port to which the sensor should send imu data" />
<argname="metadata"default="/home/robot_xy/logs/test.log"doc="override default metadata file for replays" />
<argname="image"default="true"doc="publish range/intensity/ambient image topic" />
<argname="tf_prefix"default=""doc="namespace for tf transforms" />
<argname="udp_profile_lidar"default=""doc="lidar packet profile; possible values: { LEGACY, RNG19_RFL8_SIG16_NIR16_DUAL, RNG19_RFL8_SIG16_NIR16, RNG15_RFL8_NIR8 }"/>
<argname="lidar_mode"default=""doc="resolution and rate; possible values: { 512x10, 512x20, 1024x10, 1024x20, 2048x10, 4096x5 }"/>
<argname="timestamp_mode"default=""doc="method used to timestamp measurements; possible values: { TIME_FROM_INTERNAL_OSC, TIME_FROM_SYNC_PULSE_IN, TIME_FROM_PTP_1588, TIME_FROM_ROS_TIME }"/>
<groupns="$(arg ouster_ns)">
<nodepkg="nodelet"type="nodelet"name="os_node"output="screen"launch-prefix="bash -c 'sleep 3; $0 $@' "args="load nodelets_os/OusterSensor /$(arg manager)">
<paramname="~/sensor_hostname"type="str"value="$(arg sensor_hostname)"/>
<paramname="~/udp_dest"type="str"value="$(arg udp_dest)"/>
<paramname="~/lidar_port"type="int"value="$(arg lidar_port)"/>
<paramname="~/imu_port"type="int"value="$(arg imu_port)"/>
<paramname="~/udp_profile_lidar"type="str"value="$(arg udp_profile_lidar)"/>
<paramname="~/lidar_mode"type="str"value="$(arg lidar_mode)"/>
<paramname="~/timestamp_mode"type="str"value="$(arg timestamp_mode)"/>
<paramname="~/metadata"type="str"value="$(arg metadata)"/>
</node>
<nodepkg="nodelet"type="nodelet"name="os_cloud_node"output="screen"launch-prefix="bash -c 'sleep 4; $0 $@' "args="load nodelets_os/OusterCloud /$(arg manager)">
<paramname="~/tf_prefix"type="str"value="$(arg tf_prefix)"/>
<paramname="~/timestamp_mode"type="str"value="$(arg timestamp_mode)"/>
</node>
<nodeif="$(arg image)"pkg="nodelet"type="nodelet"name="img_node"output="screen"launch-prefix="bash -c 'sleep 4; $0 $@' "args="load nodelets_os/OusterImage /$(arg manager)">
</node>
</group>
</launch>
.```
The text was updated successfully, but these errors were encountered:
Describe the bug
When loading the Ouster nodelets into an existing nodelet manager, I noticed that sometimes the LIDAR does not start streaming. The other thing I noticed is that running
rosservice call /existing_nodelet_manager/list
doesn't return when this happens, indicating that very likely some nodelet is blocking inOnInit()
. It appears the issue can be made to happen more frequently by reducing the sleep times in thelaunch-prefix
entries (i.e.launch-prefix="bash -c 'sleep 6; $0 $@' "
). I'd be interested why those weird sleeps are there in the first place and strongly suggest to make things work without them as this appears very brittle (due to system load and other factors might be impacting when a sleep duration is "enough" or not).To Reproduce
Assume there is a existing
existing_nodelet_manager
getting started. Simultaneously start below launch file. When the sleeps are "too short" the LIDAR might not come up correctly. I managed to make it work by doubling the sleep times, but as mentioned above this appears quite brittle.Platform (please complete the following information):
The text was updated successfully, but these errors were encountered: