Coder Social home page Coder Social logo

rmw_dps's Introduction

rmw_dps Build Status

Implementation of the ROS Middleware (rmw) Interface using Intel's Distributed Publish & Subscribe for IoT (DPS).

DPS is a new protocol that implements the publish/subscribe (pub/sub) communication pattern. For more information see the project's documentation.

Building

This project adds two build targets: dps_for_iot_cmake_module and rmw_dps_cpp. dps_for_iot_cmake_module builds the DPS libraries, and requires the SCons and python-config tools (make sure to run rosdep install as usual).

rmw_dps_cpp is the rmw implementation. To build, either add rmw_dps to to your local ros2.repos or explicitly clone it.

For the first option, add the following block to ros2.repos and follow the ROS 2 instructions for updating and building.

  ros2/rmw_dps:
    type: git
    url: https://github.com/ros2/rmw_dps.git
    version: master

For the second option, clone this repository using the command below and build ROS 2.

git clone https://github.com/ros2/rmw_dps src/ros2/rmw_dps

Implementation status

Work is ongoing to complete full support for all rmw APIs.

Completed:

  • Publishers and subscribers, services and clients
  • Message serialization and deserialization
  • Discoverability

To be completed:

  • Full support of QoS
  • Pass through security configuration to DPS

rmw_dps's People

Contributors

aalon avatar alsora avatar malsbat avatar raghaprasad avatar talih0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

rmw_dps's Issues

Publish message bigger than max UDP datagram size

Hi,
I'm doing some tests publishing messages of different sizes. When the message size is bigger than the maximum UPD datagram size, an error arises:

250002345 ERROR src/multicast/network.c@416: MulticastSendComplete status=EMSGSIZE

which means that the datagram couldn't be sent because it was too long.

Is there any implemented workaround for this, like splitting the message into chunks?

rmw_dps support for RMW 0.7.1

The RMW has been updated few days ago to version 0.7.1 and this is not supported yet from rmw_dps.

First of all there are build errors, due to the new APIs (allocation and liveliness mostly).

Moreover there is a runtime error when a subscriber try to deserialize a message of type ParameterEvent.

I saw a similar problem mentioned for Fast-RTPS:
ros2/rmw_fastrtps#36 (comment)

I'm working on a PR: #7

It allows to build without errors and, if you remove the ParameterEvents publisher and subscribers, it allows nodes to communicate.

Do you have any ideas on how to fix this deserialization issue?

@AAlon

Create Dashing & master branch

  • Dashing branch will freeze the API
  • Master branch will be used for active development
  • Setup travis to build both branches nightly
    • Dashing branch will use Dashing container or install ROS2 via apt
    • Master branch will use nightly container build of ROS2

Support ros2 cli commands

Support ros2 node list and ros2 topic list commands.
This should unlock the subsequent features ros2 topic info and ros2 node info.

size_t cross-compilation issue

Bug report

I'm trying to cross-compile this repository for RaspberryPi (32 bit)

