提取激光雷达的角点坐标
将激光雷达的rosbag转为pcd文件
<?xml version="1.0" encoding="UTF-8"?><launch> <param name="input_bag_path" value="$(find camera_lidar_calibration)/data/lidar/" /> <!-- rosbag folder --> <param name="output_pcd_path" value="$(find camera_lidar_calibration)/data/pcdFiles/" /> <!-- path to save new pcd files --> <param name="threshold_lidar" type="int" value="80" /> <!-- the limit of messages to transfer to the pcd file, 80 means maximum 80 messages of lidar --> <param name="data_num" type="int" value="12" /> <!-- the number of the rosbag --> <node pkg="camera_lidar_calibration" name="pcdTransfer" type="pcdTransfer" output="screen"></node >< /launch>
然后运行指令将rosbag批量转化成PCD文件,PCD文件默认保存在data/pcdFiles文件夹中
roslaunch camera_lidar_calibration pcdTransfer.launch
终端会逐渐的打印转换的过程,把上面录的文件逐个转换完就可以了
之后在pcdFiles文件夹中检查下,文件:
提取标定板角点坐标
然后使用pcl_viewer打开PCD文件,按住shift+左键点击即可获得对应的点坐标。
pcl_viewer -use_point_picking xx.pcd
选择标定板的角点,然后记录下它的坐标,注意这里记录顺序,之后要和照片的记录顺序保持一致,可以选择左上角开始,然后逆时针记录。
记录的时候在data文件夹下,新建一个corner_lidar.txt,安照下面的格式记录下来,格式一定要正确.
慢慢调下pcl_viewer的视角,然后shift+左键点击,在终端中会打印出该点的坐标,手动写入txt中按照格式
之后程序读取数据的时候,设置是这样的,每行数据只有超过10个字母程序才会将其读取为计算的参数,所以上面的数据中用来编号的1 2 3 4 和标题,test0 test1 是不会被读的。
程序读到空行就会停止读取参数开始计算,所以保存时不要空行,把雷达的角点全部标完之后,就可以提取照片中的角点像素了。
全部0条评论
快来发表一下你的评论吧 !