ROS2コマンド一覧のros2 pkg createについて,オプションを指定した場合の詳細情報.
オプションを指定すると設定ファイルに自動的に記載してくれて便利である.
一方でcreate時に指定し忘れると手動で記載しなければならない.
しかし,どこに自動的な追記がなされるのか分からなければ,手動で追記できない.
そこで対応関係を示す.
--build-type ament_cmake
--dependencies
依存関係を記載する.以下の例について述べる.
- --dependencies rclcpp
package.xml
<package format="3">
<depend>rclcpp</depend>
CMakeLists.txt
find_package(rclcpp REQUIRED)
ament_target_dependencies([target名]
rclcpp
)
ament_target_dependenciesについて
依存関係のあるlibrary, targetに対しての設定となる.また--node-nameオプションを付けない限り自動的につかない.---node-name
ノード(ターゲット)名を指定する.以下の例について述べる.
- --node-name my_node
CMakeLists.txt
add_executable(my_node
src/my_node.cpp
)
target_include_directories(my_node PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
ament_target_dependencies(my_node
[--dependenciesで指定された依存関係]
)
install(TARGETS my_node
EXPORT export_${PROJECT_NAME}
DESTINATION lib/${PROJECT_NAME}
)
ament_target_dependenciesについて
依存関係のあるlibrary, targetに対しての設定となる.また--dependenciesオプションを付けない限り自動的につかない.--build-type ament_python
--dependencies
依存関係を記載する.以下の例について述べる.
- --dependencies rclpy
package.xml
<package format="3">
<depend>rclpy</depend>
---node-name
ノード(ターゲット)名を指定する.以下の例について述べる.
- パッケージ名:my_package
- --node-name my_node
setup.py
setup(
entry_points={
'console_scripts': [
'my_node = my_package.my_node:main'
],
},
)