0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ROS2プログラミング基礎_1-1: hello_node

Last updated at Posted at 2022-10-28

はじめに

ROS2のプログラミングの勉強(基礎編)とし実施したことをまとめて残していきます.
このページでは全体の流れを最も簡単なプログラム(ノード) hello_node の実行を例にして示します.

環境

・PC: Panasonic Let's Note CF-FV
・OS: Windows11 Pro (64bit)
・VirtualBox: 6.1.38 (Ubuntu20.04.5, GUI環境)
・ROS: ROS2 Foxy

ここまでの環境構築については下記参照
・Windows PCにVirtualBox+Ubuntuを導入
https://qiita.com/pez/items/a3ef1855f7e1e0ed3dfd
・ROS(ROS2 Foxy)をインストール
https://qiita.com/pez/items/1df36628524ff40a3d93

1. ワークスペース作成

$ cd
$ mkdir -p ~/<ワークスペース名>/src/

今回は <ワークスペース名>は hello_ws にすることにします.

2. パッケージ作成

$ cd ~/hello_ws/src
$ ros2 pkg create --build-type ament_python --node-name ノード名 パッケージ名

今回は <ノード名> は hello_node
<パッケージ名> は hello
にすることにします

3. プログラミング

1. package.xml ファイルの編集

※エディタは自分の好きなものを使えばよい.下記は emacs を使う場合.
 vi package.xml でもいいし nano package.xml でもよい.

$ cd ~/hello_ws/src/hello
$ emacs package.xml

自作パッケージを一般公開するときには変更する必要があるが,今回は特に何もしません.

2. setup.py ファイルの編集

$ cd ~/hello_ws/src/hello
$ emacs setup.py

23行目を確認
ノード名=パッケージ名.ノード名:main
となっている必要がある.今回パッケージを作成する際に --node-name のオプションを付けているので自動的に下記のようになっています

entry_point={
    'console_scripts': [
        'hello_node = hello.hello_node:main' 
    ],
},

よって今回何もする必要はありませんが,もし1つのパッケージに複数のPythonファイルがある場合はそのファイルごとにエントリポイントを指定しなければならないので setup.py を必ず変更する必要があります.

3.ソースコード作成

本来ここでソースコードを作りますが,ここではパッケージ作成時に自動的に作られている hello_node.py をそのまま利用することにします.
中身を確認するため開きます.

$ cd ~/hello_ws/src/hello/hello
$ emacs hello_node.py

print文で Hi from hello. と表示するだけであることが分かると思います.

4. ビルド

ワークスペース名直下のディレクトリ以外はビルドできませんのでそうでない場合は移動します
初めてビルドしたとき build, install, log ディレクトリが作成されます

$ cd ~/hello_ws
$ colcon build

成功すると小さな別ウィンドウで 'colcon build' succesfull と表示されます

5. 設定ファイルの反映

アンダーレイ設定ファイル(ROS2システムの設定)を反映させます

$ source /opt/ros/foxy/setup.bash

オーバーレイ設定ファイル(自作ワークスペースの設定)を反映させます

$ source ~/hello_ws/install/setup.bash

上記2つのコマンドは .bashrc に記述しておくと便利です
自作パッケージが増えるとオーバーレイ設定ファイルも増えていきます

.bashrcの編集
$ emacs ~/.bashrc

source /opt/ros/foxy/setup.bash
source ~/hello_ws/install/setup.bash

の2行を追加する

$ source ~/.bashrc

と入力するとオーバーレイ設定ファイルがいくら多くなっても一度で反映させることができます

6. ノードの実行

$ ros2 run hello hello_node

ros2 run <パッケージ名> <ノード名>
で実行できます.

Hi from hello.

と表示されたら成功です.

7. 練習

hello_node.py を編集して別の表示がされるようにしてみましょう.
下記を行う必要があります.

 1.hello_node.pyの中身を編集して保存
 2.ビルド
 3.設定ファイルの反映
 4.ノードの実行

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?