引言:在项目中,需要实现无人机摄像头采集到的图像回传到window下进行查看,为此,选择使用web_video_server功能包实现局域网下的图像传输
硬件+环境:
硬件:Jetson orin nano 8G + D435摄像头
环境:ubuntu20.04+ros-noetic环境
详细使用教程:
第一步:安装对应版本的功能包,这里主要是ros和ros2的区别。采用源码方式安装
链接: 源码连接
第二步:将下载好的源码解压后放到自己的ROS工作空间src下,进行编译。我这里是cwkj_ws,对应如下:
cd cwkj_ws
catkin_make
第三步:新建launch文件夹和文件,方便参数的设置和管理
roscd web_video_server
mkdir launch && cd launch
gedit web_video_server.launch
接着编辑 launch 文件,例如,主机在局域网下的 ip 为 192.168.0.113 ,一定要 “address” 填写 192.168.0.xxx ,也就是确保在局域网网段,否则无法访问, 其他参数的设置可以自行修改
链接: 参数参考官方
<launch><node pkg="web_video_server" type="web_video_server" name="web_video_server" output="screen"><param name="port" type="int" value="8080" /><param name="address" type="string" value="192.168.0.113" /><param name="server_threads" type="int" value="1" /><param name="ros_threads" type="string" value="2" /><param name="width" type="int" value="1280" /><param name="height" type="int" value="1080" /><param name="quality" type="int" value="90" /></node>
</launch>
第四步:启动命令
注意:这里第一句命令根据实际使用的摄像头,使用对应的驱动命命令即可
roslaunch realsense2_camera rs_camera.launch rosrun web_video_server web_video_server
在出现以上终端日志后,在任意局域网下的电脑中,在地址栏输入对应ip地址和端口号即可
如下:
192.168.0.113:8080
总结:至此实现图像的网页端远程传输,其中还有很多参数,比如图像像素以及质量等可以根据需要进行动态调整即可。
补充:需要添加参数的话,可以直接添加&符号后,加上对应参数名称和数值即可,如下
http://192.168.0.100:5000/stream_viewer?topic=/camera/color/image_raw&quality=10
此处添加了&后,加了参数quelity=10