LoginSignup
0
0

ROS2環境構築 <Part 1> Windows + VirtualBox(Ubuntu) + ROS2 Foxy

Last updated at Posted at 2022-10-20

はじめに

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のネットワーク設定

ロボット(実機)と通信するため今のうちに下記を実施しておく

  1. VirtualBox起動,OSを選択して「設定」⇒ 「ネットワーク」
  2. 空いている適当なアダプターを選んで有効化チェック
  3. 割り当てを「ブリッジアタプター」にして「OK」

networkb.png

・Ubuntu20.04を起動し, ifconfigでIPアドレスを確認

$ ifconfig

もし未インストールの場合はインストールする(下記)

$ sudo apt install net-tools

(IPアドレスはいくつか出てくるがどれが今設定したやつかは・・・勘で判断)
 WiFiであれば大抵192.168.~~~となっていると思います
ip_ex.png

・他のPC(同じネットワーク内)からpingが通るか試してみる
図0.png

逆も試して相互に通ることを確認.

通らなかった場合に疑うこと

・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
ROS2のインストール
$ 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
ROSの初期設定
$ sudo rosdep init
$ rosdep update
$ echo 'export ROS_DOMAIN_ID=30 #TURTLEBOT3' >> ~/.bashrc
$ source ~/.bashrc

動作確認

サンプル1(talker)
$ ros2 run demo_nodes_cpp talker
サンプル2(listener):別のターミナルで
$ ros2 run demo_nodes_py listener

talkerからpublishされた"Hello World"がlistenerで受信できていればOK
Ctrl + C で終了

gazebo立ち上げ
$ gazebo

エラー表示なく立ち上がればOK
同じくCtrl + C で終了

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0