QUARC:快速开发、部署和算法验证平台
+ 查看更多
2012年我还是多伦多大学的研究生,当时我正在研究一个四足机器人步态运动的方案。人工神经网络实时生成轨迹,在线响应四足机器人的步态变化,轨迹被转发到MATLAB中的Simscape Multibody工具箱中进行仿真。理想情况下,我应该建立一个月球车平台来验证结果,但由于时间和场地的影响,这是不可能的。快进到2021年,我仍然没有足够的资源从零开始建造我自己的月球车,但我现在可以访问Quanser的旋转伺服基础单元,以及我们的快速控制原型软件QUARC™,两者的结合使我能够通过发送真实的扭矩命令,使用回路中的各个伺服系统,在硬件上快速评估我的步态转换方案。
在最近的一次培训课程中,我的同事和我以类似的方式利用QUARC,根据学者们的需要随时提供定制的培训。在我们的培训课程接近尾声时,我们让工作人员使用两个QUBE-Servo2控制QBot 2e分别作为方向盘和油门踏板驾驶。QUARC能够让学者们专注于他们的实验,而不用担心与硬件的接口,这使它成为快速研究部署和验证的强大工具。
使用两个QUBE-Servo2驱动QBot 2e
QUARC并不难懂,但有点复杂
简单地说,QUARC可以做很多事情。如果我将它们全部列出,会受到大多数用户的欢迎。就我个人而言,我喜欢将QUARC的功能分为三个部分。
模块集
在MATLAB/Simulink中添加模块/函数会使使用QUARC开发应用程序非常方便。像System Timebase这样的模块,当添加到图表中时,可以使其实时模拟。或者To Host模块,可以在MATLAB/Simulink中记录数据,这些数据可以来自于远程运行在完全不同的机器上的外部代码。用户可以右键单击任何QUARC模块并点击帮助页面获取信息,或者在Simulink中查看QUARC demo菜单,查看这些模块是如何使用的。或者在MATLAB命令窗口中分别输入help quarc或qc_show_demos也可以实时查看Quarc Demo 库。
APIs
第二个方面包括3个API–HIL(硬件在环)、通讯流和媒体。简单地说,HIL允许您与Quanser硬件对话,如QUBE Servo 2、QDrone以及各种常用的第三方DAQ和设备。只要您在具有HIL Initialize块中选择对应设备的选项,您的代码就可以对该设备执行各种I/O操作。通讯流API允许不同的应用程序使用通信协议相互通信,媒体API允许您访问视频设备(2D摄像头,如网络摄像头或RealSense line等3D摄像头),设备API允许您访问激光雷达(RPLIDAR、YDLIDAR等)。
QUARC目标管理
第三个方面可能是所有方面中最复杂的,即QUARC目标管理器。它允许安装在同一网络上任何计算节点上的QUARC相互通信。在构建Simulink模型时,使用QUARC target Manager下载、加载和部署生成的外部代码到远程目标上。它为您提供了控制平台来监视这个过程的每个步骤,甚至让Simulink直接向您展示外部代码在运行MATLAB的机器上所做的事情。
如何成功使用QUARC开发应用程序
用QUARC成功开发应用程序我们要从两个方向进行分析:(1)在哪里运行我的应用程序?(2)我的程序用来做什么?我将按照我之前在这个博客中提到的QBot 2e驾驶例子的回答这些问题。
应用程序将在哪里运行?
该应用程序由两个计算节点组成,第一个是运行MATLAB的windows PC,第二个是作为QBot 2e计算大脑的Raspberry PI 3b +。两个设备连接到同一个网络。我们的应用程序分别在win64和linux_pi_3构建外部代码,并相应地设置了这两个设备的IP地址。QUARC自动地从Simulink模型中为相应类型的目标构建代码,并将其下载到那里。您不必担心交叉编译,也不必手动运行生成的代码。当你在Simulink中点击一个按钮时,它就会自动完成。
应用程序要做什么?
windows PC的应用程序连接到两个QUBE-Servo2,一个用于方向盘,另一个用于油门踏板。这需要HIL API的HIL读取模块在用户操作两个惯性盘的位置时读取伺服编码器数据。然后,此应用程序将此信息发送到QBot 2e应用程序,该应用程序需要通讯流API的服务器模块。第二个应用程序将接收此信息,并将相应的角速度命令写入QBot 2e的电机中,这需要Stream API的客户端模块以及HIL API的HIL写入模块。此外,第二个应用程序使用媒体API的Video3D捕获和视频显示模块向用户显示QBot 2e的Kinect摄像头采集到的视图,该视图位于连接到windows机器的一个监视器的屏幕上。
也就是说,我们必须发展正确的逻辑,当然,我们知道微分驱动机器人的基本方程,以便正确地实现逆微分运动学。我们确保所有命令都符合预期的正确约定。我们遵循基本示例(Simulink中的QUARC demo)来正确设置API。这些步骤并不困难,查看学习文档以及示例程序。在半小时内,我们的应用程序就可以部署好了。在接下来的10分钟内,我们让QBot 2e应用程序检查服务器是否连接,如未连接,则使用QUARC提供的一系列图像处理块(如过滤、阈值设置、连接组件标签等)自行驱动服务器,将程序部署好后我们就可以使用QUBE Servo 2驱动QBot 2e运行。
该文章由我们研发工程师Murtaza Bohra所写
分享到: