Robotics StackExchange | Archived questions

lidar_camera_calibration stalls

I am using the following library to try to calibrate a Velodyne LiDAR to a PiCam RGB camera: https://github.com/ankitdhall/lidar_camera_calibration. It took me a while to configure, but now everything builds and runs; however, the program is hanging up. Here's the printouts I get when I run it.

user@computer$ roslaunch lidar_camera_calibration find_transform.launch
... logging to /home/manny/.ros/log/703a468e-d0dc-11e5-9811-b827eb0c153d/roslaunch-manny-13746.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://manny:33471/

SUMMARY
========

PARAMETERS
 * /aruco_mapping/calibration_file: /home/manny/Code/...
 * /aruco_mapping/marker_size: 0.1016
 * /aruco_mapping/num_of_markers: 1
 * /aruco_mapping/roi_allowed: False
 * /aruco_mapping/space_type: plane
 * /lidar_camera_calibration/camera_frame_topic: /raspicam_node/im...
 * /lidar_camera_calibration/camera_info_topic: /raspicam_node/ca...
 * /lidar_camera_calibration/velodyne_topic: /velodyne_points
 * /rosdistro: melodic
 * /rosversion: 1.14.3

NODES
  /
    aruco_mapping (aruco_mapping/aruco_mapping)
    find_transform (lidar_camera_calibration/find_transform)

ROS_MASTER_URI=http://stick:11311

process[aruco_mapping-1]: started with pid [13756]
process[find_transform-2]: started with pid [13757]
Size of the frame: 1280 x 960
Limits: -2.5 to 2.5
Limits: -4 to 4
Limits: 0 to 1.7
Number of markers: 1
Intensity threshold (between 0.0 and 1.0): 0.0004
useCameraInfo: 0
Projection matrix: 
[981.17163, 0, 640, 0;
 0, 981.17163, 480, 0;
 0, 0, 1, 0]
MAX_ITERS: 100
[ INFO] [1547151515.113124565]: Reading CameraInfo from configuration file
[ INFO] [1547151515.790099973]: Calibration file path: /home/manny/Code/catkin_ws/src/aruco_mapping/data/picam_calibration.ini
[ INFO] [1547151515.848735811]: Number of markers: 1
[ INFO] [1547151515.848845526]: Marker Size: 0.1016
[ INFO] [1547151515.848888023]: Type of space: plane
[ INFO] [1547151515.848919640]: ROI allowed: 0
[ INFO] [1547151515.848945892]: ROI x-coor: 0
[ INFO] [1547151515.848975687]: ROI y-coor: 0
[ INFO] [1547151515.849009739]: ROI width: 0
[ INFO] [1547151515.849052101]: ROI height: 8096
[ INFO] [1547151515.881308433]: Calibration data loaded successfully

It seems to me that the calibration configuration files are being loaded correctly, but that the lidarcameracalibration program cannot "latch onto" the ROS topics (I mean, connect to and receive the data from the ROS topics that are streaming data from the live devices, LiDAR and RGB camera). This is just a guess. Another possibility is that the program does not give any more feedback until it finds the calibration board. If that is the case, it is a bit unfortunate, because it would be nice to know if it is even able to read the data from the devices. At the moment, the devices cannot even see the calibration board, but they could when a tried a few days ago.

When I list the ROS topics, I get the three that I think it needs, /raspicam_node/camera_info, /raspicam_node/image/compressed, and /velodyne_points.

user@computer$ rostopic list
/aruco_markers
/aruco_poses
/clicked_point
/diagnostics
/initialpose
/lidar_camera_calibration_rt
/move_base_simple/goal
/raspicam_node/camera_info
/raspicam_node/image/compressed
/raspicam_node/parameter_descriptions
/raspicam_node/parameter_updates
/rosout
/rosout_agg
/scan
/tf
/tf_static
/velodyne_nodelet_manager/bond
/velodyne_nodelet_manager_cloud/parameter_descriptions
/velodyne_nodelet_manager_cloud/parameter_updates
/velodyne_nodelet_manager_driver/parameter_descriptions
/velodyne_nodelet_manager_driver/parameter_updates
/velodyne_nodelet_manager_laserscan/parameter_descriptions
/velodyne_nodelet_manager_laserscan/parameter_updates
/velodyne_packets
/velodyne_points

lidar_camera_calibration doesn't crash. It just "sits there", cursor blinking.

I suppose my next step in troubleshooting will be to look more closely at their C++ code, to see where it's hanging up, and maybe add a bunch of more print-outs around there.

Any help will be greatly appreciated. Thank you.

Asked by mannyglover on 2019-01-10 17:18:44 UTC

Comments

This is a very localised post, in that this pkg is a user contributed one making the intersection between ROS Answers visitors and users of that pkg most likely small. Not saying you won't get any response, just trying to do some expectation management.

Asked by gvdhoorn on 2019-01-11 04:09:59 UTC

@gvdhoom, that makes sense. Thanks for the heads up. I'm making progress on the problem on my own, now.

Asked by mannyglover on 2019-01-11 18:19:11 UTC

Good to hear.

It would be +100 if you'd keep us updated on your progress. If you figure out your issue, answering your own question would be a very nice contribution to the community.

Asked by gvdhoorn on 2019-01-12 03:18:34 UTC

Answers

I have run into similar issues. Properly remapping the aruco mapping node seemed to help.

As I have a compressed image being sent, I've had to use image_transport to republish my compressed image, as a sensor/Images message.

I also had to remove the comments around the aruco_mapping node in launch/find_transform.launch <!-- and --> were removed.

Asked by rukie on 2019-09-20 11:24:16 UTC

Comments