谷歌云机器人通信

2024-05-28 23:45:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在从事一个关于机器人技术的项目,我们正在与Google Cloud robotics Core合作,我知道与机器人(ROS 2)通信的最佳方式是使用声明式API

我已经阅读了教程,但我想了解更多信息。 我给机器人发命令的方式到底是怎样的

"Create a custom resource definition (CRD) to represent orders. Send orders from the cloud by creating a custom resource. Create a controller on the robot, which looks at the orders and executes them"

如果我需要发送诸如“初始化”、“停止”、“更新代码”之类的命令,它就可以工作了

谢谢你的帮助


Tags: the项目core命令cloudcreatecustomgoogle
1条回答
网友
1楼 · 发布于 2024-05-28 23:45:02

“更新你的代码”就是一个很好的例子。也许“init”是不必要的,因为机器人可以在寻找订单之前在启动时自动初始化自己。类似地,您可以取消或删除任何现有订单,而不是创建“停止”订单,机器人将在没有活动订单时停止

API的细节将在很大程度上取决于您的用例。理想情况下,订单将是自包含的,因此接收订单的机器人即使中途失去网络连接也可以执行订单。例如,我尝试改编tutorial中的示例以反映您的建议:

apiVersion: example.com/v1
kind: Order
metadata:
  name: my-move-order
spec:
  moveItem:
    from: manufacturing
    to: logistics
    destinationAfterMove: waitingArea

apiVersion: example.com/v1
kind: Order
metadata:
  name: my-update-order
spec:
  installUpdate:
    url: https://myproject.com/updates/2020-03-10.tar.gz

对于真实世界的示例,您可以查看ewm云机器人项目:

我觉得我应该提出一个警告:如果您具有良好的网络连接,那么声明式API可能会有些过头,在这种情况下,您可能更喜欢使用VPN和ROS2 actionlib。另外,如果你认为你的API对于元控制器来说太复杂了,你想使用除了Python或Go之外的编程语言,那么你应该考虑把你的订单存储在像ReDIS或MySQL这样的数据库中,而不是使用Kubernetes apiserver(上次我检查过,对于Python或Go以外的语言没有良好的客户端支持)。.

相关问题 更多 >

    热门问题