From bfe0bc3554bea6e845c8169ef1562eea1a58dbd1 Mon Sep 17 00:00:00 2001 From: Kazushi Kurasawa Date: Thu, 5 Dec 2024 18:20:23 +0900 Subject: [PATCH] =?UTF-8?q?[Raspberry=20Pi=20Mouse]ROS=202=20Jazzy?= =?UTF-8?q?=E3=81=AE=E3=83=81=E3=83=A5=E3=83=BC=E3=83=88=E3=83=AA=E3=82=A2?= =?UTF-8?q?=E3=83=AB=E3=82=92=E8=BF=BD=E5=8A=A0=20(#40)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: YusukeKato --- .../driver/pi_imager_settings_ubuntu_24.png | Bin 0 -> 37294 bytes .../pi_imager_settings_ubuntu_24_64bit.png | Bin 0 -> 93126 bytes docs/raspimouse/driver/install.md | 85 ++++++++++++------ docs/raspimouse/ros/install.md | 46 +++++----- docs/raspimouse/ros/package-install.md | 44 ++++++--- docs/raspimouse/ros/samples.md | 10 ++- docs/raspimouse/simulator/install.md | 61 +++++++++++-- docs/raspimouse/simulator/samples.md | 82 +++++++++++++++-- 8 files changed, 251 insertions(+), 77 deletions(-) create mode 100644 docs/img/raspimouse/driver/pi_imager_settings_ubuntu_24.png create mode 100644 docs/img/raspimouse/driver/pi_imager_settings_ubuntu_24_64bit.png diff --git a/docs/img/raspimouse/driver/pi_imager_settings_ubuntu_24.png b/docs/img/raspimouse/driver/pi_imager_settings_ubuntu_24.png new file mode 100644 index 0000000000000000000000000000000000000000..ad0340c7d58cbe0db66797806041782899f5d472 GIT binary patch literal 37294 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 Va4y?{^KZ}%4DUvCtvNwW{x2AI8211G literal 0 HcmV?d00001 diff --git a/docs/img/raspimouse/driver/pi_imager_settings_ubuntu_24_64bit.png b/docs/img/raspimouse/driver/pi_imager_settings_ubuntu_24_64bit.png new file mode 100644 index 0000000000000000000000000000000000000000..b76f15441e9421d13d7976d9a37537ae1a2fbfd4 GIT binary patch literal 93126 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⪻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 f{b+F%@mD6XyqP__RX+M8-Q^N{}slq#$g literal 0 HcmV?d00001 diff --git a/docs/raspimouse/driver/install.md b/docs/raspimouse/driver/install.md index da116a7..ee10c54 100644 --- a/docs/raspimouse/driver/install.md +++ b/docs/raspimouse/driver/install.md @@ -27,11 +27,17 @@ Raspberry Pi MouseのLEDやモータを駆動するためには、 ## OSのインストール {: #os-installation} -Raspberry Pi Mouseのデバイスドライバは"Ubuntu"と"Raspberry Pi OS"(旧称"Raspbian")に対応しています。 +Raspberry Pi Mouseのデバイスドライバは、"Ubuntu"と"Raspberry Pi OS"(旧称"Raspbian")に対応しています。 +ここではUbuntuとRaspberry Pi OSのインストール手順を紹介します。 -ここではUbuntu(Ubuntu Server 22.04, Ubuntu Server 20.04)と、Raspberry Pi OSのインストール手順を紹介します。 +後ほどRaspberry Pi MouseでROSを扱う場合は、Ubuntuのインストールを推奨します。各種ROSとUbuntuのバージョン対応表は以下の通りです。 + +| ROS | Ubuntu | +| ---- | ---- | +| ROS Noetic | Ubuntu Server 20.04(64bit版) | +| ROS 2 Humble | Ubuntu Server 22.04(64bit版) | +| ROS 2 Jazzy | Ubuntu Server 24.04(64bit版)| -後ほどRaspberry Pi Mouseで**ROSを扱う場合はUbuntu Server 20.04(64bit版)を、ROS 2を扱う場合はUbuntu Server 22.04(64bit版)のインストールを推奨します**。 !!! info 出荷時に付属しているRaspberry Pi OSインストール済みのmicroSDカードを利用する場合は、OSインストール手順を飛ばしてそのまま[ソースファイルのダウンロードとインストール](#driver-installation)に進むことができます。 @@ -41,15 +47,29 @@ Raspberry Pi Mouseのデバイスドライバは"Ubuntu"と"Raspberry Pi OS"( Raspberry PiやRaspberry Pi Mouse本体を**故障させないように**注意してください。 詳細はRaspberry Pi Mouseの**[製品マニュアル](https://rt-net.jp/products/raspberrypimousev3/#downloads)を参照してください**。 +=== "Ubuntu Server 24.04" + 1. [https://www.raspberrypi.org/software/](https://www.raspberrypi.org/software/){target=_blank rel=noopener} にアクセスします + 1. Raspberry Pi Imagerをダウンロードします + ![](../../img/raspimouse/driver/download_raspberry_pi_imager.png) + 1. SDカードをPCに接続します + 1. Raspberry Pi Imagerを起動します + 1. 書き込むOSを"Other general-purpose OS" -> "Ubuntu" -> "Ubuntu Server 24.04.* LTS"、書き込み先をSDカードに設定します __ROS 2を使う場合は64bit版__ を選択します + ![](../../img/raspimouse/driver/pi_imager_settings_ubuntu_24_64bit.png) + 1. "WRITE" を押して書き込みを開始します + ![](../../img/raspimouse/driver/pi_imager_settings_ubuntu_24.png) + 1. SDカードをRaspberry Piに取り付け、Raspberry Piの電源を入れます + 1. login:`ubuntu`、password:`ubuntu`でログインし、パスワードを変更します + 1. `$ sudo apt update && sudo apt upgrade`を実行します + === "Ubuntu Server 22.04" 1. [https://www.raspberrypi.org/software/](https://www.raspberrypi.org/software/){target=_blank rel=noopener} にアクセスします 1. Raspberry Pi Imagerをダウンロードします ![](../../img/raspimouse/driver/download_raspberry_pi_imager.png) 1. SDカードをPCに接続します 1. Raspberry Pi Imagerを起動します - 1. 書き込むOSを"Other general-purpose OS" -> "Ubuntu" -> "Ubuntu Server 22.04.* LTS"、書き込み先をSDカードに設定します __ROS 2を使う場合は64bit版__ を選択します + 1. 書き込むOSを"Other general-purpose OS" -> "Ubuntu" -> "Ubuntu Server 22.04.* LTS"、書き込み先をSDカードに設定します __ROS 2を使う場合は64bit版__ を選択します ![](../../img/raspimouse/driver/pi_imager_settings_ubuntu_22_64bit.png) - 1. "書き込む" を押して書き込みを開始します + 1. "WRITE" を押して書き込みを開始します ![](../../img/raspimouse/driver/pi_imager_settings_ubuntu_22.png) 1. SDカードをRaspberry Piに取り付け、Raspberry Piの電源を入れます 1. login:`ubuntu`、password:`ubuntu`でログインし、パスワードを変更します @@ -61,9 +81,9 @@ Raspberry Pi Mouseのデバイスドライバは"Ubuntu"と"Raspberry Pi OS"( ![](../../img/raspimouse/driver/download_raspberry_pi_imager.png) 1. SDカードをPCに接続します 1. Raspberry Pi Imagerを起動します - 1. 書き込むOSを"Other general-purpose OS" -> "Ubuntu" -> "Ubuntu Server 20.04.* LTS"、書き込み先をSDカードに設定します __ROSを使う場合は64bit版__ を選択します + 1. 書き込むOSを"Other general-purpose OS" -> "Ubuntu" -> "Ubuntu Server 20.04.* LTS"、書き込み先をSDカードに設定します __ROSを使う場合は64bit版__ を選択します ![](../../img/raspimouse/driver/pi_imager_settings_ubuntu_64bit.png) - 1. "WRITE" を押して書き込みを開始します + 1. "WRITE" を押して書き込みを開始します ![](../../img/raspimouse/driver/pi_imager_settings_ubuntu.png) 1. SDカードをRaspberry Piに取り付け、Raspberry Piの電源を入れます 1. login:`ubuntu`、password:`ubuntu`でログインし、パスワードを変更します @@ -76,7 +96,7 @@ Raspberry Pi Mouseのデバイスドライバは"Ubuntu"と"Raspberry Pi OS"( ![](../../img/raspimouse/driver/download_raspberry_pi_imager.png) 1. SDカードをPCに接続します 1. Raspberry Pi Imagerを起動します - 1. 書き込むOSを"Raspberry Pi OS (32-bit)"、書き込み先をSDカードに設定し、"WRITE"を押して書き込みを開始します + 1. 書き込むOSを"Raspberry Pi OS (32-bit)"、または"Raspberry Pi OS (64-bit)"、書き込み先をSDカードに設定し、"WRITE"を押して書き込みを開始します ![](../../img/raspimouse/driver/pi_imager_settings.png) 1. SDカードをRaspberry Piに取り付け、Raspberry Piの電源を入れます ![](../../img/raspimouse/driver/raspi_os_settings.png) @@ -89,7 +109,7 @@ Raspberry Pi Mouseのデバイスドライバは"Ubuntu"と"Raspberry Pi OS"( HDMIケーブルとHDMI入力付きのモニタ、USBキーボードとマウスをRaspberry Piに接続して設定する方法を紹介します。 [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`で設定ファイルを新規作成し、下記のように記述します。 @@ -123,39 +143,48 @@ Raspberry Pi Mouseのデバイスドライバのソースファイルは に公開されています。 === "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. 次のコマンドを実行し、デバイスドライバをインストールします + 1. 次のコマンドを実行し、デバイスドライバをダウンロードします ```sh $ git clone https://github.com/rt-net/RaspberryPiMouse.git + ``` + 2. 次のコマンドを実行し、Raspberry Pi Mouseを動かすための設定を行います + ```sh + $ cd RaspberryPiMouse/utils + $ ./set_configs.bash + ``` + 3. 次のコマンドを実行し、Raspberry Piを再起動します + ```sh + $ sudo reboot + ``` + 4. 次のコマンドを実行し、デバイスドライバをインストールします + ```sh $ cd RaspberryPiMouse/utils $ sudo apt install linux-headers-$(uname -r) build-essential $ ./build_install.bash ``` - 1. コマンド実行後にブザーが鳴ればインストール完了です。 + 5. コマンド実行後にブザーが鳴ればインストール完了です === "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. `Raspberry Piの設定`を開きます - ![](../../img/raspimouse/driver/raspi_os_settings2.png) - 1. `インターフェイス`に進み、`SPI`と`I2C`の機能を有効にします - ![](../../img/raspimouse/driver/raspi_os_settings3.png) 1. ターミナル(`LXTerminal`)を起動します ![](../../img/raspimouse/driver/open_terminal.png) - 1. 次のコマンドを実行し、デバイスドライバをインストールします + 2. 次のコマンドを実行し、デバイスドライバをダウンロードします ```sh $ git clone https://github.com/rt-net/RaspberryPiMouse.git + ``` + 3. 次のコマンドを実行し、Raspberry Pi Mouseを動かすための設定を行います + ```sh $ cd RaspberryPiMouse/utils - $ sudo apt install raspberrypi-kernel-headers build-essential + $ ./set_configs.bash + ``` + 4. Raspberry Piを再起動します + 5. 次のコマンドを実行し、デバイスドライバをインストールします + ```sh + $ cd RaspberryPiMouse/utils + $ sudo apt install linux-headers-$(uname -r) build-essential $ ./build_install.bash ``` - 1. コマンド実行後にブザーが鳴ればインストール完了です。 + 6. コマンド実行後にブザーが鳴ればインストール完了です **デバイスドライバはOSを起動するたびにインストールしてください。** 上記インストール手順で設定した場合は以下のコマンドでインストールできます。 @@ -169,12 +198,12 @@ $ ~/RaspberryPiMouse/utils/build_install.bash ### 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アドレスを記述します。 +1. `$ sudo vim /etc/netplan/99_config.yaml`で設定ファイルを新規作成し、下記のように`dhcp4: false`としてIPアドレスを記述します。 この例では、IPアドレスを`192.168.11.89`に固定します。__この設定値は環境によって変わりますのでご注意ください__。 ```yaml network: diff --git a/docs/raspimouse/ros/install.md b/docs/raspimouse/ros/install.md index 8f5e542..9a174d1 100644 --- a/docs/raspimouse/ros/install.md +++ b/docs/raspimouse/ros/install.md @@ -19,6 +19,7 @@ robot: Raspberry Pi Mouse * 組み立て済みRaspberry Pi Mouse本体 * [製品マニュアル](https://rt-net.jp/products/raspberrypimousev3/#downloads)を読んで組み立て済みの状態を前提としています * OS(**Ubuntu Server**)がインストール済みであることを前提としています + * `ROS 2 Jazzy`を使用する場合: **Ubuntu Server 24.04** * `ROS 2 Humble`を使用する場合: **Ubuntu Server 22.04** * `ROS Noetic`を使用する場合: **Ubuntu Server 20.04** * Raspberry Pi OSでのROSの動作は確認していません @@ -26,12 +27,10 @@ robot: Raspberry Pi Mouse * バッテリでも電源変換ケーブルつきACアダプタでも可 * ノートパソコン等のPC * OS(**Ubuntu Desktop**)がインストール済みであることを前提としています + * `ROS 2 Jazzy`を使用する場合: **Ubuntu Desktop 24.04** * `ROS 2 Humble`を使用する場合: **Ubuntu Desktop 22.04** * `ROS Noetic`を使用する場合: **Ubuntu Desktop 20.04** -!!! info - `ROS 2 Foxy`は2023年6月にEOL(サポート終了)を迎えたため、`ROS 2 Humble`の使用を推奨しています。 - ## ROS / ROS 2のインストール(公式のドキュメントに沿って進める場合) {: #official-document} === "ROS" @@ -39,8 +38,8 @@ robot: Raspberry Pi Mouse を参考に、`ROS Noetic`をインストールします。 GUIを使用する場合は`Desktop-Full`を、 使用しない場合は`ROS-Base`パッケージをインストールします。 - -=== "ROS 2 Humble(推奨)" + +=== "ROS 2 Humble" [https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html](https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html){target=_blank rel=noopener} を参考に、`ROS 2 Humble`をインストールします。 @@ -49,13 +48,13 @@ robot: Raspberry Pi Mouse [https://docs.ros.org/en/humble/Tutorials/Colcon-Tutorial.html](https://docs.ros.org/en/humble/Tutorials/Colcon-Tutorial.html){target=_blank rel=noopener} を参考に、パッケージビルドツールの`colcon`をインストールします。 -=== "ROS 2 Foxy(非推奨)" - [https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html](https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html){target=_blank rel=noopener} - を参考に、`ROS 2 Foxy`をインストールします。 +=== "ROS 2 Jazzy" + [https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html](https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html){target=_blank rel=noopener} + を参考に、`ROS 2 Jazzy`をインストールします。 GUIを使用する場合は`Desktop`を、 使用しない場合は`ROS-Base`パッケージをインストールします。 - [https://docs.ros.org/en/foxy/Tutorials/Colcon-Tutorial.html](https://docs.ros.org/en/foxy/Tutorials/Colcon-Tutorial.html){target=_blank rel=noopener} + [https://docs.ros.org/en/humble/Tutorials/Colcon-Tutorial.html](https://docs.ros.org/en/humble/Tutorials/Colcon-Tutorial.html){target=_blank rel=noopener} を参考に、パッケージビルドツールの`colcon`をインストールします。 ## ROS / ROS 2のインストール(インストールスクリプトを使う場合) {: #install-script} @@ -95,7 +94,8 @@ robot: Raspberry Pi Mouse ```sh $ source ~/.bashrc ``` -=== "ROS 2 Humble(推奨)" + +=== "ROS 2 Humble" このROS 2インストールスクリプトは`curl`と`git`を使用します。以下のコマンドでインストールします。 ```sh @@ -114,8 +114,8 @@ robot: Raspberry Pi Mouse スクリプトが問題なく実行できれば以下のメッセージが表示されます。 ```txt - Success installing ROS humble - Run 'source ~/.bashrc' + success installing ROS2 humble + Run 'source /opt/ros/humble/setup.bash' ``` 以下のコマンドでインストールした設定を読み込みます。 @@ -124,7 +124,7 @@ robot: Raspberry Pi Mouse $ source ~/.bashrc ``` -=== "ROS 2 Foxy(非推奨)" +=== "ROS 2 Jazzy" このROS 2インストールスクリプトは`curl`と`git`を使用します。以下のコマンドでインストールします。 ```sh @@ -137,14 +137,14 @@ robot: Raspberry Pi Mouse ```sh $ git clone https://github.com/Tiryoh/ros2_setup_scripts_ubuntu.git $ cd ros2_setup_scripts_ubuntu - $ ./ros2-foxy-desktop-main.sh + $ ./ros2-jazzy-desktop-main.sh ``` スクリプトが問題なく実行できれば以下のメッセージが表示されます。 ```txt - Success installing ROS foxy - Run 'source ~/.bashrc' + success installing ROS2 jazzy + Run 'source /opt/ros/jazzy/setup.bash' ``` 以下のコマンドでインストールした設定を読み込みます。 @@ -189,7 +189,7 @@ robot: Raspberry Pi Mouse $ source ~/.bashrc ``` -=== "ROS 2 Humble(推奨)" +=== "ROS 2 Humble" このROS 2インストールスクリプトは`curl`と`git`を使用します。以下のコマンドでインストールします。 ```sh @@ -208,8 +208,8 @@ robot: Raspberry Pi Mouse スクリプトが問題なく実行できれば以下のメッセージが表示されます。 ```txt - Success installing ROS humble - Run 'source ~/.bashrc' + success installing ROS2 humble + Run 'source /opt/ros/humble/setup.bash' ``` 以下のコマンドでインストールした設定を読み込みます。 @@ -218,7 +218,7 @@ robot: Raspberry Pi Mouse $ source ~/.bashrc ``` -=== "ROS 2 Foxy(非推奨)" +=== "ROS 2 Jazzy" このROS 2インストールスクリプトは`curl`と`git`を使用します。以下のコマンドでインストールします。 ```sh @@ -231,14 +231,14 @@ robot: Raspberry Pi Mouse ```sh $ git clone https://github.com/Tiryoh/ros2_setup_scripts_ubuntu.git $ cd ros2_setup_scripts_ubuntu - $ ./ros2-foxy-ros-base-main.sh + $ ./ros2-jazzy-ros-base-main.sh ``` スクリプトが問題なく実行できれば以下のメッセージが表示されます。 ```txt - Success installing ROS foxy - Run 'source ~/.bashrc' + success installing ROS2 jazzy + Run 'source /opt/ros/jazzy/setup.bash' ``` 以下のコマンドでインストールした設定を読み込みます。 diff --git a/docs/raspimouse/ros/package-install.md b/docs/raspimouse/ros/package-install.md index fd2aa22..9a6a4ab 100644 --- a/docs/raspimouse/ros/package-install.md +++ b/docs/raspimouse/ros/package-install.md @@ -12,6 +12,7 @@ robot: Raspberry Pi Mouse * 組み立て済みRaspberry Pi Mouse本体 * [製品マニュアル](https://rt-net.jp/products/raspberrypimousev3/#downloads)を読んで組み立て済みの状態を前提としています * OS(**Ubuntu Server**)がインストール済みであることを前提としています + * `ROS 2 Jazzy`を使用する場合: **Ubuntu Server 24.04** * `ROS 2 Humble`を使用する場合: **Ubuntu Server 22.04** * `ROS Noetic`を使用する場合: **Ubuntu Server 20.04** * Raspberry Pi OSでのROSの動作は確認していません @@ -23,6 +24,7 @@ robot: Raspberry Pi Mouse * バッテリでも電源変換ケーブルつきACアダプタでも可 * ノートパソコン等のPC * OS(**Ubuntu Desktop**)がインストール済みであることを前提としています + * `ROS 2 Jazzy`を使用する場合: **Ubuntu Desktop 24.04** * `ROS 2 Humble`を使用する場合: **Ubuntu Desktop 22.04** * `ROS Noetic`を使用する場合: **Ubuntu Desktop 20.04** @@ -57,7 +59,7 @@ robot: Raspberry Pi Mouse $ source ~/catkin_ws/devel/setup.bash ``` -=== "ROS 2 Humble(推奨)" +=== "ROS 2 Humble" Raspberry Piとノートパソコン等のPCそれぞれで次のコマンドを実行します。 ```sh @@ -70,29 +72,49 @@ robot: Raspberry Pi Mouse * [raspimouse_ros2_examples](https://github.com/rt-net/raspimouse_ros2_examples) : サンプル集パッケージ * [raspimouse_slam_navigation_ros2](https://github.com/rt-net/raspimouse_slam_navigation_ros2) : SLAMとナビゲーションのパッケージ * [raspimouse_description](https://github.com/rt-net/raspimouse_description) : ロボットモデルパッケージ + * [rt_usb_9axisimu_driver](https://github.com/rt-net/rt_usb_9axisimu_driver/tree/ros2-devel) : 9軸IMU制御パッケージ -=== "ROS 2 Foxy(非推奨)" - Raspberry Piとノートパソコン等のPCそれぞれで、 - サンプル集パッケージ - [rt-net/raspimouse_ros2_examples](https://github.com/rt-net/raspimouse_ros2_examples){target=_blank rel=noopener} - をダウンロードしてインストールします。 +=== "ROS 2 Jazzy" + Raspberry Piとノートパソコン等のPCそれぞれで、次のコマンドを実行します。 + Raspberry Pi Mouseのパッケージをダウンロードします。 + ```sh - $ source /opt/ros/foxy/setup.bash + $ source /opt/ros/jazzy/setup.bash $ mkdir -p ~/ros2_ws/src $ cd ~/ros2_ws/src - # Clone packages - $ git clone https://github.com/rt-net/raspimouse_ros2_examples + + # Download packages + $ git clone -b $ROS_DISTRO https://github.com/rt-net/raspimouse2.git + $ git clone -b $ROS_DISTRO https://github.com/rt-net/raspimouse_ros2_examples.git + $ git clone -b $ROS_DISTRO https://github.com/rt-net/raspimouse_slam_navigation_ros2.git # Install dependencies $ rosdep install -r -y --from-paths . --ignore-src + ``` - # make & install + Raspberry Pi Mouseのパッケージをビルドします。Raspberry Pi MouseとPCでコマンドが異なります。 + + ```sh + # Raspberry Pi Mouseの場合 + $ cd ~/ros2_ws + $ MAKEFLAGS=-j1 colcon build --symlink-install + $ source ~/ros2_ws/install/setup.bash + + # PCの場合 $ cd ~/ros2_ws $ colcon build --symlink-install $ source ~/ros2_ws/install/setup.bash ``` + これにより、以下のパッケージがインストールされます。 + + * [raspimouse2](https://github.com/rt-net/raspimouse2) : 制御パッケージ + * [raspimouse_ros2_examples](https://github.com/rt-net/raspimouse_ros2_examples) : サンプル集パッケージ + * [raspimouse_slam_navigation_ros2](https://github.com/rt-net/raspimouse_slam_navigation_ros2) : SLAMとナビゲーションのパッケージ + * [raspimouse_description](https://github.com/rt-net/raspimouse_description) : ロボットモデルパッケージ + * [rt_usb_9axisimu_driver](https://github.com/rt-net/rt_usb_9axisimu_driver/tree/ros2-devel) : 9軸IMU制御パッケージ + !!! info ROS/ROS 2を同時にインストールした環境で実行する場合、`/opt/ros/*/setup.bash`を実行したいROSのバージョンにあわせて都度読み込む必要があります。 - `catkin_make`や`colcon build`でエラーが出た場合はご確認ください。 + `catkin_make`や`colcon build`でエラーが出た場合はご確認ください。 \ No newline at end of file diff --git a/docs/raspimouse/ros/samples.md b/docs/raspimouse/ros/samples.md index f0e7877..e3c1693 100644 --- a/docs/raspimouse/ros/samples.md +++ b/docs/raspimouse/ros/samples.md @@ -16,6 +16,7 @@ robot: Raspberry Pi Mouse * 組み立て済みRaspberry Pi Mouse本体 * [製品マニュアル](https://rt-net.jp/products/raspberrypimousev3/#downloads)を読んで組み立て済みの状態を前提としています * OS(**Ubuntu Server**)がインストール済みであることを前提としています + * `ROS 2 Jazzy`を使用する場合: **Ubuntu Server 24.04** * `ROS 2 Humble`を使用する場合: **Ubuntu Server 22.04** * `ROS Noetic`を使用する場合: **Ubuntu Server 20.04** * Raspberry Pi OSでのROSの動作は確認していません @@ -29,6 +30,7 @@ robot: Raspberry Pi Mouse * バッテリでも電源変換ケーブルつきACアダプタでも可 * ノートパソコン等のPC * OS(**Ubuntu Desktop**)がインストール済みであることを前提としています + * `ROS 2 Jazzy`を使用する場合: **Ubuntu Desktop 24.04** * `ROS 2 Humble`を使用する場合: **Ubuntu Desktop 22.04** * `ROS Noetic`を使用する場合: **Ubuntu Desktop 20.04** @@ -46,7 +48,7 @@ robot: Raspberry Pi Mouse ``` -=== "ROS 2 Humble(推奨)" +=== "ROS 2 Humble" [ROS 2サンプル集(rt-net/raspimouse_ros2_examples)](https://github.com/rt-net/raspimouse_ros2_examples){target=_blank rel=noopener} のサンプルを実行する場合は下記コマンドを実行し、 ROS 2とパッケージを読み込んでください。 @@ -56,16 +58,16 @@ robot: Raspberry Pi Mouse $ source ~/ros2_ws/install/setup.bash ``` -=== "ROS 2 Foxy(非推奨)" +=== "ROS 2 Jazzy" [ROS 2サンプル集(rt-net/raspimouse_ros2_examples)](https://github.com/rt-net/raspimouse_ros2_examples){target=_blank rel=noopener} のサンプルを実行する場合は下記コマンドを実行し、 ROS 2とパッケージを読み込んでください。 ```sh - $ source /opt/ros/foxy/setup.bash + $ source /opt/ros/jazzy/setup.bash $ source ~/ros2_ws/install/setup.bash ``` - + ## Raspberry PiとPC間のROSネットワークを接続する {: #network} === "ROS" diff --git a/docs/raspimouse/simulator/install.md b/docs/raspimouse/simulator/install.md index 7f2c010..5128642 100644 --- a/docs/raspimouse/simulator/install.md +++ b/docs/raspimouse/simulator/install.md @@ -16,6 +16,7 @@ Raspberry Pi Mouse Simulator([rt-net/raspimouse_sim](https://github.com/rt-net * ノートパソコン等のPC * OS(**Ubuntu Desktop**)がインストール済みであることを前提としています + * `ROS 2 Jazzy`を使用する場合: **Ubuntu Desktop 24.04** * `ROS 2 Humble`を使用する場合: **Ubuntu Desktop 22.04** * `ROS Noetic`を使用する場合: **Ubuntu Desktop 20.04** * ROSまたはROS 2がインストール済みであることを前提としています @@ -54,25 +55,56 @@ Raspberry Pi Mouse Simulator([rt-net/raspimouse_sim](https://github.com/rt-net rosrun raspimouse_gazebo download_gazebo_models.sh ``` -=== "ROS 2" +=== "ROS 2 Humble" 次のコマンドを実行します。 シミュレータパッケージのインストール ```sh - sudo apt install ros-humble-raspimouse-sim + sudo apt install ros-$ROS_DISTRO-raspimouse-sim ``` サンプルパッケージのインストール ```sh - sudo apt install ros-humble-raspimouse-slam-navigation + sudo apt install ros-$ROS_DISTRO-raspimouse-slam-navigation ``` キーボードで操作するためのパッケージをインストール ```sh - sudo apt install ros-humble-teleop-twist-keyboard + sudo apt install ros-$ROS_DISTRO-teleop-twist-keyboard + ``` + +=== "ROS 2 Jazzy" + 次のコマンドを実行します。 + + シミュレータパッケージとサンプルパッケージのダウンロードとインストール + + ```sh + $ source /opt/ros/jazzy/setup.bash + $ mkdir -p ~/ros2_ws/src + $ cd ~/ros2_ws/src + + # Download packages + $ git clone -b $ROS_DISTRO https://github.com/rt-net/raspimouse_sim.git + $ git clone -b $ROS_DISTRO https://github.com/rt-net/raspimouse2.git + $ git clone -b $ROS_DISTRO https://github.com/rt-net/raspimouse_ros2_examples.git + $ git clone -b $ROS_DISTRO https://github.com/rt-net/raspimouse_slam_navigation_ros2.git + + # Install dependencies + $ rosdep install -r -y --from-paths . --ignore-src + + # make & install + $ cd ~/ros2_ws + $ colcon build --symlink-install + $ source ~/ros2_ws/install/setup.bash + ``` + + キーボードで操作するためのパッケージをインストール + + ```sh + sudo apt install ros-$ROS_DISTRO-teleop-twist-keyboard ``` ## 動作確認(キーボードで操縦) {: #teleop} @@ -94,7 +126,7 @@ Raspberry Pi Mouse Simulator([rt-net/raspimouse_sim](https://github.com/rt-net ![](https://rt-net.github.io/images/raspberry-pi-mouse/raspimouse_sim_samplemaze_animation.gif) -=== "ROS 2" +=== "ROS 2 Humble" 次のコマンドを実行します。 シミュレータの起動 @@ -105,8 +137,25 @@ Raspberry Pi Mouse Simulator([rt-net/raspimouse_sim](https://github.com/rt-net 別のターミナルでコマンドを実行 - ``` + ```sh ros2 run teleop_twist_keyboard teleop_twist_keyboard ``` ![](https://rt-net.github.io/images/raspberry-pi-mouse/raspimouse_sim_joystick.gif) + +=== "ROS 2 Jazzy" + 次のコマンドを実行します。 + + シミュレータの起動 + + ```sh + ros2 launch raspimouse_gazebo raspimouse_with_emptyworld.launch.py + ``` + + 別のターミナルでコマンドを実行 + + ```sh + ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -p stamped:=true + ``` + + ![](https://rt-net.github.io/images/raspberry-pi-mouse/raspimouse_sim_joystick.gif) diff --git a/docs/raspimouse/simulator/samples.md b/docs/raspimouse/simulator/samples.md index bf8e812..6ed19f9 100644 --- a/docs/raspimouse/simulator/samples.md +++ b/docs/raspimouse/simulator/samples.md @@ -12,15 +12,15 @@ robot: Raspberry Pi Mouse ## 使用機材 {: #requirements} * ノートパソコン等のPC - * OS(**Ubuntu Desktop 22.04**)がインストール済みであることを前提としています - * ROS 2がインストール済みであることを前提としています + * OS(**Ubuntu Desktop 22.04** / **Ubuntu Desktop 24.04**)がインストール済みであることを前提としています + * ROS 2 (**Humble** / **Jazzy**)がインストール済みであることを前提としています * インストール方法については[ROS/ROS 2のインストール](../ros/install.md)を参照してください。 * ROS 2のシミュレータパッケージがインストール済みであることを前提としています * インストール方法については[シミュレータのインストール](./install.md)を参照してください。 ## ROS 2パッケージ情報の読み込み {: #load-workspace} -=== "ROS 2" +=== "ROS 2 Humble" [ROS 2サンプル集(rt-net/raspimouse_ros2_examples)](https://github.com/rt-net/raspimouse_ros2_examples){target=_blank rel=noopener} のサンプルを実行する場合は下記コマンドを実行し、 ROS 2とパッケージを読み込んでください。 @@ -29,6 +29,15 @@ robot: Raspberry Pi Mouse source /opt/ros/humble/setup.bash source ~/ros2_ws/install/setup.bash ``` +=== "ROS 2 Jazzy" + [ROS 2サンプル集(rt-net/raspimouse_ros2_examples)](https://github.com/rt-net/raspimouse_ros2_examples){target=_blank rel=noopener} + のサンプルを実行する場合は下記コマンドを実行し、 + ROS 2とパッケージを読み込んでください。 + + ```sh + source /opt/ros/jazzy/setup.bash + source ~/ros2_ws/install/setup.bash + ``` ## ジョイスティックで操縦 {: #joystick} @@ -103,7 +112,10 @@ robot: Raspberry Pi Mouse ## SLAM {: #slam} -=== "ROS 2" +!!! info + `ROS 2 Jazzy`と`ROS 2 Humble`でコマンドが異なるためご注意ください。 + +=== "ROS 2 Humble" 次のコマンドを実行します。 シミュレータの起動 @@ -140,9 +152,49 @@ robot: Raspberry Pi Mouse ![](https://rt-net.github.io/images/raspberry-pi-mouse/raspimouse_sim_slam_short.gif) +=== "ROS 2 Jazzy" + 次のコマンドを実行します。 + + シミュレータの起動 + + ```sh + ros2 launch raspimouse_gazebo raspimouse_with_lakehouse.launch.py lidar:=urg + ``` + + `lidar`は`urg`、`lds`、`rplidar`のいずれかを指定してください。 + + キーボードで操作 + + ```sh + ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -p stamped:=true + ``` + + SLAMを実行 + + ```sh + ros2 launch raspimouse_slam pc_slam.launch.py + ``` + + Raspberry Pi Mouseを走らせて地図を作成 + + ![](https://rt-net.github.io/images/raspberry-pi-mouse/raspimouse_sim_slam.png) + + 作成した地図を保存 + + ```sh + ros2 run nav2_map_server map_saver_cli -f ~/MAP_NAME + ``` + + `MAP_NAME`は任意の名前を指定できます。 + + ![](https://rt-net.github.io/images/raspberry-pi-mouse/raspimouse_sim_slam_short.gif) + ## Navigation {: #navigation} -=== "ROS 2" +!!! info + `ROS 2 Jazzy`と`ROS 2 Humble`でコマンドが異なるためご注意ください。 + +=== "ROS 2 Humble" 次のコマンドを実行します。 シミュレータの起動 @@ -163,3 +215,23 @@ robot: Raspberry Pi Mouse ![](https://rt-net.github.io/images/raspberry-pi-mouse/raspimouse_sim_navigation_short.gif) +=== "ROS 2 Jazzy" + 次のコマンドを実行します。 + + シミュレータの起動 + + ```sh + ros2 launch raspimouse_gazebo raspimouse_with_lakehouse.launch.py lidar:=urg + ``` + + `lidar`は`urg`、`lds`、`rplidar`のいずれかを指定してください。 + + Navigationを実行 + + ```sh + ros2 launch raspimouse_navigation pc_navigation.launch.py use_sim_time:=true map:=$HOME/MAP_NAME.yaml + ``` + + 引数`map`にはSLAMで作成した地図ファイルのパスを指定してください。 + + ![](https://rt-net.github.io/images/raspberry-pi-mouse/raspimouse_sim_navigation_short.gif)