Compare commits

..
18 Commits
Author SHA1 Message Date
Pablo Garrido 52b35ef2eb 2.0.1 2022-03-25 11:12:48 +01:00
Pablo Garrido 48f4905f42 Update changelog
Signed-off-by: Pablo Garrido <pablogs9@gmail.com>
2022-03-25 11:12:41 +01:00
Pablo Garrido 6d67807737 Add services to graph manager (#127)
Signed-off-by: Pablo Garrido <pablogs9@gmail.com>
2022-03-22 10:22:15 +01:00
mergify[bot]andPablo Garrido ddefabfa8c Add used missing includes (#116) (#125)
* Signed-off-by: Pablo Garrido <pablogs9@gmail.com>

* Update CI

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

Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
2022-03-17 08:47:18 +01:00
Antonio Cuadros 90545b7184 Add system logger flag (#118)
* Add system logger flag

* Add flag to superbuild
2022-01-27 15:09:30 +01:00
Pablo Garrido 07c460a327 Add condition variable include (#113)
Signed-off-by: Pablo Garrido <pablogs9@gmail.com>

Update

Signed-off-by: Pablo Garrido <pablogs9@gmail.com>
2022-01-14 08:16:58 +01:00
Roland Schwan 8aea206b93 pass system name to xrceagent (#110) 2022-01-12 12:35:36 +01:00
Pablo Garrido ff2ae91877 Fix memory leak in FastDDS datawriter (#107)
Signed-off-by: Pablo Garrido <pablogs9@gmail.com>
2021-12-22 10:09:08 +01:00
Your Name b89677ed96 2.0.0 2021-09-13 12:21:44 +02:00
Pablo Garrido 6f096337e5 Changelog 2021-09-13 12:21:33 +02:00
mergify[bot]andPablo Garrido d2a7e319ca Remove XRCE dependency and add superbuild (#97) (#98)
Update package info

Update

Fix xrceagent paths

Update

Revert "Bump version"

This reverts commit 7b6b713041405a21d701952ef1eb2e8faab2802e.

Initial

(cherry picked from commit ceb1a1436c)

Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
2021-09-13 10:48:56 +02:00
mergify[bot]andmecarill 7369137252 Fixed launch file by using a list for arguments. Ensures order of items is kept. (#93) (#95)
Co-authored-by: mecarill <mihkailkennerley@gmail.com>
(cherry picked from commit fe1b3ade97)

Co-authored-by: mecarill <62688286+mecarill@users.noreply.github.com>
2021-08-25 09:14:07 +02:00
Antonio Cuadros 6cce230857 Modify CI branch (#92) 2021-08-23 13:20:59 +02:00
mergify[bot]andPablo Garrido 256424b7ec Fix graph manager datawriters behaviour (#84) (#85)
* Fix graph manager datawriters

Fixes

Fix

Fix destruction

* Revert "Fix graph manager datawriters"

This reverts commit 2847a2ebc3.

* Initial

(cherry picked from commit 646ca52aab)

Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
2021-07-09 13:41:31 +02:00
mergify[bot]andPablo Garrido e43cde14ae Graph manager: Fix participant mask for listener callbacks (#81) (#82)
(cherry picked from commit 95fecd77ae)

Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
2021-07-08 15:33:15 +02:00
mergify[bot]andPablo Garrido a8caaa1b72 Fix agent launch (#78) (#80)
Co-authored-by: Your Name <you@example.com>
(cherry picked from commit 69f17c28a8)

Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
2021-07-05 10:56:22 +02:00
mergify[bot]andPablo Garrido ee955ed01e Fix graph manager node namespaces (#75) (#77)
* Fix graph manager node namespaces

* Update

(cherry picked from commit f6a2aa3b60)

Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
2021-07-02 13:42:25 +02:00
mergify[bot]andPablo Garrido a313a088bd Fix graph manager node namespaces (#72) (#74)
(cherry picked from commit a623308505)

Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
2021-07-02 09:48:38 +02:00
7 changed files with 56 additions and 103 deletions
+26 -25
View File
@@ -3,35 +3,36 @@ name: CI micro-ROS Agent
on: on:
pull_request: pull_request:
branches: branches:
- 'iron' - '**'
schedule:
- cron: '33 6 * * *'
jobs: jobs:
microros_agent_ci: microros_agent_ci:
runs-on: ${{ matrix.os }} runs-on: ubuntu-20.04
strategy: container: microros/base:galactic
fail-fast: false
matrix:
os: [ ubuntu-latest ]
ros_distribution: [ iron ]
include:
- docker_image: ubuntu:jammy
ros_distribution: iron
container:
image: ubuntu:jammy
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v2
- uses: ros-tooling/setup-ros@0.7.1
with: with:
use-ros2-testing: false path: urosagent
required-ros-distributions: ${{ matrix.ros_distribution }}
- name : Download and install dependencies - name: Download dependencies
run: | run: |
apt-get install ros-${{ matrix.ros_distribution }}-micro-ros-msgs apt update
apt-get install ros-${{ matrix.ros_distribution }}-rmw-fastrtps-cpp cd /uros_ws
- uses : ros-tooling/action-ros-ci@0.3.6 . /opt/ros/$ROS_DISTRO/setup.sh
with: . install/local_setup.sh
package-name: "micro_ros_agent" rosdep update --rosdistro=$ROS_DISTRO
target-ros2-distro: ${{ matrix.ros_distribution }} ros2 run micro_ros_setup create_agent_ws.sh
- name: Patch branch
run: |
rm -rf /uros_ws/src/uros/micro-ROS-Agent/*
cp -R urosagent/* /uros_ws/src/uros/micro-ROS-Agent/
- name: Build
run: |
cd /uros_ws
. /opt/ros/$ROS_DISTRO/setup.sh
. install/local_setup.sh
ros2 run micro_ros_setup build_agent.sh
-1
View File
@@ -55,4 +55,3 @@ see the file [3rd-party-licenses.txt](3rd-party-licenses.txt).
Please notice the following issues/limitations: Please notice the following issues/limitations:
* There is an unknown issue when dealing with serial ports shared with the micro-ROS agent running inside a Docker. Sometimes it works with a remarkable packet loss. * There is an unknown issue when dealing with serial ports shared with the micro-ROS agent running inside a Docker. Sometimes it works with a remarkable packet loss.
* There is an known issues with serial port communication on micro-ros-agent snap version. It is recommended to use the dockerized version or build it from source.
+9 -40
View File
@@ -2,48 +2,17 @@
Changelog for package micro-ros_agent Changelog for package micro-ros_agent
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4.0.4 (2024-01-29) 2.0.1 (2022-03-25)
------------------ ------------------
* Fix thread include (`#216 <https://github.com/micro-ROS/micro-ROS-Agent/issues/216>`_) * Add services to graph manager (`#127 <https://github.com/micro-ROS/micro-ROS-Agent/issues/127>`_)
* Fix thread include * Add used missing includes (`#116 <https://github.com/micro-ROS/micro-ROS-Agent/issues/116>`_) (`#125 <https://github.com/micro-ROS/micro-ROS-Agent/issues/125>`_)
* Update CI * Add system logger flag (`#118 <https://github.com/micro-ROS/micro-ROS-Agent/issues/118>`_)
* Revert "Fix thread include" * Add condition variable include (`#113 <https://github.com/micro-ROS/micro-ROS-Agent/issues/113>`_)
This reverts commit 1427fb6246c46a0b5851a017ddc886abd80d895b. * pass system name to xrceagent (`#110 <https://github.com/micro-ROS/micro-ROS-Agent/issues/110>`_)
* fix * Fix memory leak in FastDDS datawriter (`#107 <https://github.com/micro-ROS/micro-ROS-Agent/issues/107>`_)
* Fix * Contributors: Antonio Cuadros, Pablo Garrido, Roland Schwan, mergify[bot]
---------
* Contributors: Pablo Garrido
4.0.3 (2023-06-06) 2.0.0 (2021-09-13)
------------------
* Add empty type key hash to GraphCache (`#189 <https://github.com/micro-ROS/micro-ROS-Agent/issues/189>`_)
* Contributors: Antonio Cuadros
4.0.2 (2022-09-28)
------------------
* Fix Datawriter destruction (`#169 <https://github.com/micro-ROS/micro-ROS-Agent/issues/169>`_) (`#170 <https://github.com/micro-ROS/micro-ROS-Agent/issues/170>`_)
* Synchronise predicate (`#160 <https://github.com/micro-ROS/micro-ROS-Agent/issues/160>`_) (`#165 <https://github.com/micro-ROS/micro-ROS-Agent/issues/165>`_)
4.0.1 (2022-06-13)
------------------
* Fix memory leak in graph manager (`#147 <https://github.com/micro-ROS/micro-ROS-Agent/issues/147>`_) (`#148 <https://github.com/micro-ROS/micro-ROS-Agent/issues/148>`_)
4.0.0 (2022-05-25)
------------------
3.0.1 (2022-03-25)
------------------
* Add services to graph manager (`#127 <https://github.com/micro-ROS/micro-ROS-Agent/issues/127>`_) (`#129 <https://github.com/micro-ROS/micro-ROS-Agent/issues/129>`_)
* Add used missing includes (`#116 <https://github.com/micro-ROS/micro-ROS-Agent/issues/116>`_) (`#124 <https://github.com/micro-ROS/micro-ROS-Agent/issues/124>`_)
* Add system logger flag (`#118 <https://github.com/micro-ROS/micro-ROS-Agent/issues/118>`_) (`#119 <https://github.com/micro-ROS/micro-ROS-Agent/issues/119>`_)
* Add condition variable include (`#113 <https://github.com/micro-ROS/micro-ROS-Agent/issues/113>`_) (`#114 <https://github.com/micro-ROS/micro-ROS-Agent/issues/114>`_)
* pass system name to xrceagent (`#110 <https://github.com/micro-ROS/micro-ROS-Agent/issues/110>`_) (`#112 <https://github.com/micro-ROS/micro-ROS-Agent/issues/112>`_)
* Fix memory leak in FastDDS datawriter (`#107 <https://github.com/micro-ROS/micro-ROS-Agent/issues/107>`_) (`#109 <https://github.com/micro-ROS/micro-ROS-Agent/issues/109>`_)
3.0.0 (2021-09-13)
------------------
1.0.1 (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>`_)
* Fixed launch file by using a list for arguments. Ensures order of items is kept. (`#93 <https://github.com/micro-ROS/micro-ROS-Agent/issues/93>`_) (`#94 <https://github.com/micro-ROS/micro-ROS-Agent/issues/94>`_) * Fixed launch file by using a list for arguments. Ensures order of items is kept. (`#93 <https://github.com/micro-ROS/micro-ROS-Agent/issues/93>`_) (`#94 <https://github.com/micro-ROS/micro-ROS-Agent/issues/94>`_)
@@ -65,7 +65,6 @@
#include <string> #include <string>
#include <memory> #include <memory>
#include <map> #include <map>
#include <thread>
namespace uros { namespace uros {
namespace agent { namespace agent {
@@ -112,12 +111,6 @@ public:
const eprosima::fastdds::dds::DomainParticipant* participant, const eprosima::fastdds::dds::DomainParticipant* participant,
bool from_microros = true); bool from_microros = true);
/**
* @brief Getter for the graph cache.
* @return Reference to inner graph cache
*/
rmw_dds_common::GraphCache& get_graph_cache() { return graphCache_; }
/** /**
* @brief Adds a DDS datawriter to the graph tree. * @brief Adds a DDS datawriter to the graph tree.
* @param datawriter_guid rtps::GUID_t of the datawriter to be added. * @param datawriter_guid rtps::GUID_t of the datawriter to be added.
@@ -306,7 +299,7 @@ private:
// Store a auxiliary publishers and datawriter for each participant created in micro-ROS // Store a auxiliary publishers and datawriter for each participant created in micro-ROS
std::map< std::map<
const eprosima::fastdds::dds::DomainParticipant*, const eprosima::fastdds::dds::DomainParticipant*,
eprosima::fastdds::dds::DataWriter* std::unique_ptr<eprosima::fastdds::dds::DataWriter>
> micro_ros_graph_datawriters_; > micro_ros_graph_datawriters_;
}; };
+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>4.0.4</version> <version>2.0.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>
@@ -125,11 +125,9 @@ GraphManager::GraphManager(eprosima::fastdds::dds::DomainId_t domain_id)
// Set graph cache on change callback function // Set graph cache on change callback function
graphCache_.set_on_change_callback([this]() graphCache_.set_on_change_callback([this]()
{
{ {
std::unique_lock<std::mutex> lock(this->mtx_); std::unique_lock<std::mutex> lock(this->mtx_);
this->graph_changed_ = true; this->graph_changed_ = true;
}
this->cv_.notify_one(); this->cv_.notify_one();
}); });
@@ -146,7 +144,6 @@ inline void GraphManager::publish_microros_graph()
{ {
return this->graph_changed_; return this->graph_changed_;
}); });
graph_changed_ = false;
} }
if (display_on_change_) if (display_on_change_)
@@ -154,6 +151,7 @@ inline void GraphManager::publish_microros_graph()
std::cout << "Updated uros Graph: graph changed" << std::endl; std::cout << "Updated uros Graph: graph changed" << std::endl;
std::cout << graphCache_ << std::endl; std::cout << graphCache_ << std::endl;
} }
graph_changed_ = false;
micro_ros_msgs::msg::Graph graph_message; micro_ros_msgs::msg::Graph graph_message;
@@ -322,10 +320,11 @@ void GraphManager::add_participant(
if (it == micro_ros_graph_datawriters_.end()) if (it == micro_ros_graph_datawriters_.end())
{ {
// Create datawriter // Create datawriter
eprosima::fastdds::dds::DataWriter * datawriter = publisher_->create_datawriter(ros_discovery_topic_.get(), datawriter_qos_); std::unique_ptr<eprosima::fastdds::dds::DataWriter> datawriter;
datawriter.reset(publisher_->create_datawriter(ros_discovery_topic_.get(), datawriter_qos_));
it = micro_ros_graph_datawriters_.insert( it = micro_ros_graph_datawriters_.insert(
std::make_pair(participant, datawriter)).first; std::make_pair(participant, std::move(datawriter))).first;
} }
it->second->write(static_cast<void *>(&info)); it->second->write(static_cast<void *>(&info));
@@ -345,9 +344,8 @@ void GraphManager::remove_participant(
rmw_dds_common::convert_gid_to_msg(&gid, &info.gid); rmw_dds_common::convert_gid_to_msg(&gid, &info.gid);
auto it = micro_ros_graph_datawriters_.find(participant); auto it = micro_ros_graph_datawriters_.find(participant);
it->second->write(static_cast<void *>(&info)); it->second->write(static_cast<void *>(&info));
publisher_->delete_datawriter(it->second);
micro_ros_graph_datawriters_.erase(participant);
} }
micro_ros_graph_datawriters_.erase(participant);
} }
void GraphManager::add_datawriter( void GraphManager::add_datawriter(
@@ -374,8 +372,8 @@ void GraphManager::add_datawriter(
"rmw_fastrtps_cpp", participant_guid); "rmw_fastrtps_cpp", participant_guid);
const rmw_qos_profile_t qos_profile = fastdds_qos_to_rmw_qos(writer_qos); const rmw_qos_profile_t qos_profile = fastdds_qos_to_rmw_qos(writer_qos);
graphCache_.add_entity(datawriter_gid, topic_name, type_name, graphCache_.add_entity(datawriter_gid, topic_name,
rosidl_get_zero_initialized_type_hash(), participant_gid, qos_profile, false); type_name, participant_gid, qos_profile, false);
} }
void GraphManager::remove_datawriter( void GraphManager::remove_datawriter(
@@ -411,13 +409,8 @@ void GraphManager::add_datareader(
"rmw_fastrtps_cpp", participant_guid); "rmw_fastrtps_cpp", participant_guid);
const rmw_qos_profile_t qos_profile = fastdds_qos_to_rmw_qos(reader_qos); const rmw_qos_profile_t qos_profile = fastdds_qos_to_rmw_qos(reader_qos);
// TODO(acuadros95): Use typesupport to calculate type hash on micro-ROS and save and get it from reader_qos.user_data. graphCache_.add_entity(datareader_gid, topic_name,
// Related PRs: type_name, participant_gid, qos_profile, true);
// https://github.com/ros2/rmw_dds_common/pull/70
// https://github.com/ros2/rmw_fastrtps/pull/671
// https://github.com/ros2/rmw_fastrtps/pull/680
graphCache_.add_entity(datareader_gid, topic_name, type_name,
rosidl_get_zero_initialized_type_hash(), participant_gid, qos_profile, true);
} }
void GraphManager::remove_datareader( void GraphManager::remove_datareader(
@@ -604,7 +597,7 @@ GraphManager::ParticipantListener::ParticipantListener(
} }
void GraphManager::ParticipantListener::on_participant_discovery( void GraphManager::ParticipantListener::on_participant_discovery(
eprosima::fastdds::dds::DomainParticipant* /* participant */, eprosima::fastdds::dds::DomainParticipant* participant,
eprosima::fastrtps::rtps::ParticipantDiscoveryInfo&& info) eprosima::fastrtps::rtps::ParticipantDiscoveryInfo&& info)
{ {
switch (info.status) switch (info.status)
@@ -621,15 +614,13 @@ void GraphManager::ParticipantListener::on_participant_discovery(
const std::string enclave = const std::string enclave =
std::string(name_found->second.begin(), name_found->second.end()); std::string(name_found->second.begin(), name_found->second.end());
const rmw_gid_t gid = rmw_fastrtps_shared_cpp::create_rmw_gid("rmw_fastrtps_cpp", info.info.m_guid); graphManager_from_->add_participant(participant, false, enclave);
graphManager_from_->get_graph_cache().add_participant(gid, enclave);
break; break;
} }
case eprosima::fastrtps::rtps::ParticipantDiscoveryInfo::REMOVED_PARTICIPANT: case eprosima::fastrtps::rtps::ParticipantDiscoveryInfo::REMOVED_PARTICIPANT:
case eprosima::fastrtps::rtps::ParticipantDiscoveryInfo::DROPPED_PARTICIPANT: case eprosima::fastrtps::rtps::ParticipantDiscoveryInfo::DROPPED_PARTICIPANT:
{ {
const rmw_gid_t gid = rmw_fastrtps_shared_cpp::create_rmw_gid("rmw_fastrtps_cpp", info.info.m_guid); graphManager_from_->remove_participant(participant, false);
graphManager_from_->get_graph_cache().remove_participant(gid);
break; break;
} }
default: default:
@@ -43,7 +43,7 @@ ParticipantEntitiesInfoTypeSupport::ParticipantEntitiesInfoTypeSupport()
ss << "dds_::" << message_name << "_"; ss << "dds_::" << message_name << "_";
this->setName(ss.str().c_str()); this->setName(ss.str().c_str());
char full_bounded; bool full_bounded = true;
m_typeSize = 4 + callbacks_->max_serialized_size(full_bounded); m_typeSize = 4 + callbacks_->max_serialized_size(full_bounded);
} }
@@ -135,7 +135,7 @@ MicrorosGraphInfoTypeSupport::MicrorosGraphInfoTypeSupport()
ss << "dds_::" << message_name << "_"; ss << "dds_::" << message_name << "_";
this->setName(ss.str().c_str()); this->setName(ss.str().c_str());
char full_bounded; bool full_bounded = true;
m_typeSize = 4 + callbacks_->max_serialized_size(full_bounded); m_typeSize = 4 + callbacks_->max_serialized_size(full_bounded);
} }