ROS2を使ってみる その3(環境構築、WSL2 Ubuntu 22.04)

はじめに

 最近WSL2でUbuntu環境を複数インストールできるようになったので、ROS2の環境を改めて構築してみました。

 大学の研究でロボットの遠隔操作にも取り組み始めているのですが、通信周りを改善させるにはROS1からROS2に移行する必要がありそうだなと思っています。色々検証していきたいところです。

▼以前の記事はこちら

ROS2を使ってみる その1(環境構築、Windows)

はじめに  今回はROS2の環境構築です。何度か挑戦して諦めていたのですが、今度こそちゃんと動かせるようにしてみます。  つい最近参加していたROS Japan UGでは、ROS1…

ROS2を使ってみる その2(Turtlesim、rqt、Windows)

はじめに  今回はROS2でTurtlesimとrqtを試してみました。  ROSとROS2について最近触るようになったのですが、Turtlesimとrqtは書籍やオンラインのチュートリアルでよく…

環境を構築する

WSL2でUbuntu環境のインストール

▼PCは10万円ぐらいで購入したゲーミングノートPCを利用しています。Windows 11の環境です。

ちょっと買い物:新しいノートPCとSSDの増設(ASUS TUF Gaming A15)

はじめに  今回はこれまで使っていたPCが壊れたので買い替えましたという話です。  以前はよく分からないGPUが載っていたノートPCを使っていたのですが、最近はUnreal E…

 WSL2でUbuntu 22.04の環境を新しく作成しました。

▼詳しい手順は以下の記事をご覧ください。

WSL2を使ってみる その5(同じバージョンのディストリビューションを複数インストール、Ubuntu 22.04)

はじめに  今回はWSL2で同じバージョンのUbuntu環境をもう一つインストールしました。  元々インストールしていたWSL2のUbuntu 22.04の環境を壊したくなかったので、別…

 今回はUbuntu2204_ROSという名前にしました。

mkdir W:\Ubuntu2204_ROS
wsl --import Ubuntu2204_ROS "W:\Ubuntu2204_ROS" "C:\Users\mgs_1\Downloads\ubuntu-jammy-wsl-amd64-ubuntu22.04lts.rootfs.tar.gz"

▼問題なく登録されました。

 この後以前と同様にユーザーの登録などを行いました。

ROS2をインストールする

 今回はROS2 Humbleをインストールします。

▼以下のUbuntu用のページを参考に進めていきます。

https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html

▼localeは確認するとすべてUTF-8になっていました。

 以下の必要なコマンドを実行していったのですが、特に問題なく実行できました。

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository universe

sudo apt update && sudo apt install curl -y
export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}')
curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb"
sudo dpkg -i /tmp/ros2-apt-source.deb

 追加の機能はすべてインストールしておきました。

sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop
sudo apt install ros-humble-ros-base
sudo apt install ros-dev-tools

 ROS2の環境を有効化するときは、以下のコマンドを実行します。

source /opt/ros/humble/setup.bash

 ターミナルを開いたときにROS2の環境が有効化されるように、.bashrcに追記しておきました。

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

動作を確認する

 TalkerとListenerで通信の確認を行いました。先程のターミナルで以下のコマンドを実行しました。

source /opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker

 新しく別のターミナルを起動し、以下のコマンドを実行しました。

source /opt/ros/humble/setup.bash
ros2 run demo_nodes_py listener

▼Listenerの方でデータを受信できていませんでした。

 この問題に対して他の方が対処していないか調べてみました。

▼以下の記事でも同じ問題に直面されていました。

https://fan4fun2rc.blog.jp/archives/30669359.html#02

 以下のコマンドを実行してから、再度TalkerとListenerを実行すると解決しました。

ros2 daemon start

▼TalkerとListenerで通信できました!

 multicastのコマンドもあったので試してみました。

▼以下のページに書かれていました。

https://docs.ros.org/en/humble/How-To-Guides/Installation-Troubleshooting.html

▼こちらは先程のros2 daemon startを実行する前から実行できていました。

 ROS2のRVizが起動できるかも確認しました。

▼ROS2のRVizについては以下のページで説明されています。

https://docs.ros.org/en/humble/Tutorials/Intermediate/RViz/RViz-User-Guide/RViz-User-Guide.html

 以下のコマンドを実行しました。

ros2 run rviz2 rviz2

▼問題なく起動できていました。

最後に

 ROS2の環境を改めて構築できたので、またOpenManipulatorなどで動作を確認したいなと思っています。ROS1とROS2のブリッジもあるようなので、既存のシステムと共存できるか気になるところです。

▼ROS1とROS2のブリッジについては以下のページに書かれているようでした。

https://github.com/ros2/ros1_bridge/blob/master/README.md

▼UnityとROS1を連携させて開発しているのですが、ROS2に置き換えていきたいなと思っています。

Unityを使ってみる その2(ROS#、カメラ映像のSubscribe)

はじめに  今回はUnityにROS#をインストールし、ROSでPublishされているカメラ映像をSubscribeできるようにしてみました。  ロボットの遠隔操作をするときに用いようと…

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です