Ubuntu16(ROS_Kinetic)海康威视网络摄像机(单目)内参标定

本文涉及的产品
资源编排,不限时长
简介: Ubuntu16(ROS_Kinetic)海康威视网络摄像机(单目)内参标定

1.前提

安装好标定功能包:https://github.com/XidianLemon/calibration_camera_lidar

详情参照博客:

https://blog.csdn.net/qq_37534947/article/details/116195405?spm=1001.2014.3001.5501


2.海康威视录像机的IP设置

一般来说,需要将本机的ip地址(192.168.0.3)设置成与海康威视(如:192.168.0.4)同一网段即可,然后在ie浏览器中输入海康威视的ip地址即可打开,看到摄像机界面。


注:海康视频WEB Component已经不支持Google Chrome和Firefox了,所以只有ie浏览器才能看!

参考链接:https://blog.csdn.net/shjhuang/article/details/104915558


3.海康威视ROS驱动安装

代码安装:

https://github.com/tanzby/hikvision_ros

用法:

git clone https://github.com/tanzby/hikvision_ros.git
cd hikvision_ros_master
mkdir build && cd build
cmake ..
make

打开一个终端,输入:

roscore


打开另一个终端,输入:

cd hikvision_ros_master
source /devel/setup.sh
roslaunch hikvision_ros hik.launch ip_addr:=192.168.5.100 password:=123456


这里的ip改成摄像机的ip和密码。

其他参数:

<arg name="ip_addr" default="192.168.5.100"/>
<arg name="user_name" default="admin"/>
<arg name="password" default="admin"/>
<arg name="port" default="8000"/>
<arg name="channel" default="1"/>

打开第三个终端,输入:

rostopic list


结果显示,表示打开成功:

# [output]
# ➜  ~ rostopic list
# /hik_cam_node/camera_info
# /hik_cam_node/hik_camera
# ...

4.开始标定内参

方法1:没有录制rosbag,直接标定

在上面的基础上,即上面的终端保持运行的情况下:

# calibrate
rosrun camera_calibration cameracalibrator.py --size 11x8 --square 0.03 image:=/hik_cam_node/hik_camera  camera:=/hik_cam_node/hik_camera

参数如下:

–square:标定板单元格的边长(m),我的标定板是 2.5cm,也就是 0.025m

–size:标定板长x宽的格子数减一,我的标定板是 12x9,所以填 11x8

image:要标定的相机话题

camera:打开网络摄像头

标定板:

67.png


过程:

68.png


会出现左边的摄像头界面,然后拿着标定板在摄像头中进行移动,可以看到如图的色彩,右边会将其中的多次存起来,大约40次左右(即40个Add,也就保存了40张图片)。当右上角的 X、Y、Size、Skew 变为绿色时,标定按钮「CALIBRATE」可用,点击即可计算内参矩阵。

69.png


结果:

70.png

结果在 Shell 中打印出来,点击「SAVE」可保存到 home 目录下:


71.png


注意这里会多保存一个 Autoware 类型的 YAML 文件格式,也就是后面外参标定要导入的文件!

保存路径会打印出来,其中是一个压缩包,解压后主要是yaml文件,也会看到保存的多张图片。

方法2:录制rosbag,再标定

录制一个相机话题的Bag:

rosbag record -O xxx.bag image:=/hik_cam_node/hik_camera


注:其中xxx是你自己起的名字。

# calibrate
rosrun camera_calibration cameracalibrator.py --size 11x8 --square 0.03 image:=/hik_cam_node/hi


本质来说,就是先启动rosbag录制,然后启动标定软件,过程和上面几乎一样,但是在标定结束后(可以在保存之前)利用命令Ctrl+C,将rosbag挂掉即可,最后可以看到自己保存的xxx.bag,起作用就是下次标定的时候,不用再自己标定了,而是利用xxx.bag录制的视频(其实也是你自己标的),


下次标定: 下一步命令:

rosbag play --pause xxx.bag

注:其中xxx是你自己起的名字。

# calibrate
rosrun camera_calibration cameracalibrator.py --size 11x8 --square 0.03 image:=/hik_


本质来说,就是先启动rosbag录制,然后启动标定软件,过程和上面几乎一样,但是在标定结束后(可以在保存之前)利用命令Ctrl+C,将rosbag挂掉即可,最后可以看到自己保存的xxx.bag,起作用就是下次标定的时候,不用再自己标定了,而是利用xxx.bag录制的视频(其实也是你自己标的),


下次标定: 下一步命令:


rosbag play --pause xxx.bag

注:开始回放内参标定 Bag,默认暂停启动,按空格继续。

# calibrate
rosrun camera_calibration cameracalibrator.py --size 11x8 --square 0.03 image:=/hik_ca


