# Simulink 调用 Robotics Toolbox 报类转换错误

> 原文链接：https://robotics.hellobike.com/pitfalls/2019-08-04-robotics-se-11165
> 频道：pitfalls | 更新日期：2019-08-04 | 标签：auto, stackexchange, robotic-arm, matlab, simulator, robotics-toolbox
> 核心摘要：Simulink 的 MATLAB Function 块无法将 Robotics Toolbox 类转成 C 代码，可改用解释执行函数块或 S-function。

# Simulink 调用 Robotics Toolbox 报类转换错误

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Does simulink accepts robotics toolbox in matlab?](https://robotics.stackexchange.com/questions/11165/does-simulink-accepts-robotics-toolbox-in-matlab)（Robotics Stack Exchange #11165）

**状态**：已解决

## 问题

在 Simulink 的 MATLAB Function 块中用 `Link`、`SerialLink` 和 `ikine` 做机械臂逆解时报错；命令行可运行但出现 `solution diverging`、`iteration limit 1000 exceeded`、`matrix not orthonormal rotation matrix`。

## 环境

嵌入式控制器 / 串口通信

## 解决办法

1. 不要把 Robotics Toolbox 类直接放进 Simulink 的 MATLAB Function 块生成 C 代码。
2. 将相关代码放入独立的 `m-file`，再通过 `Interpreted MATLAB Fcn` 块调用。
3. 或者改写为 `S-function`。
4. 逆解不收敛问题可尝试使用更新的 `RTB10.x`，原文称其 `ikine` 更好。

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

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #11165：Does simulink accepts robotics toolbox in matlab?](https://robotics.stackexchange.com/questions/11165/does-simulink-accepts-robotics-toolbox-in-matlab)