[ROS2]HelloWorld - graspPlugin/wiki GitHub Wiki

はじめに

ROS2のノードを用いて文字列を出力する実行ファイルを作成します.

今回のノードの記述方法はROS2では既に非推奨となっているやり方です.あくまでROSに初めて触れる方向けですのでご注意ください.

環境

- version
Ubuntu 20.04
ROS2 Foxy

ソースファイルの作成と記述

パッケージディレクトリ内のsrcディレクトリに移動し,ソースファイルhello_ros_world.cppを作成します.

touch hello_ros_world.cpp

hello_ros_world.cppの内部に以下を記述します.

#include <rclcpp/rclcpp.hpp>

int main(int argc, char *argv[]) {
  rclcpp::init(argc, argv);

  auto node = rclcpp::Node::make_shared("hello_ros_world");
  RCLCPP_INFO(node->get_logger(), "hello ros world!!");

  rclcpp::shutdown();

  return 0;
}

CMakeLists.txtの記述

パッケージディレクトリ直下のCMakeLists.txtを編集していきます.

今回はrclcppパッケージを新たに使用するため,デフォルトで記述されているfind_package(ament_cmake REQUIRED)付近に以下を追記します.

find_package(rclcpp REQUIRED)

また作成したソースファイルからhello_ros_worldという名前の実行ファイルを生成するように以下を追記します.

ament_target_dependenciesによりrclcppパッケージへの依存を記述します.

add_executable(hello_ros_world src/hello_ros_world.cpp)
ament_target_dependencies(hello_ros_world rclcpp)

最後に端末上のros2コマンドから生成した実行ファイルを指定できるようにするためinstallTARGETに追記します.

今回は既に記述しているhello_worldという実行ファイルの下に追記します.

install(
  TARGETS
  hello_world
  hello_ros_world
  DESTINATION lib/${PROJECT_NAME}
)

package.xmlの記述

パッケージディレクトリ直下のpackage.xmlを編集していきます.

デフォルトで記述されているtest_dependタグ付近に以下を追記します.

<depend>rclcpp</depend>

ビルドと実行

ワークスペースディレクトリに移動しビルドを行います.

colcon build

実行

ros2コマンドで実行ファイルを指定します.

ros2 run my_pkg hello_ros_world

以下のように出力されたら成功です.

[INFO] [1677472023.557262302] [hello_ros_world]: hello ros world!!

参考サイト

⚠️ **GitHub.com Fallback** ⚠️