ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

mschickler's profile - activity

2022-03-12 17:08:32 -0500 received badge  Stellar Question (source)
2021-11-22 12:37:08 -0500 received badge  Famous Question (source)
2021-09-16 06:13:45 -0500 received badge  Notable Question (source)
2021-07-30 04:54:45 -0500 received badge  Popular Question (source)
2021-06-23 09:03:44 -0500 received badge  Famous Question (source)
2021-06-22 09:18:00 -0500 asked a question Request for Cyclone DDS loaned message working example

Request for Cyclone DDS loaned message working example I've tried Galactic, Rolling, and building cyclone DDS and iceory

2021-06-15 14:21:29 -0500 received badge  Notable Question (source)
2021-06-15 12:49:59 -0500 marked best answer Galactic/Fast-DDS middleware can't loan messages

I am using ROS 2 galactic and running with my environment set for FastRTPS middleware. I am using the loaned message buffer API and the XML configuration for shared memory described in the Fast-DDS documentation (snippet):

<transport_descriptors>
    <!-- Create a descriptor for the new transport -->
    <transport_descriptor>
        <transport_id>shm_transport</transport_id>
        <type>SHM</type>
    </transport_descriptor>
</transport_descriptors>

<participant profile_name="SHMParticipant" is_default_profile="true">
    <rtps>
        <!-- Link the Transport Layer to the Participant -->
        <userTransports>
            <transport_id>shm_transport</transport_id>
        </userTransports>
    </rtps>
</participant>

When I run my publish code, I get the following output:

Currently used middleware can't loan messages. Local allocator will be used.

My testing shows that latency is increasing as data size increases so it appears that it really isn't using zero copy.

Code can be found at: https://github.com/mschickler/simple_...

It was announced in ROS discourse that the latest Fast-DDS supported zero copy / shared memory. Am I doing something wrong? Does the rmw layer not yet support the new functionality? Any ideas?

2021-06-15 12:49:56 -0500 commented answer Galactic/Fast-DDS middleware can't loan messages

Thanks folks. Appreciate the help!

2021-06-15 10:55:11 -0500 commented answer Galactic/Fast-DDS middleware can't loan messages

Do you know how I would go about configuring to use Cyclone DDS with iceoryx integration? When I try this test with def

2021-06-15 10:52:30 -0500 received badge  Popular Question (source)
2021-06-15 07:59:49 -0500 edited question Galactic/Fast-DDS middleware can't loan messages

Galactic/Fast-DDS middleware can't loan messages I am using ROS 2 galactic and running with my environment set for FastR

2021-06-15 07:59:49 -0500 received badge  Editor (source)
2021-06-14 16:01:05 -0500 edited question Galactic/Fast-DDS middleware can't loan messages

Galactic/Fast-DDS middleware can't loan messages I am using ROS 2 galactic and running with my environment set for FastR

2021-06-14 16:00:34 -0500 asked a question Galactic/Fast-DDS middleware can't loan messages

Galactic/Fast-DDS middleware can't loan messages I am using ROS 2 galactic and running with my environment set for FastR

2021-06-14 00:45:12 -0500 received badge  Famous Question (source)
2021-06-12 20:35:31 -0500 received badge  Notable Question (source)
2021-06-11 15:05:00 -0500 received badge  Favorite Question (source)
2021-06-11 03:53:56 -0500 received badge  Popular Question (source)
2021-06-10 06:41:16 -0500 commented answer ROS 2 zero copy intraprocess communication

Thanks! It worked. I am a little surprised that it still looks like there is about 100-200 microseconds of latency whi

2021-06-10 06:39:53 -0500 marked best answer ROS 2 zero copy intraprocess communication

I've written a program to measure the latency of communication between separate ROS 2 foxy publisher and a subscriber nodes running in a single process. I'm dynamically allocating memory for the message using make_unique() and passing to publish(). My understanding was that this would result in zero-copy communication to the subscriber. However, the latency seems high and the memory address of the underlying message at the subscriber is different than the address of the originally allocated message. A similar test using shared pointer publish with nodelets in ROS 1 shows the memory address is unchanged at the receiver (i.e. zero-copy occurred).

My code is at: https://github.com/mschickler/simple_...

Any help or insight appreciated.

2021-06-10 06:39:52 -0500 received badge  Scholar (source)
2021-06-10 06:39:51 -0500 received badge  Supporter (source)
2021-06-09 13:13:20 -0500 asked a question ROS 2 zero copy intraprocess communication

ROS 2 zero copy intraprocess communication I've written a program to measure the latency of communication between separa

2021-05-02 22:59:43 -0500 received badge  Good Question (source)
2020-08-26 08:42:56 -0500 commented answer Replacement for rospy.time.now() in ROS2?

The .to_msg() is critical!

2020-08-26 08:42:23 -0500 commented answer Replacement for rospy.time.now() in ROS2?

This is critical!

2020-08-10 18:18:20 -0500 received badge  Good Answer (source)
2020-07-15 07:33:41 -0500 received badge  Nice Answer (source)
2020-07-09 17:28:48 -0500 commented question Boost mutex error when using SimpleActionClient with std::unique_ptr

The problem is that your unique_ptr never goes out of scope because it is global. Put "client.reset(nullptr);" before r

2020-06-23 00:49:20 -0500 received badge  Nice Question (source)
2020-06-19 14:10:05 -0500 commented question how to get gcc or g++ command when using "colcon build" in ros2?

I think this is actually supposed to be "--cmake-args -DCMAKE_VEBOSE_MAKEFILE=TRUE"

2020-06-09 15:36:54 -0500 received badge  Student (source)
2020-06-05 09:36:34 -0500 received badge  Favorite Question (source)
2020-04-03 13:55:56 -0500 received badge  Famous Question (source)
2020-04-03 13:55:56 -0500 received badge  Notable Question (source)
2020-03-14 21:32:15 -0500 received badge  Necromancer (source)
2020-03-14 21:32:15 -0500 received badge  Teacher (source)
2020-03-11 11:50:21 -0500 received badge  Enthusiast
2020-02-17 14:45:51 -0500 marked best answer [ROS2] How to implement a sync service client in a node?

In ROS1, it was possible to make a (synchronous) service call from a callback.

In ROS2, in a derived node class, if I do the following:

  1. create a service client using "create_client"
  2. within a callback function (e.g. a timer callback) call async_send_request() on the client and then:
  3. call get() on the future that is returned

It will block forever. Instead, I must register a callback when I call async_send_request() in order to handle the response.

An async design does have its advantages, so I am wondering, is it the intent of ROS2 to force asynchronous service message handling in a node or is there a way to do a sync call that I haven't uncovered yet?

2020-02-07 02:44:46 -0500 received badge  Popular Question (source)
2020-02-04 15:43:38 -0500 asked a question [ROS2] How to implement a sync service client in a node?

[ROS2] How to implement a sync service client in a node? In ROS1, it was possible to make a (synchronous) service call f

2019-11-06 11:32:17 -0500 answered a question No stdout logging output in ROS2 using launch

You can use the following to set the buffering policy to line buffering: stdbuf -o L ros2 launch pkg pkg.launch.py I w