【ROS翻訳】ROS 2 Amentチュートリアル

5005 ワード

説明:
本文はPlayfish Blogに先発して、転載してリンクを保留してください.
概要
これにより、ワークスペースを使用して起動および実行する方法を簡単にまとめることができます.コアドキュメントの代わりに使用されるのではなく、実用的なチュートリアルになります.
背景
Amentはcatkinメタ構築ツールの反復です.Amentデザインの詳細については、このファイルを参照してください.
このソースはament Github組織で見つけることができます.
前提条件
開発環境
build-from-sourceコマンドに従って開発環境を設定してください.
基礎知識
1つのament空間は特定の構造を持つディレクトリであり、通常はsrcサブディレクトリがあり、このサブディレクトリではソースコードが存在し、一般的にはディレクトリが空になります.
Amentはソースから生成されます.デフォルトでは、srcと並列したディレクトリ:buildディレクトリとinstallディレクトリが作成されます.buildディレクトリは、中間ファイルを格納する場所になります.各パッケージについて、CMakeが呼び出されるサブフォルダが作成されます.Installディレクトリは、各パッケージがインストールされている場所です.
注意:catkinと比較してdevelディレクトリはありません.
ディレクトリ構造の作成
~/ros 2_でwsでは、基本ディレクトリ構造を作成します.
mkdir -p ~/ros_ws/src
cd ~/ros2_ws

これは~/ros 2_wsのディレクトリ構造は、この点で次のように見えます.
.
└── src

1 directory, 0 files

ソースコードを追加するには、まず、ROS 2のインストールがない最下位レベルをインストールする必要があります.
wget https://raw.githubusercontent.com/ros2/ros2/master/ros2.repos
vcs import ~/ros2_ws/src < ros2.repos

これは~/ros 2_wsのディレクトリ構造は、データソースを追加した後に期待できます(具体的な構造とディレクトリの数は時間とともに変化する可能性がありますので注意してください).
.
├── ros2.repos
└── src
    ├── ament
    │   ├── ament_cmake
    │   ├── ament_index
    |   ...
    │   ├── osrf_pycommon
    │   └── uncrustify
    ├── eProsima
    │   ├── Fast-CDR
    │   └── Fast-RTPS
    ├── ros
    │   ├── class_loader
    │   └── console_bridge
    └── ros2
        ├── ament_cmake_ros
        ├── common_interfaces
        ├── demos
        ...
        ├── urdfdom
        ├── urdfdom_headers
        └── vision_opencv

51 directories, 1 file

ビルドの実行
これはブート環境であるため、amentをフルパスで呼び出す必要があります.py.
注意:将来、あなたのシステムにamentがインストールされたり、作業環境では必要ありません.
amentにはdevelスペースがないため、サポートされている各パッケージ--symlink-installをインストールする必要があります.
これにより、Pythonファイルや他のコンパイルされていないリソースなどのsourceスペース内のファイルをより高速な反復に変更することで、インストールされているファイルを変更できます.
src/ament/ament_tools/scripts/ament.py build --build-tests --symlink-install

テストの実行
構築したばかりのテストを実行するには、--build-testオプションを使用して、次の操作を実行します.
src/ament/ament_tools/scripts/ament.py test

テストを含む前にワークスペースを構築(インストール)した場合は、構築とインストール手順をスキップしてプロセスを高速化できます.
src/ament/ament_tools/scripts/ament.py test --skip-build --skip-install

source環境
構築が正常に完了すると、出力はinstallディレクトリに表示されます.
必要な実行可能ファイルとライブラリを使用するには、install/binディレクトリをパスに追加します.
Amentはinstallディレクトリにbashファイルを生成し、環境の設定を支援します.
これらのファイルは、パスとライブラリパスに必要な要素を追加し、パッケージからエクスポートされるbashまたはshellコマンドを提供します.
. install/local_setup.bash

NB:catkinとは少し違います.
local_setup.*ファイルとsetup.*ファイルが少し違います.現在のワークスペースの設定のみが適用されます.
複数のワークスペースを使用すると、setup.*が提供されます.すべての親ワークスペースを含むファイル取得環境.
デモを試みる
環境ソースを使用すると、amentによって構築された実行可能ファイルを実行できます.
ros2 run demo_nodes_cpp listener &
ros2 run demo_nodes_cpp talker

数字が増えているのが見えます.
ノードを削除し、独自のワークスペースオーバーライドを作成してみましょう.
^-C
kill %1

あなたの機能パッケージを開発
REP 140では、Amentはcatkinと同様の指定ファイルpackageを使用する.xml.
srcディレクトリの下で独自の機能パッケージを作成できますが、反復するときは重ね合わせで反復します.
オーバーライドの作成
今、あなたはすでにあなたのガイドを設定して、あなたもamentがあなたの経路にあることを発見します.
新しい上書きディレクトリを作成します:~/ros 2_overlay_ws.
mkdir -p ~/ros2_overlay_ws/src
cd ~/ros2_overlay_ws/src

ros 2/examplesリポジトリの上書きを開始しました.
# If you know that you're using the latest branch of all
# repositories in the underlay, you can also get the latest
# version of the ros2/examples repository, with this command:
#   git clone https://github.com/ros2/examples.git
# Otherwise, clone a copy from the underlay source code:
git clone ~/ros2_ws/src/ros2/examples

オーバーライドレイヤを構築しますが、debug構築を使用すると、デバッグシンボルが確保されます.
cd ~/ros2_overlay_ws
ament build --cmake-args -DCMAKE_BUILD_TYPE=Debug

今、このカバー層は既存のカバー層の上にあるので、`talker`は今、下層からのものを指していることがわかります.
もしあなたがsource~/ros 2_overlay_ws/install/local_setup.bashは、オーバーライドレイヤでtalkerを参照するように変更されます.
新しい端末に戻って開発し、カバー層で開発したい場合は、簡単に~/ros 2_を提供することができます.overlay_ws/install/setup.bashは、すべての親ワークスペース環境に自動的にソースを提供します.
独自のパッケージを作成
自分のパッケージを作成することができます.
等価なcatkin_create_パッケージはamentに移植されますが、まだです.
スペースは複数のコンストラクションタイプをサポートします.
推奨されるコンストラクションタイプはament_ですcmakeとament_python.
純cmakeパッケージもサポートされています.
より多くのコンストラクションタイプのサポートが追加されます.
ament_python構築の一例はament_ですtoolsパッケージ、setup.pyは構築された主なエントリポイントです.
demo_のようにnodes_cppのようなパッケージはament_を使用しますcmakeコンストラクションタイプで、CMakeをコンストラクションツールとして使用します.
ヒント
  • 特定のパッケージを構築したくない場合は、「AMENT_IGNORE」という空のファイルがディレクトリに配置され、インデックスされません.

  • 「Catch all」オプション.たとえば、--cmake-argsは他のオプションの後に置くか、「--」で区切る必要があります.
        
    ament build . --force-cmake-configure --cmake-args -DCMAKE_BUILD_TYPE=Debug -- --ament-cmake-args -DCMAKE_BUILD_TYPE=Release
    
  • パッケージから特定のテストを実行したい場合は、
  • ament test --only-packages YOUR_PKG_NAME --ctest-args -R YOUR_TEST_IN_PKG