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?

Debo
已提问 2 年前601 查看次数
2 回答
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 pictureAWS
专家
Greg_B
已回答 2 年前
  • 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

AWS
已回答 2 年前
  • 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.

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则