The cross-compilation of this package fails because deserializeSequenceSize function takes a size_t argument and then converts it into `uint64_t.

https://github.com/ros2/rmw_dps/blob/master/rmw_dps_cpp/include/rmw_dps_cpp/CborStream.hpp#L444

error: cannot convert ‘size_t* {aka unsigned int*}’ to ‘uint64_t* {aka long long unsigned int*}’ for argument ‘3’ to ‘DPS_Status CBOR_Peek(DPS_RxBuffer*, uint8_t*, uint64_t*)’
     DPS_Status ret = CBOR_Peek(&buffer_, &maj, size);

Do you think that it is possible to change the GenericCSequence object to directly use the proper type?

https://github.com/ros2/rmw_dps/blob/ab6f8d0257d6cf61fc499fee6ab3936e0b3234f6/rmw_dps_cpp/include/rmw_dps_cpp/macros.hpp

Nodes discovery taking too long

Hello,
I'm testing the introspection branch, running one of the iRobot benchmark tests, and I noticed the list of discovered nodes is not properly updated on time, in most of the times the nodes are not fully discovered.
The issue seems to be on the function get_discovered_nodes defined on rmw_dps_cpp/include/rmw_dps_cpp/custom_node_info.hpp. The map discovered_nodes_ is not populated with all the present nodes in the system.

If you'd like to reproduce the issue:

git clone https://github.com/irobot-ros/ros2-performance.git
mkdir -p ~/performance_test_ws/src
cp -r ros2-performance/performances/ ~/performance_test_ws/src
cd ~/performance_test_ws
colcon build
source install/local_setup.bash
cd install/benchmark/lib/benchmark/
./benchmark topology/sierra_nevada.json
# Here it hangs forever in the discovery process

The problem starts to be seen when there are about 10 nodes in the ROS2 system.

Any ideas about what could be wrong?
Thanks

Run publisher & subscriber examples with DPS

  • Operating System:
    • Ubuntu 18.04
  • Installation type:
    • Source
  • DDS implementation:
    • rmw_implementation used: Fast-RTPS, cycloneDDS, DPS

I followed the installation instructions for it and got it build successfully. (https://github.com/ros2/rmw_dps 2)

After doing this, I switched from default rmw to rmw_dps by specifying the environment variable.

export RMW_IMPLEMENTATION=rmw_dps_cpp

And then I tried running talker demo (ros2 run demo_nodes_cpp talker) and listener demo node, but the listener node couldn’t get the read the message. When I tried to echo the topic from talker node, I got this message:

Could not determine the type for the passed topic

Could someone point out what is going on here?
Thank you!

Support RQT & RViz tools

Similar to support for ros2 cli.
Ideally fixing ros2 cli support should automatically unblock this issue.

Build error under dashing

Does not build under Dashing, since rmw_dps_cpp does not conform to the rmw interface.

Build output:

colcon build --packages-select rmw_dps_cpp       
Starting >>> rmw_dps_cpp
--- stderr: rmw_dps_cpp
...
/opt/ros/dashing-src/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_subscription.cpp:54:1: error: conflicting types for 'rmw_create_subscription'
rmw_create_subscription(
^
/opt/ros/dashing-src/install/include/rmw/rmw.h:538:1: note: previous declaration is here
rmw_create_subscription(
^
...
/opt/ros/dashing-src/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_publisher.cpp:96:1: error: conflicting types for 'rmw_create_publisher'
rmw_create_publisher(
^
/opt/ros/dashing-src/install/include/rmw/rmw.h:301:1: note: previous declaration is here
rmw_create_publisher(
^

Incompatible with the latest RMW?

I'm using a source installation of ROS2 from tip of master on Ubuntu Bionic.
Cloned this repo into the src/ros2/ dir, and ran colcon build --symlink-install --cmake-force-configure which failed.
Seeing as the last commit was a while ago, I'm wondering whether this is still compatible with the latest ROS2 and RMW interface?

Build log:

													   --- stderr: rmw_dps_cpp
make[2]: *** [CMakeFiles/rmw_dps_cpp.dir/src/rmw_init.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_count.cpp: In function ‘rmw_ret_t rmw_count_publishers(const rmw_node_t*, const char*, size_t*)’:
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_count.cpp:32:3: error: expected ‘;’ before ‘*’ token
   *count = 0;
   ^
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_count.cpp: In function ‘rmw_ret_t rmw_count_subscribers(const rmw_node_t*, const char*, size_t*)’:
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_count.cpp:47:3: error: expected ‘;’ before ‘*’ token
   *count = 0;
   ^
make[2]: *** [CMakeFiles/rmw_dps_cpp.dir/src/rmw_count.cpp.o] Error 1
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_publish.cpp:72:82: error: macro "RCUTILS_CHECK_FOR_NULL_WITH_MSG" passed 4 arguments, but takes just 3
     publisher, "publisher pointer is null", return RMW_RET_ERROR, error_allocator);
                                                                                  ^
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_publish.cpp:75:42: error: macro "RCUTILS_CHECK_FOR_NULL_WITH_MSG" passed 4 arguments, but takes just 3
     return RMW_RET_ERROR, error_allocator);
                                          ^
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_publish.cpp:84:82: error: macro "RCUTILS_CHECK_FOR_NULL_WITH_MSG" passed 4 arguments, but takes just 3
     info, "publisher info pointer is null", return RMW_RET_ERROR, error_allocator);
                                                                                  ^
In file included from /ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/include/rmw_dps_cpp/TypeSupport.hpp:130:0,
                 from /ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/include/rmw_dps_cpp/MessageTypeSupport.hpp:21,
                 from /ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/type_support_common.hpp:20,
                 from /ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_client.cpp:25:
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/include/rmw_dps_cpp/TypeSupport_impl.hpp:23:10: fatal error: rosidl_generator_c/primitives_array_functions.h: No such file or directory
 #include "rosidl_generator_c/primitives_array_functions.h"
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/rmw_dps_cpp.dir/src/rmw_client.cpp.o] Error 1
In file included from /ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/include/rmw_dps_cpp/TypeSupport.hpp:130:0,
                 from /ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/include/rmw_dps_cpp/MessageTypeSupport.hpp:21,
                 from /ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/type_support_common.hpp:20,
                 from /ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/client_service_common.cpp:17:
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/include/rmw_dps_cpp/TypeSupport_impl.hpp:23:10: fatal error: rosidl_generator_c/primitives_array_functions.h: No such file or directory
 #include "rosidl_generator_c/primitives_array_functions.h"
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/rmw_dps_cpp.dir/src/client_service_common.cpp.o] Error 1
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_guard_condition.cpp: In function ‘rmw_guard_condition_t* rmw_create_guard_condition()’:
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_guard_condition.cpp:25:1: error: conflicting declaration of C function  rmw_guard_condition_t* rmw_create_guard_condition()’
 rmw_create_guard_condition()
 ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_guard_condition.cpp:17:0:
/ros2_clean/install/rmw/include/rmw/rmw.h:528:1: note: previous declaration ‘rmw_guard_condition_t* rmw_create_guard_condition(rmw_context_t*)’
 rmw_create_guard_condition(rmw_context_t * context);
 ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /ros2_clean/install/rcutils/include/rcutils/error_handling.h:28:0,
                 from /ros2_clean/install/rcutils/include/rcutils/logging.h:23,
                 from /ros2_clean/install/rcutils/include/rcutils/logging_macros.h:22,
                 from /ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_publish.cpp:17:
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_publish.cpp: In function ‘rmw_ret_t rmw_publish(const rmw_publisher_t*, const void*)’:
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_publish.cpp:38:3: error: expected ‘;’ before ‘(’ token
   assert(publisher);
   ^
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_publish.cpp: In function ‘rmw_ret_t rmw_publish_serialized_message(const rmw_publisher_t*, const rmw_serialized_message_t*)’:
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_publish.cpp:71:3: error: ‘RCUTILS_CHECK_FOR_NULL_WITH_MSG’ was not declared in this scope
   RCUTILS_CHECK_FOR_NULL_WITH_MSG(
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_get_gid_for_publisher.cpp: In function ‘rmw_ret_t rmw_get_gid_for_publisher(const rmw_publisher_t*, rmw_gid_t*)’:
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_get_gid_for_publisher.cpp:32:3: error: expected ‘;’ before ‘if’
   if (!publisher) {
   ^~
make[2]: *** [CMakeFiles/rmw_dps_cpp.dir/src/rmw_guard_condition.cpp.o] Error 1
make[2]: *** [CMakeFiles/rmw_dps_cpp.dir/src/rmw_publish.cpp.o] Error 1
In file included from /ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_request.cpp:17:0:
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/include/rmw_dps_cpp/Listener.hpp: In static member function ‘static void Listener::onPublication(DPS_Subscription*, const DPS_Publication*, uint8_t*, size_t)’:
/ros2_clean/install/rcutils/include/rcutils/logging_macros.h:67:3: error: expected ‘;’ before ‘do’
   do { \
   ^
/ros2_clean/install/rcutils/include/rcutils/logging_macros.h:253:3: note: in expansion of macro ‘RCUTILS_LOG_COND_NAMED’
   RCUTILS_LOG_COND_NAMED( \
   ^~~~~~~~~~~~~~~~~~~~~~
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/include/rmw_dps_cpp/Listener.hpp:51:5: note: in expansion of macro ‘RCUTILS_LOG_DEBUG_NAMED’
     RCUTILS_LOG_DEBUG_NAMED(
     ^~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/rmw_dps_cpp.dir/src/rmw_get_gid_for_publisher.cpp.o] Error 1
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/include/rmw_dps_cpp/Listener.hpp: In static member function ‘static void Listener::onAcknowledgement(DPS_Publication*, uint8_t*, size_t)’:
/ros2_clean/install/rcutils/include/rcutils/logging_macros.h:67:3: error: expected ‘;’ before ‘do’
   do { \
   ^
/ros2_clean/install/rcutils/include/rcutils/logging_macros.h:253:3: note: in expansion of macro ‘RCUTILS_LOG_COND_NAMED’
   RCUTILS_LOG_COND_NAMED( \
   ^~~~~~~~~~~~~~~~~~~~~~
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/include/rmw_dps_cpp/Listener.hpp:77:5: note: in expansion of macro ‘RCUTILS_LOG_DEBUG_NAMED’
     RCUTILS_LOG_DEBUG_NAMED(
     ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /ros2_clean/install/rcutils/include/rcutils/error_handling.h:28:0,
                 from /ros2_clean/install/rcutils/include/rcutils/logging.h:23,
                 from /ros2_clean/install/rcutils/include/rcutils/logging_macros.h:22,
                 from /ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_request.cpp:17:
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_request.cpp: In function ‘rmw_ret_t rmw_send_request(const rmw_client_t*, const void*, int64_t*)’:
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_request.cpp:40:3: error: expected ‘;’ before ‘(’ token
   assert(client);
   ^
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_request.cpp: In function ‘rmw_ret_t rmw_take_request(const rmw_service_t*, rmw_request_id_t*, void*, bool*)’:
/ros2_clean/src/ros2/rmw_dps/rmw_dps_cpp/src/rmw_request.cpp:82:3: error: expected ‘;’ before ‘(’ token
   assert(service);

Build of dps_for_iot_cmake_module writes noise to stderr

This output:

Starting >>> dps_for_iot_cmake_module
[Processing: dps_for_iot_cmake_module]                                
--- stderr: dps_for_iot_cmake_module                                          
Cloning into 'ext/mbedtls'...
remote: Counting objects: 67262, done.
remote: Compressing objects:   1% (1/82)   
remote: Compressing objects:   2% (2/82)   
remote: Compressing objects:   3% (3/82)   
remote: Compressing objects:   4% (4/82)   
...

results in

Summary: 191 packages finished [1h 27min 26s]
  8 packages had stderr output: dps_for_iot_cmake_module ...

being shown after building.

No stderr output should be reported for a successful build.

Memory leakage when publishing big messages at high frequencies

I've noticed that when publishing big messages at high rates, there's a constant increase in RSS (and virtual) memory, even if the subscriber gets all the messages.

To reproduce the situation, clone the ros2 examples repo and apply patch: patch.log

This patch makes the publisher_lambda publish high frequency messages of size 64,5 Kb (close to the max UDP datagram size, max message possible to send by rmw_dps) and the subscriber_lambda prints the messages and checks if any is lost (subscriber_lambda sholud be run before publisher_lambda to properly detect lost messages)

mkdir -p ~/mem_test_ws/src && cd $_
git clone https://github.com/ros2/examples.git
cd examples
git apply ~/patch.log
cd ~/mem_test_ws
colcon build

#Terminal 1: 
export RMW_IMPLEMENTATION=rmw_dps_cpp
cd ~/mem_test_ws/install/examples_rclcpp_minimal_subscriber/lib/examples_rclcpp_minimal_subscriber/
./subscriber_lambda

#Terminal 2:
top | grep publisher

#Terminal 3:
export RMW_IMPLEMENTATION=rmw_dps_cpp
cd ~/mem_test_ws/install/examples_rclcpp_minimal_publisher/lib/examples_rclcpp_minimal_publisher/
./publisher_lambda

The output of top in terminal 2 shows an increase in memory:

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 9032 root      20   0  179440  19792  11696 S  17.6  0.0   0:00.53 publisher_lambd                                   
 9032 root      20   0  197716  38472  11696 S  49.7  0.1   0:02.02 publisher_lambd                                   
 9032 root      20   0  217880  58952  11696 R  48.8  0.1   0:03.49 publisher_lambd                                   
 9032 root      20   0  238300  79688  11696 S  47.7  0.2   0:04.92 publisher_lambd                                   
 9032 root      20   0  257584  99280  11696 R  48.3  0.2   0:06.37 publisher_lambd                                   
 9032 root      20   0  277120 119124  11696 S  46.8  0.2   0:07.78 publisher_lambd                                   
 9032 root      20   0  296276 138592  11696 S  47.7  0.3   0:09.21 publisher_lambd                                   
 9032 root      20   0  315180 157808  11696 S  47.0  0.3   0:10.62 publisher_lambd                                   
 9032 root      20   0  335472 178408  11696 S  48.5  0.4   0:12.08 publisher_lambd                                   
 9032 root      20   0  354128 197368  11696 S  47.3  0.4   0:13.50 publisher_lambd                                   
 9032 root      20   0  373788 217348  11696 S  48.2  0.4   0:14.95 publisher_lambd                                   
 9032 root      20   0  392692 236568  11696 S  50.7  0.5   0:16.47 publisher_lambd                                   
 9032 root      20   0  412480 256680  11696 S  54.3  0.5   0:18.10 publisher_lambd                                   
 9032 root      20   0  432016 276536  11696 S  49.0  0.6   0:19.57 publisher_lambd                                   
 9032 root      20   0  450292 295112  11696 S  49.2  0.6   0:21.05 publisher_lambd                                   
 9032 root      20   0  468568 313692  11696 S  52.7  0.6   0:22.63 publisher_lambd                                   
 9032 root      20   0  486212 331640  11696 S  50.8  0.7   0:24.16 publisher_lambd                                   
 9032 root      20   0  505872 351620  11696 S  52.3  0.7   0:25.73 publisher_lambd                                   
 9032 root      20   0  524524 370584  11696 S  50.0  0.7   0:27.23 publisher_lambd                                   
 9032 root      20   0  544060 390440  11696 S  52.5  0.8   0:28.81 publisher_lambd                                   
 9032 root      20   0  564228 410936  11696 S  52.0  0.8   0:30.37 publisher_lambd                                   
 9032 root      20   0  583068 429896  11696 S  52.3  0.9   0:31.94 publisher_lambd                                   
 9032 root      20   0  602984 450312  11696 S  52.0  0.9   0:33.50 publisher_lambd                                   
 9032 root      20   0  622264 469900  11696 S  50.8  1.0   0:35.03 publisher_lambd                                   
 9032 root      20   0  642180 490132  11696 S  52.0  1.0   0:36.59 publisher_lambd                                   
 9032 root      20   0  660204 508460  11696 S  50.0  1.0   0:38.09 publisher_lambd                                   
 9032 root      20   0  680620 529204  11696 S  50.8  1.1   0:39.62 publisher_lambd                                   
 9032 root      20   0  699276 548172  11696 S  52.0  1.1   0:41.18 publisher_lambd                                   
 9032 root      20   0  718808 568028  11696 S  52.0  1.1   0:42.74 publisher_lambd                                   
 9032 root      20   0  737588 587116  11696 S  50.5  1.2   0:44.26 publisher_lambd                                   
 9032 root      20   0  757376 607216  11696 S  48.3  1.2   0:45.71 publisher_lambd                                   
 9032 root      20   0  776280 626428  11696 S  47.3  1.3   0:47.13 publisher_lambd                                   
 9032 root      20   0  794936 645396  11696 S  47.7  1.3   0:48.56 publisher_lambd                                   
 9032 root      20   0  813336 664100  11696 S  47.2  1.3   0:49.98 publisher_lambd                                   
 9032 root      20   0  831736 682808  11696 S  48.0  1.4   0:51.42 publisher_lambd                                   
 9032 root      20   0  851400 702780  11696 S  47.5  1.4   0:52.85 publisher_lambd                                   
 9032 root      20   0  871688 723280  11696 S  47.7  1.5   0:54.28 publisher_lambd                                   
 9032 root      20   0  890972 743004  11696 S  51.0  1.5   0:55.81 publisher_lambd                                   
 9032 root      20   0  908364 760700  11696 S  49.8  1.5   0:57.31 publisher_lambd                                   
 9032 root      20   0  927900 780560  11696 S  50.7  1.6   0:58.83 publisher_lambd                                   
 9032 root      20   0  948068 801048  11696 S  49.8  1.6   1:00.33 publisher_lambd                                   
 9032 root      20   0  965460 818768  11696 S  46.7  1.7   1:01.73 publisher_lambd                                   
 9032 root      20   0  988776 842568  11696 S  43.7  1.7   1:03.04 publisher_lambd                                   
 9032 root      20   0 1013984 868296  11696 S  44.5  1.8   1:04.38 publisher_lambd                                   
 9032 root      20   0 1036984 891780  11696 S  44.7  1.8   1:05.72 publisher_lambd                                   
 9032 root      20   0 1058788 914044  11696 S  44.2  1.8   1:07.05 publisher_lambd                                   
 9032 root      20   0 1067864 923364  11696 S  46.3  1.9   1:08.44 publisher_lambd                                   

In terminal 1, subscriber_lambda shows all messages it got from the publisher. None is lost.

When running this test on the RPi2, I still can see the memory increasing using publish frequencies from 62Hz.

Any ideas why this could be happening?

Missing git config causes build failure dps_for_iot_cmake_module

Bug report

Required Info:

  • Operating System:
    • Docker container (osrf/ros2) running Ubuntu Bionic
  • Installation type:
    • Build from source

Details

Example build failure here: https://travis-ci.org/raghaprasad/rmw_dps/builds/533025508
When I attempt to build rmw_dps from source on a docker container the build fails with the following error message

`

