2019/06/21更新说明:很多小伙伴反应从上下载的没有,是作者在 的新源码和我用的版本不一样了 。该教程仅针对2018年11月7日的发布版本 。
网上的教程不多,而且都是关于多线的威力登雷达和相机的联合标定 。自己摸索使用标定SICK 单线激光雷达和相机的方法,写一个详细的教程,希望可以抛砖引玉 。想要转载的小伙伴 , 请带个原文地址,撰写不易,?(?ω?)?~
第一章简介
工具是城市自主无人驾驶开源软件的其中一个工具,该工具专注于相机与2D/3D激光雷达的联合标定 , 可以在标定相机的同时自主计算出从相机坐标系至激光雷达坐标系的变换矩阵,具有操作简单、标定准确度较高的优势 。
本文档仅针对 中相机与2D激光雷达的联合标定步骤进行说明 。
第二章 工具详细使用说明 2.1 前期准备 2.1.1 激光雷达的选型与配置
撰写该文档时使用的激光雷达型号为 SICK单线激光雷达,如图 1 所示 。
图 1 SICK单线激光雷达
将激光雷达与计算机相连,该款雷达首先需使用官方提供的 SOPASTool 在 操作系统下配置 IP 地址,本文将激光雷达 IP 地址设置为 192.168.10.153,该 IP 地址仅用于举例说明 。
完成激光雷达 IP 地址配置后 , 切换至操作系统,将 SICK 激光雷达的 ROS 驱动程序- 拷贝至 ROS 工作空间(通常为文件夹)下的 src 文件夹下,文件夹结构如图 2 所示 。
图 2文件夹结构
此时,进入/src/-/-/文件夹,找到.文件,将该文件内参数中的192.168.100修改为设置的激光雷达IP地址,随后保存并关闭文件,本文为192.168.10.153 。
返回至文件夹,在文件夹空白处按住Sifht按键后点击鼠标右键选择“在此启动终端”,在终端输入进行编译 , 等到编译完成即可,至此激光雷达配置完毕 。
2.1.2设置静态 IP
完成上述激光雷达配置后,还需配置的静态 IP 地址与激光雷达 IP 地址处于同一网段 。系统设置静态 IP 的步骤为:
使用组合按键 Ctrl+Alt+T 打开终端,在终端输入查看网卡及 IP 地址,如图 3 所示,其中红色框中显示的为网卡的名称 。
图 3
再次在该终端输入命令sudo gedit /etc//,此时在文件中修改auto及iface后的网卡名称与终端中显示的网卡名称相同(图4中红色方框所示) , 设置中IP地址与激光雷达IP地址处于同一网段,中复制的IP地址并将最后一位修改为1即可 。本文设置为192.168.10.13,与激光雷达同属192.168.10.X网段,为192.168.10.1 。
修改完成后保存并关闭文件,在终端输入命令sudo /etc/init.d/ 重启网络,终端显示ok后,再次输入确认IP地址是否已设置生效 , IP地址生效后如图5所示 。
图 4
图 5 静态 IP 设置完成
此时,测试计算机与激光雷达是否可以通信,在终端输入ping加激光雷达的IP地址 , 如ping 192.168.10.153,若上述配置过程无误,终端将显示图6所示内容 。
图 6 ping 激光雷达
2.1.3 制作标定板
在标定相机时,通常使用黑白棋盘格图像(不含红色、绿色标记),如图7所示 。
文章插图
图 7 标定用棋盘格
棋盘格规格使用A4纸大小 , 角点(图7中红色、绿色圆圈标记)数分别为8个及6个,单个棋盘格为0.024mm*0.024mm的正方形 。请将打印出的高清A4大小棋盘格粘贴在平整、坚硬的平面上 。
2.1.4 数据采集
采用读取中topic的方式进行标定,因此需要将激光雷达数据及相机数据采集为的格式 。
打开一个新的终端 , 输入启动 , 如图8所示 。
图 8
保持运行的终端不要关闭,再打开一个新的终端进入ROS工作空间,输入 ./devel/setup.bash命令,随后输入.命令启动激光雷达,若激光雷达启动成功如图9所示 。
图 9 激光雷达启动
【【学习笔记】手把手教你使用Autoware标定SICK-2D激光雷达和相机】保持运行激光雷达的终端不要关闭,再打开一个新的终端进入ROS工作空间,输入 ./devel/setup.bash命令,随后输入.命令启动USB摄像头,若USB摄像头启动成功如图10所示 。
图 10 USB 摄像头启动
此时打开一个新的终端,输入命令 list,可以查看当前运行的ROS节点发布的话题,如图11所示 。其中运行激光雷达的节点发布的话题为/scan , 运行USB摄像头的节点发布的话题为// 。
此时在该终端输入 rviz rviz,启动rviz三维可视化平台,rviz界面如图12所示 。其中1区域中显示预在rviz中显示的话题等信息,2区域将显示激光雷达信息 。在rviz中,单击左下角Add按钮 , 将弹出添加话题对话框,单击By topic选项卡,分别选择添加/scan下的话题及//下的image话题,如图13所示 。添加完毕后,将1区域的 中的fixed frame修改为laser 。修改完成后,rviz中显示相机图像及激光点云 , 如图14所示 。
图 11list
图 12 rviz 界面
图 13 添加话题
图 14 rviz 显示图像及点云
现在我们可以使用ROS提供的 功能录制 。打开一个新的终端,在终端中进入想要保存的文件夹,输入命令/scan //开始录制激光雷达点云及相机画面 。录制完成后在当前终端使用按键组合Ctrl+C结束录制,如图15所示 。
图 15结束录制
值得注意的是,录制标定用的时,应当保证棋盘格以多种位姿(左旋、右旋、俯仰)尽量出现在相机视野的各个方位中,同时保证激光可以一直落在棋盘格上 。录制结束后可以在保存的文件夹下使用 info xx.bag(xx.bag为刚才录制的bag名 , 如图15中2019-03-06-10-36-09.bag)查看录制的bag详细信息 , 其中包括bag的大小、时长、包含topic的名称以及各个topic的数量 。
至此 , 关闭以上所有终端,标定的前期准备工作结束 。
2.2 相机与雷达联合标定
打开一个新的终端,输入命令启动 。
打开一个新的终端 , 进入保存的文件夹,输入命令 play xx.bag播放刚才录制的,开始播放后立即按空格键暂停播放,如图16所示 。
打开一个新的终端 , 进入安装的文件夹下的ros文件夹,输入sudo./devel/setup.bash命令,再在该终端输入 idar 启动。软件启动后首先弹出选择相机话题的对话框,选择//的话题;随后选择标定类型,我们选择—>的标定方式,如图17所示 。
文章插图
图 16 播放
选择完毕后,将进入 的主界面 , 主界面如图18所示 。在主界面上方红色方框标注的区域从左到右填入标定板的参数,根据我们使用标定板的参数我们输入0.024、0.024、8、6四个参数 。填写完毕后,关闭主界面,再次重复启动 的步骤,使填写参数生效 。
图 18主界面
再次启动界面后,首先调整主界面布局 , 方便我们标定 。调整后的界面布局如图19所示 。
图 19主界面
此时找到运行的终端,单击空格播放 , 再次暂停后切换到 主界面,将看见到相机画面显示在1区域及雷达点云显示在2区域,在2区域可以通过滚动鼠标中键放大点云,此时便可以开始相机及点云的标定工作 。
标定的步骤为:
图 20 标定过程
图 21 标定结束
播放,当 中出现满意的画面及激光数据时暂停;
单击主界面右上角Grab按钮进行捕捉 。捕捉后将在3区域显示相机图像的标定画面,4区域将显示该时刻的激光雷达点云;
确认3区域棋盘格可以检测到的前提下,在4区域使用鼠标中键放大点云;
在4区域按住鼠标右键不动点击鼠标左键进行框选,选择激光落在标点版上的点云,尽量框选在同一个平面的点;
对于Grab到的效果不好或重复的相机画面及点云信息,可以单击右上角按钮进行移除;
重复步骤1~4,Grab的次数越多标定结果越好;
数据标注完成后,点击右上角按钮,进行联合标定,此时工具将进入假死状态,计算结束后工具恢复正常;
点击右上角按钮将联合标定后的点云投影在相机图像中,投影后的图像显示在3区域,如图21所示;
此时可以在3区域检查标定效果,若激光均能落在标定板上且没有超出标定板的激光则证明标定效果较好;
此时点击左上角的Save按钮对标定进行保存 , 仅保存标定得到的相机内参矩阵及相机雷达外参矩阵即可 , 如图22所示,而对于相机、雷达的标定数据不需要保存 , 单击No即可,如图23所示 。
图 22 保存标定结果
图 23 无需保存相机、激光标定数据
至此激光雷达及相机联合标定结束,得到标定结果yaml文件内容如图24所示 , 自行选择相关参数使用即可 。
图 24 标定结果 yaml 文件内容
- 怎么查自己是不是党员12371 怎么查自己是不是党员
- 番泻叶的功效? 番泻叶的功效与食用方法
- 60平两室一厅装修报价明细清单大全 60平两室一厅装修报价明细清单
- 桑叶的副作用 桑叶的副作用及毒性
- 中药熟地的功效与作用 中药熟地的功效与作用及禁忌症有哪些?
- 红薯粉和木薯粉一样吗图片 红薯粉和木薯粉一样吗
- 平安夜吃火鸡有什么意思啊 平安夜吃火鸡有什么意思
- 肾衰竭咋得的 肾衰竭因何而得
- 黄金面膜哪一面贴在脸上 黄金面膜哪面敷在脸上
- 旷工开除可以不支付经济补偿金吗 旷工开除可以不发工资吗