[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
を編集していきます.
今回は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
コマンドから生成した実行ファイルを指定できるようにするためinstall
のTARGET
に追記します.
今回は既に記述しているhello_world
という実行ファイルの下に追記します.
install(
TARGETS
hello_world
hello_ros_world
DESTINATION lib/${PROJECT_NAME}
)
パッケージディレクトリ直下の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!!