colcon build --packages-up-to rmw_dps_cpp
Starting >>> dps_for_iot_cmake_module
--- stderr: dps_for_iot_cmake_module
Cloning into 'ext/mbedtls'...
Cloning into 'ext/safestring'...
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'root@travis-job-7025d075-437d-4f09-a65b-be918c39e50d.(none)')
scons: *** [ext/safestring/makefile] Error 128
make[2]: *** [dps_for_iot/src/dps_for_iot-stamp/dps_for_iot-build] Error 2
make[1]: *** [CMakeFiles/dps_for_iot.dir/all] Error 2
make: *** [all] Error 2


Failed <<< dps_for_iot_cmake_module [ Exited with code 2 ]
`

Setting the git config information resolves the issue.

Runtime failures due to recent changes

Bug report

Required Info:

  • Operating System:
    • Ubuntu Bionic, docker container
  • Installation type:
    • build from source
  • Version or commit hash:
    • Cloned repo [rmw_dps] at commit [0e9b199]

Steps to reproduce issue

When we run the iRobot performance test against the latest version of rmw_dps.

Running benchmark [sierra_nevada]
--------------------------------------------------
Topology file: topology/sierra_nevada.json
Intra-process-communication: on
Run test for: 60 seconds
Sampling resources every 500ms
Start test
[ResourceUsageLogger]: Logging to log/resources.txt
[EventsLogger]: Logging to log/events.txt
terminate called after throwing an instance of 'rclcpp::exceptions::RCLError'
  what():  could not create subscription: failed to resolve symbol 'rmw_subscription_get_actual_qos' in shared library '/opt/workspace/install/lib/librmw_dps_cpp.so', at /home/jenkins-agent/workspace/packaging_linux/ws/src/ros2/rmw_implementation/rmw_implementation/src/functions.cpp:163, at /home/jenkins-agent/workspace/packaging_linux/ws/src/ros2/rcl/rcl/src/rcl/subscription.c:175
Execution of benchmark [sierra_nevada] completed with exit code [134]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.