ROS(ROS2)- まとめて作成 - プログラム

 クラウディア
1. 概要
2. パッケージ作成
3. ソース作成
4. ビルド
5. 実行
6. Windows

1. 概要

 前ページで作成した、インタフェースを使用する、サービスとクライアントのプログラムを作成します。

2. パッケージ作成

 パッケージを作成します。

cd ~/hogehoge_ws/src

ros2 pkg create --build-type ament_cmake my_service --dependencies rclcpp my_interfaces

3. ソース作成

 ソースを作成します。  クライアント側のソース。

vi ~/hogehoge_ws/src/my_service/src/my_client.cpp
 内容は、伏せておきます。  サーバ側のソース。

vi ~/hogehoge_ws/src/my_service/src/my_server.cpp
 内容は、伏せておきます。

vi ~/hogehoge_ws/src/my_service/CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(my_service)

find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(my_interfaces REQUIRED)

add_executable(server src/my_server.cpp)
ament_target_dependencies(server rclcpp my_interfaces)

add_executable(client src/my_client.cpp)
ament_target_dependencies(client rclcpp my_interfaces)

install(TARGETS
  server
  client
  DESTINATION lib/${PROJECT_NAME})

ament_package()

vi ~/hogehoge_ws/src/my_service/package.xml

<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
	<name>my_service</name>
	<version>0.0.0</version>
	<description>My C++ client server</description>
	<maintainer email="hogehoge@todo.todo">hogehoge</maintainer>
	<license>Apache License 2.0</license>

	<buildtool_depend>ament_cmake</buildtool_depend>

	<depend>rclcpp</depend>
	<depend>my_interfaces</depend>

	<test_depend>ament_lint_auto</test_depend>
	<test_depend>ament_lint_common</test_depend>

	<export>
	<build_type>ament_cmake</build_type>
	</export>
</package>

4. ビルド


cd ~/hogehoge_ws

colcon build --packages-select my_service

5. 実行


source install/setup.bash

ros2 run my_service server

ros2 run my_service client
 うまいこと、動作しました。

6. Windows

 例によって、同じことを「Windows」でやってみます。  「x64 Native Tools Command Prompt for VS 2019」を管理者権限で開いて。

call C:\ros2_jazzy\local_setup.bat

mkdir C:\hogehoge_ws\src

cd C:\hogehoge_ws\src
 サービスの登録。

ros2 pkg create --build-type ament_cmake my_interfaces

cd C:\hogehoge_ws\src\my_interfaces
mkdir srv
 ソースを書いて。  ビルド。

cd C:\hogehoge_ws

colcon build --packages-select my_interfaces
 反映します。

call install\setup.bat
 確認。

ros2 interface show my_interfaces/srv/MyInstruction
 プログラムの方。

cd C:\hogehoge_ws\src

ros2 pkg create --build-type ament_cmake my_service --dependencies rclcpp my_interfaces
 ソースを書いて。  ここで、ちょっと失敗。  ソースに日本語のコードが入っていたのですが、コンパイルエラーになっちゃいました。  「UTF-8」だとエラーになるようなので、「Shift-JIS」にしました。  ビルド。

cd C:\hogehoge_ws

colcon build --packages-select my_service
 実行。

call install\setup.bat

ros2 run my_service server

ros2 run my_service client
AbemaTV 無料体験
それがだいじWi-Fi