ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
rk3588使用bw_rtsp_client包将rtsp视频流转成ros图像话题数据流
-
《rk3588在ros中使用ros_rknn_yolo包》这篇文章中的图像话题来源,除了usb摄像头外,一般是监控摄像头。监控摄像头推的基本都是rtsp流,因此需要一个ros包来将rtsp视频流解码转换成ros图像话题数据流。使用bw_rtsp_client包,可以方便、高效率地在rk3588中完成这个任务,转换1080p的rtsp流延时低于160毫秒,cpu占用率单核小于50%。
1. 下载与编译
环境准备
确保您的RK3588设备已经安装了ROS环境。本教程默认您使用的是ROS1版本,具体的安装步骤请参考
ros_rknn_yolo
包内的readme
文件。
rk3588的ubuntu系统还需要升降安装下列硬件解码库。https://git.bwbot.org/publish/librga https://git.bwbot.org/publish/mpp https://git.bwbot.org/publish/ffmpeg-rockchip https://git.bwbot.org/publish/rockchip_mirrors 每个仓库readme里面有安装步骤
克隆软件包
首先,切换到您的ROS工作空间
src
目录下,然后克隆bw_rtsp_client
软件包:cd ~/rk3588_ros_ws/src git clone https://git.bwbot.org/publish/bw_rtsp_client.git
编译软件包
返回到工作空间的根目录,进行编译:
#开始编译 cd ~/rk3588_ros_ws/ catkin_make
2. 启动Launch文件
先找到一个rtsp数据流,可以用这个软件包《gst-rtsp-server》发布一个测试用的数据流。
./test-launch "( videotestsrc ! video/x-raw,width=1920,height=1080,framerate=30/1 ! timeoverlay ! tee name=vsrc vsrc. ! queue ! videoconvert ! ximagesink vsrc. ! queue ! mpph264enc tune=zerolatency ! rtph264pay name=pay0 pt=96 )"
bw_rtsp_client
包提供了Launch文件来启动节点和相关的配置。在另一个新开的终端中运行以下命令以启动:#将test.yaml文件中的rtsp_uri参数改成自己要订阅的rtsp流链接,再执行下列指令。 roslaunch bw_rtsp_client test.launch
在另一个新开的终端中使用image_view查看转换发布的话题
rosrun image_view image_view
3. 其它使用方式和参数
请阅读bw_rtsp_client中的readme.md文件,可以使用service接口控制转换过程的开启和关闭。
-
根据你的描述,以下是如何在ROS环境中使用
bw_rtsp_client
包将RTSP视频流转成ROS图像话题数据流的详细步骤:1. 环境准备
确保你的RK3588设备已安装ROS环境。对于ROS1版本,安装步骤可参照
ros_rknn_yolo
包内的README文件。安装硬件解码库
在Ubuntu系统上,还需要安装以下硬件解码库:
这些仓库的README文件内有详细的安装步骤,请按照指示操作。
2. 克隆并编译软件包
克隆软件包
切换到ROS工作空间的
src
目录下,然后克隆所需的软件包:cd ~/rk3588_ros_ws/src git clone https://git.bwbot.org/publish/ros_rknn_yolo.git git clone https://git.bwbot.org/publish/vision_msgs.git
编译软件包
回到工作空间根目录,进行编译:
# 先安装系统依赖 sudo apt install python3-virtualenv pip install opencv-python opencv-contrib-python # 开始编译 cd ~/rk3588_ros_ws/ catkin_make
编译完成后,需要运行
ros_rknn_yolo
包中的一个脚本来设置rknn2
的运行环境:roscd ros_rknn_yolo sudo ./fix_rknn2_runtime
3. 启动Launch文件
发布RTSP数据流
使用
gst-rtsp-server
发布一个测试用的数据流:./test-launch "( videotestsrc ! video/x-raw,width=1920,height=1080,framerate=30/1 ! timeoverlay ! tee name=vsrc vsrc. ! queue ! videoconvert ! ximagesink vsrc. ! queue ! mpph264enc tune=zerolatency ! rtph264pay name=pay0 pt=96 )"
启动Launch文件
修改
test.yaml
文件中的rtsp_uri
参数为你要订阅的RTSP流链接,然后执行以下命令启动:roslaunch bw_rtsp_client test.launch
使用
image_view
查看转换发布的话题rosrun image_view image_view
4. 其它使用方式和参数
请参阅
bw_rtsp_client
中的readme.md
文件,了解如何使用Service接口控制转换过程的开启和关闭。