Boston Dynamic(波士顿动力)开源相关-ProtoBuf描述
其实我应该是整理过这样的文章,就是稿子太多,遗失在草稿箱了。借着这次小米机械狗的由头,对这个也进行一些汇总。其实也没有开源多少。。。
Boston Dynamics
关键词,任何搜索引擎都可以搜索的词
使用谷歌搜索,也只能出现这么多
小声逼逼:以后我的文章就有啦!
https://github.com/boston-dynamics/spot-sdk
先放最重要的东西,SDK
纯Python接口
包不小,稍等一会儿就搞下来了
readme
波士顿的库,只有两个
机械狗的外表
有5对摄像头,提供黑白图像和视频
侧边图
Spot 在每个臀部有 2 个执行器,每个膝盖有一个执行器。对于每个旋转平面,髋关节被称为 HX 和 HY。这会在每个轴上创建以下自由度和限制:
12 个自由度,每条腿 3 个
髋关节 X 轴 (HX):垂直 +/- 45 度(垂直内旋和外旋 45 度)
髋关节 Y 轴 (HY):+/- 91 度,与垂直(屈曲/伸展)有 50 度偏差
膝盖:从直线开始 +/- 14-160 度(屈曲/伸展范围从 14 到 160 度)
腿被称为前或后和左或右。例如,左前腿为 FL,或左后腿为 HL。一条腿的完整关节参考如下所示:
fl.hx 指左前臀 X
fl.hy 指左前臀Y
fl.kn 指左前膝
机器人的坐标
结果就是找到了这些
安装这两个插件
接着这些结构化的数据会变得有色彩起来
https://www.jianshu.com/p/a24c88c0526a
在简书上面找到一篇很不错得讲解的文章
目录
protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。你可以定义数据的结构,然后使用特殊生成的源代码轻松的在各种数据流中使用各种语言进行编写和读取结构数据。你甚至可以更新数据结构,而不破坏由旧数据结构编译的已部署程序。
编码结构
https://developers.google.com/protocol-buffers/
谷歌的文档地址
XML、JSON、ProtoBuf 都具有数据结构化和数据序列化的能力
XML、JSON 更注重数据结构化,关注人类可读性和语义表达能力。ProtoBuf 更注重数据序列化,关注效率、空间、速度,人类可读性差,语义表达能力不足(为保证极致的效率,会舍弃一部分元信息)
ProtoBuf 的应用场景更为明确,XML、JSON 的应用场景更为丰富。
https://developers.google.com/protocol-buffers/docs/pythontutorial
对于这个协议Python的解析法
这个东西满足了序列化的操作:
序列化就是:有时候客户端和服务端使用的都不是同一种语言(比如服务端用C++,客户端用Java或者Python)。这时候就需要客户端把参数先转成一个字节流,传给服务端后,再把字节流转成自己能读取的格式。这个过程叫序列化和反序列化。同理,从服务端返回的值也需要序列化反序列化的过程。
在这里是Python文件的二进制包,可以直接安装
https://dev.bostondynamics.com/docs/python/understanding_spot_programming
这个链接里面有着一切开始编程的例子
其实已经说明使用的是ProtoBuf的序列协议
使用SE3Pose这个结构来封装平移和旋转
在这里拥有着所有的文档集合
在文件夹的这里是大量的Python源码
如这个函数就是我们经常使用的一个数学函数
处理矩阵使用
由 Yaw('Z')-Roll('X')-Pitch('Y') 阶欧拉角表示的方向。每个角度都以弧度表示
这个就是具体的函数
源码之间是互相依赖的,静态的pylance读取不到必要的信息
具体的错误在这里,
还有很多细节,我没机器也演示不了,就这样了。