USB图像采集
功能介绍
为实现环境感知能力,机器人产品中通常会搭载摄像头以获取图像信息。USB摄像头易于获取,使用方便,通用性好,TogetheROS.Bot添加了对USB摄像头的支持,支持ROS2标准图像消息。
支持平台
平台 | 运行方式 |
---|---|
地平线RDK | Ubuntu 20.04 |
X86 | Ubuntu 20.04 |
准备工作
地平线RDK平台
确认手中USB摄像头工作正常,将USB摄像头接入地平线RDKUSB插槽
地平线RDK已烧录好地平线提供的Ubuntu 20.04系统镜像
地平线RDK已成功安装tros.b
确认PC机能够通过网络访问地平线RDK
X86平台
确认手中USB摄像头工作正常,将USB摄像头接入PC或服务器USB插槽
确认X86平台系统为Ubuntu 20.04,且已成功安装tros.b
使用方式
地平线RDK和X86平台使用方式相同,其中以地平线RDK平台为例:
通过SSH登录地平线RDK,确认USB摄像头设备名称,这里以
/dev/video8
为例并通过下述命令启动USB摄像头
# 配置 tros.b 环境: source /opt/tros/local_setup.bash # launch方式启动: ros2 launch hobot_usb_cam hobot_usb_cam.launch.py usb_video_device:=/dev/video8
如程序输出如下信息,说明节点已成功启动
[ERROR] [1662017254.558565200] [hobot_usb_cam]: Camera calibration file: not exist! [WARN] [1662017254.559233995] [hobot_usb_cam]: get camera calibration parameters failed [INFO] [1662017254.773617972] [hobot_usb_cam]: Set resolution to 640x480 [INFO] [1662017254.803259017] [hobot_usb_cam]: Set framerate to be 30 [WARN] [1662017255.036681491] [hobot_usb_cam]: Unable to publish camera info. [INFO] [1662017255.037049326] [hobot_usb_cam]: publish image 640x480 encoding:2 size:98583 [WARN] [1662017255.072076018] [hobot_usb_cam]: Unable to publish camera info. [INFO] [1662017255.072359603] [hobot_usb_cam]: publish image 640x480 encoding:2 size:98562 [WARN] [1662017255.103836613] [hobot_usb_cam]: Unable to publish camera info. [INFO] [1662017255.104098489] [hobot_usb_cam]: publish image 640x480 encoding:2 size:98643 ...
Web端查看USB摄像头图像,另起一个终端:
# 配置 tros.b 环境: source /opt/tros/local_setup.bash # 启动websocket ros2 launch websocket websocket.launch.py websocket_image_topic:=/image websocket_only_show_image:=true
PC打开浏览器(chrome/firefox/edge)输入http://IP:8000(IP为地平线RDK IP地址),点击左上方Web端展示即可查看USB摄像头实时画面
注意事项
USB摄像头需要进行标定,并设置相机标定文件的读取路径,否则无法发布相机内参,但不影响其它功能
设置相机标定文件读取路径,具体步骤如下:
# 配置 tros.b 环境: source /opt/tros/local_setup.bash # launch 方式启动 ros2 launch hobot_usb_cam hobot_usb_cam.launch.py usb_camera_calibration_file_path:=(实际标定文件绝对路径)