1)ubuntu20.04の導入。

 基本的にはRaspberrypi公式からインストール。以下の前半を参照。

 ラズパイにLubuntu20.04を入れる(&web鯖)

 (UbuntuでもLubuntu化してもデスクトップの表示が異なるだけで同じ。)

2)eth0の設定

 PCとの接続やインターネットへの接続はwifi(wran)で行い、eth0はNUCLEOとの接続に使用する。

wifiのmetricを高くして優先順位を上げておく。

 とりあえずこれはROS2ではなくubuntuの使い方的な部分だから詳細解説作るのは後回し。

 参考: NetworkManagerによるネットワーク管理

3)ROS2のインストール

リポジトリやらなんやら変わったりするので基本的には公式→(ROS2FoxyのinstallManual)の(Debian用項目)を見てください。

が、一応現状は下に引用しておきます

・ロケールの設定

 まぁ、不要だと思うので省略。厳密に環境を合わせたい人はどうぞ。

・aptにROS2 のGPGキーの追加

$sudo apt install software-properties-common
$sudo add-apt-repository universe
$sudo apt update && sudo apt install curl -y
$sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
$echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

・ROS2インストール

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install ros-foxy-desktop python3-argcomplete
$ sudo apt install ros-dev-tools

ROS2環境支援のソフト(colcon)にパッケージ状況を教えるマジックワードを.bashrcに追加

$sudo nano ~/.bashrc

末尾に以下追加

#--------------ROS2-------------
source /opt/ros/foxy/setup.bash
source ~/colcon_ws/install/setup.bash

・ROS2動作試験

ターミナルを2つ開いて以下を実行してみる

$ source /opt/ros/foxy/setup.bash $ ros2 run demo_nodes_cpp talker

$ source /opt/ros/foxy/setup.bash $ ros2 run demo_nodes_py listener

以下のように、なんか片方がしゃべった(発行したトピックが)のが、もう片方に到達していれば(購読できていれば)成功。

これでROS2のインスコは終わり。


以下、旧ページ


ubuntu 20.04導入
1)raspberry pi imagerでSDにubuntu 20.04 lteを書き込む。
  その際、imagerの設定をいじってsshを有効にし、
  マシン名を変更し、WRANの設定をし、
  デフォルトユーザーのIDとパスワードは設定しておく。

とりあえず、Ubuntuラズパイ用のディストリビューションは結構乱暴で、raspberrypi OSみたいにいきなりカラフルなXWindowが立ち上がるとか望むべくも無いのでぜーんぶ、Windows3.1時代のPCのようにインストールをしていく必要がある。

マジ糞。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

sudo apt update
sudo apt upgrade
sudo apt net-tools

ifconfig

で、IP確認
sshで入れるかどうか確認。
(入れたらこれ以降sshで作業)

————————————————————————————

lubuntuの導入

:20.04ーーーーーhttps://qiita.com/naomori/items/e45d5dc77ecda860f41a

git clone https://github.com/wimpysworld/desktopify.git
cd desktopify/
sudo ./desktopify --de lubuntu
sudo apt install -y xrdp
sudo apt install -y chromium-browser

:22.04 LTE----https://qiita.com/harutin_99/items/a09c41c581cd92b6371b

sudo apt -y install lubuntu-desktop

:ーーーーーーhttps://gihyo.jp/admin/serial/01/ubuntu-recipe/0624ーーーーーーー

「システム設定(System Settings?)?」から「地域と言語(Region & Language?)?」を選択し、「?インストールされている言語の管理(Manage Installed Languages?)?」を起動する
「言語のインストールと削除(Intall/Remove Languages?)?」ボタンを押して、Japaneseにチェックを入れ、「?適用(Apply?)?」ボタンを押す
追加のパッケージのインストールを問われるので、指示に従ってインストールする
「メニューとウィンドウの言語(Language for menus and windows?)?」にある「日本語」をドラッグアンドドロップで先頭に移動する
一度ログアウトした上で、再度ログインし、「?システム設定(System Settings?)?」から「地域と言語(Region & Language?)?」を選択する
「言語」と「フォーマット」がそれぞれ日本語になっていることを確認し、なっていなければ変更する
日本語キーボードなら入力ソースから「英語」を削除し「日本語」を追加する
さらに入力ソースに「日本語(Mozc?)?」を追加する
「Super + Space」で「日本語(Mozc?)?」を選択して日本語入力できることを確認する
「日付と時刻」からタイムゾーンを日本(JST)に変更する

