micro-ROS / micro-ROS-Agent

ROS 2 package using Micro XRCE-DDS Agent.
Apache License 2.0
101 stars 58 forks source link

Agent stops relaying service response messages to DDS #199

Open rosterloh opened 1 year ago

rosterloh commented 1 year ago

After some amount of time the Agent can get itself into a state where it provides services, allows them to be called, forwards the messages onto to downstream micro but does not bridge the response back to the DDS

To Reproduce Steps to reproduce the behaviour:

  1. Run agent ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyACM0 -v6
  2. Connect an MCU which provides a service
  3. Run a node on the device which hosts the agent which calls the service in a tight loop
  4. You will continue to see [==>> SER <<==] messages in the agent and logs in the MCU that the service call has been requested but no more [ <> ] agent messages
  5. ros2 cli service calls will also hang from this point onwards
  6. Restarting the agent gets everything back to normal

Expected behaviour Agent should always bridge mcu to DDS and never need restarting

System information (please complete the following information):

Acuadros95 commented 1 year ago

Could not replicate this on our side, some questions:

You will continue to see [==>> SER <<==] messages in the agent and logs in the MCU that the service call has been requested but no more [ <> ] agent messages

Could you share the Agent log from just before this happens?