Script(一)

2020-08-04 18:44:18 浏览数 (1)

V-REP是一个高度可定制的仿真器:仿真的每个方面都可以定制。此外,可以通过一个复杂的应用程序编程接口(API)对仿真器本身进行定制和定制,使其行为完全符合预期。该软件支持六种不同的编程或编码方法,每一种都有其独特的优点(当然也有明显的缺点),但是所有六种方法都是相互兼容的(即可以同时使用,甚至是同步使用)。模型、场景或模拟器本身的控制实体可以位于其中: an embedded script嵌入式脚本(即通过脚本定制模拟(即场景或模型)):编写Lua脚本保证与其他所有默认V-REP安装的兼容性(只要不使用定制的Lua命令,或与分布式插件一起使用)。这种方法允许定制特定的仿真、仿真场景,并在一定程度上定制仿真器本身。这是最简单和最常用的编程方法。 an add-on or the sandbox script一个插件或沙箱脚本:这个方法包括编写Lua脚本,允许快速定制模拟器本身。附加组件(或沙箱脚本)可以自动启动并在后台运行,也可以作为函数调用(例如,编写导入/导出时很方便)。附加组件不应该特定于某个模拟或模型,它们应该提供更通用的、与模拟程序绑定的功能。 a plugin插件(即定制模拟器/通过插件定制模拟器):这种方法基本上包括为V-REP编写插件。通常,插件仅用于提供带有定制Lua命令的模拟,因此与第一种方法结合使用。其他时候,插件用来为V-REP提供一种特殊的功能,这种功能需要快速计算能力(脚本通常比编译语言慢)、硬件设备的特定接口(例如,一个真正的机器人)或与外部世界的特殊通信接口。 a remote API 远程API客户端(即通过远程API客户端应用程序定制模拟器或定制模拟器):这种方法允许外部应用程序(例如位于机器人、另一台机器等)使用远程API命令以一种非常简单的方式连接到V-REP。 a ros node ROS节点(即自定义模拟器和/或通过ROS节点进行模拟):此方法允许外部应用程序(例如位于机器人、另一台机器等上的应用程序)通过ROS(机器人操作系统)连接到V-REP。

BlueZero节点(即通过BlueZero节点定制模拟器和/或模拟):该方法允许外部应用程序(例如位于机器人、另一台机器等)通过BlueZero连接到V-REP。 在外部控制器教程中还讨论了上述6种方法。下表详细描述了每种方法各自的优缺点:

下图展示了V-REP内部和周围的各种定制可能性:

上图所示的各种通信或消息传递机制将在下文简要描述: *从主客户端应用程序或常规API的插件调用C/ c API。如果语言提供了调用C函数的机制(例如,在Java的情况下,引用Java本机接口(JNI)),则可以从非C/ C 应用程序中产生。 *有序调用/执行子脚本。在主脚本中的由sim.handleChildScripts发起。

*从主脚本、子脚本或自定义脚本到常规API的调用Lua API。所有的调用都指向V-REP引擎,除了调用回插件的自定义Lua函数。 *从模拟器到插件的回调调用。回调调用源自对自定义Lua函数的Lua脚本调用(参见前面的项目)。 *从模拟器到插件的事件回调调用。请参考sim_message_eventcallback_type消息。 *来自外部应用程序、机器人、远程pc等的遗留远程API调用。 *在V-REP和外部应用程序、机器人、远程pc等之间进行ROS数据交换。 *与外部应用程序的插座、管道、串口等连接。 *从附加组件或沙箱脚本到常规API的Lua API调用。除了调用插件的自定义Lua函数外,所有调用都直接指向V-REP引擎。 *从V-REP引擎到定制脚本的执行调用。 *在V-REP和外部应用程序、机器人、远程pc等之间的数据交换。 *来自外部应用程序、机器人、远程pc等的基于b0的远程API调用。

下面介绍API框架:

V-REP API框架将围绕V-REP的所有接口分组。它有5 1种不同的类型: 常规的API 远程API ROS接口 BlueZero接口 辅助API 其他接口 虽然常规的API可以从内部访问模拟器(例如,从嵌入式脚本,一个插件,插件或主要客户端应用程序),远程API, ROS接口和BlueZero接口可以访问几乎任何可能的外部应用程序或硬件(包括真实的机器人、远程计算机等)。辅助API本身并不是一个接口,而是一组可以嵌入的辅助函数,它们可以自己操作。其他接口项将用户扩展可用接口的所有可能性分组。下图展示了各种接口的概述:

0 人点赞