Compare commits

...
8 Commits
Author SHA1 Message Date
Pablo Garrido fd5d6adc00 1.5.1 2022-03-25 11:14:32 +01:00
Pablo Garrido 1904c562ef Update changelog
Signed-off-by: Pablo Garrido <pablogs9@gmail.com>
2022-03-25 11:14:09 +01:00
mergify[bot]andPablo Garrido 726692af04 Add services to graph manager (backport #127) (#128)
* Add services to graph manager (#127)

Signed-off-by: Pablo Garrido <pablogs9@gmail.com>
(cherry picked from commit 6d67807737)

* Revert "Add services to graph manager (#127)"

This reverts commit 3738c3b121.

* Fix incompatibilities

Signed-off-by: Pablo Garrido <pablogs9@gmail.com>

Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
2022-03-22 10:35:14 +01:00
Pablo Garrido 2326a201bc Add used missing includes (#116)
* Signed-off-by: Pablo Garrido <pablogs9@gmail.com>

* Update CI

Signed-off-by: Pablo Garrido <pablogs9@gmail.com>
2022-03-17 08:36:50 +01:00
mergify[bot]andAntonio Cuadros 5b566f7b4f Add system logger flag (#118) (#120)
* Add system logger flag

* Add flag to superbuild

(cherry picked from commit 90545b7184)

Co-authored-by: Antonio Cuadros <49162117+Acuadros95@users.noreply.github.com>
2022-01-27 15:35:46 +01:00
mergify[bot]andPablo Garrido 0af992145e Add condition variable include (#113) (#115)
Signed-off-by: Pablo Garrido <pablogs9@gmail.com>

Update

Signed-off-by: Pablo Garrido <pablogs9@gmail.com>
(cherry picked from commit 07c460a327)

Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
2022-01-14 08:21:25 +01:00
mergify[bot]andRoland Schwan f9e6daf6bf pass system name to xrceagent (#110) (#111)
(cherry picked from commit 8aea206b93)

Co-authored-by: Roland Schwan <RSchwan@users.noreply.github.com>
2022-01-12 12:43:21 +01:00
mergify[bot]andPablo Garrido e356e14e84 Fix memory leak in FastDDS datawriter (#107) (#108)
Signed-off-by: Pablo Garrido <pablogs9@gmail.com>
(cherry picked from commit ff2ae91877)

Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
2021-12-22 10:23:20 +01:00
11 changed files with 186 additions and 9 deletions
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
cd /uros_ws cd /uros_ws
. /opt/ros/$ROS_DISTRO/setup.sh . /opt/ros/$ROS_DISTRO/setup.sh
. install/local_setup.sh . install/local_setup.sh
rosdep update rosdep update --rosdistro=$ROS_DISTRO
ros2 run micro_ros_setup create_agent_ws.sh ros2 run micro_ros_setup create_agent_ws.sh
- name: Patch branch - name: Patch branch
+9
View File
@@ -2,6 +2,15 @@
Changelog for package micro-ros_agent Changelog for package micro-ros_agent
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1.5.1 (2022-03-25)
------------------
* Add services to graph manager (backport `#127 <https://github.com/micro-ROS/micro-ROS-Agent/issues/127>`_) (`#128 <https://github.com/micro-ROS/micro-ROS-Agent/issues/128>`_)
* Add used missing includes (`#116 <https://github.com/micro-ROS/micro-ROS-Agent/issues/116>`_)
* Add system logger flag (`#118 <https://github.com/micro-ROS/micro-ROS-Agent/issues/118>`_) (`#120 <https://github.com/micro-ROS/micro-ROS-Agent/issues/120>`_)
* Add condition variable include (`#113 <https://github.com/micro-ROS/micro-ROS-Agent/issues/113>`_) (`#115 <https://github.com/micro-ROS/micro-ROS-Agent/issues/115>`_)
* pass system name to xrceagent (`#110 <https://github.com/micro-ROS/micro-ROS-Agent/issues/110>`_) (`#111 <https://github.com/micro-ROS/micro-ROS-Agent/issues/111>`_)
* Fix memory leak in FastDDS datawriter (`#107 <https://github.com/micro-ROS/micro-ROS-Agent/issues/107>`_) (`#108 <https://github.com/micro-ROS/micro-ROS-Agent/issues/108>`_)
1.5.0 (2021-09-13) 1.5.0 (2021-09-13)
------------------ ------------------
* Remove XRCE dependency and add superbuild (`#97 <https://github.com/micro-ROS/micro-ROS-Agent/issues/97>`_) * Remove XRCE dependency and add superbuild (`#97 <https://github.com/micro-ROS/micro-ROS-Agent/issues/97>`_)
+1
View File
@@ -20,6 +20,7 @@ option(UROSAGENT_GENERATE_PROFILE
set(CMAKE_C_CLANG_TIDY clang-tidy -checks=*) set(CMAKE_C_CLANG_TIDY clang-tidy -checks=*)
option(MICROROSAGENT_SUPERBUILD "Enable superbuild compilation." ON) option(MICROROSAGENT_SUPERBUILD "Enable superbuild compilation." ON)
option(UAGENT_USE_SYSTEM_LOGGER "Force use of system installed spdlog logger on superbuild." OFF)
if(NOT MICROROSAGENT_SUPERBUILD) if(NOT MICROROSAGENT_SUPERBUILD)
project(micro_ros_agent LANGUAGES CXX) project(micro_ros_agent LANGUAGES CXX)
+2
View File
@@ -42,8 +42,10 @@ if(NOT xrceagent_FOUND)
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_PREFIX_PATH:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH:PATH=<INSTALL_DIR>
-DCMAKE_SYSTEM_NAME:STRING=${CMAKE_SYSTEM_NAME}
-DUAGENT_USE_SYSTEM_FASTDDS:BOOL=ON -DUAGENT_USE_SYSTEM_FASTDDS:BOOL=ON
-DUAGENT_USE_SYSTEM_FASTCDR:BOOL=ON -DUAGENT_USE_SYSTEM_FASTCDR:BOOL=ON
-DUAGENT_USE_SYSTEM_LOGGER:BOOL=${UAGENT_USE_SYSTEM_LOGGER}
-DUAGENT_CED_PROFILE:BOOL=OFF -DUAGENT_CED_PROFILE:BOOL=OFF
-DUAGENT_P2P_PROFILE:BOOL=OFF -DUAGENT_P2P_PROFILE:BOOL=OFF
-DUAGENT_BUILD_EXECUTABLE:BOOL=OFF -DUAGENT_BUILD_EXECUTABLE:BOOL=OFF
+4
View File
@@ -20,6 +20,10 @@
#include <uxr/agent/middleware/utils/Callbacks.hpp> #include <uxr/agent/middleware/utils/Callbacks.hpp>
#include <agent/graph_manager/graph_manager.hpp> #include <agent/graph_manager/graph_manager.hpp>
#include <map>
#include <memory>
// TODO(jamoralp): class Documentation // TODO(jamoralp): class Documentation
namespace uros { namespace uros {
namespace agent { namespace agent {
@@ -12,6 +12,9 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
#ifndef _UROS_AGENT_GRAPH_MANAGER_HPP
#define _UROS_AGENT_GRAPH_MANAGER_HPP
#include "fastrtps/Domain.h" #include "fastrtps/Domain.h"
#include <fastrtps/TopicDataType.h> #include <fastrtps/TopicDataType.h>
#include "fastrtps/attributes/ParticipantAttributes.h" #include "fastrtps/attributes/ParticipantAttributes.h"
@@ -58,8 +61,10 @@
#include <agent/graph_manager/graph_typesupport.hpp> #include <agent/graph_manager/graph_typesupport.hpp>
#include <agent/utils/demangle.hpp> #include <agent/utils/demangle.hpp>
#ifndef _UROS_AGENT_GRAPH_MANAGER_HPP #include <condition_variable>
#define _UROS_AGENT_GRAPH_MANAGER_HPP #include <string>
#include <memory>
#include <map>
namespace uros { namespace uros {
namespace agent { namespace agent {
+1 -1
View File
@@ -2,7 +2,7 @@
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?> <?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3"> <package format="3">
<name>micro_ros_agent</name> <name>micro_ros_agent</name>
<version>1.5.0</version> <version>1.5.1</version>
<description>micro-ROS Agent package</description> <description>micro-ROS Agent package</description>
<maintainer email="pablogarrido@eprosima.com">Pablo Garrido</maintainer> <maintainer email="pablogarrido@eprosima.com">Pablo Garrido</maintainer>
<maintainer email="antoniocuadros@eprosima.com">Antonio Cuadros</maintainer> <maintainer email="antoniocuadros@eprosima.com">Antonio Cuadros</maintainer>
+146
View File
@@ -17,6 +17,9 @@
#include <agent/Agent.hpp> #include <agent/Agent.hpp>
#include <utility>
#include <memory>
namespace uros { namespace uros {
namespace agent { namespace agent {
@@ -166,6 +169,149 @@ bool Agent::create(
eprosima::uxr::Middleware::Kind::FASTDDS, eprosima::uxr::Middleware::Kind::FASTDDS,
eprosima::uxr::middleware::CallbackKind::DELETE_DATAREADER, eprosima::uxr::middleware::CallbackKind::DELETE_DATAREADER,
std::move(on_delete_datareader)); std::move(on_delete_datareader));
/**
* Add CREATE_REQUESTER callback.
*/
std::function<void (
const eprosima::fastdds::dds::DomainParticipant *,
const eprosima::fastdds::dds::DataWriter *,
const eprosima::fastdds::dds::DataReader *)> on_create_requester
([&](
const eprosima::fastdds::dds::DomainParticipant* participant,
const eprosima::fastdds::dds::DataWriter* datawriter,
const eprosima::fastdds::dds::DataReader * datareader) -> void
{
auto graph_manager_ = find_or_create_graph_manager(participant->get_domain_id());
// TODO(pablogs): Workaround for Fast-DDS bug #9977. Remove when fixed
const eprosima::fastrtps::rtps::InstanceHandle_t instance_handle_dw =
datawriter->get_instance_handle();
const eprosima::fastrtps::rtps::GUID_t datawriter_guid =
eprosima::fastrtps::rtps::iHandle2GUID(instance_handle_dw);
graph_manager_->add_datawriter(datawriter_guid, participant, datawriter);
graph_manager_->associate_entity(
datawriter_guid, participant, dds::xrce::OBJK_DATAWRITER);
// TODO(pablogs): Workaround for Fast-DDS bug #9977. Remove when fixed
const eprosima::fastrtps::rtps::InstanceHandle_t instance_handle_dr =
datareader->get_instance_handle();
const eprosima::fastrtps::rtps::GUID_t datareader_guid =
eprosima::fastrtps::rtps::iHandle2GUID(instance_handle_dr);
graph_manager_->add_datareader(datareader_guid, participant, datareader);
graph_manager_->associate_entity(
datareader_guid, participant, dds::xrce::OBJK_DATAREADER);
});
xrce_dds_agent_instance_.add_middleware_callback(
eprosima::uxr::Middleware::Kind::FASTDDS,
eprosima::uxr::middleware::CallbackKind::CREATE_REQUESTER,
std::move(on_create_requester));
/**
* Add DELETE_REQUESTER callback.
*/
std::function<void (
const eprosima::fastdds::dds::DomainParticipant *,
const eprosima::fastdds::dds::DataWriter *,
const eprosima::fastdds::dds::DataReader *)> on_delete_requester
([&](
const eprosima::fastdds::dds::DomainParticipant* participant,
const eprosima::fastdds::dds::DataWriter* datawriter,
const eprosima::fastdds::dds::DataReader * datareader) -> void
{
auto graph_manager_ = find_or_create_graph_manager(participant->get_domain_id());
// TODO(pablogs): Workaround for Fast-DDS bug #9977. Remove when fixed
const eprosima::fastrtps::rtps::InstanceHandle_t instance_handle_dw =
datawriter->get_instance_handle();
const eprosima::fastrtps::rtps::GUID_t datawriter_guid =
eprosima::fastrtps::rtps::iHandle2GUID(instance_handle_dw);
graph_manager_->remove_datawriter(datawriter_guid);
// TODO(pablogs): Workaround for Fast-DDS bug #9977. Remove when fixed
const eprosima::fastrtps::rtps::InstanceHandle_t instance_handle_dr =
datareader->get_instance_handle();
const eprosima::fastrtps::rtps::GUID_t datareader_guid =
eprosima::fastrtps::rtps::iHandle2GUID(instance_handle_dr);
graph_manager_->remove_datareader(datareader_guid);
});
xrce_dds_agent_instance_.add_middleware_callback(
eprosima::uxr::Middleware::Kind::FASTDDS,
eprosima::uxr::middleware::CallbackKind::DELETE_REQUESTER,
std::move(on_delete_requester));
/**
* Add CREATE_REPLIER callback.
*/
std::function<void (
const eprosima::fastdds::dds::DomainParticipant *,
const eprosima::fastdds::dds::DataWriter *,
const eprosima::fastdds::dds::DataReader *)> on_create_replier
([&](
const eprosima::fastdds::dds::DomainParticipant* participant,
const eprosima::fastdds::dds::DataWriter* datawriter,
const eprosima::fastdds::dds::DataReader * datareader) -> void
{
auto graph_manager_ = find_or_create_graph_manager(participant->get_domain_id());
// TODO(pablogs): Workaround for Fast-DDS bug #9977. Remove when fixed
const eprosima::fastrtps::rtps::InstanceHandle_t instance_handle_dw =
datawriter->get_instance_handle();
const eprosima::fastrtps::rtps::GUID_t datawriter_guid =
eprosima::fastrtps::rtps::iHandle2GUID(instance_handle_dw);
graph_manager_->add_datawriter(datawriter_guid, participant, datawriter);
graph_manager_->associate_entity(
datawriter_guid, participant, dds::xrce::OBJK_DATAWRITER);
// TODO(pablogs): Workaround for Fast-DDS bug #9977. Remove when fixed
const eprosima::fastrtps::rtps::InstanceHandle_t instance_handle_dr =
datareader->get_instance_handle();
const eprosima::fastrtps::rtps::GUID_t datareader_guid =
eprosima::fastrtps::rtps::iHandle2GUID(instance_handle_dr);
graph_manager_->add_datareader(datareader_guid, participant, datareader);
graph_manager_->associate_entity(
datareader_guid, participant, dds::xrce::OBJK_DATAREADER);
});
xrce_dds_agent_instance_.add_middleware_callback(
eprosima::uxr::Middleware::Kind::FASTDDS,
eprosima::uxr::middleware::CallbackKind::CREATE_REPLIER,
std::move(on_create_replier));
/**
* Add DELETE_REPLIER callback.
*/
std::function<void (
const eprosima::fastdds::dds::DomainParticipant *,
const eprosima::fastdds::dds::DataWriter *,
const eprosima::fastdds::dds::DataReader *)> on_delete_replier
([&](
const eprosima::fastdds::dds::DomainParticipant* participant,
const eprosima::fastdds::dds::DataWriter* datawriter,
const eprosima::fastdds::dds::DataReader * datareader) -> void
{
auto graph_manager_ = find_or_create_graph_manager(participant->get_domain_id());
// TODO(pablogs): Workaround for Fast-DDS bug #9977. Remove when fixed
const eprosima::fastrtps::rtps::InstanceHandle_t instance_handle_dw =
datawriter->get_instance_handle();
const eprosima::fastrtps::rtps::GUID_t datawriter_guid =
eprosima::fastrtps::rtps::iHandle2GUID(instance_handle_dw);
graph_manager_->remove_datawriter(datawriter_guid);
// TODO(pablogs): Workaround for Fast-DDS bug #9977. Remove when fixed
const eprosima::fastrtps::rtps::InstanceHandle_t instance_handle_dr =
datareader->get_instance_handle();
const eprosima::fastrtps::rtps::GUID_t datareader_guid =
eprosima::fastrtps::rtps::iHandle2GUID(instance_handle_dr);
graph_manager_->remove_datareader(datareader_guid);
});
xrce_dds_agent_instance_.add_middleware_callback(
eprosima::uxr::Middleware::Kind::FASTDDS,
eprosima::uxr::middleware::CallbackKind::DELETE_REPLIER,
std::move(on_delete_replier));
} }
return result; return result;
@@ -17,6 +17,11 @@
#include <agent/graph_manager/graph_manager.hpp> #include <agent/graph_manager/graph_manager.hpp>
#include <memory>
#include <string>
#include <utility>
#include <vector>
namespace uros { namespace uros {
namespace agent { namespace agent {
namespace graph_manager { namespace graph_manager {
@@ -96,7 +101,7 @@ GraphManager::GraphManager(eprosima::fastdds::dds::DomainId_t domain_id)
eprosima::fastdds::dds::DataWriterQos ros_to_microros_datawriter_qos_ = datawriter_qos_; eprosima::fastdds::dds::DataWriterQos ros_to_microros_datawriter_qos_ = datawriter_qos_;
ros_to_microros_datawriter_qos_.history().kind = ros_to_microros_datawriter_qos_.history().kind =
eprosima::fastdds::dds::HistoryQosPolicyKind::KEEP_ALL_HISTORY_QOS; eprosima::fastdds::dds::HistoryQosPolicyKind::KEEP_LAST_HISTORY_QOS;
ros_to_microros_graph_datawriter_.reset( ros_to_microros_graph_datawriter_.reset(
publisher_->create_datawriter(ros_to_microros_graph_topic_.get(), ros_to_microros_datawriter_qos_)); publisher_->create_datawriter(ros_to_microros_graph_topic_.get(), ros_to_microros_datawriter_qos_));
@@ -17,6 +17,8 @@
#include <agent/graph_manager/graph_typesupport.hpp> #include <agent/graph_manager/graph_typesupport.hpp>
#include <string>
namespace uros { namespace uros {
namespace agent { namespace agent {
namespace graph_manager { namespace graph_manager {
+3
View File
@@ -14,6 +14,9 @@
#include <agent/Agent.hpp> #include <agent/Agent.hpp>
#include <string>
#include <vector>
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
uros::agent::Agent micro_ros_agent; uros::agent::Agent micro_ros_agent;