日本語化
左下メニューボタン → Preferences → LXQt Settings → Locale
https://gihyo.jp/admin/serial/01/ubuntu-recipe/0624
GUIの無効化=CUIの有効化には,以下のコマンドを実行する。

sudo systemctl set-default multi-user.target

GUIの有効化=CUIの無効化には,以下のコマンドを実行する。

sudo systemctl set-default graphical.target

日本語入力

sudo apt-get install fcitx-mozc

sudo apt-get install fdclone
sudo apt-get install tightvncserver
sudo apt-get install xrdp
sudo apt-get install gddrescue
sudo apt-get install parted gparted
sudo apt-get install ksnapshot

//ネットワーク関係のツール。

sudo apt-get install netcat


//クロック状況を見れるようにしておく。

//たとえばudpなら nc -4lu 自機IP 監視ポート で、信号待ちできるようになるのでネットワーク越しのアプリ開発に便利

sudo apt-get install cpufrequtils

//sudo vcgencmd measure_tempでCPU温度を見れるようにしておく。

//Raspberrypiだとスロットルにかからないようにするのに必要でしょ。

sudo-apt-get install libraspberrypi-bin

//sudo rpi-eeprom-updateでeepの状態を見れるようにしておく(あまり使わないと思うけどおまけ。rpiのツールを入れておくという意味で)

sudo apt-get install rpi-eeprom

分かりやすいROS2 Foxyインストール手順

https://kurukuruway.com/kaihatsu/raspberry-pi-4%E3%81%ABubuntu-20-04%E3%81%A8ros2%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/
ロケールの確認と設定
不要な気がしますが、公式に従います

$ locale #まず自分のロケールを確認
$ sudo apt update && sudo apt install locales
$ sudo locale-gen en_US en_US.UTF-8
$ sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
$ export LANG=en_US.UTF-8
$ locale #反映されたことを確認

aptがパッケージ認証に使用するキーの一覧に、GPG(GNU Privacy Guard)キーを、下記のコマンドで追加します。

$ 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=$(dpkg --print-architecture)] 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-foxy-desktop
$ sudo apt install ros-foxy-ros-base
$ source /opt/ros/foxy/setup.bash

デフォルトインストールではPOP

$ sudo apt install -y python3-pip
$ pip3 install -U argcomplete

デモンストレーション

のまま、その下のTry some examples項目を行っていきます。

ターミナルを、1つ起動し、下記のコマンドを実行します。

$ source /opt/ros/foxy/setup.bash
$ ros2 run demo_nodes_cpp talker
そうしたら、もう1つターミナルを起動し、下記のコマンドを実行します。

$ source /opt/ros/foxy/setup.bash
$ ros2 run demo_nodes_py listener
実行が成功すると、

下記のように、1つ目のターミナルで「Publishing」、2つ目のターミナルで「I heard」が表示されます。

Publishing側から送られたメッセージが、I heard側で受け取れていることがわかります。

—source~を毎回入れずに済ます

echo “source /opt/ros/foxy/setup.bash” >> ~/.bashrc

————————————————-
自分のGPIOを動かすための設定
—————pigpioを使う場合
https://www.circletek.jp/index.php/2020/06/08/a-145/
https://qiita.com/NeK/items/da429f8c001476ec4544
————-i2Cを使う場合
https://qiita.com/myasu/items/5b122c782c5a616d8b60
インストール

ubuntu@ubuntu:~$ sudo apt install i2c-tools -y
ubuntu@ubuntu:~$ sudo apt install python3-smbus -y

自分をi2cグループに追加

ubuntu@ubuntu:~$ sudo adduser ubuntu i2c

動作確認

ubuntu@raspi3u:~$ i2cdetect -r -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: — — — — — — — — — — — — —
10: — — — — — — — — — — — — — — — —
20: 20 — — — — — — — — — — — — — — —
30: — — — — — — — — — — — — — — — —
40: — — — — — — — — — — — — — — — —
50: — — — — — — — — — — — — — — — —
60: — — — — — — — — 68 — — — — — — —
70: — — — — — — — —