Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Raspberry Pi Cat] ROS 1チュートリアルを作成 #26

Open
wants to merge 32 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 31 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
4f586e0
Add file
uhobeike Jun 10, 2022
e1ce269
Add ros raspicat-pkg install
uhobeike Jun 20, 2022
25a0db3
Add ros raspicat-sample
uhobeike Jun 20, 2022
042d97b
Update
uhobeike Jun 27, 2022
faa1d2f
Add raspicat_sim execute
uhobeike Jun 27, 2022
8596fa3
Fix
uhobeike Jun 27, 2022
8e1e146
Fix
uhobeike Jul 8, 2022
00d5004
Update
uhobeike Jul 11, 2022
52d309c
Add Command explanation
uhobeike Jul 18, 2022
827c698
Fix step6* explanation
uhobeike Jul 29, 2022
6004d0b
Fix explanation emphasis
uhobeike Jul 29, 2022
72186e5
Fix typo
Tiryoh Aug 26, 2022
c4da070
Raspberry Pi Catの関連リンク集追加
Tiryoh Aug 26, 2022
144bd80
シミュレータ関係整理
Tiryoh Aug 26, 2022
1985960
注意事項追加
Tiryoh Aug 26, 2022
9c5db07
使用機材の情報を整理
Tiryoh Aug 30, 2022
4903850
準備中製品のリスト更新
Tiryoh Sep 7, 2022
0cbd1b7
Merge branch 'main' into feature/raspicat-tutorial
Tiryoh Sep 8, 2022
d00c15e
端末ログイン後の表示例追加
Tiryoh Sep 30, 2022
7737708
表記修正
Tiryoh Nov 29, 2022
42d8325
依存パッケージ追加
Tiryoh Nov 29, 2022
5559284
ネットワーク共有の項目を一度削除
Tiryoh Dec 5, 2022
206d274
SLAM実行時のコマンド修正
Tiryoh Dec 19, 2022
9cf42bc
Feature ros2
uhobeike Feb 10, 2023
a671d5f
Revert "Feature ros2"
Tiryoh Feb 14, 2023
045e7dd
Merge branch 'main' into feature/raspicat-tutorial
Tiryoh Feb 14, 2023
559f40e
地図データのパスの説明を修正
Tiryoh Feb 14, 2023
d1755f2
Fix color overrides (https://github.com/squidfunk/mkdocs-material/iss…
Tiryoh Feb 14, 2023
85d2498
typo修正
Tiryoh Feb 14, 2023
b151704
Merge branch 'main' into feature/raspicat-tutorial
Tiryoh Feb 14, 2023
d0515b4
Merge branch 'main' into feature/raspicat-tutorial
Tiryoh Feb 14, 2023
355bc37
Update docs/raspicat/driver/samples.md
Tiryoh Sep 12, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added docs/img/raspicat/driver/raspi_os_settings3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/raspicat/driver/windows-vcp-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/raspicat/driver/windows-vcp-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/raspicat/driver/windows-vcp-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/raspicat/driver/windows-vcp-4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/raspicat/driver/windows-vcp-5.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/raspicat/driver/windows-vcp-6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/raspicat/driver/windows-vcp-7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 6 additions & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,14 @@
[コーポレートサイトの各製品ページ](https://rt-net.jp/works_category/allproducts/){target=_blank rel=noopener}
に公開しているマニュアルや、製品に付属しているマニュアルを参照してください。

現時点ではRaspberry Pi Mouse、Jetson Nano Mouse、CRANE+ V2のチュートリアルを掲載しています
現時点では下記3製品のチュートリアルを掲載しています
**その他の製品については準備中です**。

* [CRANE+ V2][CRV2DOC]
* [Raspberry Pi Mouse][RPMSDOC]
* [Jetson Nano Mouse][JNMSDOC]
* [Raspberry Pi Cat][RPCATDOC]

| [CRANE+ V2][CRV2DOC] | [CRANE-X7][CRX7DOC] | [Sciurus17][SC17DOC] |
| :---: | :---: | :---: |
| [![img][CRV2IMG]][CRV2DOC] | [![img][CRX7IMG]][CRX7DOC] | [![img][SC17IMG]][SC17DOC] |
Expand Down
206 changes: 206 additions & 0 deletions docs/raspicat/driver/install.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,206 @@
---
title: デバイスドライバのインストール
robot: Raspberry Pi Cat
---

# デバイスドライバのインストール

このページでは
[Raspberry Pi Catのデバイスドライバ](https://github.com/rt-net/RaspberryPiMouse)
のインストール方法を説明します。

Raspberry Pi CatのLEDやモータを駆動するためには、
デバイスドライバが必要です。

!!! info
出荷時に付属しているRaspberry Pi OSインストール済みのmicroSDカードを利用する場合は、本ページのインストール手順を飛ばしてそのまま[サンプルプログラムの実行](./samples.md)に進むことができます。

## 使用機材 {: #requirements}

* 組み立て済みRaspberry Pi Cat本体
* [製品マニュアル](https://rt-net.jp/products/raspberry-pi-cat/#downloads)を読んで組み立て済みの状態を前提としています
* OSの再インストールを行う場合はRaspberry PiからmicroSDカードを取り外す必要があります
* USB Type-Bケーブル(Raspberry Pi Catに同梱されています)
* ノートパソコン等のPC

## OSのインストール {: #os-installation}

Raspberry Pi Catのデバイスドライバは**Ubuntu**と**Raspberry Pi OS (旧称Raspbian)**に対応しています。

後ほどRaspberry Pi Catで**ROSを扱う場合はUbuntu Serverのインストールを推奨します**。

=== "Ubuntu Server 18.04"
[Ubuntu 18.04 LTSのリリースページ](http://cdimage.ubuntu.com/ubuntu/releases/18.04/release/)から**Ubuntu 18.04 server**のイメージファイル(`ubuntu-18.04.5-preinstalled-server-arm64+raspi4.img.xz`)をダウンロードします。

ダウンロードしたイメージは[rpi-imager](https://www.raspberrypi.com/software/)等でSDカードに書き込みます。

=== "Raspberry Pi OS"
Raspberry Pi OSの場合は、サイトからイメージをダウンロードせずに[rpi-imager](https://www.raspberrypi.com/software/)を使用することで、イメージを書き込むことができます。

## Raspberry Piへのログイン {: #raspberry-pi-login}

Raspberry Pi Cat制御基板にはUSBシリアル変換機能が搭載されており、USB Type-BケーブルでPCと接続すると、PCにはVCP(Virtual Com Port)デバイスとして認識されます。

必要に応じてPC用のドライバを[FTDI社のサイト](https://ftdichip.com/drivers/vcp-drivers/)より入手し、インストールしてください。

Windowsでは[Tera Term](https://ja.osdn.net/projects/ttssh2/)、Linuxでは[screen](https://wiki.archlinux.jp/index.php/GNU_Screen)などのソフトウェアを使うことでRaspberry Pi Cat制御基板経由でRaspberry Piにログインすることができます。

=== "Ubuntu"
1. まず、USB Type-BケーブルをRaspberry Pi Cat制御基板に接続します。まだRaspberry Pi Cat本体の電源は入れません。
`$ ls /dev/ttyUSB*`と実行し、Raspberry Pi Cat制御基板が認識されていることを確認します。このときのデバイスファイル名を控えておきます。
1. screenでデバイスファイルにアクセスします。上記の手順で確認したデバイスファイル名が`/dev/ttyUSB0`だった場合は、`$ screen /dev/ttyUSB0 115200`などのように実行します。
1. ここで、Raspberry Pi Cat操作基板にある電源スイッチを操作し、Raspberry Pi Cat本体の電源をオンにします。電源をオンにすると電源LEDが点灯します。
![](../../img/raspicat/driver/windows-vcp-5.jpg){: style="width:50%"}
1. 電源をオンにしてしばらく待つとログイン画面が表示されます。何も表示されない場合はEnterキーを押すと表示されます。
1. ユーザ名: `pi` パスワード: `raspberry` でログインします。パスワード入力中は画面に文字が出てきませんのでタイプミスのないように入力します。無事にログインできていると以下のような表示になります。
```
Linux raspberrypi 5.15.32-v8+ #1538 SMP PREEMPT Thu Mar 31 19:40:39 BST 2022 aarch64

The programs included with the Debian GNU/Linux system are free software;

中略

pi@raspberrypi: ~$
```
=== "Windows"
1. まず、USB Type-BケーブルをRaspberry Pi Cat制御基板に接続します。まだRaspberry Pi Cat本体の電源は入れません。
Windowsのデバイスマネージャを起動してRaspberry Pi Cat制御基板が認識されていることを確認します。以下のようにUSB Serial Portとして認識されます。このときのCOMポートの番号を控えておきます。今回の例ではCOM3です。
![](../../img/raspicat/driver/windows-vcp-1.png)
1. Tera Termを起動し、デバイスマネージャで確認したCOMポートを指定して接続します。
![](../../img/raspicat/driver/windows-vcp-2.png)
1. 「設定」 - 「シリアルポート」を開きシリアルポートの設定を行います。
![](../../img/raspicat/driver/windows-vcp-3.png)
1. 以下のようにCOMポートを先ほど確認した番号に、ボーレートを115200に設定します。
![](../../img/raspicat/driver/windows-vcp-4.png)
1. ここで、Raspberry Pi Cat操作基板にある電源スイッチを操作し、Raspberry Pi Cat本体の電源をオンにします。電源をオンにすると電源LEDが点灯します。
![](../../img/raspicat/driver/windows-vcp-5.jpg){: style="width:50%"}
1. 電源をオンにしてしばらく待つと以下のようにログイン画面が表示されます。何も表示されない場合はEnterキーを押すと表示されます。
![](../../img/raspicat/driver/windows-vcp-6.png)
1. ユーザ名: `pi` パスワード: `raspberry` でログインします。パスワード入力中は画面に文字が出てきませんのでタイプミスのないように入力します。無事にログインできていると以下のような表示になります。
![](../../img/raspicat/driver/windows-vcp-7.png)

## ネットワークへの接続 {: #network-setup}

Wi-Fiへの接続方法を説明します。


=== "Ubuntu Server"

[https://ubuntu.com/server/docs/network-configuration](https://ubuntu.com/server/docs/network-configuration)
に詳細な説明が書かれています。
IPアドレスの固定については[Ubuntu ServerでWi-Fiに接続し、IPアドレスを固定する](#wifi-static-ip)を参照してください。

1. `$ sudo vim /etc/netplan/99_config.yaml`で設定ファイルを新規作成し、下記のように記述します。
この例では、SSID:`raspimouse` パスワード:`rt-net`のネットワークに接続する場合について紹介します。
```yaml
network:
ethernets:
eth0:
dhcp4: true
optional: true
wifis:
wlan0:
access-points:
raspimouse: #ここにSSIDを書く
password: rt-net #ここにパスワードを書く
dhcp4: true
version: 2
```
1. `$ sudo netplan apply`を実行します
1. `$ ip addr`を実行し、Wi-Fiに接続してIPアドレスを取得できているか確認します

=== "Raspberry Pi OS"
1. raspi-configで設定します
```sh
$ WIFI_SSID="" # ここでSSIDを設定
$ WIFI_PASS="" # ここでパスワードを設定
$ sudo raspi-config nonint do_wifi_ssid_passphrase $WIFI_SSID $WIFI_PASS && echo "Wi-FI ON"
```
`Wi-Fi ON`とメッセージが返ってきたらWi-Fiへの接続設定完了です
1. `$ ip addr`を実行し、Wi-Fiに接続してIPアドレスを取得できているか確認します

## ソースファイルのダウンロードとインストール {: #driver-installation}

Raspberry Pi Catのデバイスドライバのソースファイルは
[GitHub](https://github.com/rt-net/RaspberryPiMouse)
に公開されています。

=== "Ubuntu Server"
1. パルスカウンタの動作を安定させるためI2Cのボーレートを変更します
1. `/boot/firmware/config.txt`を編集し、`dtparam=i2c_baudrate=62500`を追記します
1. Raspberry Pi を再起動します
1. `$ printf "%d\n" 0x$(xxd -ps /sys/class/i2c-adapter/i2c-1/of_node/clock-frequency)`を実行し、`62500`と表示されたら設定完了です。
1. 次のコマンドを実行し、デバイスドライバをインストールします
```sh
$ git clone https://github.com/rt-net/RaspberryPiMouse.git $HOME/RaspberryPiMouse
$ cd $HOME/RaspberryPiMouse/utils
$ sudo apt install linux-headers-$(uname -r) build-essential
$ ./build_install.bash
```
1. コマンド実行後にブザーが鳴ればインストール完了です

=== "Raspberry Pi OS"
1. パルスカウンタの動作を安定させるためI2Cのボーレートを変更します
1. `/boot/config.txt`を編集し、`dtparam=i2c_baudrate=62500`を追記します
1. Raspberry Pi を再起動します
1. `$ printf "%d\n" 0x$(xxd -ps /sys/class/i2c-adapter/i2c-1/of_node/clock-frequency)`を実行し、`62500`と表示されたら設定完了です。
1. 次のコマンドを実行し、raspi-configからSSH, SPI, I2C, Serial Portの機能を有効化します
```sh
$ sudo raspi-config nonint do_ssh 0
$ sudo raspi-config nonint do_spi 0
$ sudo raspi-config nonint do_i2c 0
$ sudo raspi-config nonint do_serial 0
```
1. 次のコマンドを実行し、デバイスドライバをインストールします
```sh
$ git clone https://github.com/rt-net/RaspberryPiMouse.git
$ cd RaspberryPiMouse/utils
$ sudo apt install raspberrypi-kernel-headers build-essential
$ ./build_install.bash
```
1. コマンド実行後にブザーが鳴ればインストール完了です。

## デバイスドライバの自動インストール
デバイスドライバは起動たびにインストールする必要があります。

そのため、[rt-net/raspicat_setup_scripts](https://github.com/rt-net/raspicat_setup_scripts)を使用して、起動たびにデバイスドライバをインストールするためのサービスを登録します。

```sh
$ git clone https://github.com/rt-net/raspicat_setup_scripts.git $HOME/raspicat_setup_scripts
$ cd $HOME/raspicat_setup_scripts
$ make install
```

## その他 {: #misc}

### Ubuntu ServerでWi-Fiに接続し、IPアドレスを固定する {: #wifi-static-ip}

[https://ubuntu.com/server/docs/network-configuration](https://ubuntu.com/server/docs/network-configuration)
に詳細な説明が書かれています。

!!! info
IPアドレスを固定するとネットワークに影響が出る場合があります。会社等で利用する場合はネットワーク管理者にお問い合わせください。


1. `$ sudo vim /etc/netplan/99_config.yaml`で設定ファイルを新規作成し、下記のように`dhcp4: false`としてIPアドレスを記述します。
この例では、IPアドレスを`192.168.11.89`に固定します。__この設定値は環境によって変わりますのでご注意ください__。
```txt
network:
ethernets:
eth0:
dhcp4: true
optional: true
wifis:
wlan0:
access-points:
ここにSSIDを書く:
password: ここにパスワードを書く
dhcp4: false
addresses: [192.168.11.89/24]
gateway4: 192.168.11.1
nameservers:
addresses: [8.8.8.8, 192.168.11.1]
version: 2
```
2. `$ sudo netplan apply`を実行します
3. `$ ip addr`でWi-Fiに接続できているか確認します
Loading