ROS2でパッケージ作成
背景
Youtubeのこの動画をみて勉強中。
https://www.youtube.com/watch?v=C2bKwFJ5HEY
動画は後から見返すのに時間がかかるので、まとめる。
内容
この動画はROS Development Studioを使っているので実環境で正常に動作するかを後で要確認。
ターミナル上にて、ホームディレクトリで以下を実行
$ source /opt/dashing/setup.bash $ cd ros2_ws/src/ $ ros2 pkg create ros2_cpp_pkg --build-type ament_cmake --dependencies rclcpp
src内にros2_cpp_code.cppを作成
#include "rclcpp/rclcpp.hpp" int main(int argc, char *argv[]){ rclcpp::init(argc, argv); auto node = rclcpp::Node::make_shared("ObiWan"); RCLCPP_INFO(node->get_logger(), "Help me Obi-Wan Kenobi."); rclcpp::shutdown(); return 0; }
ObiWanノードを作成。INFOで一言発するようにしている。
CMake.listに以下を追加。
add_execurable(cpp_code src/ros2_cpp_code.cpp) ament_target_dependencies(cpp_code rclcpp) install(TARGETS cpp_code DESTINATION lib/${PROJECT_NAME} )
src/ros2_cpp_code.cppをcpp_codeの名称でコンパイル?するように指示。
ament_targetでcpp_codeがcppで記載されていることを明記している?
ros2_wsにて以下を実行
$ colcon build --symlink-install $ source install/setup.bash $ ros2 run ros2_cpp_pkg cpp_code