移动机器人的架构行为仿真
要仿真移动机器人的逻辑架构,请将 Simulink® 模型链接到组件或添加 Simulink 子系统组件。有关详细信息,请参阅使用 Simulink 实现组件行为。这些模型作为 Simulink 行为,可通过点击运行在 System Composer™ 中进行仿真。仿真显示了移动机器人如何按照控制器创建的轨迹行驶,以避开障碍物。
注意
此示例使用 Simscape™ 模块。如果您没有 Simscape 许可证,则可以打开模型,但只能进行基本更改,例如修改模块参数。
仿真架构行为
移动机器人示例包括一个定义了组件行为的逻辑架构。您可以运行仿真,观看移动机器人避开障碍物。
加载工程。
openProject("scMobileRobotExample");
向逻辑架构添加行为
逻辑架构模型描述了移动机器人系统的仿真行为:轨迹生成器、轨迹跟踪器、电机控制器、传感器算法以及机器人和环境。连接代表系统中的交互。打开没有行为的逻辑架构模型,双击文件或运行此命令。
systemcomposer.openModel("scMobileRobotLogicalArchitecture_Initial");
架构模型描述了机器人的行为,但实际上尚未将任何行为添加到架构中。通过添加 Simulink 或 Stateflow® 行为,还可以仿真逻辑架构。
根据组件的接口创建一个新行为。如果行为已存在模型或子系统文件,则使用 Link To Model
链接到现有模型或子系统。要为 Motor Controlle
r 组件创建新的子系统引用行为,请右键点击并选择 Create Simulink Behavior
,或者在工具条上点击创建 Simulink 行为。有关详细信息,请参阅使用 Simulink 实现组件行为。
您可以使用多种方法创建 Simulink 行为:Subsystem
、Subsystem Reference
和 Model Reference
。使用 Subsystem
创建子系统组件行为,该行为是父架构模型的一部分。使用 Subsystem Reference
或 Model Referenc
e 选项将行为保存为单独的工件,以便重用该行为。物理端口只能跨越子系统边界,因此对于物理系统,建议使用 Subsystem Reference
或 Subsystem
。
如果您已经在模型文件或子系统文件中定义了行为,请使用 Link To Model
将组件链接到相应的文件。在工具栏上,点击 Link to Model
,或右键点击 Environment
组件,然后选择 Link to Model
以链接到 Environment.slx
子系统文件。
移动机器人的逻辑架构模型
打开最终的逻辑架构,将行为添加到所有组件中。
systemcomposer.openModel("scMobileRobotLogicalArchitecture");
Robot Body
和 Environment
是支持物理端口的 Simulink 子系统引用组件。Trajectory Generator
是同样支持物理端口的 Simulink 子系统组件。Trajectory Follower
和 Motion Controller
组件则以 Simulink 引用模型的形式链接到这些组件。
仅基于端口信息创建行为算法。在设计逻辑架构时,您可以设置端口的接口以更详细地定义信息。例如,如果您知道以每秒 24 帧的速度捕获的 800 x 600 RGB 图像从相机传感器传输,则可以相应地设置相应的端口接口,以确保高效的数据传输。有关设置接口的更多信息,请参阅定义组件之间的端口接口。
通过选择组件,然后在工具栏中导航至格式 > 将图像添加到模块,将封装图标添加到组件。从工具文件夹中浏览一个封装图标。点击确定。
使用逻辑架构运行仿真
行为模型链接后,您可以像仿真其他 Simulink 模型一样,点击运行来仿真架构模型。仿真可验证 Transportation
、Collision Avoidance
和 Path Generation
等需求。
sim scMobileRobotLogicalArchitecture;
MotorController
组件行为的范围显示了简单的 P 增益控制器如何跟踪机器人一个车轮的参考速度。
在 Multibody Explorer (Simscape Multibody) 视图中,选择 切换到等轴测视图。观看移动机器人避开障碍物。
参考
[1] Rahman, Mohd Azizi Abdul, Katsuhiro Mayama, Takahiro Takasu, Akira Yasuda, and Makoto Mizukawa. “Model-Driven Development of Intelligent Mobile Robot Using Systems Modeling Language (SysML).” In Mobile Robots: Control Architectures, Bio-Interfacing, Navigation, Multi Robot Motion Planning and Operator Training, edited by Janusz Będkowski. InTech Open, 2011. https://doi.org/10.5772/26906.