diff --git a/.github/workflows/build_and_test_humble.yaml b/.github/workflows/build_and_test_humble.yaml
index 18ba436..2e3b7ea 100644
--- a/.github/workflows/build_and_test_humble.yaml
+++ b/.github/workflows/build_and_test_humble.yaml
@@ -1,6 +1,6 @@
# This is a basic workflow to help you get started with Actions
-name: Build (humble)
+name: Build and test (humble)
# Controls when the action will run.
on:
@@ -28,16 +28,10 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: ros-tooling/setup-ros@v0.7
- #with:
- # use-ros2-testing: true
- - uses: ros-tooling/action-ros-ci@v0.3
with:
- skip-tests: true
+ use-ros2-testing: true
+ - uses: ros-tooling/action-ros-ci@v0.3.7
+ with:
+ #skip-tests: true
target-ros2-distro: humble
- colcon-defaults: |
- {
- "build": {
- "symlink-install": false
- }
- }
vcs-repo-file-url: dependencies.repos
\ No newline at end of file
diff --git a/.github/workflows/build_and_test_iron.yaml b/.github/workflows/build_and_test_iron.yaml
index 3df1196..8d97917 100644
--- a/.github/workflows/build_and_test_iron.yaml
+++ b/.github/workflows/build_and_test_iron.yaml
@@ -1,6 +1,6 @@
# This is a basic workflow to help you get started with Actions
-name: Build (iron)
+name: Build and test (iron)
# Controls when the action will run.
on:
@@ -28,16 +28,10 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: ros-tooling/setup-ros@v0.7
- #with:
- # use-ros2-testing: true
- - uses: ros-tooling/action-ros-ci@v0.3
with:
- skip-tests: true
+ use-ros2-testing: true
+ - uses: ros-tooling/action-ros-ci@v0.3.7
+ with:
+ #skip-tests: true
target-ros2-distro: iron
- colcon-defaults: |
- {
- "build": {
- "symlink-install": false
- }
- }
vcs-repo-file-url: dependencies.repos
\ No newline at end of file
diff --git a/.github/workflows/build_and_test_rolling.yaml b/.github/workflows/build_and_test_rolling.yaml
index 11e45c0..7df8981 100644
--- a/.github/workflows/build_and_test_rolling.yaml
+++ b/.github/workflows/build_and_test_rolling.yaml
@@ -1,6 +1,6 @@
# This is a basic workflow to help you get started with Actions
-name: Build (rolling)
+name: Build and test (rolling)
# Controls when the action will run.
on:
@@ -32,6 +32,6 @@ jobs:
use-ros2-testing: true
- uses: ros-tooling/action-ros-ci@master
with:
- skip-tests: true
+ #skip-tests: true
target-ros2-distro: rolling
vcs-repo-file-url: dependencies.repos
\ No newline at end of file
diff --git a/README.md b/README.md
index 7c8cce6..0ba0334 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-[![Build (humble)](https://github.com/antbono/nao_led/actions/workflows/build_and_test_humble.yaml/badge.svg)](https://github.com/antbono/nao_led/actions/workflows/build_and_test_humble.yaml)
-[![Build (iron)](https://github.com/antbono/nao_led/actions/workflows/build_and_test_iron.yaml/badge.svg)](https://github.com/antbono/nao_led/actions/workflows/build_and_test_iron.yaml)
-[![Build (rolling)](https://github.com/antbono/nao_led/actions/workflows/build_and_test_rolling.yaml/badge.svg)](https://github.com/antbono/nao_led/actions/workflows/build_and_test_rolling.yaml)
+[![Build and test (humble)](https://github.com/antbono/nao_led/actions/workflows/build_and_test_humble.yaml/badge.svg)](https://github.com/antbono/nao_led/actions/workflows/build_and_test_humble.yaml)
+[![Build and test (iron)](https://github.com/antbono/nao_led/actions/workflows/build_and_test_iron.yaml/badge.svg)](https://github.com/antbono/nao_led/actions/workflows/build_and_test_iron.yaml)
+[![Build and test (rolling)](https://github.com/antbono/nao_led/actions/workflows/build_and_test_rolling.yaml/badge.svg)](https://github.com/antbono/nao_led/actions/workflows/build_and_test_rolling.yaml)
# nao_led
diff --git a/nao_led_interfaces/package.xml b/nao_led_interfaces/package.xml
index e306ce3..163c8e8 100644
--- a/nao_led_interfaces/package.xml
+++ b/nao_led_interfaces/package.xml
@@ -17,6 +17,7 @@
ament_lint_auto
ament_lint_common
+ ament_cmake_clang_format
ament_cmake
diff --git a/nao_led_server/include/nao_led_server/led_action_client.hpp b/nao_led_server/include/nao_led_server/led_action_client.hpp
index e661f25..557393e 100644
--- a/nao_led_server/include/nao_led_server/led_action_client.hpp
+++ b/nao_led_server/include/nao_led_server/led_action_client.hpp
@@ -18,68 +18,68 @@
#include
#include
#include
-#include
#include
+#include
#include "ament_index_cpp/get_package_share_directory.hpp"
#include "boost/filesystem.hpp"
-
-#include "rclcpp/rclcpp.hpp"
-#include "rclcpp_action/rclcpp_action.hpp"
-#include "rclcpp_components/register_node_macro.hpp"
-
+#include "nao_led_interfaces/action/leds_play.hpp"
+#include "nao_led_interfaces/msg/led_indexes.hpp"
+#include "nao_led_interfaces/msg/led_modes.hpp"
+#include "nao_lola_command_msgs/msg/chest_led.hpp"
#include "nao_lola_command_msgs/msg/head_leds.hpp"
-#include "nao_lola_command_msgs/msg/right_eye_leds.hpp"
+#include "nao_lola_command_msgs/msg/left_ear_leds.hpp"
#include "nao_lola_command_msgs/msg/left_eye_leds.hpp"
+#include "nao_lola_command_msgs/msg/left_foot_led.hpp"
#include "nao_lola_command_msgs/msg/right_ear_leds.hpp"
-#include "nao_lola_command_msgs/msg/left_ear_leds.hpp"
-#include "nao_lola_command_msgs/msg/chest_led.hpp"
+#include "nao_lola_command_msgs/msg/right_eye_leds.hpp"
#include "nao_lola_command_msgs/msg/right_foot_led.hpp"
-#include "nao_lola_command_msgs/msg/left_foot_led.hpp"
-
-#include "nao_led_interfaces/action/leds_play.hpp"
-#include "nao_led_interfaces/msg/led_indexes.hpp"
-#include "nao_led_interfaces/msg/led_modes.hpp"
-#include "nao_led_interfaces/action/leds_play.hpp"
-
+#include "rclcpp/rclcpp.hpp"
+#include "rclcpp_action/rclcpp_action.hpp"
+#include "rclcpp_components/register_node_macro.hpp"
#include "std_msgs/msg/color_rgba.hpp"
-namespace nao_led_action_client {
-
-class LedsPlayActionClient : public rclcpp::Node {
- public:
- explicit LedsPlayActionClient(const rclcpp::NodeOptions & options = rclcpp::NodeOptions{});
- virtual ~LedsPlayActionClient();
-
- void eyesStatic( bool flag );
- void headStatic( bool flag );
- void earsStatic( bool flag );
- void chestStatic( bool flag );
- void earsLoop( bool flag );
- void headLoop( bool flag );
- void eyesLoop( bool flag );
-
- private:
-
- void goalResponseCallback(
- const rclcpp_action::ClientGoalHandle::SharedPtr & goal_handle);
- void feedbackCallback(
- rclcpp_action::ClientGoalHandle::SharedPtr,
- const std::shared_ptr feedback);
- void resultCallback(
- const rclcpp_action::ClientGoalHandle::WrappedResult & result);
-
-
- rclcpp_action::Client::SharedPtr client_ptr_;
-
- rclcpp_action::ClientGoalHandle::SharedPtr head_goal_handle_;
- //std::shared_future head_goal_handle_;
- rclcpp_action::ClientGoalHandle::SharedPtr eyes_goal_handle_;
- rclcpp_action::ClientGoalHandle::SharedPtr ears_goal_handle_;
-
-
-}; // LedsPlayActionClient
-
-} // nao_led_action_client
-
-#endif // NAO_LED_SERVER__LED_ACTION_CLIENT_HPP_
\ No newline at end of file
+namespace nao_led_action_client
+{
+
+class LedsPlayActionClient : public rclcpp::Node
+{
+public:
+ explicit LedsPlayActionClient(const rclcpp::NodeOptions & options = rclcpp::NodeOptions{});
+ virtual ~LedsPlayActionClient();
+
+ void eyesStatic(bool flag);
+ void headStatic(bool flag);
+ void earsStatic(bool flag);
+ void chestStatic(bool flag);
+ void earsLoop(bool flag);
+ void headLoop(bool flag);
+ void eyesLoop(bool flag);
+
+private:
+ void goalResponseCallback(
+ const rclcpp_action::ClientGoalHandle::SharedPtr &
+ goal_handle);
+ void feedbackCallback(
+ rclcpp_action::ClientGoalHandle::SharedPtr,
+ const std::shared_ptr feedback);
+ void resultCallback(
+ const rclcpp_action::ClientGoalHandle::WrappedResult &
+ result);
+
+ rclcpp_action::Client::SharedPtr client_ptr_;
+
+ rclcpp_action::ClientGoalHandle::SharedPtr
+ head_goal_handle_;
+ // std::shared_future
+ // head_goal_handle_;
+ rclcpp_action::ClientGoalHandle::SharedPtr
+ eyes_goal_handle_;
+ rclcpp_action::ClientGoalHandle::SharedPtr
+ ears_goal_handle_;
+
+}; // LedsPlayActionClient
+
+} // namespace nao_led_action_client
+
+#endif // NAO_LED_SERVER__LED_ACTION_CLIENT_HPP_
\ No newline at end of file
diff --git a/nao_led_server/include/nao_led_server/led_action_server.hpp b/nao_led_server/include/nao_led_server/led_action_server.hpp
index 89f2087..cd46993 100644
--- a/nao_led_server/include/nao_led_server/led_action_server.hpp
+++ b/nao_led_server/include/nao_led_server/led_action_server.hpp
@@ -21,32 +21,27 @@
//#include
#include
//#include
-#include // std::string, std::stof
#include
-#include // std::cout
-
-#include "rclcpp/rclcpp.hpp"
-#include "rclcpp_action/rclcpp_action.hpp"
-#include "rclcpp_components/register_node_macro.hpp"
+#include // std::cout
+#include // std::string, std::stof
+#include "nao_led_interfaces/action/leds_play.hpp"
+#include "nao_led_interfaces/msg/led_indexes.hpp"
+#include "nao_led_interfaces/msg/led_modes.hpp"
+#include "nao_lola_command_msgs/msg/chest_led.hpp"
#include "nao_lola_command_msgs/msg/head_leds.hpp"
-#include "nao_lola_command_msgs/msg/right_eye_leds.hpp"
+#include "nao_lola_command_msgs/msg/left_ear_leds.hpp"
#include "nao_lola_command_msgs/msg/left_eye_leds.hpp"
+#include "nao_lola_command_msgs/msg/left_foot_led.hpp"
#include "nao_lola_command_msgs/msg/right_ear_leds.hpp"
-#include "nao_lola_command_msgs/msg/left_ear_leds.hpp"
-#include "nao_lola_command_msgs/msg/chest_led.hpp"
+#include "nao_lola_command_msgs/msg/right_eye_leds.hpp"
#include "nao_lola_command_msgs/msg/right_foot_led.hpp"
-#include "nao_lola_command_msgs/msg/left_foot_led.hpp"
-
-
-#include "nao_led_interfaces/msg/led_indexes.hpp"
-#include "nao_led_interfaces/msg/led_modes.hpp"
-#include "nao_led_interfaces/action/leds_play.hpp"
-
+#include "rclcpp/rclcpp.hpp"
+#include "rclcpp_action/rclcpp_action.hpp"
+#include "rclcpp_components/register_node_macro.hpp"
#include "std_msgs/msg/color_rgba.hpp"
-
-namespace nao_led_action_server
+namespace nao_led_action_server
{
using LedsPlay = nao_led_interfaces::action::LedsPlay;
@@ -54,64 +49,66 @@ using GoalHandleLedsPlay = rclcpp_action::ServerGoalHandle;
using LedIndexes = nao_led_interfaces::msg::LedIndexes;
using LedModes = nao_led_interfaces::msg::LedModes;
-
-class LedsPlayActionServer : public rclcpp::Node
+class LedsPlayActionServer : public rclcpp::Node
{
- public:
- explicit LedsPlayActionServer(const rclcpp::NodeOptions & options = rclcpp::NodeOptions{});
- virtual ~LedsPlayActionServer();
-
- private:
-
- rclcpp_action::Server::SharedPtr action_server_;
- std::shared_ptr> goal_handle_;
-
-
- rclcpp::Publisher::SharedPtr head_pub_;
- rclcpp::Publisher::SharedPtr right_eye_pub_;
- rclcpp::Publisher::SharedPtr left_eye_pub_;
- rclcpp::Publisher::SharedPtr right_ear_pub_;
- rclcpp::Publisher::SharedPtr left_ear_pub_;
- rclcpp::Publisher::SharedPtr chest_pub_;
- rclcpp::Publisher::SharedPtr right_foot_pub_;
- rclcpp::Publisher::SharedPtr left_foot_pub_;
-
- std_msgs::msg::ColorRGBA color_off_;
- //color_off_.r=0.0; color_off_.g=0.0; color_off_.b=0.0;
- nao_led_interfaces::msg::LedIndexes led_indexes_msg_;
- nao_led_interfaces::msg::LedModes led_modes_msg_;
-
-
- rclcpp_action::GoalResponse handleGoal(
- const rclcpp_action::GoalUUID & uuid,
- std::shared_ptr goal);
-
- rclcpp_action::CancelResponse handleCancel(
- const std::shared_ptr> goal_handle);
-
- void handleAccepted(
- const std::shared_ptr> goal_handle);
-
- void execute(
- const std::shared_ptr> goal_handle);
-
- void steadyMode(
- const std::shared_ptr> goal_handle,
- std::array & leds,
- float frequency,
- std::array & colors, std::array & intensities);
-
- bool blinkingMode(
- const std::shared_ptr> goal_handle,
- std::array & leds, float frequency,
- std::array & colors);
-
- bool loopMode(
- const std::shared_ptr> goal_handle,
- std::array & leds, float frequency,
- std::array & colors);
+public:
+ explicit LedsPlayActionServer(const rclcpp::NodeOptions & options = rclcpp::NodeOptions{});
+ virtual ~LedsPlayActionServer();
+
+private:
+ rclcpp_action::Server::SharedPtr action_server_;
+ std::shared_ptr>
+ goal_handle_;
+
+ rclcpp::Publisher::SharedPtr head_pub_;
+ rclcpp::Publisher::SharedPtr right_eye_pub_;
+ rclcpp::Publisher::SharedPtr left_eye_pub_;
+ rclcpp::Publisher::SharedPtr right_ear_pub_;
+ rclcpp::Publisher::SharedPtr left_ear_pub_;
+ rclcpp::Publisher::SharedPtr chest_pub_;
+ rclcpp::Publisher::SharedPtr right_foot_pub_;
+ rclcpp::Publisher::SharedPtr left_foot_pub_;
+
+ std_msgs::msg::ColorRGBA color_off_;
+ // color_off_.r=0.0; color_off_.g=0.0; color_off_.b=0.0;
+ nao_led_interfaces::msg::LedIndexes led_indexes_msg_;
+ nao_led_interfaces::msg::LedModes led_modes_msg_;
+
+ rclcpp_action::GoalResponse handleGoal(
+ const rclcpp_action::GoalUUID & uuid,
+ std::shared_ptr goal);
+
+ rclcpp_action::CancelResponse handleCancel(
+ const std::shared_ptr>
+ goal_handle);
+
+ void handleAccepted(
+ const std::shared_ptr>
+ goal_handle);
+
+ void execute(
+ const std::shared_ptr>
+ goal_handle);
+
+ void steadyMode(
+ const std::shared_ptr>
+ goal_handle,
+ std::array & leds, float frequency,
+ std::array & colors, std::array & intensities);
+
+ bool blinkingMode(
+ const std::shared_ptr>
+ goal_handle,
+ std::array & leds, float frequency,
+ std::array & colors);
+
+ bool loopMode(
+ const std::shared_ptr>
+ goal_handle,
+ std::array & leds, float frequency,
+ std::array & colors);
};
-}
+} // namespace nao_led_action_server
#endif // NAO_LED_SERVER__LED_ACTION_SERVER_HPP_
\ No newline at end of file
diff --git a/nao_led_server/package.xml b/nao_led_server/package.xml
index c96399f..cc0dff7 100644
--- a/nao_led_server/package.xml
+++ b/nao_led_server/package.xml
@@ -22,7 +22,8 @@
ament_lint_auto
ament_lint_common
-
+ ament_cmake_clang_format
+
ament_cmake
diff --git a/nao_led_server/src/led_action_client.cpp b/nao_led_server/src/led_action_client.cpp
index 54cf3b1..11fcfcb 100644
--- a/nao_led_server/src/led_action_client.cpp
+++ b/nao_led_server/src/led_action_client.cpp
@@ -12,38 +12,34 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+#include "nao_led_server/led_action_client.hpp"
+
#include
#include
#include
-#include
#include
+#include
#include "ament_index_cpp/get_package_share_directory.hpp"
#include "boost/filesystem.hpp"
-
-#include "rclcpp/rclcpp.hpp"
-#include "rclcpp_action/rclcpp_action.hpp"
-#include "rclcpp_components/register_node_macro.hpp"
-
+#include "nao_led_interfaces/action/leds_play.hpp"
+#include "nao_led_interfaces/msg/led_indexes.hpp"
+#include "nao_led_interfaces/msg/led_modes.hpp"
+#include "nao_lola_command_msgs/msg/chest_led.hpp"
#include "nao_lola_command_msgs/msg/head_leds.hpp"
-#include "nao_lola_command_msgs/msg/right_eye_leds.hpp"
+#include "nao_lola_command_msgs/msg/left_ear_leds.hpp"
#include "nao_lola_command_msgs/msg/left_eye_leds.hpp"
+#include "nao_lola_command_msgs/msg/left_foot_led.hpp"
#include "nao_lola_command_msgs/msg/right_ear_leds.hpp"
-#include "nao_lola_command_msgs/msg/left_ear_leds.hpp"
-#include "nao_lola_command_msgs/msg/chest_led.hpp"
+#include "nao_lola_command_msgs/msg/right_eye_leds.hpp"
#include "nao_lola_command_msgs/msg/right_foot_led.hpp"
-#include "nao_lola_command_msgs/msg/left_foot_led.hpp"
-
-#include "nao_led_interfaces/action/leds_play.hpp"
-#include "nao_led_interfaces/msg/led_indexes.hpp"
-#include "nao_led_interfaces/msg/led_modes.hpp"
-#include "nao_led_interfaces/action/leds_play.hpp"
-#include "nao_led_server/led_action_client.hpp"
-
+#include "rclcpp/rclcpp.hpp"
+#include "rclcpp_action/rclcpp_action.hpp"
+#include "rclcpp_components/register_node_macro.hpp"
#include "std_msgs/msg/color_rgba.hpp"
-
-namespace nao_led_action_client {
+namespace nao_led_action_client
+{
using LedsPlay = nao_led_interfaces::action::LedsPlay;
using GoalHandleLedsPlay = rclcpp_action::ClientGoalHandle;
@@ -51,23 +47,18 @@ using GoalHandleLedsPlay = rclcpp_action::ClientGoalHandle;
using LedIndexes = nao_led_interfaces::msg::LedIndexes;
using LedModes = nao_led_interfaces::msg::LedModes;
-
LedsPlayActionClient::LedsPlayActionClient(const rclcpp::NodeOptions & options)
- : rclcpp::Node("led_action_client_node", options) {
-
- this->client_ptr_ = rclcpp_action::create_client(
- this,
- "leds_play");
+: rclcpp::Node("led_action_client_node", options)
+{
+ this->client_ptr_ = rclcpp_action::create_client(this, "leds_play");
RCLCPP_INFO(this->get_logger(), "LedsPlayActionClient initialized");
-
}
LedsPlayActionClient::~LedsPlayActionClient() {}
-
-void LedsPlayActionClient::eyesStatic( bool flag ) {
-
+void LedsPlayActionClient::eyesStatic(bool flag)
+{
using namespace std::placeholders;
if (!this->client_ptr_->wait_for_action_server()) {
RCLCPP_ERROR(this->get_logger(), "Action server not available after waiting");
@@ -80,9 +71,13 @@ void LedsPlayActionClient::eyesStatic( bool flag ) {
goal_msg.mode = LedModes::STEADY;
std_msgs::msg::ColorRGBA color;
if (flag) {
- color.r = 1.0; color.g = 1.0; color.b = 1.0;
+ color.r = 1.0;
+ color.g = 1.0;
+ color.b = 1.0;
} else {
- color.r = 0.0; color.g = 0.0; color.b = 0.0;
+ color.r = 0.0;
+ color.g = 0.0;
+ color.b = 0.0;
}
for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEyeLeds::NUM_LEDS; ++i) {
@@ -97,17 +92,15 @@ void LedsPlayActionClient::eyesStatic( bool flag ) {
send_goal_options.feedback_callback =
std::bind(&LedsPlayActionClient::feedbackCallback, this, _1, _2);
- send_goal_options.result_callback =
- std::bind(&LedsPlayActionClient::resultCallback, this, _1);
+ send_goal_options.result_callback = std::bind(&LedsPlayActionClient::resultCallback, this, _1);
- RCLCPP_INFO(this->get_logger(), "Sending goal:" );
+ RCLCPP_INFO(this->get_logger(), "Sending goal:");
this->client_ptr_->async_send_goal(goal_msg, send_goal_options);
-
}
-void LedsPlayActionClient::chestStatic( bool flag ) {
-
+void LedsPlayActionClient::chestStatic(bool flag)
+{
using namespace std::placeholders;
if (!this->client_ptr_->wait_for_action_server()) {
RCLCPP_ERROR(this->get_logger(), "Action server not available after waiting");
@@ -120,9 +113,13 @@ void LedsPlayActionClient::chestStatic( bool flag ) {
goal_msg.mode = LedModes::STEADY;
std_msgs::msg::ColorRGBA color;
if (flag) {
- color.r = 1.0; color.g = 1.0; color.b = 1.0;
+ color.r = 1.0;
+ color.g = 1.0;
+ color.b = 1.0;
} else {
- color.r = 0.0; color.g = 0.0; color.b = 0.0;
+ color.r = 0.0;
+ color.g = 0.0;
+ color.b = 0.0;
}
goal_msg.colors[0] = color;
@@ -135,16 +132,15 @@ void LedsPlayActionClient::chestStatic( bool flag ) {
send_goal_options.feedback_callback =
std::bind(&LedsPlayActionClient::feedbackCallback, this, _1, _2);
- send_goal_options.result_callback =
- std::bind(&LedsPlayActionClient::resultCallback, this, _1);
+ send_goal_options.result_callback = std::bind(&LedsPlayActionClient::resultCallback, this, _1);
- RCLCPP_INFO(this->get_logger(), "Sending goal:" );
+ RCLCPP_INFO(this->get_logger(), "Sending goal:");
this->client_ptr_->async_send_goal(goal_msg, send_goal_options);
-
}
-void LedsPlayActionClient::headStatic(bool flag) {
+void LedsPlayActionClient::headStatic(bool flag)
+{
using namespace std::placeholders;
if (!this->client_ptr_->wait_for_action_server()) {
@@ -159,7 +155,9 @@ void LedsPlayActionClient::headStatic(bool flag) {
for (unsigned i = 0; i < nao_lola_command_msgs::msg::HeadLeds::NUM_LEDS; ++i) {
if (flag) {
goal_msg.intensities[i] = 1.0;
- } else {goal_msg.intensities[i] = 0.0;}
+ } else {
+ goal_msg.intensities[i] = 0.0;
+ }
}
auto send_goal_options = rclcpp_action::Client::SendGoalOptions();
@@ -170,16 +168,15 @@ void LedsPlayActionClient::headStatic(bool flag) {
send_goal_options.feedback_callback =
std::bind(&LedsPlayActionClient::feedbackCallback, this, _1, _2);
- send_goal_options.result_callback =
- std::bind(&LedsPlayActionClient::resultCallback, this, _1);
+ send_goal_options.result_callback = std::bind(&LedsPlayActionClient::resultCallback, this, _1);
- RCLCPP_INFO(this->get_logger(), "Sending goal:" );
+ RCLCPP_INFO(this->get_logger(), "Sending goal:");
this->client_ptr_->async_send_goal(goal_msg, send_goal_options);
-
}
-void LedsPlayActionClient::earsStatic(bool flag) {
+void LedsPlayActionClient::earsStatic(bool flag)
+{
using namespace std::placeholders;
if (!this->client_ptr_->wait_for_action_server()) {
@@ -194,7 +191,9 @@ void LedsPlayActionClient::earsStatic(bool flag) {
for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS; ++i) {
if (flag) {
goal_msg.intensities[i] = 1.0;
- } else {goal_msg.intensities[i] = 0.0;}
+ } else {
+ goal_msg.intensities[i] = 0.0;
+ }
}
auto send_goal_options = rclcpp_action::Client::SendGoalOptions();
@@ -205,16 +204,15 @@ void LedsPlayActionClient::earsStatic(bool flag) {
send_goal_options.feedback_callback =
std::bind(&LedsPlayActionClient::feedbackCallback, this, _1, _2);
- send_goal_options.result_callback =
- std::bind(&LedsPlayActionClient::resultCallback, this, _1);
+ send_goal_options.result_callback = std::bind(&LedsPlayActionClient::resultCallback, this, _1);
- RCLCPP_INFO(this->get_logger(), "Sending goal:" );
+ RCLCPP_INFO(this->get_logger(), "Sending goal:");
this->client_ptr_->async_send_goal(goal_msg, send_goal_options);
-
}
-void LedsPlayActionClient::headLoop( bool flag ) {
+void LedsPlayActionClient::headLoop(bool flag)
+{
using namespace std::placeholders;
if (!this->client_ptr_->wait_for_action_server()) {
@@ -240,22 +238,22 @@ void LedsPlayActionClient::headLoop( bool flag ) {
send_goal_options.feedback_callback =
std::bind(&LedsPlayActionClient::feedbackCallback, this, _1, _2);
- send_goal_options.result_callback =
- std::bind(&LedsPlayActionClient::resultCallback, this, _1);
+ send_goal_options.result_callback = std::bind(&LedsPlayActionClient::resultCallback, this, _1);
- RCLCPP_INFO(this->get_logger(), "Sending goal:" );
+ RCLCPP_INFO(this->get_logger(), "Sending goal:");
auto goal_handle_future = client_ptr_->async_send_goal(goal_msg, send_goal_options);
head_goal_handle_ = goal_handle_future.get();
- //head_goal_handle_ = client_ptr_->async_send_goal(goal_msg, send_goal_options);
+ // head_goal_handle_ = client_ptr_->async_send_goal(goal_msg, send_goal_options);
} else {
- //rclcpp_action::ClientGoalHandle::SharedPtr handle = head_goal_handle_.get();
- //auto cancel_result_future = client_ptr_->async_cancel_goal(handle);
+ // rclcpp_action::ClientGoalHandle::SharedPtr handle =
+ // head_goal_handle_.get(); auto cancel_result_future = client_ptr_->async_cancel_goal(handle);
auto cancel_result_future = client_ptr_->async_cancel_goal(head_goal_handle_);
}
}
-void LedsPlayActionClient::earsLoop(bool flag) {
+void LedsPlayActionClient::earsLoop(bool flag)
+{
using namespace std::placeholders;
if (flag) {
@@ -281,10 +279,9 @@ void LedsPlayActionClient::earsLoop(bool flag) {
send_goal_options.feedback_callback =
std::bind(&LedsPlayActionClient::feedbackCallback, this, _1, _2);
- send_goal_options.result_callback =
- std::bind(&LedsPlayActionClient::resultCallback, this, _1);
+ send_goal_options.result_callback = std::bind(&LedsPlayActionClient::resultCallback, this, _1);
- RCLCPP_INFO(this->get_logger(), "Sending goal:" );
+ RCLCPP_INFO(this->get_logger(), "Sending goal:");
auto goal_handle_future = client_ptr_->async_send_goal(goal_msg, send_goal_options);
ears_goal_handle_ = goal_handle_future.get();
@@ -293,8 +290,8 @@ void LedsPlayActionClient::earsLoop(bool flag) {
}
}
-
-void LedsPlayActionClient::eyesLoop(bool flag) {
+void LedsPlayActionClient::eyesLoop(bool flag)
+{
using namespace std::placeholders;
if (flag) {
@@ -307,9 +304,11 @@ void LedsPlayActionClient::eyesLoop(bool flag) {
goal_msg.leds = {LedIndexes::REYE, LedIndexes::LEYE};
goal_msg.mode = LedModes::LOOP;
-
+
std_msgs::msg::ColorRGBA color;
- color.r = 1.0; color.g = 1.0; color.b = 1.0;
+ color.r = 1.0;
+ color.g = 1.0;
+ color.b = 1.0;
for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEyeLeds::NUM_LEDS; ++i) {
goal_msg.colors[i] = color;
@@ -322,13 +321,12 @@ void LedsPlayActionClient::eyesLoop(bool flag) {
send_goal_options.goal_response_callback =
std::bind(&LedsPlayActionClient::goalResponseCallback, this, _1);
- //send_goal_options.feedback_callback =
- // std::bind(&LedsPlayActionClient::feedbackCallback, this, _1, _2);
+ // send_goal_options.feedback_callback =
+ // std::bind(&LedsPlayActionClient::feedbackCallback, this, _1, _2);
- send_goal_options.result_callback =
- std::bind(&LedsPlayActionClient::resultCallback, this, _1);
+ send_goal_options.result_callback = std::bind(&LedsPlayActionClient::resultCallback, this, _1);
- RCLCPP_INFO(this->get_logger(), "Sending goal:" );
+ RCLCPP_INFO(this->get_logger(), "Sending goal:");
auto goal_handle_future = client_ptr_->async_send_goal(goal_msg, send_goal_options);
eyes_goal_handle_ = goal_handle_future.get();
@@ -337,9 +335,8 @@ void LedsPlayActionClient::eyesLoop(bool flag) {
}
}
-
-
-void LedsPlayActionClient::goalResponseCallback(const GoalHandleLedsPlay::SharedPtr & goal_handle) {
+void LedsPlayActionClient::goalResponseCallback(const GoalHandleLedsPlay::SharedPtr & goal_handle)
+{
if (!goal_handle) {
RCLCPP_ERROR(this->get_logger(), "Goal was rejected by server");
} else {
@@ -348,35 +345,32 @@ void LedsPlayActionClient::goalResponseCallback(const GoalHandleLedsPlay::Shared
}
void LedsPlayActionClient::feedbackCallback(
- GoalHandleLedsPlay::SharedPtr,
- const std::shared_ptr feedback) {
-
- //TODO
-
+ GoalHandleLedsPlay::SharedPtr, const std::shared_ptr feedback)
+{
+ // TODO
}
-void LedsPlayActionClient::resultCallback(const GoalHandleLedsPlay::WrappedResult & result) {
+void LedsPlayActionClient::resultCallback(const GoalHandleLedsPlay::WrappedResult & result)
+{
switch (result.code) {
- case rclcpp_action::ResultCode::SUCCEEDED:
- break;
- case rclcpp_action::ResultCode::ABORTED:
- RCLCPP_ERROR(this->get_logger(), "Goal was aborted");
- return;
- case rclcpp_action::ResultCode::CANCELED:
- RCLCPP_ERROR(this->get_logger(), "Goal was canceled");
- return;
- default:
- RCLCPP_ERROR(this->get_logger(), "Unknown result code");
- return;
+ case rclcpp_action::ResultCode::SUCCEEDED:
+ break;
+ case rclcpp_action::ResultCode::ABORTED:
+ RCLCPP_ERROR(this->get_logger(), "Goal was aborted");
+ return;
+ case rclcpp_action::ResultCode::CANCELED:
+ RCLCPP_ERROR(this->get_logger(), "Goal was canceled");
+ return;
+ default:
+ RCLCPP_ERROR(this->get_logger(), "Unknown result code");
+ return;
}
- if (result.result->success)
- RCLCPP_INFO(this->get_logger(), "Leds regulary played.");
+ if (result.result->success) RCLCPP_INFO(this->get_logger(), "Leds regulary played.");
rclcpp::shutdown();
}
-
} // namespace nao_led_action_client
RCLCPP_COMPONENTS_REGISTER_NODE(nao_led_action_client::LedsPlayActionClient)
\ No newline at end of file
diff --git a/nao_led_server/src/led_action_server.cpp b/nao_led_server/src/led_action_server.cpp
index 2345a58..63aecf7 100644
--- a/nao_led_server/src/led_action_server.cpp
+++ b/nao_led_server/src/led_action_server.cpp
@@ -18,500 +18,492 @@
//#include
#include
//#include
-#include // std::string, std::stof
#include
-#include // std::cout
-
-#include "rclcpp/rclcpp.hpp"
-#include "rclcpp_action/rclcpp_action.hpp"
-#include "rclcpp_components/register_node_macro.hpp"
-
-#include "std_msgs/msg/color_rgba.hpp"
+#include // std::cout
+#include // std::string, std::stof
+#include "nao_led_interfaces/action/leds_play.hpp"
+#include "nao_led_interfaces/msg/led_indexes.hpp"
+#include "nao_led_interfaces/msg/led_modes.hpp"
+#include "nao_led_server/led_action_server.hpp"
+#include "nao_lola_command_msgs/msg/chest_led.hpp"
#include "nao_lola_command_msgs/msg/head_leds.hpp"
-#include "nao_lola_command_msgs/msg/right_eye_leds.hpp"
+#include "nao_lola_command_msgs/msg/left_ear_leds.hpp"
#include "nao_lola_command_msgs/msg/left_eye_leds.hpp"
+#include "nao_lola_command_msgs/msg/left_foot_led.hpp"
#include "nao_lola_command_msgs/msg/right_ear_leds.hpp"
-#include "nao_lola_command_msgs/msg/left_ear_leds.hpp"
-#include "nao_lola_command_msgs/msg/chest_led.hpp"
+#include "nao_lola_command_msgs/msg/right_eye_leds.hpp"
#include "nao_lola_command_msgs/msg/right_foot_led.hpp"
-#include "nao_lola_command_msgs/msg/left_foot_led.hpp"
-
-#include "nao_led_server/led_action_server.hpp"
-
-#include "nao_led_interfaces/msg/led_indexes.hpp"
-#include "nao_led_interfaces/msg/led_modes.hpp"
-#include "nao_led_interfaces/action/leds_play.hpp"
-
-
-
+#include "rclcpp/rclcpp.hpp"
+#include "rclcpp_action/rclcpp_action.hpp"
+#include "rclcpp_components/register_node_macro.hpp"
+#include "std_msgs/msg/color_rgba.hpp"
-namespace nao_led_action_server {
+namespace nao_led_action_server
+{
LedsPlayActionServer::LedsPlayActionServer(const rclcpp::NodeOptions & options)
- : rclcpp::Node("leds_play_action_server_node", options) {
- using namespace std::placeholders;
-
- this->action_server_ = rclcpp_action::create_server(
- this,
- "leds_play",
- std::bind(&LedsPlayActionServer::handleGoal, this, _1, _2),
- std::bind(&LedsPlayActionServer::handleCancel, this, _1),
- std::bind(&LedsPlayActionServer::handleAccepted, this, _1));
-
- this->head_pub_ = this->create_publisher(
- "effectors/head_leds", 10);
- this->right_eye_pub_ = this->create_publisher(
- "effectors/right_eye_leds", 10);
- this->left_eye_pub_ = this->create_publisher(
- "effectors/left_eye_leds", 10);
- this->right_ear_pub_ = this->create_publisher(
- "effectors/right_ear_leds", 10);
- this->left_ear_pub_ = this->create_publisher(
- "effectors/left_ear_leds", 10);
- this->chest_pub_ = this->create_publisher(
- "effectors/chest_led", 10);
- this->right_foot_pub_ = this->create_publisher(
- "effectors/right_foot_led", 10);
- this->left_foot_pub_ = this->create_publisher(
- "effectors/left_foot_led", 10);
-
- this->color_off_ = std_msgs::msg::ColorRGBA();
- this->color_off_.r = 0.0;
- this->color_off_.g = 0.0;
- this->color_off_.b = 0.0;
-
- RCLCPP_INFO(this->get_logger(), "LedsPlayActionServer Initialized");
-
+: rclcpp::Node("leds_play_action_server_node", options)
+{
+ using namespace std::placeholders;
+
+ this->action_server_ = rclcpp_action::create_server(
+ this, "leds_play", std::bind(&LedsPlayActionServer::handleGoal, this, _1, _2),
+ std::bind(&LedsPlayActionServer::handleCancel, this, _1),
+ std::bind(&LedsPlayActionServer::handleAccepted, this, _1));
+
+ this->head_pub_ =
+ this->create_publisher("effectors/head_leds", 10);
+ this->right_eye_pub_ = this->create_publisher(
+ "effectors/right_eye_leds", 10);
+ this->left_eye_pub_ =
+ this->create_publisher("effectors/left_eye_leds", 10);
+ this->right_ear_pub_ = this->create_publisher(
+ "effectors/right_ear_leds", 10);
+ this->left_ear_pub_ =
+ this->create_publisher("effectors/left_ear_leds", 10);
+ this->chest_pub_ =
+ this->create_publisher("effectors/chest_led", 10);
+ this->right_foot_pub_ = this->create_publisher(
+ "effectors/right_foot_led", 10);
+ this->left_foot_pub_ =
+ this->create_publisher("effectors/left_foot_led", 10);
+
+ this->color_off_ = std_msgs::msg::ColorRGBA();
+ this->color_off_.r = 0.0;
+ this->color_off_.g = 0.0;
+ this->color_off_.b = 0.0;
+
+ RCLCPP_INFO(this->get_logger(), "LedsPlayActionServer Initialized");
}
LedsPlayActionServer::~LedsPlayActionServer() {}
-
rclcpp_action::GoalResponse LedsPlayActionServer::handleGoal(
- const rclcpp_action::GoalUUID & uuid,
- std::shared_ptr goal) {
-
- RCLCPP_INFO( this->get_logger(), "Received LED goal request");
- (void)uuid;
+ const rclcpp_action::GoalUUID & uuid,
+ std::shared_ptr goal)
+{
+ RCLCPP_INFO(this->get_logger(), "Received LED goal request");
+ (void)uuid;
- //TODO checks on goal integrity
-
- return rclcpp_action::GoalResponse::ACCEPT_AND_EXECUTE;
+ // TODO checks on goal integrity
+ return rclcpp_action::GoalResponse::ACCEPT_AND_EXECUTE;
}
rclcpp_action::CancelResponse LedsPlayActionServer::handleCancel(
- const std::shared_ptr> goal_handle) {
- RCLCPP_INFO(this->get_logger(), "Received request to cancel LED goal");
- (void)goal_handle;
- return rclcpp_action::CancelResponse::ACCEPT;
+ const std::shared_ptr>
+ goal_handle)
+{
+ RCLCPP_INFO(this->get_logger(), "Received request to cancel LED goal");
+ (void)goal_handle;
+ return rclcpp_action::CancelResponse::ACCEPT;
}
void LedsPlayActionServer::handleAccepted(
- const std::shared_ptr> goal_handle) {
- using namespace std::placeholders;
- // this needs to return quickly to avoid blocking the executor, so spin up a new thread
- std::thread{std::bind(&LedsPlayActionServer::execute, this, _1), goal_handle} .detach();
+ const std::shared_ptr>
+ goal_handle)
+{
+ using namespace std::placeholders;
+ // this needs to return quickly to avoid blocking the executor, so spin up a new thread
+ std::thread{std::bind(&LedsPlayActionServer::execute, this, _1), goal_handle}.detach();
}
void LedsPlayActionServer::execute(
- const std::shared_ptr> goal_handle) {
-
- RCLCPP_INFO(this->get_logger(), "Executing LED goal");
-
- auto goal = goal_handle->get_goal();
- bool canceled = false;
-
- std::array leds = goal->leds;
- uint8_t mode = goal->mode;
- float frequency = goal->frequency;
- std::array colors = goal->colors;
- std::array intensities = goal->intensities;
- float duration = goal->duration;
-
- auto feedback = std::make_shared();
- auto result = std::make_shared();
-
-
- if (mode == nao_led_interfaces::msg::LedModes::STEADY) {
- steadyMode(goal_handle, leds, frequency, colors, intensities);
-
- } else if (mode == nao_led_interfaces::msg::LedModes::BLINKING) {
-
- canceled = blinkingMode(goal_handle, leds, frequency, colors );
- if (canceled) {
- result->success = true;
- goal_handle->canceled(result);
- RCLCPP_INFO(this->get_logger(), "LED Goal canceled");
- return;
- }
- //
-
- } else if (mode == nao_led_interfaces::msg::LedModes::LOOP) {
- canceled = loopMode(goal_handle, leds, frequency, colors);
- if (canceled) {
- result->success = true;
- goal_handle->canceled(result);
- RCLCPP_INFO(this->get_logger(), "LED Goal canceled");
- return;
- }
+ const std::shared_ptr>
+ goal_handle)
+{
+ RCLCPP_INFO(this->get_logger(), "Executing LED goal");
+
+ auto goal = goal_handle->get_goal();
+ bool canceled = false;
+
+ std::array leds = goal->leds;
+ uint8_t mode = goal->mode;
+ float frequency = goal->frequency;
+ std::array colors = goal->colors;
+ std::array intensities = goal->intensities;
+ float duration = goal->duration;
+
+ auto feedback = std::make_shared();
+ auto result = std::make_shared();
+
+ if (mode == nao_led_interfaces::msg::LedModes::STEADY) {
+ steadyMode(goal_handle, leds, frequency, colors, intensities);
+ } else if (mode == nao_led_interfaces::msg::LedModes::BLINKING) {
+ canceled = blinkingMode(goal_handle, leds, frequency, colors);
+ if (canceled) {
+ result->success = true;
+ goal_handle->canceled(result);
+ RCLCPP_INFO(this->get_logger(), "LED Goal canceled");
+ return;
}
-
- if (rclcpp::ok()) {
- result->success = true;
- goal_handle->succeed(result);
- RCLCPP_INFO(this->get_logger(), "LED Goal succeeded");
+ //
+ } else if (mode == nao_led_interfaces::msg::LedModes::LOOP) {
+ canceled = loopMode(goal_handle, leds, frequency, colors);
+ if (canceled) {
+ result->success = true;
+ goal_handle->canceled(result);
+ RCLCPP_INFO(this->get_logger(), "LED Goal canceled");
+ return;
}
+ }
+ if (rclcpp::ok()) {
+ result->success = true;
+ goal_handle->succeed(result);
+ RCLCPP_INFO(this->get_logger(), "LED Goal succeeded");
+ }
}
-
void LedsPlayActionServer::steadyMode(
- const std::shared_ptr> goal_handle,
- std::array & leds, float frequency,
- std::array & colors,
- std::array & intensities) {
-
- auto result = std::make_shared();
-
- if (leds[0] == nao_led_interfaces::msg::LedIndexes::HEAD) {
- nao_lola_command_msgs::msg::HeadLeds head_leds_msg;
- for (unsigned i = 0; i < nao_lola_command_msgs::msg::HeadLeds::NUM_LEDS; ++i) {
- head_leds_msg.intensities[i] = intensities[i];
- }
- head_pub_->publish(head_leds_msg);
+ const std::shared_ptr>
+ goal_handle,
+ std::array & leds, float frequency, std::array & colors,
+ std::array & intensities)
+{
+ auto result = std::make_shared();
+
+ if (leds[0] == nao_led_interfaces::msg::LedIndexes::HEAD) {
+ nao_lola_command_msgs::msg::HeadLeds head_leds_msg;
+ for (unsigned i = 0; i < nao_lola_command_msgs::msg::HeadLeds::NUM_LEDS; ++i) {
+ head_leds_msg.intensities[i] = intensities[i];
}
-
- if ((leds[0] == nao_led_interfaces::msg::LedIndexes::REYE && leds[1] == nao_led_interfaces::msg::LedIndexes::LEYE) ||
- (leds[0] == nao_led_interfaces::msg::LedIndexes::LEYE && leds[1] == nao_led_interfaces::msg::LedIndexes::REYE)) {
- nao_lola_command_msgs::msg::RightEyeLeds right_eye_leds_msg;
- nao_lola_command_msgs::msg::LeftEyeLeds left_eye_leds_msg;
- for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEyeLeds::NUM_LEDS; ++i) {
- right_eye_leds_msg.colors[i] = colors[i];
- left_eye_leds_msg.colors[i] = colors[i];
- }
-
- right_eye_pub_->publish(right_eye_leds_msg);
- left_eye_pub_->publish(left_eye_leds_msg);
-
+ head_pub_->publish(head_leds_msg);
+ }
+
+ if (
+ (leds[0] == nao_led_interfaces::msg::LedIndexes::REYE &&
+ leds[1] == nao_led_interfaces::msg::LedIndexes::LEYE) ||
+ (leds[0] == nao_led_interfaces::msg::LedIndexes::LEYE &&
+ leds[1] == nao_led_interfaces::msg::LedIndexes::REYE)) {
+ nao_lola_command_msgs::msg::RightEyeLeds right_eye_leds_msg;
+ nao_lola_command_msgs::msg::LeftEyeLeds left_eye_leds_msg;
+ for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEyeLeds::NUM_LEDS; ++i) {
+ right_eye_leds_msg.colors[i] = colors[i];
+ left_eye_leds_msg.colors[i] = colors[i];
}
- if ((leds[0] == nao_led_interfaces::msg::LedIndexes::REAR && leds[1] == nao_led_interfaces::msg::LedIndexes::LEAR) ||
- (leds[0] == nao_led_interfaces::msg::LedIndexes::LEAR && leds[1] == nao_led_interfaces::msg::LedIndexes::REAR)) {
- nao_lola_command_msgs::msg::RightEarLeds right_ear_leds_msg;
- nao_lola_command_msgs::msg::LeftEarLeds left_ear_leds_msg;
- for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS; ++i) {
- right_ear_leds_msg.intensities[i] = intensities[i];
- left_ear_leds_msg.intensities[i] = intensities[i];
- }
-
- right_ear_pub_->publish(right_ear_leds_msg);
- left_ear_pub_->publish(left_ear_leds_msg);
+ right_eye_pub_->publish(right_eye_leds_msg);
+ left_eye_pub_->publish(left_eye_leds_msg);
+ }
+
+ if (
+ (leds[0] == nao_led_interfaces::msg::LedIndexes::REAR &&
+ leds[1] == nao_led_interfaces::msg::LedIndexes::LEAR) ||
+ (leds[0] == nao_led_interfaces::msg::LedIndexes::LEAR &&
+ leds[1] == nao_led_interfaces::msg::LedIndexes::REAR)) {
+ nao_lola_command_msgs::msg::RightEarLeds right_ear_leds_msg;
+ nao_lola_command_msgs::msg::LeftEarLeds left_ear_leds_msg;
+ for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS; ++i) {
+ right_ear_leds_msg.intensities[i] = intensities[i];
+ left_ear_leds_msg.intensities[i] = intensities[i];
}
- if (leds[0] == nao_led_interfaces::msg::LedIndexes::CHEST) {
- nao_lola_command_msgs::msg::ChestLed chest_led_msg;
- chest_led_msg.color = colors[0];
- chest_pub_->publish(chest_led_msg);
- }
+ right_ear_pub_->publish(right_ear_leds_msg);
+ left_ear_pub_->publish(left_ear_leds_msg);
+ }
+ if (leds[0] == nao_led_interfaces::msg::LedIndexes::CHEST) {
+ nao_lola_command_msgs::msg::ChestLed chest_led_msg;
+ chest_led_msg.color = colors[0];
+ chest_pub_->publish(chest_led_msg);
+ }
}
-
bool LedsPlayActionServer::blinkingMode(
- const std::shared_ptr> goal_handle,
- std::array & leds, float frequency,
- std::array & colors) {
-
- rclcpp::Rate loop_rate(frequency);
- bool canceled = false;
-
- if (leds[0] == nao_led_interfaces::msg::LedIndexes::HEAD) {
-
- nao_lola_command_msgs::msg::HeadLeds head_leds_on;
- nao_lola_command_msgs::msg::HeadLeds head_leds_off;
- for (unsigned i = 0; i < nao_lola_command_msgs::msg::HeadLeds::NUM_LEDS; ++i) {
- head_leds_on.intensities[i] = 1.0;
- head_leds_off.intensities[i] = 0.0;
- }
- uint8_t c = 0;
- while (rclcpp::ok()) {
- if (goal_handle->is_canceling()) {
- return canceled = true;
- }
- c = (c + 1) % 2;
-
- if (c == 0) {
- head_pub_->publish(head_leds_on);
- } else {
- head_pub_->publish(head_leds_off);
- }
- loop_rate.sleep();
- }
+ const std::shared_ptr>
+ goal_handle,
+ std::array & leds, float frequency, std::array & colors)
+{
+ rclcpp::Rate loop_rate(frequency);
+ bool canceled = false;
+
+ if (leds[0] == nao_led_interfaces::msg::LedIndexes::HEAD) {
+ nao_lola_command_msgs::msg::HeadLeds head_leds_on;
+ nao_lola_command_msgs::msg::HeadLeds head_leds_off;
+ for (unsigned i = 0; i < nao_lola_command_msgs::msg::HeadLeds::NUM_LEDS; ++i) {
+ head_leds_on.intensities[i] = 1.0;
+ head_leds_off.intensities[i] = 0.0;
}
-
-
- if ((leds[0] == nao_led_interfaces::msg::LedIndexes::REYE && leds[1] == nao_led_interfaces::msg::LedIndexes::LEYE)||
- (leds[0] == nao_led_interfaces::msg::LedIndexes::LEYE && leds[1] == nao_led_interfaces::msg::LedIndexes::REYE)) {
- nao_lola_command_msgs::msg::RightEyeLeds right_eye_leds_off;
- nao_lola_command_msgs::msg::LeftEyeLeds left_eye_leds_off;
- nao_lola_command_msgs::msg::RightEyeLeds right_eye_leds_on;
- nao_lola_command_msgs::msg::LeftEyeLeds left_eye_leds_on;
- for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEyeLeds::NUM_LEDS; ++i) {
- right_eye_leds_off.colors[i] = color_off_;
- left_eye_leds_off.colors[i] = color_off_;
- right_eye_leds_on.colors[i] = colors[i];
- left_eye_leds_on.colors[i] = colors[i];
- }
- uint8_t c = 0;
- while (rclcpp::ok()) {
- if (goal_handle->is_canceling()) {
- return canceled = true;
- }
- c = (c + 1) % 2;
-
- if (c == 0) {
- right_eye_pub_->publish(right_eye_leds_off);
- left_eye_pub_->publish(left_eye_leds_off);
-
- } else {
- right_eye_pub_->publish(right_eye_leds_on);
- left_eye_pub_->publish(left_eye_leds_on);
- }
- loop_rate.sleep();
- }
+ uint8_t c = 0;
+ while (rclcpp::ok()) {
+ if (goal_handle->is_canceling()) {
+ return canceled = true;
+ }
+ c = (c + 1) % 2;
+
+ if (c == 0) {
+ head_pub_->publish(head_leds_on);
+ } else {
+ head_pub_->publish(head_leds_off);
+ }
+ loop_rate.sleep();
}
-
- if ((leds[0] == nao_led_interfaces::msg::LedIndexes::REAR && leds[1] == nao_led_interfaces::msg::LedIndexes::LEAR) ||
- (leds[0] == nao_led_interfaces::msg::LedIndexes::LEAR && leds[1] == nao_led_interfaces::msg::LedIndexes::REAR)) {
- nao_lola_command_msgs::msg::RightEarLeds right_ear_leds_off;
- nao_lola_command_msgs::msg::LeftEarLeds left_ear_leds_off;
- nao_lola_command_msgs::msg::RightEarLeds right_ear_leds_on;
- nao_lola_command_msgs::msg::LeftEarLeds left_ear_leds_on;
- for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS; ++i) {
- right_ear_leds_off.intensities[i] = 0.0;
- left_ear_leds_off.intensities[i] = 0.0;
- right_ear_leds_on.intensities[i] = 1.0;
- left_ear_leds_on.intensities[i] = 1.0;
- }
- uint8_t c = 0;
- while (rclcpp::ok()) {
- if (goal_handle->is_canceling()) {
- return canceled = true;
- }
- c = (c + 1) % 2;
-
- if (c == 0) {
- right_ear_pub_->publish(right_ear_leds_off);
- left_ear_pub_->publish(left_ear_leds_off);
-
- } else {
- right_ear_pub_->publish(right_ear_leds_on);
- left_ear_pub_->publish(left_ear_leds_on);
- }
- loop_rate.sleep();
- }
+ }
+
+ if (
+ (leds[0] == nao_led_interfaces::msg::LedIndexes::REYE &&
+ leds[1] == nao_led_interfaces::msg::LedIndexes::LEYE) ||
+ (leds[0] == nao_led_interfaces::msg::LedIndexes::LEYE &&
+ leds[1] == nao_led_interfaces::msg::LedIndexes::REYE)) {
+ nao_lola_command_msgs::msg::RightEyeLeds right_eye_leds_off;
+ nao_lola_command_msgs::msg::LeftEyeLeds left_eye_leds_off;
+ nao_lola_command_msgs::msg::RightEyeLeds right_eye_leds_on;
+ nao_lola_command_msgs::msg::LeftEyeLeds left_eye_leds_on;
+ for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEyeLeds::NUM_LEDS; ++i) {
+ right_eye_leds_off.colors[i] = color_off_;
+ left_eye_leds_off.colors[i] = color_off_;
+ right_eye_leds_on.colors[i] = colors[i];
+ left_eye_leds_on.colors[i] = colors[i];
}
-
- if (leds[0] == nao_led_interfaces::msg::LedIndexes::CHEST) {
-
- nao_lola_command_msgs::msg::ChestLed chest_led_on;
- nao_lola_command_msgs::msg::ChestLed chest_led_off;
- chest_led_on.color = colors[0];
- chest_led_off.color = color_off_;
- uint8_t c = 0;
- while (rclcpp::ok()) {
- if (goal_handle->is_canceling()) {
- return canceled = true;
- }
- c = (c + 1) % 2;
-
- if (c == 0) {
- chest_pub_->publish(chest_led_on);
- } else {
- chest_pub_->publish(chest_led_off);
- }
- loop_rate.sleep();
- }
+ uint8_t c = 0;
+ while (rclcpp::ok()) {
+ if (goal_handle->is_canceling()) {
+ return canceled = true;
+ }
+ c = (c + 1) % 2;
+
+ if (c == 0) {
+ right_eye_pub_->publish(right_eye_leds_off);
+ left_eye_pub_->publish(left_eye_leds_off);
+ } else {
+ right_eye_pub_->publish(right_eye_leds_on);
+ left_eye_pub_->publish(left_eye_leds_on);
+ }
+ loop_rate.sleep();
+ }
+ }
+
+ if (
+ (leds[0] == nao_led_interfaces::msg::LedIndexes::REAR &&
+ leds[1] == nao_led_interfaces::msg::LedIndexes::LEAR) ||
+ (leds[0] == nao_led_interfaces::msg::LedIndexes::LEAR &&
+ leds[1] == nao_led_interfaces::msg::LedIndexes::REAR)) {
+ nao_lola_command_msgs::msg::RightEarLeds right_ear_leds_off;
+ nao_lola_command_msgs::msg::LeftEarLeds left_ear_leds_off;
+ nao_lola_command_msgs::msg::RightEarLeds right_ear_leds_on;
+ nao_lola_command_msgs::msg::LeftEarLeds left_ear_leds_on;
+ for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS; ++i) {
+ right_ear_leds_off.intensities[i] = 0.0;
+ left_ear_leds_off.intensities[i] = 0.0;
+ right_ear_leds_on.intensities[i] = 1.0;
+ left_ear_leds_on.intensities[i] = 1.0;
+ }
+ uint8_t c = 0;
+ while (rclcpp::ok()) {
+ if (goal_handle->is_canceling()) {
+ return canceled = true;
+ }
+ c = (c + 1) % 2;
+
+ if (c == 0) {
+ right_ear_pub_->publish(right_ear_leds_off);
+ left_ear_pub_->publish(left_ear_leds_off);
+ } else {
+ right_ear_pub_->publish(right_ear_leds_on);
+ left_ear_pub_->publish(left_ear_leds_on);
+ }
+ loop_rate.sleep();
+ }
+ }
+
+ if (leds[0] == nao_led_interfaces::msg::LedIndexes::CHEST) {
+ nao_lola_command_msgs::msg::ChestLed chest_led_on;
+ nao_lola_command_msgs::msg::ChestLed chest_led_off;
+ chest_led_on.color = colors[0];
+ chest_led_off.color = color_off_;
+ uint8_t c = 0;
+ while (rclcpp::ok()) {
+ if (goal_handle->is_canceling()) {
+ return canceled = true;
+ }
+ c = (c + 1) % 2;
+
+ if (c == 0) {
+ chest_pub_->publish(chest_led_on);
+ } else {
+ chest_pub_->publish(chest_led_off);
+ }
+ loop_rate.sleep();
}
- RCLCPP_ERROR(this->get_logger(), "LED blinking mode not executed");
- return canceled = false;
+ }
+ RCLCPP_ERROR(this->get_logger(), "LED blinking mode not executed");
+ return canceled = false;
}
-
bool LedsPlayActionServer::loopMode(
- const std::shared_ptr> goal_handle,
- std::array & leds,
- float frequency,
- std::array & colors) {
-
- rclcpp::Rate loop_rate(frequency);
- bool canceled = false;
-
- //HEAD
- if (leds[0] == nao_led_interfaces::msg::LedIndexes::HEAD) {
-
- nao_lola_command_msgs::msg::HeadLeds head_leds_msg;
-
- uint8_t c = 0;
- while (rclcpp::ok()) {
- if (goal_handle->is_canceling()) {
- return canceled = true;
- }
- c = (c + 1) % nao_lola_command_msgs::msg::HeadLeds::NUM_LEDS;
-
- for (unsigned i = 0; i < nao_lola_command_msgs::msg::HeadLeds::NUM_LEDS; ++i) {
- head_leds_msg.intensities[i] = 1.0;
- }
- head_leds_msg.intensities[c] = 0.0;
-
- head_pub_->publish(head_leds_msg);
-
- loop_rate.sleep();
- }
+ const std::shared_ptr>
+ goal_handle,
+ std::array & leds, float frequency, std::array & colors)
+{
+ rclcpp::Rate loop_rate(frequency);
+ bool canceled = false;
+
+ // HEAD
+ if (leds[0] == nao_led_interfaces::msg::LedIndexes::HEAD) {
+ nao_lola_command_msgs::msg::HeadLeds head_leds_msg;
+
+ uint8_t c = 0;
+ while (rclcpp::ok()) {
+ if (goal_handle->is_canceling()) {
+ return canceled = true;
+ }
+ c = (c + 1) % nao_lola_command_msgs::msg::HeadLeds::NUM_LEDS;
+
+ for (unsigned i = 0; i < nao_lola_command_msgs::msg::HeadLeds::NUM_LEDS; ++i) {
+ head_leds_msg.intensities[i] = 1.0;
+ }
+ head_leds_msg.intensities[c] = 0.0;
+
+ head_pub_->publish(head_leds_msg);
+
+ loop_rate.sleep();
}
-
- // EYES
- if ((leds[0] == nao_led_interfaces::msg::LedIndexes::REYE && leds[1] == nao_led_interfaces::msg::LedIndexes::LEYE) ||
- (leds[0] == nao_led_interfaces::msg::LedIndexes::LEYE && leds[1] == nao_led_interfaces::msg::LedIndexes::REYE)) {
- nao_lola_command_msgs::msg::RightEyeLeds right_eye_leds_msg;
- nao_lola_command_msgs::msg::LeftEyeLeds left_eye_leds_msg;
- short int cw = 0, cw_succ = 0;
- short int ccw = 0, ccw_succ = 0;
- const short int num_eye_leds = nao_lola_command_msgs::msg::RightEyeLeds::NUM_LEDS;
- while (rclcpp::ok()) {
- if (goal_handle->is_canceling()) {
- return canceled = true;
- }
-
- for (unsigned i = 0; i < num_eye_leds; ++i) {
- right_eye_leds_msg.colors[i] = colors[i];
- left_eye_leds_msg.colors[i] = colors[i];
- }
-
- cw = (cw + 1) % num_eye_leds;
- cw_succ = (cw+1) % num_eye_leds;
-
- ccw = (cw != 0) ? num_eye_leds-cw : 0;
- ccw_succ = (ccw != 0) ? ccw-1 : 7;
-
- right_eye_leds_msg.colors[cw] = color_off_;
- right_eye_leds_msg.colors[cw_succ] = color_off_;
- left_eye_leds_msg.colors[ccw] = color_off_;
- left_eye_leds_msg.colors[ccw_succ] = color_off_;
- right_eye_pub_->publish(right_eye_leds_msg);
- left_eye_pub_->publish(left_eye_leds_msg);
-
- loop_rate.sleep();
- }
+ }
+
+ // EYES
+ if (
+ (leds[0] == nao_led_interfaces::msg::LedIndexes::REYE &&
+ leds[1] == nao_led_interfaces::msg::LedIndexes::LEYE) ||
+ (leds[0] == nao_led_interfaces::msg::LedIndexes::LEYE &&
+ leds[1] == nao_led_interfaces::msg::LedIndexes::REYE)) {
+ nao_lola_command_msgs::msg::RightEyeLeds right_eye_leds_msg;
+ nao_lola_command_msgs::msg::LeftEyeLeds left_eye_leds_msg;
+ short int cw = 0, cw_succ = 0;
+ short int ccw = 0, ccw_succ = 0;
+ const short int num_eye_leds = nao_lola_command_msgs::msg::RightEyeLeds::NUM_LEDS;
+ while (rclcpp::ok()) {
+ if (goal_handle->is_canceling()) {
+ return canceled = true;
+ }
+
+ for (unsigned i = 0; i < num_eye_leds; ++i) {
+ right_eye_leds_msg.colors[i] = colors[i];
+ left_eye_leds_msg.colors[i] = colors[i];
+ }
+
+ cw = (cw + 1) % num_eye_leds;
+ cw_succ = (cw + 1) % num_eye_leds;
+
+ ccw = (cw != 0) ? num_eye_leds - cw : 0;
+ ccw_succ = (ccw != 0) ? ccw - 1 : 7;
+
+ right_eye_leds_msg.colors[cw] = color_off_;
+ right_eye_leds_msg.colors[cw_succ] = color_off_;
+ left_eye_leds_msg.colors[ccw] = color_off_;
+ left_eye_leds_msg.colors[ccw_succ] = color_off_;
+ right_eye_pub_->publish(right_eye_leds_msg);
+ left_eye_pub_->publish(left_eye_leds_msg);
+
+ loop_rate.sleep();
}
- if (leds[0] == nao_led_interfaces::msg::LedIndexes::REYE ) {
- nao_lola_command_msgs::msg::RightEyeLeds right_eye_leds_msg;
- uint8_t c = 0;
- while (rclcpp::ok()) {
- if (goal_handle->is_canceling()) {
- return canceled = true;
- }
- c = (c + 1) % nao_lola_command_msgs::msg::RightEyeLeds::NUM_LEDS;
-
- for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEyeLeds::NUM_LEDS; ++i) {
- right_eye_leds_msg.colors[i] = colors[i];
- }
- right_eye_leds_msg.colors[c] = color_off_;
- right_eye_pub_->publish(right_eye_leds_msg);
-
- loop_rate.sleep();
- }
+ }
+ if (leds[0] == nao_led_interfaces::msg::LedIndexes::REYE) {
+ nao_lola_command_msgs::msg::RightEyeLeds right_eye_leds_msg;
+ uint8_t c = 0;
+ while (rclcpp::ok()) {
+ if (goal_handle->is_canceling()) {
+ return canceled = true;
+ }
+ c = (c + 1) % nao_lola_command_msgs::msg::RightEyeLeds::NUM_LEDS;
+
+ for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEyeLeds::NUM_LEDS; ++i) {
+ right_eye_leds_msg.colors[i] = colors[i];
+ }
+ right_eye_leds_msg.colors[c] = color_off_;
+ right_eye_pub_->publish(right_eye_leds_msg);
+
+ loop_rate.sleep();
}
- if (leds[0] == nao_led_interfaces::msg::LedIndexes::LEYE) {
- nao_lola_command_msgs::msg::LeftEyeLeds left_eye_leds_msg;
- uint8_t c = 0;
- while (rclcpp::ok()) {
- if (goal_handle->is_canceling()) {
- return canceled = true;
- }
- c = (c + 1) % nao_lola_command_msgs::msg::RightEyeLeds::NUM_LEDS;
-
- for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEyeLeds::NUM_LEDS; ++i) {
- left_eye_leds_msg.colors[i] = colors[i];
- }
- left_eye_leds_msg.colors[c] = color_off_;
- left_eye_pub_->publish(left_eye_leds_msg);
-
- loop_rate.sleep();
- }
+ }
+ if (leds[0] == nao_led_interfaces::msg::LedIndexes::LEYE) {
+ nao_lola_command_msgs::msg::LeftEyeLeds left_eye_leds_msg;
+ uint8_t c = 0;
+ while (rclcpp::ok()) {
+ if (goal_handle->is_canceling()) {
+ return canceled = true;
+ }
+ c = (c + 1) % nao_lola_command_msgs::msg::RightEyeLeds::NUM_LEDS;
+
+ for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEyeLeds::NUM_LEDS; ++i) {
+ left_eye_leds_msg.colors[i] = colors[i];
+ }
+ left_eye_leds_msg.colors[c] = color_off_;
+ left_eye_pub_->publish(left_eye_leds_msg);
+
+ loop_rate.sleep();
}
-
- //EARS
- if ( (leds[0] == nao_led_interfaces::msg::LedIndexes::REAR && leds[1] == nao_led_interfaces::msg::LedIndexes::LEAR) ||
- (leds[0] == nao_led_interfaces::msg::LedIndexes::LEAR && leds[1] == nao_led_interfaces::msg::LedIndexes::REAR)) {
-
- nao_lola_command_msgs::msg::RightEarLeds right_ear_leds_msg;
- nao_lola_command_msgs::msg::LeftEarLeds left_ear_leds_msg;
-
- uint8_t c = 0;
- while (rclcpp::ok()) {
- if (goal_handle->is_canceling()) {
- return canceled = true;
- }
- c = (c + 1) % nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS;
- for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS; ++i) {
- right_ear_leds_msg.intensities[i] = 1.0;
- left_ear_leds_msg.intensities[i] = 1.0;
- }
- right_ear_leds_msg.intensities[c] = 0.0;
- left_ear_leds_msg.intensities[c] = 0.0;
- right_ear_pub_->publish(right_ear_leds_msg);
- left_ear_pub_->publish(left_ear_leds_msg);
-
- loop_rate.sleep();
- }
+ }
+
+ // EARS
+ if (
+ (leds[0] == nao_led_interfaces::msg::LedIndexes::REAR &&
+ leds[1] == nao_led_interfaces::msg::LedIndexes::LEAR) ||
+ (leds[0] == nao_led_interfaces::msg::LedIndexes::LEAR &&
+ leds[1] == nao_led_interfaces::msg::LedIndexes::REAR)) {
+ nao_lola_command_msgs::msg::RightEarLeds right_ear_leds_msg;
+ nao_lola_command_msgs::msg::LeftEarLeds left_ear_leds_msg;
+
+ uint8_t c = 0;
+ while (rclcpp::ok()) {
+ if (goal_handle->is_canceling()) {
+ return canceled = true;
+ }
+ c = (c + 1) % nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS;
+ for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS; ++i) {
+ right_ear_leds_msg.intensities[i] = 1.0;
+ left_ear_leds_msg.intensities[i] = 1.0;
+ }
+ right_ear_leds_msg.intensities[c] = 0.0;
+ left_ear_leds_msg.intensities[c] = 0.0;
+ right_ear_pub_->publish(right_ear_leds_msg);
+ left_ear_pub_->publish(left_ear_leds_msg);
+
+ loop_rate.sleep();
}
- if (leds[0] == nao_led_interfaces::msg::LedIndexes::REAR) {
-
- nao_lola_command_msgs::msg::RightEarLeds right_ear_leds_msg;
-
- uint8_t c = 0;
- while (rclcpp::ok()) {
- if (goal_handle->is_canceling()) {
- return canceled = true;
- }
- c = (c + 1) % nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS;
- for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS; ++i) {
- right_ear_leds_msg.intensities[i] = 1.0;
- }
- right_ear_leds_msg.intensities[c] = 0.0;
- right_ear_pub_->publish(right_ear_leds_msg);
-
- loop_rate.sleep();
- }
+ }
+ if (leds[0] == nao_led_interfaces::msg::LedIndexes::REAR) {
+ nao_lola_command_msgs::msg::RightEarLeds right_ear_leds_msg;
+
+ uint8_t c = 0;
+ while (rclcpp::ok()) {
+ if (goal_handle->is_canceling()) {
+ return canceled = true;
+ }
+ c = (c + 1) % nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS;
+ for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS; ++i) {
+ right_ear_leds_msg.intensities[i] = 1.0;
+ }
+ right_ear_leds_msg.intensities[c] = 0.0;
+ right_ear_pub_->publish(right_ear_leds_msg);
+
+ loop_rate.sleep();
}
- if (leds[0] == nao_led_interfaces::msg::LedIndexes::LEAR) {
-
- nao_lola_command_msgs::msg::LeftEarLeds left_ear_leds_msg;
-
- uint8_t c = 0;
- while (rclcpp::ok()) {
- if (goal_handle->is_canceling()) {
- return canceled = true;
- }
- c = (c + 1) % nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS;
- for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS; ++i) {
- left_ear_leds_msg.intensities[i] = 1.0;
- }
- left_ear_leds_msg.intensities[c] = 0.0;
- left_ear_pub_->publish(left_ear_leds_msg);
-
- loop_rate.sleep();
- }
+ }
+ if (leds[0] == nao_led_interfaces::msg::LedIndexes::LEAR) {
+ nao_lola_command_msgs::msg::LeftEarLeds left_ear_leds_msg;
+
+ uint8_t c = 0;
+ while (rclcpp::ok()) {
+ if (goal_handle->is_canceling()) {
+ return canceled = true;
+ }
+ c = (c + 1) % nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS;
+ for (unsigned i = 0; i < nao_lola_command_msgs::msg::RightEarLeds::NUM_LEDS; ++i) {
+ left_ear_leds_msg.intensities[i] = 1.0;
+ }
+ left_ear_leds_msg.intensities[c] = 0.0;
+ left_ear_pub_->publish(left_ear_leds_msg);
+
+ loop_rate.sleep();
}
+ }
- RCLCPP_ERROR(this->get_logger(), "LED loop mode not executed");
- return canceled = false;
+ RCLCPP_ERROR(this->get_logger(), "LED loop mode not executed");
+ return canceled = false;
}
-
} // namespace nao_led_action_server
RCLCPP_COMPONENTS_REGISTER_NODE(nao_led_action_server::LedsPlayActionServer)
\ No newline at end of file