注意:这句命令最后没有打开摄像头,因为这里读取的是录制的bag,它会自动播放你之前的录制过程,进行标定,后面的Save就同理了。

72.png


注:上面的图片利用的是下面链接的,因为在标定的时候没有记录下过程图片,后面标注的时候,再重新补,这个链接讲的也挺好,就是不是海康的摄像头!!!!

https://dlonng.com/posts/autoware-calibr-1


5.RosBag的简单介绍

1.简介

.bag文件可以保存ros系统运行过程中产生的话题和服务数据,并可以播放出来以供其他系统使用,有种仿真器的感觉,在使用 别人数据集的过程中十分有用。将正在运行的ROS系统中的数据记录到一个.bag文件中,然后回放这些数据,以在运行的系统中产生类似的数据流


2.常用命令

录制:

# 录制完保存 bag 包名称为 session1 + 时间戳.bag 格式:
rosbag record -o session1 <topic_names>
# 录制完保存为指定文件名session2.bag:
rosbag record -O session2.bag <topic_names>

播放:

# 在回放过程中按空格暂停,常见用法如下,回放单个 bag:
rosbag play record.bag
# 回放多个 bag,基于全局时间间隔播放:
rosbag play record1.bag record2.bag
#以录制的一半频率回放:
rosbag play -r 0.5 --pause record.bag
# 指定回放频率,默认 100HZ:
rosbag play --clock --hz=200 record.bag
# 循环播放:
rosbag play -l record.bag

压缩:

# 指定压缩格式为 lz4,默认的压缩格式是 bz2
rosbag compress --lz4 xxx.bag
# 解压缩
rosbag decompress xxx.bag

查看信息:

rosbag info
相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
目录
相关文章
|
2月前
|
Ubuntu 网络安全 图形学
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
在Ubuntu 20.04系统中解决网络图标消失和无法连接有线网络问题的方法,其中第三种方法通过检查并确保Windows防火墙中相关服务开启后成功恢复了网络连接。
750 0
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
|
2月前
|
Ubuntu Linux Windows
wsl重装Ubuntu遇到的一些问题( WslRegisterDistribution failed with error: 0x80041002 Error: 0x80041002 (null)、重置网络后WLAN图标消失)
wsl重装Ubuntu遇到的一些问题( WslRegisterDistribution failed with error: 0x80041002 Error: 0x80041002 (null)、重置网络后WLAN图标消失)
|
4月前
|
传感器 机器人 测试技术
ROS相机内参标定详细步骤指南
本文是关于ROS相机内参标定的详细步骤指南,包括了标定的目的、原理、所需材料、具体操作流程以及标定结果的分析。文章以Ubuntu20.04和ROS1 Noetic为测试环境,适用于单目RGB相机的内参标定,使用ros-noetic-camera-calibration工具包进行操作,并提供了标定过程中的注意事项和建议。
296 1
ROS相机内参标定详细步骤指南
|
2月前
|
Kubernetes 容器
基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)
基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)
157 0
|
3月前
|
Ubuntu Oracle 关系型数据库
Oracle VM VirtualBox之Ubuntu 22.04LTS双网卡网络模式配置
这篇文章是关于如何在Oracle VM VirtualBox中配置Ubuntu 22.04LTS虚拟机双网卡网络模式的详细指南,包括VirtualBox网络概述、双网卡网络模式的配置步骤以及Ubuntu系统网络配置。
347 3
|
3月前
|
Ubuntu
树莓派 —— ubuntu上通过netplan配置网络
树莓派 —— ubuntu上通过netplan配置网络
|
4月前
|
存储 Ubuntu 计算机视觉
使用ros标定相机的内参和外参
使用ros标定相机的内参和外参
167 2
|
4月前
|
Ubuntu Shell C++
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
220 1
|
4月前
|
计算机视觉
在yolov5项目中如何使用自带摄像机不用网络摄像机进行实时检测?
这篇文章讨论了在yolov5项目中,如何避免使用网络摄像机而改用自带的本地摄像机进行实时目标检测,并提供了解决摄像头打开错误的具体步骤和代码示例。
在yolov5项目中如何使用自带摄像机不用网络摄像机进行实时检测?
|
4月前
|
Ubuntu Apache
Ubuntu20.04下一键安装ROS1 Noetic
本文提供了一个简化在Ubuntu 20.04系统上安装ROS1 Noetic过程的一键安装脚本工具,该脚本通过优化配置和使用清华大学镜像源,加速了国内用户的下载速度,并自动完成环境设置和依赖安装,同时提供了详细的使用说明和源码。
388 0
Ubuntu20.04下一键安装ROS1 Noetic
下一篇
DataWorks