我的树莓派安装了ubuntu-server18.04,由于不是树莓派官方系统raspian,因此不自带raspi-config
启动摄像头需要用到官方的raspi-config
配置程序,进入官网地址,下载最新的deb程序
wget http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20200817_all.deb
然后进入文件夹安装:
dpkg -i raspi-config_xxxxxxxx.deb
xxxx请按Tab键自动补全
发现有依赖报错,修复依赖:
sudo apt --fix-broken install
然后重新安装。
后来我发现如果ros安装了rosdep的话,也可以用rosdep安装(没试过)
rosdep install raspi-config_xxxxx.deb
或者
rosinstall raspi-config_xxxxx.deb
使用raspi-config开启摄像头参考了https://blog.youkuaiyun.com/sinat_25259461/article/details/108353324
sudo raspi-config
如果出现固件过时的错误时:
Your firmwave appears to be out of date (no start_x.elf). Please update
解决方法:
查看boot分区所在的设备号,设备号可能是:/dev/mmcblk0p1
df -h
将该设备号挂载在/boot上
mount /dev/mmcblk0p1 /boot
随后会出现是否设置为enabled,选择yes。
等待树莓派重启。
重启后插上csi摄像头检查是否有摄像头设备:
ls -al /dev/ | grep video
此时应该就有vedio0了
使用体会:
CSI摄像头比usb摄像头占用cpu资源少的多,但是目前ubuntu系统我只试过用ros的usb_cam节点打开过摄像头,而专为树莓派设计的raspicam_node只能在raspian系统上安装,ubuntu系统普遍缺乏mmal库,因此无法有效调用树莓派的硬件资源,也没法使用picamera这个python库。
我买的树莓派CSI镜头只支持yuyv,不支持mjpeg格式,因此图像传输帧率有限制,最大只能在920p*720p下实现30fps帧率,更大的分辨率图像就会自动降低到6fps帧率。
usb_cam节点启动后也很占用cpu,一般占用到20%甚至30%。目前没有找到摄像头使能的方法,从而在需要的时候才打开usb_cam节点。