RaspbrryPi 4への魚眼レンズカメラ取付・インストール

(4)で魚眼レンズ付きカメラ取付写真を掲載しているので、ここではソフトのインストールと動作確認を行います。

参考URLは、Turtlebot3 の e-Manual です。<付録:RaspberryPiカメラ>
      https://github.com/UbiquityRobotics/raspicam_node

上記の説明にあるRaspberryPiのカメラインターフェイスは有効に設定されているものとします。
機能テストは、下記のコマンドを実行します。

 $ raspistill -v -o test.jpg ディスプレーには5秒間画像が表示され、その後Homeに「test.jpg」が保存されます。

正常に動作すれば、次にカメラ関連のROSパッケージをインストールします。

 $ cd ~/catkin_ws/src
 $ git clone https://github.com/UbiquityRobotics/raspicam_node.git
 $ sudo apt-get install ros-kinetic-compressed-image-transport ros-kinetic-camera-info-manager
 $ cd ~/catkin_ws && catkin_make

上記の3番目のコマンドでファイルが見つからない。


間違っていました。kinetic -> melodic 再度実行したが同様であった。


別のサイトも参考にトライ

 http://ogimotokin.hatenablog.com/entry/2018/01/14/100125



 https://qiita.com/kon_yu/items/8ac350f3951f8534c931

上記を参考に、「apy-get」で見つからないパッケージをインストール方法を試す。


dpkg フロントエンドロック(/ver/lib/dpkg/lock-frontend)を取得できません。ルートですか? というエラーメッセージ

repositoryを追加する。
まず現状のリポジトリのリストを確認する。non-freeがないことを確認 -> ある。


#下の行のコメントを外して、「apt-get update」や「apt-get source」を有効にします。

 「apt-get update」は、sudo が必要。
 「apt-get source」は、パッケージ名が必要という事で上記の様に指定したが間違っているようだ。

リポジトリの追加用のapt-add-repositoryパッケージをインストールする
 $apt-get install apt-file

 $sudo apt-get install apt-file と管理者権限が必要。

 $sudo apt-get install apt-file

上記画面の様に104個のアップグレードできるパッケージがある様なので下記コマンドでアップグレードする。

 $sudo apt-get upgrade

 $sudo apt-file update

 $sudo apt-file search apt-add-repository

 $sudo apt-get install -y software-properties-common

先程調べたiozone3パッケージのあるnon-freeリポジトリをリポジトリのリストに追加してあげる

 $sudo apt-add-repository non-free

non-free 部分には、以前エラーを起こした内容を記載したが、2回エラーとなった。
結果、「deb-src」のみを記載して一応実行されたが正しいのかどうかは不明である。

リポジトリリストの確認

 $cat /etc/apt/sources.list


再度カメラ関係のパッケージインストール

 $ cd ~/catkin_ws/src
 $ git clone https://github.com/UbiquityRobotics/raspicam_node.git
 $ sudo apt-get install ros-kinetic-compressed-image-transport ros-kinetic-camera-info-manager
 $ cd ~/catkin_ws && catkin_make

結果、apt-get でのインストールはNGのままです。

下記にもチャレンジ

 https://github.com/UbiquityRobotics/raspicam_node

いきなりパッケージが見つからないです。
なにか apt install 出来ない原因があるようです。(例えばバイナリ&ソースの違い)

ソースからのビルドで試してみます。
catkin_wsに移動します。 $cd ~/catkin_ws/src
次のコマンドを実行して、このノードのソースをダウンロードします

 $git clone https://github.com/UbiquityRobotics/raspicam_node.git
これは以前実行済みなので、すでにファイルがあるというメッセージが出る。

rosで認識されない依存関係がいくつかあるため、ファイルを作成して/etc/ros/rosdep/sources.list.d/30-ubiquity.listこれに追加する必要があります。
私の環境では、以下の通り「20-default.list」となっています。

 $sudo nano 20-default.list

この中に、以下の内容を追加します。
 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=kinetic -y ここの kinetic を melodic に変更

エラーが出た。

次のパッケージ/スタックは、rosdepキーを解決できなかった。システム依存関係へ

下記参照

 https://github.com/tork-a/jog_control/issues/12

 $ cd ~/catkin_ws
 $ rosdep install -r --from-path src --ignore-src

上記画面と同様のエラーメッセージが出たが、1万個以上のパッケージがインストールされた。
しかし、catkin_make したら今までと同様のCMakeエラーが出る。(改善されない)

これも試してみました。
 https://asukiaaa.blogspot.com/2018/06/raspberry-pi-raspbianstretchrosmelodic.html

 $sudo apt update
 $sudo apt upgrade -y
 $sudo apt install dirmngr -y
 $sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
 $sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
 $sudo apt update

ソースコードの配置やビルドに必要な関連プログラムをインストールします。

 $sudo apt install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall python-empy build-essential cmake

rosdepの初期化とROSのワークスペースとして使うディレクトリを作成します。

 $sudo rosdep init
 $rosdep update
 $mkdir ~/catkin_ws 存在するので不要

デフォルトのソースリストファイルは既に存在するので、再初期化する場合は削除してください、というエラー
 /etc/ros/rosdep/sources.list.d/20-default.list を削除します。


上記のままでは削除できないので、$sudo rm 20-default.list とします。確認後削除されていました。


ビルドするROSのソースコードを取得します。
desktop版の場合で実行

 $cd ~/catkin_ws/
 $rosinstall_generator desktop --rosdistro melodic --deps --tar > melodic-desktop.rosinstall
 $wstool init -j2 src_isolated melodic-desktop.rosinstall

配置したソースコードに記述されている情報を参照して、依存するプログラムをインストールします。

 $cd ~/ros_catkin_ws/
 $rosdep install --from-paths src_isolated --ignore-src --rosdistro melodic -y

本日は、ここまで