有什么方法可以使用 pickle 或其他方式序列化和反序列化对象(例如 pydrake.trajectories.PiecewisePolynomial、Expression ...)?
当我序列化它时它不会抱怨,但是当我尝试从文件加载时它会抱怨:
TypeError: pybind11_object.__new__(pydrake.trajectories.PiecewisePolynomial) is not safe, use object.__new__()
有什么方法可以使用 pickle 或其他方式序列化和反序列化对象(例如 pydrake.trajectories.PiecewisePolynomial、Expression ...)?
当我序列化它时它不会抱怨,但是当我尝试从文件加载时它会抱怨:
TypeError: pybind11_object.__new__(pydrake.trajectories.PiecewisePolynomial) is not safe, use object.__new__()
是否有您想要序列化/pickle 的类列表?
我可以为您创建一个问题,或者如果您已经有了一个列表,您也可以创建一个。
更多背景:
酸洗pybind11
(这是什么pydrake
用途)必须手动定义:
https ://pybind11.readthedocs.io/en/stable/advanced/classes.html#pickling-support
目前,我们在 Drake 中没有路线图来序列化所有内容,因此目前它是基于每个类的。
例如,对于酸洗RigidTransform
:问题链接和公关链接
一个更简单的酸洗示例CameraInfo
:PR 链接
(FTR,如果一个对象很容易从它的构造参数中恢复,那么定义酸洗应该是微不足道的。