RaspbrryPi4でROS2を使ってみる

RaspbrryPi4を購入したので、ROS2を使ったロボット制御にチャレンジしたいと思います。<参考HP


RaspbrryPi4用64Bit版<Ubuntu18.04LTS>をインストールします。(下記サイトより)

  https://ubuntu.com/download/raspberry-pi


SDフォーマット、書込みして RaspbrryPi4を立ち上げ Login, PW を聞いてくるがデフォルトでは、いづれも「ubuntu」のはずが入れない。
いきなり中断です。何かPWは2段階必要な感じです。

解決しました。
インストール後の最初の画面で、login, password の要求がありますが、まずは「ubuntu」「ubuntu」を入力すると Password 変更要求があります
まずは現在のPassword「ubuntu」を入力してから、新しいPasswordを入力しますが、文字数が8文字以上でないと認識してくれません。
新しいPasswordが認識されたら、再入力要求が有りますので、2回同じPasswordを入力すると入ることが出来ます。

ただし端末画面でのプロンプトは、「 ubuntu@ubuntu:~$: 」となっています。

うまくubuntuに入り込めたので、「ROS2」をインストールしていきますが操作は SSH 操作をしたいので、まず「ifcconfig」で現在のIPアドレスを
調べようとしましたが WiFi が表示されません。
よく考えると、各種設定が全く済んでいません。キーボードも日本語キーになっていない、SSH使えない、WiFi使えない状態です。
しかし今回の Ubuntu18.044 は、サーバー仕様なのでGUI画面での設定が出来ません。
CUIでの設定方法を調べます。
 USキーボード設定を日本語キーボードに変更:「 sudo dpkg-reconfigure keyboard-configuration 」
  keyboard-configuratio がインストールさせていないというエラー

それから、WiFi 設定する時有線LAN接続が必要(update等も同様)なので、無線LANから有線LANに変換するアダプターを購入


上記ユニットのセットアップが終わり有線LANでネットに接続ができました。
Ubuntu18.04.4LTSは起動できますが、有線LANケーブルを外しWiFiを使おうとした場合、設定方法が解らない。update、upgradeも出来ない。

<仮処理:有線LANを使っての取組>
リモートPC(ubuntu16.04LTS)よりSSHで操作

<ROS2のインストール>

 $ sudo locale-gen ja_JP ja_JP.UTF-8
 $ sudo update-locale LC_ALL=ja_JP.UTF-8 LANG=ja_JP.UTF-8
 $ export LANG=ja_JP.UTF-8

 $ sudo apt update && sudo apt install curl gnupg2 lsb-release
 $ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
 $ sudo sh -c 'echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" >     
  /etc/apt/sources.list.d/ros2-latest.list'

 $ sudo apt update

 $ sudo apt install ros-dashing-ros-base
 $ sudo apt install python3-argcomplete
 $ sudo apt install python3-colcon-common-extensions python3-pip python-rosdep python3-vcstool

 $ source /opt/ros/dashing/setup.bash
 $ echo "source /opt/ros/dashing/setup.bash" >> ~/.bashrc

問題なくROS2のインストールが終了しました。

<I2Cの有効化:PCA9685の利用準備>
サーボドライバ(PCA9685)でサーボを動かすための準備
(I2Cの有効化)
RaspbrryPi4でI2C通信が出来るように設定変更
/boot/firmware/config.txt の下記行のコメントアウトを外すとあるが、この行が無いので追加しました。(この影響が後にどう出るか?)