有線LAN(Ethernet)
概要
Raspberry Pi Catでナビゲーションを行うための環境構築手順について説明します。
ノートPCとRaspberry Pi Catに搭載されているRaspberry Pi同士をLANケーブ
で接続しセットアップを行います。
必要な物
Software | Version |
---|---|
ノートPC | Ubuntu 22.04(ROS 2 Humble) |
Raspberry Pi Cat(Raspberry Pi 4B+) | Ubuntu 22.04(ROS 2 Humble) |
Hardware | |
---|---|
ノートPC | Raspberry Pi Cat(Raspberry Pi 4B+) |
Joystick Controller | microSDカード(32GB以上が好ましい) |
LANケーブル |
環境構築手順
1. ROS 2のインストール
-
ROS 2のインストールをする場合
-
ROS 2の設定のみ済んでいない場合(ほとんどの人はできてないと思うので実行推奨)
2. ワークスペースの構築
-
Install apt pkg
-
学校で初めてsshで
git clone
する場合は以下を実行してください -
Set Up Workspace(GitHubでの鍵の登録が済んでいる前提)
git clone git@github.com:CIT-Autonomous-Robot-Lab/raspicat2.git $HOME/raspicat2 grep -q "source $HOME/raspicat2/install/setup.bash" ~/.bashrc || echo "source $HOME/raspicat2/install/setup.bash" >> ~/.bashrc grep -q "export RASPICAT2_WS=$HOME/raspicat2" ~/.bashrc || echo "export RASPICAT2_WS=$HOME/raspicat2" >> ~/.bashrc source $HOME/.bashrc cd $RASPICAT2_WS && mkdir src vcs import src < raspicat-pc.repos --debug rosdep update rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO colcon build --symlink-install source $HOME/.bashrc
3. 時刻同期のための設定
- Run script
1. microSDカードにUbuntuのイメージを焼く
- イメージのダウンロード
Ubuntu 22.04 LTSのリリースページからUbuntu 22.04 serverのイメージファイル
(ubuntu-22.04.1-preinstalled-server-arm64+raspi.img.xz
)をダウンロードします。
ここをクリックするとダウンロードが始まります
ダウンロードしたイメージはrpi-imager等でSDカードに書き込みます。
- rpi-imagerのインストール
下記のコマンドを実行して
rpi-imager
を立ち上げましょう。
以下のようにwindowが立ち上がると思います。 ダウンロードしたイメージとmicroSDカードを選択し
以下のようにmicroSDカードに書き込みましょう。
Warning
「詳細な設定」はすべてオフにしてください。 ここで「ホスト名」や「ユーザ名」を設定すると、この後デバイスドライバをインストールする際にエラーが発生します。
2. 焼いたmicroSDカードをRaspberry Piに挿してRaspberry Pi Catを起動
3. 有線LANを使用し、ノートPCのネットワークを利用する
ノートPCとRaspberry Pi間をLANケーブルで接続し、ノートPCからRaspberry Piへssh接続を行います。
Warning
ノートPCはWi-Fiに接続している必要があります。
1 . ノートPCとRaspberry Pi間をLANケーブルで接続
挿入後にそれぞれのLANポートのインジケーターランプが点滅していることを確認しましょう。
2 . PC側でEthernetの接続プロファイルを作成します
- network-managerのインストール
3 . プロファイルを作成後、プロファイルの適用を行います
- プロファイルの適用
4 . ip a
で有線LAN接続ができているか確認します
- 有線LAN接続の確認
enp0s31f6のIPアドレスが10.42.0.1
になっていれば問題ないです。
人によっては、eno、enp、ens、enxになっています。(命名規則について)ikebe@ikebe:~$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether f8:75:a4:a9:0a:49 brd ff:ff:ff:ff:ff:ff inet 10.42.0.1/24 brd 10.42.0.255 scope global noprefixroute enp0s31f6 valid_lft forever preferred_lft forever inet6 fe80::ec73:35a8:7a39:dcfc/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: wlp0s20f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 80:32:53:62:73:c5 brd ff:ff:ff:ff:ff:ff inet 192.168.23.232/24 brd 192.168.23.255 scope global dynamic noprefixroute wlp0s20f3 valid_lft 84272sec preferred_lft 84272sec inet6 fe80::5c7a:7a80:7622:ed41/64 scope link noprefixroute valid_lft forever preferred_lft forever
5 . Raspberry Piにssh接続
- arp-scanのインストール
Raspberry PiのIPアドレスを調べるためにarp-scan
コマンドを使用します。 -
ssh接続
Raspberry PiのIPアドレスを調べ、そのIPを使用しssh接続を行います。
-
接続するとyesかnoかを求められます
yesを選択しましょう。 -
次にパスワードを求められます
デフォルトのパスワードはubuntu
です。
そのため、以下のように入力を求められたら、ubuntu
と打ちましょう。 -
今度はパスワードの変更を求められます
次の入力では、設定したい自分が考えたパスワードを打ち込みます。
以下のように入力を求められたら、
現在のパスワードを聞かれているのでubuntu
と入力します。
パスワードをうまく設定できたら、以下のように出力されます。 -
パスワード無しでssh接続
6 . ssh接続ができたら、Raspberry PiがPCのネットワークを利用できているか確認します
- ネットワークへの接続確認(Raspberry Pi)
Info
実行後の正常な出力結果は以下のとおりです。
Warning
ノートPCがWi-Fiに接続されている状態で、下記のように結果が何も返ってこない場合は
↓ノートPC上で下記のコマンドを実行してください↓
export ET_NIC_NAME=$(ip -o link show | awk -F': ' '$2 ~ /^en[opsx]/ {print $2}')
export WL_NIC_NAME=$(ip -o link show | awk -F': ' '$2 ~ /^wl[opsx]/ {print $2}')
sudo iptables -t nat -A POSTROUTING -o $WL_NIC_NAME -j MASQUERADE
sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i $ET_NIC_NAME -o $WL_NIC_NAME -j ACCEPT
4. aptパッケージのアップグレード
-
aptパッケージの自動更新をオフにする
aptパッケージを更新する際に、自動更新のプロセスが邪魔をしてくるので、オフにしましょう。 -
aptパッケージの更新(時刻同期)
正常にaptパッケージの更新をするには、時刻を正しくする必要があります。
date
コマンドを打つと、現在の時刻ではないことが分かります。
↓ノートPC上で下記のコマンドを実行してください↓wget -O /tmp/setup_raspi.sh --no-check-certificate https://raw.githubusercontent.com/CIT-Autonomous-Robot-Lab/raspicat_setup_scripts/ros2/time_synchronization/scripts/setup_raspi.sh chmod +x /tmp/setup_raspi.sh . /tmp/setup_raspi.sh
Info
上記のコマンドでは、ノートPC(サーバ)の時間が合っているものとしています。
その上で、Raspberry Pi(クライアント)は、ノートPCの時刻を参照し、時刻の更新をします。
- aptパッケージの更新
ここで一旦、Raspberry Piの再起動を行います。 20秒程経ったら、再度ssh接続を行いましょう。
5. ROS 2のインストール
- Install ROS 2
6. ワークスペースの構築
-
Install apt pkg
-
学校で初めてsshで
git clone
する場合は以下を実行してください -
Set Up Workspace(GitHubでの鍵の登録が済んでいる前提)
git clone git@github.com:CIT-Autonomous-Robot-Lab/raspicat2.git $HOME/raspicat2 grep -q "source $HOME/raspicat2/install/setup.bash" ~/.bashrc || echo "source $HOME/raspicat2/install/setup.bash" >> ~/.bashrc grep -q "export RASPICAT2_WS=$HOME/raspicat2" ~/.bashrc || echo "export RASPICAT2_WS=$HOME/raspicat2" >> ~/.bashrc source $HOME/.bashrc cd $RASPICAT2_WS && mkdir src vcs import src < raspicat-raspi.repos --debug rosdep update rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO colcon build --symlink-install source $HOME/.bashrc
7. デバイスドライバのインストール
Raspberry Pi CatをROS 2で制御するには、デバイスドライバのインストールが必要です。
- Install Device Driver
Info
デバイスドライバは、特定のハードウェアデバイスとOS間で通信を行うためのソフトウェアです。