作者: DWDROME
配置环境:
- OS: Ubuntu 20.04.6 LTS on Windows 11 x86_64
- Kernel: 5.15.167.4-microsoft-standard-WSL2+
- ros-noetic
wsl连接:
海康摄像机usb口:
-
powershell管理员下:
inget install usbipd usbipd list usbipd bind --busid <busid> #确保共享 usbipd attach --wsl --busid <busid> # attach
在wsl2下
lsusb
确保已经有设备连接了不要连错了
USB3 Vision Device
-
livox网口雷达:
- 在官方的wsl setting中,设置镜像网络模式
- 参考教程:
- 或者说你不是win11版本的,也可以参照我这个教程(没有镜像网络模式),但是在设置之后就无法使用usbipd了,目前我想不出解决方式。
如果你是完整环境,那太好了,以上你都不需要搞
预先准备
- opencv安装:https://blog.csdn.net/weixin_44796670/article/details/115900538
- 海康MVS:海康Camera MVS Linux SDK二次开发封装ROS packge过程记录(c++)
- nginx推流
- fastlio的安装:
- 配置
./bashrc
# 1. MVS SDK(MVCAM)环境变量配置
export MVCAM_SDK_PATH=/opt/MVS # SDK 根目录
export MVCAM_GENICAM_CLPROTOCOL=/opt/MVS/lib/CLProtocol # 协议库路径
export ALLUSERSPROFILE=/opt/MVS/MVFG # 运行文件目录
export MVCAM_COMMON_RUNENV=/opt/MVS/lib # 运行环境库路径
# 2. LD_LIBRARY_PATH 配置(强制使用系统)
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
# 3. 执行文件路径扩展
export PATH=$PATH:/usr/local/nginx/sbin/
export PATH=$PATH:/opt/MVS/bin
- 修改
/ws_hikrobot_camera/src/hikrobot_camera/CmakeList.txt
部分区域
find_package(OpenCV REQUIRED)
target_link_libraries(${PROJECT_NAME}
${catkin_LIBRARIES}
${OpenCV_LIBRARIES}
${mqtt_client_LIBRARIES}
GCBase_gcc485_v3_0
MvCameraControl
##GenApi_gcc485_v3_0
MVGigEVisionSDK
log4cpp_gcc485_v3_0
MVRender
Log_gcc485_v3_0
MvUsb3vTL
#MathParser_gcc485_v3_0
#NodeMapData_gcc485_v3_0
MediaProcess
##XmlParser_gcc485_v3_0
X11
)
- 注释掉的,我们这个项目里面不需要,需要的话,后续在launch中自行配置启动环境
- 修改
launch
文件,在/ws_hikrobot_camera/src/hikrobot_camera/launch
下的mid360
部分
<node pkg="hikrobot_camera" type="hikrobot_camera" name="hikrobot_camera" respawn="true" output="screen">
<env name="LD_LIBRARY_PATH" value="/opt/MVS/lib/64:/opt/MVS/lib/32:/usr/lib/x86_64-linux-gnu:/usr/local/lib:/opt/ros/noetic/lib:$LD_LIBRARY_PATH"/>
</node>
- ✔️ 支持 MVS 相机
- ✔️ 支持 ROS 基础库
部署nginx:
# 依赖 sudo apt-get update sudo apt-get install openssl libssl-dev sudo apt-get install libpcre3 libpcre3-dev sudo apt-get install zlib1g-dev sudo apt-get install build-essential libssl-dev # 安装 mkdir my_nginx_rtmp cd my_nginx_rtmp/ wget http://nginx.org/download/nginx-1.21.6.tar.gz wget https://github.com/arut/nginx-rtmp-module/archive/master.zip tar -xf nginx-1.21.6.tar.gz unzip master.zip cd nginx-1.21.6/ ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master sudo make -j4 sudo make install ##检查是否安装成功 /usr/local/nginx/sbin/nginx -v ##将nginx添加到环境变量中: sudo vi ~/.bashrc ##在最后添加: export PATH=$PATH:/usr/local/nginx/sbin/ ##添加完成执行source命令: source ~/.bashrc ##如果遇到权限问题 sudo chown -R 用户名:用户名 /usr/local/nginx/
编辑
/usr/local/nginx/conf/nginx.conf
#/usr/local/nginx/conf/nginx.conf #注明:请勿直接覆盖原来的conf文件,这只是部分有关直播的内容 #配置RTMP,这个配置格式在github的readme上有详细说明 rtmp { server { listen 1935; #服务端口--默认 chunk_size 4096; #数据传输块的大小--默认 #设置直播的application名称是 mylive application mylive{ live on; #live on表示开启直播模式 } } } #请在http里面找到server http{ ...# 这里有一些其他的配置 server { listen 8080; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; #增加这一步分内容 location / { root html; index index.html index.htm; } location = /50x.html { root html; } location /pop/video { alias /var/video; } location /info { rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { root /home/along/code/my_nginx_rtmp/nginx-rtmp-module-master; } }
剩余部分参照opencv读取rtsp图像处理后推流rtmp