更新日志
4.0.0
2026-10-05
API
Added path failure diagnostics. Enable
Motion::PathRequest::diagnoseFailuresto get extra diagnostics when aMotion::Planner::pathcall fails.Added
Motion::ReplaceableToolandMotion::ToolGeometry.Motion::Planner::setReplaceableToolnow takes aMotion::ReplaceableTool, replacing the previous overload that took the tool meshes directly.Replaced
GoalswithMotion::ConfigurationGoals, holding the newMotion::ConfigurationGoal. It is now constructed implicitly from a list of configurations or of goals, replacingfromConfigurations. The goals are now read withMotion::ConfigurationGoals::goals, replacingjointConfigurations.Motion::Planner::computeInverseKinematicsnow takesMotion::PoseGoals, holding the newMotion::PoseGoal, instead of a list of poses. A list of poses still converts implicitly, but in C++ a braced list of poses now needs an extra pair of braces.Motion::Meshcan no longer be modified after it is created. RemovedtransformInPlaceandbottomCenterTransformInPlace, useMotion::Mesh::transformandMotion::Mesh::bottomCenterTransforminstead, which return a copy. ReplacedsetColorwithMotion::Mesh::withColor, which returns a copy.
C++
Motion::Meshcan now be copied.
Python
The
zivid_pythonmotionwheel now also supports Python 3.12.Python 3.10 reaches end of life in October 2026. Support for Python 3.10 is deprecated in this release and may be removed in a future release.
UserConfiguration.yml
The fields are now grouped into a
Generationand aRuntimesection.Moved the escape directions of each region of interest to
Runtime/RegionsOfInterest, matched toGeneration/Workspace/RegionsOfInterestbyId.Changing a field under
Runtimeno longer requires the cell data to be generated again.Added the
Generation/ConstrainedMovementsection, configuring how the robot tool is oriented during movements.SelfCollisionCheckLinksunderGeneration/AttachmentsandGeneration/AdaptivePartnow numbers the links from 1. Add one to each link in an existing file.Loading the cell fails when
SelfCollisionCheckLinkslists a link twice or a link the robot does not have.Renamed
StaticEnvironmentSafetyDistanceandDynamicEnvironmentSafetyDistancetoRuntime/PreferredMinClearance/StaticEnvironmentandRuntime/PreferredMinClearance/DynamicEnvironment. The planner keeps this clearance when it can, but does not guarantee it.
总体
Zivid Motion now requires an NVIDIA driver with support for CUDA 12.0, which is driver version 525.60.13 or newer.
Faster planner calls, planner startup and cell data generation, and lower memory use.
修复了若干错误。
3.2.0
2026-09-01
API
Added
Motion::Visualizer::setRobotConfigurationto set the robot configuration the Visualizer displays.Motion::packageApiLognow includes the API log itself in the archive it creates, so the archive is all Zivid needs to reproduce a logged session. The archive is created next to the log as<name>.zip, replacing the previous<name>-resources.zipwhich left the log out.
UserConfiguration.yml
Added
RobotBrand, the manufacturer of the robot.
总体
Various performance improvements.
错误修复
Motion::Planner::pathreports that the path is blocked, rather than that the goal is blocked, when the goal can be reached but no path leads to it.An exported API log now replays with the obstacles it recorded.
Fixed several minor bugs.
3.1.0
2026年8月12日
API
新增
Motion::Pose::fromXyzRpy,用于通过平移量和横滚、俯仰、偏航角构造位姿。新增
Motion::Pose::compose,用于合成两个位姿。新增实验性函数
Motion::Experimental::loadMesh,用于从磁盘文件读取网格。
C++
为
Motion::Tcp、Motion::Waypoint和Motion::Planner新增了流操作符。
Python
zivid_pythonmotionwheel 包现在支持所有受支持的 Python 版本,取代了此前按每个 Python 版本分别分发的方式。zivid_pythonmotionwheel 包现在声明了对 NumPy 的依赖。
RuntimeConfiguration.yml
新增
Performance/FreeCpuThreads,用于覆盖 Zivid Motion 在调整线程池大小时为用户保留的 CPU 线程数。此数值此前固定为 2。
总体
安装机器人单元软件包时,如果 Motion 资源目录尚不存在,现在会自动创建该目录。
打包机器人单元时,即使在不打包生成数据的情况下,现在也会包含源 URDF 和网格文件。
修复了若干错误。
3.0.0
2026年7月2日
API
Motion::Pose、Motion::Configuration、Motion::Path和Motion::Triangle现在是具体类型,取代了此前的类型别名(typedef)。移除了
PointXYZ和VectorXYZ类型别名,请改用Motion::Vector3f。将
TransformedBox重命名为Motion::BottomCenteredTransformedBox,并将其bottomCenteredTransform成员重命名为transform。Motion::Planner::computeInverseKinematicsnow takes a list of poses and returnsGoals, instead of a single pose returning an optional configuration.Replaced
PathRequest.goalConfigurationswithMotion::PathRequest::goals, using the newGoalstype.Motion::Profile现在使用小写形式(Testing/Production->testing/production)。新增了
Motion::Mesh类,可由Motion::Triangles或形状构造(Motion::Mesh::createBox、Motion::Mesh::createCylinder、Motion::Mesh::createSphere)。新增了
Motion::Mesh::transform和Motion::Mesh::transformInPlace。新增了
Motion::Mesh::bottomCenterTransform和Motion::Mesh::bottomCenterTransformInPlace。新增了实验性函数
Motion::Experimental::merge,用于将多个网格合并为一个。
Motion::Planner::setCarriedObject和Motion::Planner::setReplaceableTool现在接受Motion::Mesh作为参数。其他所有重载均已移除。Motion::Planner::setObstacles现在接受Motion::Mesh的列表作为参数。此前接受Motion::Triangles的重载已被移除。新增
Motion::Planner::replayApiLog,用于恢复规划器状态并回放此前导出的 API 日志。新增了
Motion::Pose和Motion::Matrix4x4类,并支持二者之间的相互转换。Added the
Goalstype andGoals::fromConfigurations.
C++
Motion::Application现在会验证头文件版本与库版本是否一致。
Python
Obstacle.PointCloud、Obstacle.Colors和Triangles现在可以直接由 numpy 数组构造,为大型点云和三角网格提供了性能更高的接口。BlendRadius和ColorRGBA现在以类的形式对外提供。导入
zividmotionwheel 包时,如果其版本与已安装的 C++ 库版本不一致,现在会发出警告。
错误修复
当所有目标配置均无效时,
Motion::Planner::path会返回错误结果。
Python
修复了
PathRequest构造函数的参数顺序问题,使按位置构造能够正常工作。
2.0.0
2026年3月31日
API
Zivid Motion API 的首次公开发布。