By using AWS re:Post, you agree to the Terms of Use

ways to communicate between a ROS node ( or general process ) and a greengrass component

0

Environment : Ubuntu 20.04, ROS 2

We have a ROS node that would like to be able to communicate with a greengrass component locally. The ros node would be the initiator to send certain messages to the greengrass component. The greengrass component only reply back SUCCESS or FAIL (or exit code)

What I have found is to use AWS IOT Device SDK. But it seems like it's for communicating between custom components and our ROS node is not a component.

I was thinking about the polling a file from the local file system periodically ( to detect messages sent from a ROS node ) but that doesn't look ideal.

The intuition of having a greengrass component in the background is to have a service to push/pull files to/from AWS S3 bucket and we want it to be able to perform operations even when ROS is being killed.

Is there a best way to communicate between a ROS node ( or a general process ) and a greengrass component?

2 Answers
1

Hi Debo. I agree with Joe's answer, if you kept it external. This blog is helpful: https://aws.amazon.com/blogs/iot/implementing-local-client-devices-with-aws-iot-greengrass/.

However, have you considered running your ROS node within Greengrass? You could compose and manage your entire application using Greengrass. I think this fresh blog could be of interest to you. It features a component that bridges ROS topics with Greengrass IPC: https://aws.amazon.com/blogs/robotics/deploy-and-manage-ros-robots-with-aws-iot-greengrass-2-0-and-docker/.

profile picture
EXPERT
answered a month ago
  • As mentioned by @Greg_B, I would recommend to use a the ROS to IPC bridge component as this will enable the ROS node to exchange messages with a Greengrass component by publishing on a ROS topic.

0

Hi Debo -

The supported method would be to model your ROS process as a client device and connect to Greengrass via MQTT.

https://docs.aws.amazon.com/greengrass/v2/developerguide/connect-client-devices.html

Thanks, -joe

answered a month ago
  • While this is a possibility, it is more applicable in case the ROS nodes are running on a separate machine and already implement MQTT as a communication mechanism. ROS 2 has its own distributed messaging protocol and using a ROS to IPC bridge component is the least intrusive way to support this type of integration.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions