Ford / AVData

Autonomous Vehicle Seasonal Dataset
MIT License
293 stars 68 forks source link

multi_lidar_convert failed by using the Sample-Data #10

Closed junjtang closed 4 years ago

junjtang commented 4 years ago

Hi all,

I used the sample data using following command: $ roslaunch ford_demo demo.launch map_dir:=/tmp/ford/Map calibration_dir:=/tmp/ford/Calibration-V2/ $ rosbag play /tmp/ford/Sample-Data.bag $ roslaunch ford_demo multi_lidar_convert.launch

The first two commands executed successfully. But I go following error in the third command:

[ERROR] [1586980154.104065718]: Failed to load nodelet [/velodyne_yellow_convert] of type [velodyne_pointcloud/CloudNodelet] even after refreshing the cache: According to the loaded plugin descriptions the class velodyne_pointcloud/CloudNodelet with base class type nodelet::Nodelet does not exist. Declared types are depth_image_proc/convert_metric depth_image_proc/crop_foremost depth_image_proc/disparity depth_image_proc/point_cloud_xyz depth_image_proc/point_cloud_xyz_radial depth_image_proc/point_cloud_xyzi depth_image_proc/point_cloud_xyzi_radial depth_image_proc/point_cloud_xyzrgb depth_image_proc/register image_proc/crop_decimate image_proc/crop_nonZero image_proc/crop_non_zero image_proc/debayer image_proc/rectify image_proc/resize image_publisher/image_publisher image_rotate/image_rotate image_view/disparity image_view/image nodelet_tutorial_math/Plus pcl/BAGReader pcl/BoundaryEstimation pcl/ConvexHull2D pcl/CropBox pcl/EuclideanClusterExtraction pcl/ExtractIndices pcl/ExtractPolygonalPrismData pcl/FPFHEstimation pcl/FPFHEstimationOMP pcl/MomentInvariantsEstimation pcl/MovingLeastSquares pcl/NodeletDEMUX pcl/NodeletMUX pcl/NormalEstimation pcl/NormalEstimationOMP pcl/NormalEstimationTBB pcl/PCDReader pcl/PCDWriter pcl/PFHEstimation pcl/PassThrough pcl/PointCloudConcatenateDataSynchronizer pcl/PointCloudConcatenateFieldsSynchronizer pcl/PrincipalCurvaturesEstimation pcl/ProjectInliers pcl/RadiusOutlierRemoval pcl/SACSegmentation pcl/SACSegmentationFromNormals pcl/SHOTEstimation pcl/SHOTEstimationOMP pcl/SegmentDifferences pcl/StatisticalOutlierRemoval pcl/VFHEstimation pcl/VoxelGrid stereo_image_proc/disparity stereo_image_proc/point_cloud2 [ERROR] [1586980154.104222810]: The error before refreshing the cache was: According to the loaded plugin descriptions the class velodyne_pointcloud/CloudNodelet with base class type nodelet::Nodelet does not exist. Declared types are depth_image_proc/convert_metric depth_image_proc/crop_foremost depth_image_proc/disparity depth_image_proc/point_cloud_xyz depth_image_proc/point_cloud_xyz_radial depth_image_proc/point_cloud_xyzi depth_image_proc/point_cloud_xyzi_radial depth_image_proc/point_cloud_xyzrgb depth_image_proc/register image_proc/crop_decimate image_proc/crop_nonZero image_proc/crop_non_zero image_proc/debayer image_proc/rectify image_proc/resize image_publisher/image_publisher image_rotate/image_rotate image_view/disparity image_view/image nodelet_tutorial_math/Plus pcl/BAGReader pcl/BoundaryEstimation pcl/ConvexHull2D pcl/CropBox pcl/EuclideanClusterExtraction pcl/ExtractIndices pcl/ExtractPolygonalPrismData pcl/FPFHEstimation pcl/FPFHEstimationOMP pcl/MomentInvariantsEstimation pcl/MovingLeastSquares pcl/NodeletDEMUX pcl/NodeletMUX pcl/NormalEstimation pcl/NormalEstimationOMP pcl/NormalEstimationTBB pcl/PCDReader pcl/PCDWriter pcl/PFHEstimation pcl/PassThrough pcl/PointCloudConcatenateDataSynchronizer pcl/PointCloudConcatenateFieldsSynchronizer pcl/PrincipalCurvaturesEstimation pcl/ProjectInliers pcl/RadiusOutlierRemoval pcl/SACSegmentation pcl/SACSegmentationFromNormals pcl/SHOTEstimation pcl/SHOTEstimationOMP pcl/SegmentDifferences pcl/StatisticalOutlierRemoval pcl/VFHEstimation pcl/VoxelGrid stereo_image_proc/disparity stereo_image_proc/point_cloud2

Any Idea to fix this?

ankitvora7 commented 4 years ago

@junjtang Can you try what is suggested regarding the velodyne packages on this reply ? https://github.com/Ford/AVData/issues/9#issuecomment-617079923

cicly commented 4 years ago

@junjtang sudo apt remove ros-kinetic-velodyne* cd ~/catkin_ws/src/ && git clone https://github.com/ros-drivers/velodyne.git You are installing both the official, released version (ros-kinetic-velodyne) and cloning from source.

junjtang commented 4 years ago

@junjtang sudo apt remove ros-kinetic-velodyne* cd ~/catkin_ws/src/ && git clone https://github.com/ros-drivers/velodyne.git You are installing both the official, released version (ros-kinetic-velodyne) and cloning from source.

When I run the catkin_make, I got the error to compile velodyne

In file included from /home/awsgui/catkin_ws/src/velodyne/velodyne_driver/src/lib/input.cc:56:0: /home/awsgui/catkin_ws/src/velodyne/velodyne_driver/include/velodyne_driver/input.h:58:18: fatal error: pcap.h: No such file or directory compilation terminated. velodyne/velodyne_driver/src/lib/CMakeFiles/velodyne_input.dir/build.make:62: recipe for target 'velodyne/velodyne_driver/src/lib/CMakeFiles/velodyne_input.dir/input.cc.o' failed make[2]: [velodyne/velodyne_driver/src/lib/CMakeFiles/velodyne_input.dir/input.cc.o] Error 1 CMakeFiles/Makefile2:4598: recipe for target 'velodyne/velodyne_driver/src/lib/CMakeFiles/velodyne_input.dir/all' failed make[1]: [velodyne/velodyne_driver/src/lib/CMakeFiles/velodyne_input.dir/all] Error 2 make[1]: Waiting for unfinished jobs.... [ 46%] Linking CXX executable /home/awsgui/catkin_ws/devel/lib/velodyne_laserscan/velodyne_laserscan_node [ 46%] Built target velodyne_laserscan_node Makefile:138: recipe for target 'all' failed make: [all] Error 2

junjtang commented 4 years ago

have to install dependency apt-get install libpcap0.8-dev

junjtang commented 4 years ago

It now works fine, but I got the error for the sample file: For frame [velodyne]: Frame [velodyne] does not exist

Is there any specific rosbag file with the proper velodyne frame?

ankitvora7 commented 4 years ago

@junjtang were you able to fix this ? Can you tell which branch are you using from the velodyne repo and what kind of system configuration do you have ?

junjtang commented 4 years ago

@ankitvora7 I still miss the frame. I use git clone https://github.com/ros-drivers/velodyne.git to get the master branch. I installed the ROS Kinetic on Ubuntu 16.04. Anything else you want to know?

ankitvora7 commented 4 years ago

@junjtang I tried again with the latest branch of the velodyne repo and in the system same as your configuration. It works fine on our end. Can you run the following commands in separate terminals and share the terminal output ?

roslaunch ford_demo demo.launch map_dir:=/path/to/map/folder/ calibration_dir:=/path/to/calibration/folder/
rosbag play /path/to/your/bag/file/name.bag
roslaunch ford_demo multi_lidar_convert.launch

Also, are you getting this error on terminal or Rviz window? If it is Rviz, can you manually type in the name of the fixed frame as 'body'?

junjtang commented 4 years ago

hi @ankitvora7

$roslaunch ford_demo demo.launch map_dir:=/home/awsgui/ford/Map calibration_dir:=/home/awsgui/ford/Calibration-V2 ... logging to /home/awsgui/.ros/log/e14410a0-89f9-11ea-9ed8-0aa63d088a3e/roslaunch-ip-xxxxx.log Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://ip-xxxxx:38089/

SUMMARY

PARAMETERS

NODES / extrinsics_broadcaster (ford_demo/extrinsics_broadcast.sh) point_cloud_map_loader (map_loader/point_cloud_map_loader) reflectivity_map_loader (map_loader/reflectivity_map_loader) rviz (rviz/rviz)

auto-starting new master process[master]: started with pid [12474] ROS_MASTER_URI=http://localhost:11311

setting /run_id to e14410a0-89f9-11ea-9ed8-0aa63d088a3e process[rosout-1]: started with pid [12487] started core service [/rosout] process[reflectivity_map_loader-2]: started with pid [12500] process[point_cloud_map_loader-3]: started with pid [12505] process[extrinsics_broadcaster-4]: started with pid [12506] process[rviz-5]: started with pid [12530] [extrinsics_broadcaster-4] process has finished cleanly log file: /home/awsgui/.ros/log/e14410a0-89f9-11ea-9ed8-0aa63d088a3e/extrinsics_broadcaster-4*.log

$ rosbag play /home/awsgui/ford/Sample-Data.bag [ INFO] [1588151863.257081657]: Opening /home/awsgui/ford/Sample-Data.bag

Waiting 0.2 seconds after advertising topics... done.

Hit space to toggle paused, or 's' to step. [RUNNING] Bag Time: 1501822150.298375 Duration: 27.267981 / 27.272558 40.45 Done.

$ roslaunch ford_demo multi_lidar_convert.launch ... logging to /home/awsgui/.ros/log/e14410a0-89f9-11ea-9ed8-0aa63d088a3e/roslaunch-ip-xxxx.log Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://ip-xxxx:38780/

SUMMARY

PARAMETERS

NODES / velodyne_blue_convert (nodelet/nodelet) velodyne_green_convert (nodelet/nodelet) velodyne_nodelet_manager (nodelet/nodelet) velodyne_red_convert (nodelet/nodelet) velodyne_yellow_convert (nodelet/nodelet)

ROS_MASTER_URI=http://localhost:11311

process[velodyne_nodelet_manager-1]: started with pid [13082] process[velodyne_red_convert-2]: started with pid [13083] process[velodyne_yellow_convert-3]: started with pid [13084] process[velodyne_blue_convert-4]: started with pid [13085] process[velodyne_green_convert-5]: started with pid [13086]

junjtang commented 4 years ago

@junjtang I tried again with the latest branch of the velodyne repo and in the system same as your configuration. It works fine on our end. Can you run the following commands in separate terminals and share the terminal output ?

roslaunch ford_demo demo.launch map_dir:=/path/to/map/folder/ calibration_dir:=/path/to/calibration/folder/
rosbag play /path/to/your/bag/file/name.bag
roslaunch ford_demo multi_lidar_convert.launch

Also, are you getting this error on terminal or Rviz window? If it is Rviz, can you manually type in the name of the fixed frame as 'body'?

Where can I type the name of the fixed frame? image

cicly commented 4 years ago

@junjtang set frame_id

<param name="calibration" value="$(arg calibration)"/>
<param name="max_range" value="$(arg max_range)"/>
<param name="min_range" value="$(arg min_range)"/>
<remap from="velodyne_packets" to="lidar_red_scan"/>
<remap from="velodyne_points" to="lidar_red_pointcloud"/>
<param name="target_frame" value="/lidar_red"/>
junjtang commented 4 years ago

