我目前正在从事一个关于机器人技术的项目,我们正在与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"
如果我需要发送诸如“初始化”、“停止”、“更新代码”之类的命令,它就可以工作了
谢谢你的帮助
“更新你的代码”就是一个很好的例子。也许“init”是不必要的,因为机器人可以在寻找订单之前在启动时自动初始化自己。类似地,您可以取消或删除任何现有订单,而不是创建“停止”订单,机器人将在没有活动订单时停止
API的细节将在很大程度上取决于您的用例。理想情况下,订单将是自包含的,因此接收订单的机器人即使中途失去网络连接也可以执行订单。例如,我尝试改编tutorial中的示例以反映您的建议:
或
对于真实世界的示例,您可以查看ewm云机器人项目:
我觉得我应该提出一个警告:如果您具有良好的网络连接,那么声明式API可能会有些过头,在这种情况下,您可能更喜欢使用VPN和ROS2 actionlib。另外,如果你认为你的API对于元控制器来说太复杂了,你想使用除了Python或Go之外的编程语言,那么你应该考虑把你的订单存储在像ReDIS或MySQL这样的数据库中,而不是使用Kubernetes apiserver(上次我检查过,对于Python或Go以外的语言没有良好的客户端支持)。.
相关问题 更多 >
编程相关推荐