ethz-asl/dynablox

Issue with Livox 369 Bag File and Visualization in RViz

nivand opened this issue · 3 comments

I hope this message finds you well. I am writing to raise an issue I encountered while using the Livox 369 bag file with the dynablox project.

I have attempted to use the Livox 369 bag file and made the necessary changes to the point cloud topics and lidar frame to livox/lidar and livox_frame. However, when I run experiment.py, I notice that nothing appears in RViz. Below are the relevant rostopic outputs I observed:

/clicked_point
/initialpose
/livox/lidar
/motion_detector/visualization/clusters
/motion_detector/visualization/detections/cluster/dynamic
/motion_detector/visualization/detections/cluster/static
/motion_detector/visualization/detections/object/dynamic
/motion_detector/visualization/detections/object/dynamic_array
/motion_detector/visualization/detections/object/static
/motion_detector/visualization/detections/object/static_array
/motion_detector/visualization/detections/point/dynamic
/motion_detector/visualization/detections/point/static
/motion_detector/visualization/ever_free
/motion_detector/visualization/ground_truth/cluster
/motion_detector/visualization/ground_truth/object
/motion_detector/visualization/ground_truth/point
/motion_detector/visualization/lidar_points
/motion_detector/visualization/lidar_pose
/motion_detector/visualization/lidar_pose_array
/motion_detector/visualization/mesh
/motion_detector/visualization/never_free
/motion_detector/visualization/slice/ever_free
/motion_detector/visualization/slice/never_free
/motion_detector/visualization/slice/points
/motion_detector/visualization/slice/tsdf
/motion_detector/voxblox/mesh
/motion_detector/voxblox/occupied_nodes
/motion_detector/voxblox/pointcloud
/motion_detector/voxblox/surface_pointcloud
/motion_detector/voxblox/tsdf_map_in
/motion_detector/voxblox/tsdf_map_out
/motion_detector/voxblox/tsdf_pointcloud
/motion_detector/voxblox/tsdf_slice
/move_base_simple/goal
/pointcloud
/rosout
/rosout_agg
/tf
/tf_static

In the main terminal, the following processes are active:

NODES
/
lidar_undistortion (lidar_undistortion/lidar_undistortion_node)
livox_to_jackal_tf (tf/static_transform_publisher)
livox_to_jackal_tf2 (tf/static_transform_publisher)
motion_detector (dynablox_ros/motion_detector)
player (rosbag/play)
rviz (rviz/rviz)
auto-starting new master
process[master]: started with pid [10439]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 5d5c38e8-3a09-11ef-ad83-7d23630c979c
process[rosout-1]: started with pid [10450]
started core service [/rosout]
process[player-2]: started with pid [10453]
process[lidar_undistortion-3]: started with pid [10458]
process[motion_detector-4]: started with pid [10459]
process[livox_to_jackal_tf-5]: started with pid [10460]
process[livox_to_jackal_tf2-6]: started with pid [10461]
process[rviz-7]: started with pid [10463]

I0704 14:28:58.097582 10459 motion_detector.cpp:61] Configuration:
================================ MotionDetector ================================
global_frame_name: map (default)
sensor_frame_name: (default)
queue_size: 20
evaluate: False (default)
visualize: True (default)
verbose: True (default)
num_threads: 8 (default)
shutdown_after: 10
================================ Preprocessing =================================
min_range [m]: 0.5 (default)
max_range [m]: 20 (default)
================================== Clustering ==================================
min_cluster_size: 20
max_cluster_size: 200000
min_extent [m]: 0
max_extent [m]: 200000
grow_clusters_twice: False
min_cluster_separation [m]: 0.2 (default)
check_cluster_separation_exact: False (default)
neighbor_connectivity: 6 (default)
=================================== Tracking ===================================
min_track_duration [frames]: 0 (default)
max_tracking_distance [m]: 1 (default)
============================== EverFreeIntegrator ==============================
counter_to_reset [frames]: 150
temporal_buffer [frames]: 2 (default)
burn_in_period: 5 (default)
tsdf_occupancy_threshold [m]: 0.3 (default)
neighbor_connectivity: 26
num_threads: 8 (default)
=============================== MotionVisualizer ===============================
global_frame_name: map (default)
static_point_color: [0, 0, 0, 1] (default)
dynamic_point_color: [1, 0, 0.5, 1] (default)
sensor_color: [1, 0, 0, 1] (default)
static_point_scale [m]: 0.03
dynamic_point_scale [m]: 0.08
sensor_scale [m]: 0.5
cluster_line_width [m]: 0.05 (default)
color_wheel_num_colors: 20 (default)
color_clusters: True (default)
true_positive_color: [0, 1, 0, 1] (default)
false_positive_color: [1, 0, 0, 1] (default)
true_negative_color: [0, 0, 0, 1] (default)
false_negative_color: [0, 0, 1, 1] (default)
out_of_bounds_color: [0, 0, 0, 0.1]
ever_free_color: [1, 0, 1, 0.5] (default)
never_free_color: [0, 1, 1, 0.5] (default)
point_level_slice_color: [1, 0, 1, 1] (default)
cluster_level_slice_color: [0, 1, 1, 1] (default)
slice_height [m]: -1
slice_relative_to_sensor: True (default)
visualization_max_z [m]: 100

Failed to find match for field 't'.
Failed to find match for field 'reflectivity'.
Failed to find match for field 'ring'.
Failed to find match for field 'ambient'.
Failed to find match for field 'range'.

[ WARN] [1720099741.756792187]: Waited 2.500s, but still could not get the TF from livox_frame to map
[ WARN] [1720099741.759166649]: Could not get correction transform within allotted time. Skipping pointcloud.

The system appears to be running without errors, but I still do not see any output in RViz. Additionally, the above warnings appear,
I have ensured that the TF frames are correctly set up, but the issue persists. Could you please provide guidance on resolving this issue or suggest any additional steps to debug this problem?

Thank you for your assistance.

Best regards,

Hi @nivand

This looks like the correct TF transform is not found. Have you verified, e.g. using rqt_tf_tree, that all frames are connected and the global frame name is correct?

Hi @nivand

This looks like the correct TF transform is not found. Have you verified, e.g. using rqt_tf_tree, that all frames are connected and the global frame name is correct?
Hi Lukas,
Thank you for your guidance. Based on the analysis of the error messages and the TF tree configuration, it appears that the root cause of the issue was related to the use of tf instead of tf2_ros. Now by using tf2_ros, the transforms are now correctly published and recognized, resolving the connectivity issue between the frames and ensuring timely availability of the necessary transforms for point cloud processing.

Great to hear that resolved the problem for you!