Skip to content
This repository has been archived by the owner on Jan 28, 2023. It is now read-only.

imprement Consai2r2ParametersClient library for C++ node #59

Merged
merged 3 commits into from
Aug 8, 2020

Conversation

spiralray
Copy link
Contributor

@spiralray spiralray commented Dec 30, 2019

C++ノードで共通パラメータを取得するためのParametersClientsライブラリを作成しました。

SomeNode::SomeNode()
: Node("some_node")
{
  consai2r2::description::Parameters parameters;
  consai2r2::description::ParametersClient client(this);

  client.get_parameters(&parameters);

  RCLCPP_INFO(this->get_logger(), "side: %s", parameters.our_side.c_str());
  RCLCPP_INFO(this->get_logger(), "color: %s", parameters.our_color.c_str());
}

@spiralray
Copy link
Contributor Author

Consai2r2ParametersClientという名前は適切ではない気がしてきました。

consai2r2::description::ParametersClientとかがいいでしょうか

@spiralray
Copy link
Contributor Author

namespaceを使用するように変更しました。

@spiralray spiralray force-pushed the dev/distribute_params_cpp branch from 82767a6 to a649f19 Compare May 30, 2020 10:30
@ShotaAk
Copy link
Contributor

ShotaAk commented Aug 7, 2020

使ってみました。使う側簡単でいいですね:+1:

試しにパラメータを1個増やそうとしたんですが、こっちはなかなか大変ですね・・・

@spiralray
Copy link
Contributor Author

たしかにパラメータ追加はちょっと手間ですよね…

コードクローンが発生しないようにライブラリとして提供する必要性はあると思いますので、取り入れてもらえると嬉しいです。

@ShotaAk
Copy link
Contributor

ShotaAk commented Aug 7, 2020

いいですよー。
中身をちゃんと見れてないので明日確認します。

パッと見で思ったことは

  • referee.hppってなんだっけ?
  • parameter.hppとconfig.yaml名前一致させるべき?

です

@spiralray
Copy link
Contributor Author

spiralray commented Aug 7, 2020

ROS1版ではrosparamで提供されていたものなので、Parameterが適切かと思って命名していました。

p.s. Python版( #54 )ではクラス名がconsai2r2_parametersとなっているので、consai2r2_configにする場合はpython版も修正する必要がありそうですね。

referee.hppはreferee wrapperでのReferee IDです。
これは #56 のPRに追加するべきですね...

@spiralray spiralray force-pushed the dev/distribute_params_cpp branch from 9fcd4bb to a649f19 Compare August 7, 2020 14:29
@spiralray
Copy link
Contributor Author

referee.hppは削除しました。
rosmsgの定数宣言機能で管理できるように変更しようと思います。

@ShotaAk
Copy link
Contributor

ShotaAk commented Aug 8, 2020

備忘録として、使用時のファイル変更箇所を残しておきます。

CMakeLists.txt

diff --git a/consai2r2_teleop/CMakeLists.txt b/consai2r2_teleop/CMakeLists.txt
index 436ac55..0f47cda 100644
--- a/consai2r2_teleop/CMakeLists.txt
+++ b/consai2r2_teleop/CMakeLists.txt
@@ -17,8 +17,11 @@ find_package(rclcpp_components REQUIRED)
 find_package(std_msgs REQUIRED)
 find_package(sensor_msgs REQUIRED)
 find_package(consai2r2_msgs REQUIRED)
+find_package(consai2r2_description REQUIRED)
 
-include_directories(include)
+include_directories(include
+  ${consai2r2_description_INCLUDE_DIRS}
+    )
 
 add_library(joystick_component SHARED src/joystick_component.cpp)
 target_compile_definitions(joystick_component PRIVATE "RASPIMOUSE_EXAMPLES_BUILDING_DLL")
@@ -28,6 +31,7 @@ ament_target_dependencies(joystick_component
   std_msgs
   sensor_msgs
   consai2r2_msgs
+  consai2r2_description
 )

hogehogehoge.cppファイル

diff --git a/consai2r2_teleop/src/joystick_component.cpp b/consai2r2_teleop/src/joystick_component.cpp
index 7723e10..3f698d2 100644
--- a/consai2r2_teleop/src/joystick_component.cpp
+++ b/consai2r2_teleop/src/joystick_component.cpp
@@ -26,6 +26,7 @@
 #include <utility>
 
 #include "consai2r2_teleop/joystick_component.hpp"
+#include "consai2r2_description/parameters.hpp"
 
 using namespace std::chrono_literals;
 
@@ -93,7 +94,17 @@ JoystickComponent::JoystickComponent(const rclcpp::NodeOptions & options)
     }
     RCLCPP_INFO(this->get_logger(), "service not available, waiting again...");
   }
+
+  consai2r2::description::Parameters parameters;
+  consai2r2::description::ParametersClient client(this);
+  client.get_parameters(&parameters);
+
+  max_id_ = parameters.sub_id;
-  max_id_ = parameters_client->get_parameter("max_id", 15);

Copy link
Contributor

@ShotaAk ShotaAk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ShotaAk ShotaAk merged commit 83f288e into SSL-Roots:master Aug 8, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants