はじめに
ROS2の環境設定を行った際の忘備録です.
VirtualBoxにUbuntuが導入済みの状態からを想定しています(下記別記事参照)
https://qiita.com/pez/items/a3ef1855f7e1e0ed3dfd
環境・バージョン
PC: Panasonic Let's Note CF-FV
OS: Windows11 Pro (64bit)
VirtualBox: 6.1.38 (Ubuntu20.04.2 LTS, 日本語Remix, GUI環境)
ここで導入するROSのバージョン: ROS2 Foxy
※TurtleBot3関連のパッケージもついでに導入しています
VirtualBoxのネットワーク設定
ロボット(実機)と通信するため今のうちに下記を実施しておく
- VirtualBox起動,OSを選択して「設定」⇒ 「ネットワーク」
- 空いている適当なアダプターを選んで有効化チェック
- 割り当てを「ブリッジアタプター」にして「OK」
・Ubuntu20.04を起動し, ifconfigでIPアドレスを確認
$ ifconfig
もし未インストールの場合はインストールする(下記)
$ sudo apt install net-tools
(IPアドレスはいくつか出てくるがどれが今設定したやつかは・・・勘で判断)
WiFiであれば大抵192.168.~~~となっていると思います
・他のPC(同じネットワーク内)からpingが通るか試してみる
逆も試して相互に通ることを確認.
通らなかった場合に疑うこと
・Windowsのファイヤーウォール
・IPアドレス間違い
・同じネットワーク内にない
UbuntuへROS2をインストール
※ここでTurtlebot3関連のパッケージもインストールしています
参考 : ROS Wiki
下記実行したコマンドのMEMO
$ sudo apt update && sudo apt install curl gnupg2 lsb-release
$ 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 $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
$ sudo apt update && sudo apt install ros-foxy-desktop
$ echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
$ sudo apt install git python3-argcomplete python3-colcon-common-extensions python3-rosdep
$ sudo apt-get install ros-foxy-gazebo-*
$ sudo apt install ros-foxy-cartographer
$ sudo apt install ros-foxy-cartographer-ros
$ sudo apt install ros-foxy-navigation2
$ sudo apt install ros-foxy-nav2-bringup
$ sudo apt install ros-foxy-dynamixel-sdk
$ sudo apt install ros-foxy-turtlebot3 ros-foxy-turtlebot3-msgs
$ sudo rosdep init
$ rosdep update
$ echo 'export ROS_DOMAIN_ID=30 #TURTLEBOT3' >> ~/.bashrc
$ source ~/.bashrc
動作確認
$ ros2 run demo_nodes_cpp talker
$ ros2 run demo_nodes_py listener
talkerからpublishされた"Hello World"がlistenerで受信できていればOK
Ctrl + C で終了
$ gazebo
エラー表示なく立ち上がればOK
同じくCtrl + C で終了