电子书

第 5 章

仿真和实现


前面的章节介绍了可以让移动机器人自主运行的算法。如果使用物理移动平台测试这些算法以调优参数,不仅会有安全问题,并且可能耗费大量时间和资源。将算法部署到硬件平台之前,可以借助仿真测试平台针对边缘情形进行算法测试和优化。用于自主移动机器人 (AMR) 的仿真测试平台包括三部分:一个环境模型,一个机器人模型和一个传感器模型。

您可以在 MATLAB 和 Simulink 中创建这些仿真模型,也可以将 MATLAB 连接到 Gazebo 等外部三维仿真器。Robotics System Toolbox 提供了一种使用 Gazebo 执行协同仿真的方式。借助协同仿真,您可以在 MATLAB 中测试算法,并通过时间同步在 Gazebo 中分析其行为。您可以使用 Gazebo 中的各种传感器模型和周围环境模型在 MATLAB 中验证 AMR 的运行。

使用 Simulink 和 Gazebo 执行协同仿真。

使用 Simulink 和 Gazebo 执行协同仿真。

节

验证

您可以测试和确认仿真模型以验证其性能。Simulink Test™ 中提供的验证方法可让您在开发流程的早期测试您的设计。借助 Simulink Test,您可以创建测试框架,将测试环境与主要设计分离。您可以在模型或子系统上运行测试特定的仿真,同时在模型与测试框架之间同步设计更改。此外,您可以使用测试管理器管理、执行和比较测试用例。这样便可以集中管理测试并将测试追溯到需求(需要 Requirements Toolbox™)。

使用测试管理器管理测试用例。

使用测试管理器管理测试用例。

节

硬件实现

仿真和验证流程之后,是自主移动机器人 (AMR) 的硬件实现阶段,包括对接嵌入式目标以及部署算法。图像识别和点云处理等算法需要高处理能力,位姿估计和路径跟随控制等算法则需要高准确度。使用 MATLAB 和 Simulink,您可以根据处理需要灵活选择实现目标。

自主移动机器人实际实现过程概览。

自主移动机器人实际实现过程概览。

生成 ROS 和 ROS2 节点

ROS 又称机器人操作系统,是一个中间件包,支持机器人的分布式并行处理。ROS 发挥通信接口的作用,可以在机器人系统的不同部分之间架起桥梁,并支持其间的数据收发。ROS 网络涵盖机器人系统中通过 ROS 通信的各个部分(例如规划器或相机接口)。该网络可以分布到多台机器上。

ROS 可以方便地用于复杂系统,但是实时运行能力受限。虽然 ROS 提供了可视化工具,但是它并不包含产品开发流程需要的所有必要功能。相对地,新一代 ROS 2 支持多平台实时操作。

ROS Toolbox 可让 MATLAB 和 Simulink 与 ROS 和 ROS 2 紧密集成。您可以从 Simulink 模型生成 ROS 和 ROS2 节点,以在 MATLAB 和 Simulink 中设计、仿真和测试您的算法,并部署可以在 AMR 机载计算机上运行的独立节点。您还可以从 ROS 轻松迁移到 ROS2,只需替换 Simulink 模型中的部分模块即可。

ROS 与 Simulink 结合使用。

ROS 与 Simulink 结合使用。

使用 MATLAB Coder 和 GPU Coder 进行目标检测

您可以将 MATLAB Coder™GPU Coder™ 用于图像处理和深度学习应用等必须采用并行计算的处理。MATLAB Coder 支持用于快速深度学习网络的 Intel® MKL-DNN 和 ARM® Cortex® CPU。GPU Coder 还支持 NVIDIA® TensorRT™ 和 cuDNN 等加速库。使用针对目标优化的库,您可以高速执行学习算法。

实现深度学习网络。

实现深度学习网络。

实时硬件集成

将控制模型快速迁移到真实机器测试环境的方法称为快速控制原型 (RCP)。采用 RCP 开发方法,您可以在通用硬件上快速实现 Simulink 模型,无需手工编程和执行真实机器测试。这种方法提供了一种在硬件平台上快速测试和验证仿真模型的做法,改进了产品开发流程和产品质量。

创建 RCP 环境的一种方法是使用 Simulink Real-Time™。使用 Simulink Real-Time,您可以将算法快速部署到 RCP 硬件、在测试期间调整参数,并记录/监控信号。您还可以将 Simulink Real-Time 与 Speedgoat 配合使用来实现低级实时控制。您可以从 Simulink 模型创建实时应用,然后在连接到机器人硬件的 Speedgoat 目标计算机硬件上运行它们。

使用 Simulink Real-Time 和 Speedgoat 进行快速控制原型。

使用 Simulink Real-Time 和 Speedgoat 进行快速控制原型。

进一步了解仿真和实现