1)ubuntu20.04の導入。
基本的にはRaspberrypi公式からインストール。以下の前半を参照。
(UbuntuでもLubuntu化してもデスクトップの表示が異なるだけで同じ。)
2)eth0の設定
PCとの接続やインターネットへの接続はwifi(wran)で行い、eth0はNUCLEOとの接続に使用する。
wifiのmetricを高くして優先順位を上げておく。
とりあえずこれはROS2ではなくubuntuの使い方的な部分だから詳細解説作るのは後回し。
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: — — — — — — — —