@junjtang set frame_id

<param name="calibration" value="$(arg calibration)"/>
<param name="max_range" value="$(arg max_range)"/>
<param name="min_range" value="$(arg min_range)"/>
<remap from="velodyne_packets" to="lidar_red_scan"/>
<remap from="velodyne_points" to="lidar_red_pointcloud"/>
<param name="target_frame" value="/lidar_red"/>

@cicly which file is this? should I add a new parameter frame_id and set the "body" as value?

ankitvora7 commented 4 years ago

@junjtang were you able to fix this?

junjtang commented 4 years ago

@junjtang were you able to fix this?

not yet, please explain me where to set the frame id: which config file and which parameter, thanks!

ankitvora7 commented 4 years ago

@junjtang were you able to fix this?

not yet, please explain me where to set the frame id: which config file and which parameter, thanks!

Do you get this issue only for blue or all lidars ? One debug step would be to publish a static transform between velodyne and lidar_blue frame using

rosrun tf static_transform_publisher 0 0 0 0 0 0 velodyne lidar_blue 10

Remove the visualization for other lidars and see if you can visualize only blue lidar

cicly commented 4 years ago

@junjtang set “multi_lidar_convert.launch”

image

erksch commented 4 years ago

The LiDAR data is not showing up for me either, I set the target_frame but got the following error:

Failed to transform from frame [/lidar_red] to frame [map]

Also I get the following warnings with roslaunch ford_demo multi_lidar_convert.launch:

[ WARN] [1591172983.355566304]: Timings not supported for model 64E
[ WARN] [1591172983.355619289]: NO TIMING OFFSETS CALCULATED. ARE YOU USING A SUPPORTED VELODYNE SENSOR?
[ WARN] [1591172983.471584976]: Timings not supported for model 64E
[ WARN] [1591172983.471721223]: NO TIMING OFFSETS CALCULATED. ARE YOU USING A SUPPORTED VELODYNE SENSOR?
[ WARN] [1591172983.544529317]: Timings not supported for model 64E
[ WARN] [1591172983.544747158]: NO TIMING OFFSETS CALCULATED. ARE YOU USING A SUPPORTED VELODYNE SENSOR?
[ WARN] [1591172983.626970934]: Timings not supported for model 64E
[ WARN] [1591172983.627039056]: NO TIMING OFFSETS CALCULATED. ARE YOU USING A SUPPORTED VELODYNE SENSOR?
ankitvora7 commented 4 years ago

NO TIMING OFFSETS CALCULATED

Hi @erksch We pushed two fixes to master. Can you try both the master branch (please fetch it first) and the 'velodyne-model-fix' and see if either of them work for you? Make sure you have the bag file playing and you also run the demo.launch file

ankitvora7 commented 4 years ago

@junjtang were you able to fix this?

not yet, please explain me where to set the frame id: which config file and which parameter, thanks!

@junjtang Were you able to fix this ? If not, please fetch the master branch and see if you still have issues. The velodyne package was updated as a result we needed to modify certain parameters.

ankitvora7 commented 4 years ago

Closing this due to inactivity. Please reopen if there are issues.

vniclas commented 3 years ago

Hi @ankitvora7 I was running into the same issues as described above (CloudNodelet doesn't exist and NO TIMING OFFSETS CALCULATED). The first was fixed by replacing all occurrences of CloudNodelet with TransformNodelet after I realized that the velodyne package (pulled the master branch today) doesn't contain CloudNodelet anymore. The second issues was resolved by using your branch velodyne-model-fix. On top of that, I also needed to remove all leading slashes ("/") in all fixed and target frames, e.g., lidar_red instead of /lidar_red. Using a slash resulted in crashing the nodelet: _Warning: Invalid argument "/lidar_red" passed to canTransform argument target_frame in tf2 frameids cannot start with a '/' like ... I'm using melodic on ubuntu 18.04.