7
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Raspberry Pi Camera ModuleをROSで使うメモ.

Posted at

もともと,RaspberryPi3B+にUbuntu18.04を入れて,ROS(melodic)でUSBカメラから画像処理して云々するつもりでした.
しかし,USBカメラが大きくてスペースが無かったので,ラズパイのカメラモジュールを載せようという話になりました.
とりあえずラズパイにフラットケーブルぶっ刺せば行けるやろ()とググってみましたが,Raspbianだったり,ROSがIndigoだったりRaspberry Pi 3にROSをセットアップしてRaspberry Pi純正カメラ(Raspicam)で遊んでみた - karaage. [からあげ]でつまずいたので,未来の自分の為にメモとして残しておきます.

環境

結論

1. /boot/firmware/config.txtの変更
config.txt
[pi3]
#kernel=uboot_rpi_3.bin
kernel=vmlinuz
initramfs initrd.img followkernel

[all]
arm_64bit=1
#device_tree_address=0x03000000
start_x=1
gpu_mem=128

config.txtを変えたら,再起動してください.
最後の2行がカメラの設定に必要な行です.
Raspberry Piと純正カメラモジュールで監視カメラを作る、おそらく正しい方法 jessie版 (motion + v4l2ドライバ) - Qiita

2. コマンドを打つ.
$ sudo add-apt-repository ppa:ubuntu-raspi2/ppa
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install libraspberrypi-bin libraspberrypi-dev

多分必要ないと思いますが,vcgencmdでカメラの接続確認を行うためにインストールしておきます.

3. cv_cameraノードを使う.

ROSのインストールはここの公式を見ればいいので略します.melodic/Installation/Ubuntu - ROS Wiki
cv_cameraノードをどう使うかも,面倒なので略します.

余談 ただの愚痴です

最初,config.txtのkernelを変えずにカメラモジュールを使おうとしたら,/dev/video0が生成されず,見事にハマりました.
その後,ARM/RaspberryPi - Ubuntu Wikiココらへんを読んでvcgencmdを導入し,カメラの確認をしました.

$ vcgencmd get_camera
supported=1 detected=1

が,それでも/dev/video0が生成されず.
Raspberry Pi3でカメラモジュールをOpenCVで使う - 電気のDIYここで出てきた様に
$ sudo modprobe bcm2835-v4l2でドライバーを入れようとしてもエラーを返されてドライバーが入らず.
結局ラズパイにUbuntuをインストールし直し,上の手順を踏んだらvideo0が生成されました.

UbiquityRobotics/raspicam_node: ROS node for camera module of Raspberry PiこいつがKineticしか対応していないので無理かと思いつつcv_cameraで試したら一発で成功し歓喜しました.

あと,ARM/RaspberryPi - Ubuntu WikiココらへんのOptional_PPAsの項目を読んでいると,raspistillコマンドも使えるようになると思いきや,使えませんでした.
raspberrypi/userland: Source code for ARM side libraries for interfacing to Raspberry Pi GPU.こっちのGithubの説明を読むと,

Whilst 64-bit userspace is not officially supported, some of the libraries will work for it. To cross compile, install gcc-aarch64-linux-gnu and g++-aarch64-linux-gnu first. For both native and cross compiles, add the option --aarch64 to the buildme command.

という感じで64bit版はサポートしていないみたいでしたが,aptでg++-aarch64-linux-gnuをインストールして,cloneしたやつを直接ビルドしたらraspistillも使えました.(使わない)

7
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?