モノ創りで国造りを

ハード/ソフト問わず知見をまとめてます

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