# Robotics Toolbox accel 报维度赋值错误

> 原文链接：https://robotics.hellobike.com/pitfalls/2019-07-15-robotics-se-19088
> 频道：pitfalls | 更新日期：2019-07-15 | 标签：auto, stackexchange, robotic-arm, matlab, dynamics, simulator
> 核心摘要：调用 robot.accel 报维度赋值错误，原因是未设置电机惯量 Jm，将各关节 Jm 设为 0 可解决。

# Robotics Toolbox accel 报维度赋值错误

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[3-DOF Robot Dynamics error in Robotics Toolbox](https://robotics.stackexchange.com/questions/19088/3-dof-robot-dynamics-error-in-robotics-toolbox)（Robotics Stack Exchange #19088）

**状态**：已解决

## 问题

在 Robotics Toolbox 中对 3 自由度 `SerialLink` 机器人执行 `robot.accel(q, zeros(1,3), zeros(1,3))` 时，报错 `Assignment has more non-singleton rhs dimensions than non-singleton subscripts`。

## 环境

MATLAB 版 Robotics Toolbox 动力学函数；3 DOF `SerialLink` 机器人；非 MEX 动力学版本。

## 解决办法

1. 在定义 `robot=SerialLink(L);` 后，为每个关节设置电机惯量：`for i=1:3 robot.links(i).Jm = 0; end`。
2. 也可以把 `Jm` 初始化加入机器人建模代码中。
3. 再运行 `robot.accel(q, zeros(1,3), zeros(1,3))`，可得到加速度结果。

原问题作者：Capri；采纳答案作者：Peter Corke。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #19088：3-DOF Robot Dynamics error in Robotics Toolbox](https://robotics.stackexchange.com/questions/19088/3-dof-robot-dynamics-error-in-robotics-toolbox)