《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接口控制转换过程的开启和关闭。