Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions sdk_examples_ros_services/listener_service/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ intrinsic_sdk_generate_service_manifest(
PROTOS_TARGET listener_service_protos
)
add_executable(listener_service_main
listener_service_main.cpp
minimal_subscriber.cpp
listener_service_main.cc
minimal_subscriber.cc
)

target_link_libraries(
Expand All @@ -20,7 +20,10 @@ target_link_libraries(
intrinsic_sdk_cmake::intrinsic_sdk_cmake
)

add_dependencies(listener_service_main listener_service_manifest listener_service_default_config)
add_dependencies(listener_service_main
listener_service_manifest
listener_service_default_config
)

# Install the listener service
install(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# proto-file: google/protobuf/any.proto
# proto-message: Any
[type.googleapis.com/ros.RosConfig] {
zenoh_router_address: "tcp/zenoh-router.app-intrinsic-base:7447"
ros_args: "-r"
ros_args: "topic:=topic" # Define the topic that is listened to
ros_args: "topic:=topic" # An example of topic remapping syntax
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#include <cstdlib>
#include <fstream>
#include <memory>

#include "intrinsic/resources/proto/runtime_context.pb.h"
#include "minimal_subscriber.h"
#include "rclcpp/rclcpp.hpp"
#include "ros_config.pb.h"

intrinsic_proto::config::RuntimeContext GetRuntimeContext() {
intrinsic_proto::config::RuntimeContext runtime_context;
std::ifstream runtime_context_file;
runtime_context_file.open("/etc/intrinsic/runtime_config.pb",
std::ios::binary);
if (!runtime_context.ParseFromIstream(&runtime_context_file)) {
// Return default context for running locally
std::cerr << "Warning: using default RuntimeContext\n";
ros::RosConfig default_ros_config;
runtime_context.mutable_config()->PackFrom(default_ros_config);
}
return runtime_context;
}

int main(int argc, char* argv[]) {
auto runtime_context = GetRuntimeContext();
ros::RosConfig ros_config;
if (!runtime_context.config().UnpackTo(&ros_config)) {
std::cerr << "Unable to unpack runtime_context\n";
return EXIT_FAILURE;
}

// Get ROS arguments
std::vector<const char *> ros_argv;
for (int i = 0; i < argc; i++) {
ros_argv.push_back(argv[i]);
}

// Insert --ros-args at beginning
ros_argv.emplace_back("--ros-args");

// Copy all other arguments
for (int i = 0; i < ros_config.ros_args_size(); ++i) {
ros_argv.emplace_back(ros_config.ros_args(i).c_str());
std::cerr << "ROS argument: " << ros_argv.back() << "\n";
}

rclcpp::init(ros_argv.size(), ros_argv.data());
rclcpp::spin(std::make_shared<MinimalSubscriber>());
rclcpp::shutdown();
return EXIT_SUCCESS;
}

This file was deleted.

14 changes: 14 additions & 0 deletions sdk_examples_ros_services/listener_service/minimal_subscriber.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#include "minimal_subscriber.h"

using std::placeholders::_1;

MinimalSubscriber::MinimalSubscriber(const rclcpp::NodeOptions& options)
: rclcpp::Node("minimal_subscriber", options) {
subscription_ = this->create_subscription<std_msgs::msg::String>(
"topic", 10, std::bind(&MinimalSubscriber::topic_callback, this, _1));
}

void MinimalSubscriber::topic_callback(
const std_msgs::msg::String::SharedPtr msg) const {
RCLCPP_INFO(this->get_logger(), "I heard: '%s'", msg->data.c_str());
}
15 changes: 0 additions & 15 deletions sdk_examples_ros_services/listener_service/minimal_subscriber.cpp

This file was deleted.

25 changes: 25 additions & 0 deletions sdk_examples_ros_services/listener_service/minimal_subscriber.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#ifndef MINIMAL_SUBSCRIBER_H_
#define MINIMAL_SUBSCRIBER_H_

#include <memory>

#include "rclcpp/rclcpp.hpp"
#include "std_msgs/msg/string.hpp"

// Create a MinimalSubscriber node that has a single subscription
// The main function will instantiate the Node
class MinimalSubscriber : public rclcpp::Node {
public:
// Constructor
explicit MinimalSubscriber(
const rclcpp::NodeOptions& options = rclcpp::NodeOptions());

private:
// Callback to be fired when new messages arrive on the "topic" topic
void topic_callback(const std_msgs::msg::String::SharedPtr msg) const;

// The subscription pointer
rclcpp::Subscription<std_msgs::msg::String>::SharedPtr subscription_;
};

#endif // MINIMAL_SUBSCRIBER_H_
25 changes: 0 additions & 25 deletions sdk_examples_ros_services/listener_service/minimal_subscriber.hpp

This file was deleted.

4 changes: 1 addition & 3 deletions sdk_examples_ros_services/listener_service/ros_config.proto
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
// this is a comment
syntax = "proto3";

package ros;

message RosConfig {
string zenoh_router_address = 1;
repeated string ros_args = 2;
repeated string ros_args = 1;
}
2 changes: 1 addition & 1 deletion sdk_examples_ros_skills/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ find_package(std_msgs REQUIRED)

# Intrinsic Dependencies
find_package(absl REQUIRED)
find_package(intrinsic_sdk_ros REQUIRED)
find_package(intrinsic_sdk_cmake REQUIRED)

add_subdirectory(src/talker_skill)

Expand Down
2 changes: 1 addition & 1 deletion sdk_examples_ros_skills/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

<buildtool_depend>ament_cmake</buildtool_depend>

<depend>intrinsic_sdk_ros</depend>
<depend>intrinsic_sdk_cmake</depend>
<depend>rclcpp</depend>

<export>
Expand Down
14 changes: 7 additions & 7 deletions sdk_examples_ros_skills/src/talker_skill/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,19 @@ intrinsic_sdk_generate_skill_manifest_pbbin(
# Generate the main function for this skill
intrinsic_sdk_generate_skill_main_cc(
MANIFEST_PBBIN "${CMAKE_CURRENT_BINARY_DIR}/talker_skill.manifest.pbbin"
HEADER_FILES talker_skill.hh
CONFIG_PBBIN "${CMAKE_CURRENT_BINARY_DIR}/talker_skill_config.pbbin"
HEADER_FILES talker_skill.h
MAIN_FILE_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/talker_skill_main.cc
)

install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/talker_skill_config.pbbin"
FILES
talker_skill.manifest.textproto
"${CMAKE_CURRENT_BINARY_DIR}/talker_skill_config.pbbin"
"${CMAKE_CURRENT_BINARY_DIR}/talker_skill_protos.desc"
DESTINATION share/${PROJECT_NAME}
)

add_executable(talker_skill_main
talker_skill.cc
${CMAKE_CURRENT_BINARY_DIR}/talker_skill_main.cc
Expand All @@ -55,8 +60,3 @@ install(
TARGETS talker_skill_main
DESTINATION lib/${PROJECT_NAME}
)

install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/talker_skill_config.pbbin
DESTINATION "share/${PROJECT_NAME}"
)
9 changes: 3 additions & 6 deletions sdk_examples_ros_skills/src/talker_skill/minimal_publisher.cc
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
#include "minimal_publisher.hh"
#include "minimal_publisher.h"

MinimalPublisher::MinimalPublisher()
: rclcpp::Node("minimal_publisher")
{
MinimalPublisher::MinimalPublisher() : rclcpp::Node("minimal_publisher") {
publisher_ = this->create_publisher<std_msgs::msg::String>("topic", 10);
}

void MinimalPublisher::Publish(const std::string & message)
{
void MinimalPublisher::Publish(const std::string& message) {
auto ros_message = std_msgs::msg::String();
ros_message.data = message;
RCLCPP_INFO(this->get_logger(), "Publishing: '%s'", ros_message.data.c_str());
Expand Down
17 changes: 17 additions & 0 deletions sdk_examples_ros_skills/src/talker_skill/minimal_publisher.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#ifndef MINIMAL_PUBLISHER_H_
#define MINIMAL_PUBLISHER_H_

#include <rclcpp/rclcpp.hpp>
#include <std_msgs/msg/string.hpp>

class MinimalPublisher : public rclcpp::Node {
public:
MinimalPublisher();

void Publish(const std::string& message);

private:
rclcpp::Publisher<std_msgs::msg::String>::SharedPtr publisher_;
};

#endif // MINIMAL_PUBLISHER_H_
18 changes: 0 additions & 18 deletions sdk_examples_ros_skills/src/talker_skill/minimal_publisher.hh

This file was deleted.

Loading