LoginSignup
4
4

More than 1 year has passed since last update.

ROS2個人用初期設定

Last updated at Posted at 2019-04-13

ROS2関係トップページへ

変更:
2023/01/19: もしかしたら必要となるかもしれないpythonモジュール]をROS2 + pipenv installに移動
2023/01/18: もしかしたら必要となるかもしれないpythonモジュールを追加
2021/07/23: アンダーレイの設定に関して修正.colcon_cdの設定≠アンダーレイの設定,アンダーレイの設定=ROS2の全体設定.

初期設定

ROS2を使用するために,以下の4種類の設定を行う.

  • colcon_cdの設定
    • exportでcolcon_cdコマンドが管理するディレクトリを指定
  • ROS2の全体設定(アンダーレイの設定)
    • /opt/ros/<distro>/setup.bash
    • 使用するバージョンに応じて<distro>を変更
    • 複数terminalにてそれぞれ異なるバージョンを指定することでバージョンを混在させて使用可能
    • 詳しくはROS2に関する基本情報を参照
  • プロジェクト・プログラムの設定
    • install/setup.bash
  • ROS_DOMAIN_ID
    • 他の人のノードと混ざらないため.ノード空間を分けるもの.逆に言うと,これが同じ値であれば異なる人が実行したノード間であっても通信・やりとりできる.
    • 自分が使ってるPCのみで使用し,他のコンピュータ(上で動いている他の人のノード)と勝手にやり取りをしないために,以下のオプションが付け加えられたので活用.
      • ROS_LOCALHOST_ONLY
        • もしかしたらhumbleからなのかもしれない.

<distro>のところがバージョン.個々の<distro>の部分は以下の通り.

  • <distro>の部分
    • Galactic Geocheloneの場合
      • galactic
    • Foxy Fizroyの場合
      • foxy
    • Humble Hawksbillの場合
      • humble

下記の例ではcolcon_cdで管理するディレクトリを~/ros2_installとしている.個人的には~/program/ros2としている.echoでえいっと設定するか.bashrcを直接編集するか好きな方で.

とりあえずechoでえいっと設定する場合

terminal
$ echo "source /usr/share/colcon_cd/function/colcon_cd.sh" >> ~/.bashrc
$ echo "export _colcon_cd_root=~/ros2_install" >> ~/.bashrc
$ echo "source /opt/ros/<distro>/setup.bash" >> ~/.bashrc
$ echo "export ROS_DOMAIN_ID=<自分に割り当てられた番号>" >> ~/.bashrc

ROS_DOMAIN_IDに関しては一人で使用する分には 0を割り当てるか ROS_LOCALHOST_ONLY=1 をexportする.
詳しくは同一ネットワーク内で複数人がROS2を使用する場合を参照のこと.

.bashrcを編集して少し工夫して設定する場合

.bashrc
...
# for ROS2
## User settings
ROS2_TOP_DIRECTORY="$HOME/ros2_install"
## 使用するディストロを有効化(コメントアウト)
#DISTRO_ROS2="eloquent"
DISTRO_ROS2="foxy"
#DISTRO_ROS2="galactic"
#DISTRO_ROS2="humble"
ID=0 # pleas contact Kurashige
## commands
if [ -f /usr/share/colcon_cd/function/colcon_cd.sh ]; then
        source /usr/share/colcon_cd/function/colcon_cd.sh
        echo "colcon cd root is $ROS2_TOP_DIRECTORY ."
        export _colcon_cd_root=$ROS2_TOP_DIRECTORY
fi

if [ -f /opt/ros/$DISTRO_ROS2/setup.bash ]; then
        echo "ROS2 $DISTRO_ROS2 is activated."
        source /opt/ros/$DISTRO_ROS2/setup.bash
fi
if [ $ID -eq 0 ]; then
        echo "ROS2 is executed only for local."
        export ROS_LOCALHOST_ONLY=1
else
        echo "ROS2 is executed through a network."
        export ROS_DOMAIN_ID=$ID
fi

ROS2プログラムのexamples

もし興味があれば,公式githubのexamplesをDLしておく.ただあまり必要ではない.というのは,ブラウザで公式githubのexamplesを見る方が勉強しやすいから(個人的意見).

DL・コンパイル・実行の方法は,公式チュートリアルの一番初めであるUsing Colcon to build packagesにある.
ここではDLの方法のみ記載しておく.

terminal
$ mkdir -p ~/ros2_example_ws/src
$ cd ~/ros2_example_ws
$ git clone https://github.com/ros2/examples src/examples

~/ros2_example_ws/src/rclcpp以下にc++用のコードがあり,~/ros2_example_ws/src/rclpy以下にpython用のコードがある.

4
4
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
4
4