Google Cloud Robotics通讯

问题描述 投票:1回答:1

我目前正在从事有关机器人技术的项目,我们正在与Google Cloud Robotics Core合作,并且我了解与机器人(ROS 2)进行通信的最佳方法是使用声明性API。

我已经阅读了本教程,但我想了解更多信息。我向机器人发送订单的方式到底如何?

“创建代表订单的自定义资源定义(CRD)。通过创建自定义资源从云发送订单。在机器人上创建控制器,该控制器查看订单并执行订单”

如果我需要发送诸如“ init”,“ stop”,“ update your code”之类的命令,它会起作用?

感谢您的帮助!

python kubernetes google-cloud-platform robotics google-cloud-robotics
1个回答
0
投票

“更新您的代码”就是一个很好的例子。也许“ 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-cloud-robotics项目:

我觉得我应该警告:如果您具有良好的网络连接,则声明性API可能会过大,在这种情况下,您可能更喜欢使用VPN和ROS2 actionlib。另外,如果您认为API对于metacontroller而言过于复杂,并且您想使用Python或Go以外的编程语言,则应考虑将订单存储在Redis或MySQL之类的数据库中,而不要使用Kubernetes apiserver(最后我检查过,除Python或Go之外,没有其他语言对客户端的良好支持。

© www.soinside.com 2019 - 2024. All rights reserved.