ROS勉強記その6:ROS(Noetic) でRaspberry Pi カメラモジュールv1.3を使う

投稿日:2023年4月2日
最終更新日:2023年4月2日

Raspberry Pi 4+ROSでRasberry Piカメラモジュールを使ってみる

前回でついに自作ロボットが動き出したのだが、現在ロボットの前面につけているラズパイのカメラモジュールは動かしておらず、ただの飾り状態になっている。

カメラで画像が取得できれば色々とできることも広がりそうなので、今回はROS(Noetic)でカメラモジュールを動かして画像を取得してみる。

 

実行環境

Raspberry Pi 4 Model B / 4GB

Ubuntu Server 20.04.5 LTS(64-bit)

ROS Noetic Ninjemys

Raspberry Pi カメラモジュール Rev1.3

 

raspicam_nodeをインストールする

今回は以下のraspicam_nodeを使わせていただくことにした。noeticでもRasberry Pi Camera  moduleのv1.xとv2.xで動くようだ。

https://github.com/UbiquityRobotics/raspicam_node/tree/noetic-devel

上のページの手順に通り、まずはUbiquity Roboticsさんのページに書いてあるPackage Repositoriesを追加しようとしたのだが、キーの部分で以下のようなエラーが出てしまった。

$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C3032ED8
Executing: /tmp/apt-key-gpghome.TY1GrtKUYl/gpg.1.sh --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C3032ED8
gpg: keyserver receive failed: Server indicated a failure

ググッてみてもよくわからんかったので、githubのページに戻って「Build Instructions」の手順で、ソースコードからビルドすることにした。githubの手順通りやっただけだが、一応メモしておくと、まずラズパイ(Ubuntu)でターミナルを開いて

cd ~/catkin_ws/src

でcatkin_ws/srcに移動し、以下でgithubからソースコードをcloneして持ってくる。

git clone https://github.com/UbiquityRobotics/raspicam_node.git

次に、/etc/ros/rosdep/sources.list.dディレクトリに30-ubiquity.listというファイルを作成するのだが、ここはroot権限じゃないとファイル作成できなかったので、私は/etc/ros/rosdep/sources.list.dディレクトリに移動して

sudo touch 30-ubiquity.list

でファイルを作成した。あとは

sudo vi 30-ubiquity.list

でviを使ってファイルを開き、

yaml https://raw.githubusercontent.com/UbiquityRobotics/rosdep/master/raspberry-pi.yaml

をファイルに追加して保存して閉じる。そのあと、

rosdep update

でROS の依存関係を更新し、

cd ~/catkin_ws
rosdep install --from-paths src --ignore-src --rosdistro=$ROS_DISTRO -y

で依存パッケージをインストールする。最後に

catkin_make

でビルドして完了。ビルド中に一部Failとかなんとか出ていた気がするが、ビルドは完了してその後カメラも使えたのでまぁ良しとする。

 

UbuntuでRaspberry Piカメラモジュールの接続を有効にする

ラズパイをRaspberry Pi OSを動かしている場合はたしかデフフォルトでカメラモジュールが使えた気がするが、Ubuntuで動かす場合は設定が必要になる。/boot/firmware/config.txtをviなどで開いて、

start_x=1
gpu_mem=128

を設定する。gpu_memはカメラの用メモリの設定で、あまり小さいと動かないらしい。適切な値がよくわからないがとりあえず128MBにして準備OK。ちなみに、どうも再起動しないと設定が反映されないようだったので(私の勘違いかもしれないが)ここまで来たら一度再起動しておくとよいかも。

ちなみに、最初この設定をせずにraspicam_nodeを動かそうとしたら

Failed to create camera component

というエラーが出て動かせず、小一時間悩んでしまったので注意…。

この設定については以下を参考にさせて頂きましたm(_ _)m
Raspberry pi 4とUbuntu Server 20.04 64bitでRaspberry pi cameraを使う

 

raspicam_nodeを動かしてみる

いよいよraspicam_nodeを動かしてみる。今回は、以下のようにラズパイカメラの前にミニカーを置いてテストしてみた。

ラズパイでターミナルを立ち上げて、私はRev1.xのカメラを使っているので、以下のlaunchファイルを実行。

rosrun rqt_reconfigure rqt_reconfigure

エラーなく実行されればキャプチャーが開始されるので、この状態で別のターミナルを起動し、

rqt_image_view

でimage Viewを立ち上げる。raspicam_nodeが起動していれば、左上からraspicam_nodeが選択できるはずなので、選択してみると・・・

画像が表示された!これで自作ロボットで画像も取得できるようになった。しばらくはraspicam_nodeの使い方を勉強していきたい。

 

ROS勉強記まとめ

この勉強記は以下のページでまとめてます。

ROS(Robot Operating System)勉強記 まとめ


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください