第 5 章
仿真和实现
前面的章节介绍了可以让移动机器人自主运行的算法。如果使用物理移动平台测试这些算法以调优参数,不仅会有安全问题,并且可能耗费大量时间和资源。将算法部署到硬件平台之前,可以借助仿真测试平台针对边缘情形进行算法测试和优化。用于自主移动机器人 (AMR) 的仿真测试平台包括三部分:一个环境模型,一个机器人模型和一个传感器模型。
您可以在 MATLAB 和 Simulink 中创建这些仿真模型,也可以将 MATLAB 连接到 Gazebo 等外部三维仿真器。Robotics System Toolbox 提供了一种使用 Gazebo 执行协同仿真的方式。借助协同仿真,您可以在 MATLAB 中测试算法,并通过时间同步在 Gazebo 中分析其行为。您可以使用 Gazebo 中的各种传感器模型和周围环境模型在 MATLAB 中验证 AMR 的运行。
验证
您可以测试和确认仿真模型以验证其性能。Simulink Test™ 中提供的验证方法可让您在开发流程的早期测试您的设计。借助 Simulink Test,您可以创建测试框架,将测试环境与主要设计分离。您可以在模型或子系统上运行测试特定的仿真,同时在模型与测试框架之间同步设计更改。此外,您可以使用测试管理器管理、执行和比较测试用例。这样便可以集中管理测试并将测试追溯到需求(需要 Requirements Toolbox™)。
生成 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 模型中的部分模块即可。
使用 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 目标计算机硬件上运行它们。
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)