用于计算机的软件大脑,可以执行各种任务。从娱乐和游戏到数据挖掘再到物理机器人技术,无所不包。这是人工智能领域一个很棒的业余爱好领域,有很多感兴趣的领域可以探索。我将其大致分为两个部分:纯粹基于软件的代理的人工智能,以及用于具身代理(即使只是模拟)的人工智能。
也称为智能软件代理或简称代理,人工智能研究的这个领域涉及小型程序的简单应用,这些程序可以帮助用户完成其工作。它们可以是移动的(能够在一台机器上停止执行并在另一台机器上恢复执行)或静态的(驻留在一台机器中)。它们通常特定于任务(因此相当简单),旨在像助手一样帮助用户。
2APL(发音为 double-a-p-l)是一种面向代理的编程语言,有助于实现多代理系统。在多代理级别,它提供了编程构造,用于根据一组个体代理、一组它们可以执行动作的环境以及个体代理和环境之间的访问关系来指定多代理系统。在个体代理级别,它提供了编程构造,用于实现基于 BDI 架构的认知代理。
3APL 是一种用于实现认知代理的编程语言。它提供了编程构造,用于实现代理的信念、目标、基本能力(例如信念更新、外部动作或通信动作)以及一组实用的推理规则,通过这些规则可以更新或修改代理的目标。 3APL 程序在 3APL 平台上执行。每个 3APL 程序都通过解释器执行,该解释器负责考虑该代理的认知态度。
Agent 是信息代理系统的原型。它是平台和语言独立的,因为它将包含的信息存储在简单的打包字符串中。它可以打包并以任何格式跨任何网络传输,因为它会将其自身冻结在其当前状态。
agentTool 是一个基于 Eclipse 的图形开发环境,旨在帮助用户分析、设计和实现多代理系统。它旨在支持高度可定制的基于组织的 Multiagent Systems Engineering (O-MaSE) 方法。 agentTool 当前支持所有 O-MaSE 模型,包括目标模型、代理模型、角色模型、组织模型、协议模型、计划模型、能力-行动模型、领域模型和策略模型。
Aglet 是一个 Java 对象,可以在 Internet 上的主机之间移动。也就是说,在一个主机上执行的 aglet 可以突然停止执行,调度到远程主机,并在那里恢复执行。当 aglet 移动时,它会带上它的程序代码以及它的状态(数据)。内置的安全机制使计算机可以安全地托管不受信任的 aglet。 Java Aglet API (J-AAPI) 是一个拟议的公共标准,用于连接 aglet 及其环境。 J-AAPI 包含用于初始化 aglet、消息处理和调度、撤回、停用/激活、克隆和处置 aglet 的方法。 J-AAPI 简单、灵活且稳定。应用程序开发人员可以编写平台独立的 aglet,并期望它们在任何支持 J-AAPI 的主机上运行。
AJA(可适应的 Java 代理)由两种编程语言组成。 HADL(高级代理定义语言)是一种用于描述主要代理部分的高级语言。 Java+ 是一种低级语言,用于编程在 HADL 中定义的代理部分。它实际上是 Java,其中丰富了用于访问在 HADL 中定义的高级代理部分的构造。
ALICE 软件实现了 AIML(人工智能标记语言),这是一种非标准的不断发展的标记语言,用于创建聊天机器人。 AIML 的主要设计特点是极简主义。与其他聊天机器人语言相比,AIML 可能是最简单的。模式匹配语言非常简单,例如,每个模式只允许一个通配符 ('*') 匹配字符。 AIML 是一种 XML 语言,这意味着它遵守某些语法元规则。选择 XML 语法允许与其他工具(如 XML 编辑器)集成。 XML 的另一个动机是其熟悉的外观和感觉,尤其是对于具有 HTML 经验的人来说。
APRIL 是一种符号编程语言,旨在编写移动的、分布式的和基于代理的系统,尤其是在 Internet 环境中。它具有高级功能,例如宏子语言、异步消息发送和接收、代码移动性、模式匹配、高阶函数和强类型。该语言被编译为字节码,然后由 APRIL 运行时引擎解释。 APRIL 现在需要安装 InterAgent Communications Model (ICM) 才能安装。[编者注:ICM 可以在同一网站找到]
Ara 是一个平台,用于在异构网络中可移植且安全地执行移动代理。从这个意义上讲,移动代理是指在执行过程中能够更改其主机并在保留其内部状态的同时进行更改的程序。这使他们能够在本地处理交互,否则这些交互必须远程执行。 Ara 与类似平台相比的特定目标是在保留尽可能多的已建立编程模型和语言的同时,提供完整的移动代理功能。
Bee-gent 是一种新型的开发框架,因为它是一个 100% 纯代理系统。与其他仅部分使用代理的系统相反,Bee-gent 完全“代理化”了软件应用程序之间发生的通信。应用程序成为代理,所有消息都由代理携带。因此,Bee-gent 允许开发人员构建灵活的开放式分布式系统,从而优化现有应用程序的使用。
Bond 是一个基于 Java 的分布式对象系统和代理框架。它实现了基于消息的中间件和相关服务,如目录、持久性、监控和安全性。 Bond 允许轻松构建多代理分布式应用程序。 Bond 的另一个应用将是支持数据注释和元计算的虚拟实验室。
Cougaar 是一个基于 Java 的架构,用于构建大规模分布式基于代理的应用程序。它是多年 DARPA 大型代理系统研究项目的成果,不仅包括核心架构,还包括各种演示、可视化和管理组件,以简化复杂分布式应用程序的开发。[又是另一个基于 java 的代理系统 -- 编辑。]
可传输代理是一个程序,可以在异构网络中的机器之间迁移。程序选择何时何地迁移。它可以暂停其在任意点的执行,传输到另一台机器并在新机器上恢复执行。例如,携带邮件消息的代理首先迁移到路由器,然后迁移到收件人的邮箱。代理可以在每台机器上执行任意复杂的处理,以确保消息到达预期的收件人。
DIET Agents 是一个轻量级、可扩展且健壮的 Java 多代理平台。它特别适合快速开发 P2P 原型应用程序和/或自适应的、分布式的应用程序,这些应用程序使用自下而上、受自然启发的技术。
FM - 人工智能研究所 (IIIA-CSIC) 进行的 FishMarket 项目旨在通过开发 FM 来为此方向做出贡献,FM 是一个由代理介导的电子拍卖行,已发展成为电子拍卖市场的试验平台。该框架被构思和实现为 FM96.5(Fishmarket 拍卖行的基于 Java 的版本)的扩展,允许定义基于鱼市场拍卖(荷兰式拍卖)的交易场景。 FM 提供了框架,代理设计人员可以在其中进行受控实验,从而可以指定、激活和记录多种实验性市场场景(我们将其视为锦标赛场景,因为该领域具有竞争性),这些场景具有不同程度的真实性和复杂性;并对交易(买方和卖方)异构(人和软件)代理进行比较、调整和评估。
另一个 Java 代理系统。功能齐全且正在积极开发中。商业用途,但免费。历史上针对嵌入式系统。
Hive 是一个用于创建分布式应用程序的 Java 软件平台。使用 Hive,程序员可以轻松创建连接和使用来自整个 Internet 的数据的系统。 Hive 的核心是分布式代理生存、通信和移动以实现应用程序的环境。我们正在努力使互联网充满活力。
Inter-Agent Communication Model (ICM) 是一种通信机制,可用于在代理之间以异步方式发送消息。其预期应用领域是作为代理通信语言 (ACL)(例如 KQML 和 FIPA 的 ACL)的传输机制。
Jacomma 是一个代理开发平台/框架,用于开发具有异构通信功能的分布式、移动和反应式信息代理,使用 Java 和 JPython。
Jacomma 提供了一个开发框架和一个执行环境,它位于 Inter-Agent Communication Model 基础设施之上。 ICM 定义了一种通信协议、一种存储和转发消息传递架构以及用于消息交换的低级通信基础设施。通信是真正的异步的,基于 TCP 套接字。
ICM 在本 HOWTO 中有一个条目,或者您可以从该站点上的链接找到它。
JADE(Java Agent DEvelopment Framework,Java 代理开发框架)是一个完全用 Java 语言实现的软件框架。它通过声称符合 FIPA 规范的中间件以及一组支持调试和部署阶段的工具,简化了多代理系统的实现。代理平台可以分布在多台机器上(甚至不需要共享相同的操作系统),并且可以通过远程 GUI 控制配置。配置甚至可以在运行时更改,方法是根据需要将代理从一台机器移动到另一台机器。
JAM 同时支持自上而下的、基于目标的推理和自下而上的数据驱动推理。如果未使用元级别推理,JAM 会根据最大优先级选择目标和计划,或者如果存在用户开发的元级别推理计划,则会选择这些计划。 JAM 对目标和目标实现的概念化更经典地定义(UMPRS 比真正基于目标的更基于行为绩效),并区分了实现目标的计划和仅编码行为的计划。实现的目标类型包括成就(达到指定的世界状态)、维护(重新达到指定的世界状态)和绩效。支持同时执行多个目标,每个目标(即意图)线程都具有挂起和恢复功能。 JAM 计划具有显式的前提条件和运行时属性,这些属性限制了它们的适用性、后置条件属性以及用于指定计划/领域特定计划功能的计划属性部分。可用的计划构造包括:排序、迭代、子目标化、原子(即,不可中断)计划段、n 分支确定性和非确定性条件执行、多个计划段的并行执行、基于目标的或基于世界状态的同步、显式故障处理部分以及通过将其构建到 JAM 中以及通过 Java 的反射功能调用预定义(即,遗留)类成员来定义 Java 原始函数,而无需将其构建到 JAM 中。
JASA 是一个高性能拍卖模拟器,适用于在基于代理的计算经济学中进行实验。它实现了计算经济学文献中描述的各种拍卖机制、交易策略和实验,并且随着软件的成熟,我们希望它将成为常用机制、策略和学习算法的参考实现库。
用于扩展版本 AgentSpeak 的基于 Java 的解释器。与其他 BDI(信念-愿望-意图)代理工具不同,Jason 实现了 AgentSpeak 的操作语义,AgentSpeak 是一种在文献中广泛讨论的 BDI 逻辑编程语言。它在 GNU LGPL 下以开源形式提供。
JATLite 提供了一组 Java 包,可以轻松地使用 Java 构建多代理系统。 JATLite 仅提供轻量级、小型的软件包集,以便开发人员可以轻松处理所有软件包。为了灵活性,JATLite 提供了从抽象到路由器实现的四个不同层。用户可以访问我们提供的任何层。每一层都有不同的一组假设。用户可以根据层上的假设和用户的应用程序选择合适的层。介绍页面包含 JATLite 功能和每一层的假设集。
JAT 提供了一个功能齐全的模板,完全用 Java 语言编写,用于构建软件代理,这些代理与分布在 Internet 上的其他代理社区进行点对点通信。尽管定义每个代理的代码部分是可移植的,但 JAT 代理不是可迁移的,而是在单个主机上具有静态存在。这种行为与许多其他“代理”技术形成对比。(但是,使用 Java RMI,JAT 代理可以通过驻留在该主机上的代理动态迁移到外部主机)。目前,所有代理消息都使用 KQML 作为顶级协议或消息包装器。 JAT 包括动态交换“资源”的功能,这些资源可以包括 Java 类(例如,新语言和解释器、远程服务等)、数据文件和内联到 KQML 消息中的信息。
Lyntin 是一个可扩展的 Mud 客户端和框架,用于创建自主代理或机器人,以及一般的 mudding。 Lyntin 以 Python 为中心,Python 是一种动态的、面向对象的且有趣的编程语言,并且基于 TinTin++,一个可爱的 mud 客户端。
Mole 是一个代理系统,支持用 Java 编程的移动代理。 Mole 的代理由一组对象组成,这些对象没有对外部的引用,并且作为一个整体处理用户或其他代理给出的任务。它们能够自主地漫游“位置”网络。这些“位置”是底层网络中真实存在的节点的抽象。他们可以通过与代表这些服务的专用代理通信来使用特定于位置的资源。代理能够使用其他代理提供的服务并提供服务。
Narval 是“Network Assistant Reasoning with a Validating Agent Language”的首字母缩写。它是一个基于人工智能和代理技术的个人网络助手。它执行配方(动作序列)来执行任务。使用 XML 指定新动作并使用 Python 实现它很容易。可以使用图形界面构建和调试配方。
NeL 实际上是一个游戏开发库(用于大型多人游戏),但我将其包含在此处是因为它(将)包含一个相当大的人工智能库。以下是白皮书中的一段摘要
人工智能库的目的是提供一种务实的方法来创建分布式代理平台。它的重点是代理;独立的实体,它们使用动作-反应模型进行通信,而与位置无关。
开放代理架构是一个框架,其中分布在分布式机器上的软件代理社区可以共同处理社区中人类或非人类参与者分配的任务。分布式协作和高级通信是 OAA 基础的两个核心思想。
它定义了一种代理间通信语言,并支持多种平台和编程语言。
OpenCV (Open Source Computer Vision,开源计算机视觉) 是一个主要针对实时计算机视觉的编程函数库。
OpenCV 库的示例应用包括人机交互 (HCI);对象识别、分割和识别;人脸识别;手势识别;运动跟踪、自我运动、运动理解;运动结构 (SFM);和移动机器人技术。
开放认知框架 (OpenCog) 是用于安全和有益的人工通用智能协同开发的软件。
OpenCog 为研究科学家和软件开发人员提供了一个通用平台,用于构建和共享人工智能程序。该框架包括
OpenSteer 是一个 C++ 库,旨在帮助在游戏和动画中为自主角色构建转向行为。 OpenSteer 提供了一个应用程序,该应用程序显示转向行为的预定义演示。您可以原型化、可视化和调试您自己的插件。
ORTS 是一个编程环境,用于研究实时人工智能问题,例如路径查找、处理不完善的信息、调度以及 RTS 游戏领域的规划。这些游戏节奏快且非常受欢迎。此外,RTS 游戏人工智能的当前状态黯淡,这主要是由于缺乏规划和学习 - 在这些领域,人类目前比机器要好得多。因此,RTS 游戏成为实时人工智能研究的理想试验平台。不幸的是,商业 RTS 游戏是封闭软件,这阻止了研究人员将远程人工智能模块连接到它们。此外,商业 RTS 游戏基于点对点技术 - 简而言之,点对点技术在所有玩家机器上运行整个模拟,并且仅对玩家隐藏部分游戏状态。通过篡改客户端软件,有可能泄露整个游戏状态,从而获得不公平的优势。我们认为这对于在互联网上玩游戏是不可接受的。因此,我们启动了 ORTS 项目,以创建一个免费的软件系统,让人们和机器玩公平的 RTS 游戏。通信协议是公开的,所有源代码和艺术作品都是免费提供的。用户可以连接他们喜欢的任何客户端软件。服务器/客户端架构使这一切成为可能,在该架构中,只有当前可见的游戏状态部分会发送给玩家。这种开放性带来了新的和有趣的可能,从自主人工智能玩家的在线锦标赛到衡量他们的比赛实力,再到混合系统,在混合系统中,人类玩家使用复杂的 GUI,使他们能够将任务委托给性能不断提高的人工智能助手模块。
Penguin 是一个 Perl 5 模块。它为您提供了一组函数,使您能够
Ps-i 是一个用于运行基于代理的模拟的环境。它是跨平台的,提供 Win32 的二进制文件。功能包括
Pyro 是一个库、环境、图形用户界面和底层驱动程序,用于使用 Python 语言探索人工智能和机器人技术。它适用于许多真实的机器人平台和模拟器。广泛的算法,包括基于行为的、视觉(运动跟踪、斑点等)、学习(反向传播、自组织映射等)、进化等等。
Quackle 是一款世界一流的填字游戏人工智能和分析工具。它包括移动生成器、模拟器和基于 Qt 的用户界面,并且可以与任何棋盘布局、字母表、词典和图块分布一起使用。
Recast 是用于游戏的最先进的导航网格构建工具集。
该库可免费用于商业用途,并在 ZLib 许可证下开源。
Recast 附带 Detour,路径查找和空间推理工具包。您可以将任何导航网格与 Detour 一起使用,但当然使用 Recast 生成的数据非常适合。
Detour 提供简单的静态导航网格,适用于许多简单情况,以及平铺导航网格,允许您插入和拔出网格片段。平铺网格允许创建系统,您可以在玩家推进关卡时流式传输新的导航数据,或者您可以在世界变化时重新生成平铺。
Remembrance Agents 是一组应用程序,它们监视用户的肩膀并建议与当前情况相关的信息。虽然基于查询的记忆辅助工具可以帮助直接回忆,但 remembrance agents 是一种增强的联想记忆。例如,RA 的文字处理器版本会不断更新与在 emacs 缓冲区中键入或阅读的内容相关的文档列表。这些建议的文档可以是可能与您当前正在编写或阅读的内容相关的任何文本文件。它们可能是与您当前正在阅读的邮件相关的旧电子邮件,或讨论您的写作主题的论文和报纸文章的摘要。
SimAgent 工具包为与各种程度和种类的复杂环境中的交互代理的开发相关的研究和教学提供了一系列资源。它可以作为纯模拟工具运行,也可以安装在具有足够强大的板载计算机(例如运行 linux)的机器人中。它最初是为支持对类人智能代理的探索性研究而开发的,但也已用于学生项目,开发各种交互式游戏和模拟。
spyse 是一个开发框架和平台,用于使用 Python 编程语言构建多智能体系统。多智能体系统 (MAS) 结合了分布式计算和人工智能的概念。智能体是自主推理的软件实体,可以协作(或竞争)以实现(共同)目标。通过合作,它们在系统中产生涌现行为(分布式人工智能)。MAS 的架构在 FIPA 标准中指定。
Spyse 提供了多种推理(BDI 逻辑、CLIPS 专家系统等)以及本地和远程通信的方式。
每个智能体都有自己的控制线程。平台实例内部和之间的智能体通过交换基于本体的消息进行通信。Spyse 使用为语义网定义的 Web 本体语言 (OWL)。
TKQML 是 Tcl/Tk 的 KQML 应用程序/附加组件,它允许基于 Tcl 的系统使用强大的智能体通信语言轻松地进行通信。
智能体是一个可以在计算机网络中迁移的进程,以满足客户端提出的请求。智能体是描述全网络计算的一种有吸引力的方式。
TACOMA 项目专注于智能体的操作系统支持,以及如何使用智能体来解决传统上由操作系统解决的问题。我们已经实施了一系列原型系统来支持智能体。
TACOMA 1.2 版本基于 UNIX 和 TCP。该系统支持用 C、Tcl/Tk、Perl、Python 和 Scheme (Elk) 编写的智能体。它用 C 语言实现。此 TACOMA 版本自 1996 年 4 月起已进入公共领域。
我们目前专注于异构性、容错性、安全性和管理问题。此外,几个 TACOMA 应用程序正在建设中。我们使用 TACOMA 和 Java 实现了 StormCast 4.0,这是一个可通过互联网访问的广域网络天气监测系统。我们现在正在评估此应用程序,并计划构建一个新的 StormCast 版本,计划于 1997 年 6 月完成。
UMPRS 支持自上而下的、基于目标的推理,并根据最大优先级选择目标和计划。支持执行多个并发目标,每个目标(即意图)线程都具有暂停和恢复功能。UMPRS 计划具有集成的先决条件/运行时属性,这些属性约束了其适用性。可用的计划构造包括:排序、迭代、子目标、原子(即不可中断)块、n 分支确定性条件执行、显式故障处理部分和 C++ 原始函数定义。
WebMate 是一款用于万维网浏览和搜索的个人智能体。当您在互联网上漫游时,它会陪伴您,并为您提供您想要的内容。
功能包括
从有趣的战斗机器人游戏到完整的机器人控制系统。其理念是在现实世界中使用物理智能体,或者至少是它们的控制程序。
人工智能编程游戏,您可以通过选择硬件和编程其 CPU 来设计机器人,然后与其他机器人竞争。比赛可以有团队和特殊的游戏规则。
用于您的机器人的硬件包括武器、引擎、扫描仪、CPU 等。编程语言取决于 CPU 类型,类似于汇编语言。
Cadaver 是一个实时模拟的半机械人和自然世界。战场由森林、谷物、水、草、尸体(当然)和许多其他东西组成。游戏服务器管理游戏和规则。您启动一个服务器并连接一些客户端。客户端使用非常原始的协议与服务器通信。他们可以命令半机械人收割谷物、攻击敌人或砍伐森林。这个游戏不适合人类玩!有太多需要控制的东西。仅适用于铁杆玩家:只需 telnet 到服务器,您就可以手动输入命令。相反,其理念是您编写人工智能客户端来击败其他人工智能。您可以选择您喜欢的语言(和操作系统)来完成这项任务。只需编写一个在标准输入和标准输出通道上通信的程序就足够了。然后您可以使用像“socket”这样的程序将您的客户端连接到服务器。不需要编写 TCP/IP 代码,尽管我确实这样做了 :) 为了使战斗不那么枯燥,因此有所谓的 spyboss 客户端,它以图形方式在屏幕上显示动作。
CARMEN,卡内基梅隆机器人导航工具包。CARMEN 是一个用于移动机器人控制的开源软件集合。CARMEN 是模块化软件,旨在提供基本的导航原语,包括:底座和传感器控制、日志记录、避障、定位、路径规划和地图绘制。
CLARAty 是一个用于可重用机器人软件的集成框架。它为常见的机器人功能定义了接口,并集成了任何给定功能的多种实现。此类功能的示例包括姿态估计、导航、运动和规划。除了支持多种算法外,它还提供对多个机器人平台的适配。
这是 NASA 火星探测器项目中使用的部分代码的公开发布版本。它在非商业用途免费许可下发布,包含大量模块和算法以及广泛的文档。
GNU Robots 是一款游戏/消遣,您可以在其中为一个小型机器人构建程序,然后观看它探索世界。世界充满了会伤害您的坏人、您会撞到的物体以及您可以吃的食物。游戏的目标是在被坏人杀死或耗尽能量之前收集尽可能多的奖品。机器人可以用 Guile scheme 编写,也可以使用 GUI。
Infon Battle Arena 是一款联网多人实时编程游戏,其特色是小生物为食物而战。您可以使用 telnet 接口将您的生物代码(用 Lua 编写)上传到游戏服务器。然后游戏服务器运行您的代码。图形客户端可用于观看正在运行的游戏或重放录制的游戏。
Khepera 模拟器是由 Olivier MICHEL 在法国尼斯-索菲亚·昂蒂波利斯大学 CNRS URA 1376 I3S 实验室准备博士论文期间编写的公共领域软件包。它允许您使用 C 或 C++ 语言为移动机器人 Khepera 编写自己的控制器,在模拟环境中对其进行测试,并具有漂亮的彩色 X11 图形界面。此外,如果您拥有 Khepera 机器人,它可以使用相同的控制算法驱动真实的机器人。它主要面向研究自主智能体的研究人员。
移动机器人编程工具包 (MRPT) 是一个广泛的、跨平台的开源 C++ 库,旨在帮助机器人研究人员设计和实现同步定位与地图构建 (SLAM)、计算机视觉和运动规划(避障)领域的算法。
Neuro-Evolving Robotic Operatives,简称 NERO,是一款独特的电脑游戏,可让您亲身体验调整智能智能体。通过调整您自己的机器人军队的人工大脑以应对具有挑战性的任务,然后让他们在在线竞赛中与您朋友的团队对抗!
该项目的目标是 (1) 展示最先进的机器学习技术的强大功能,(2) 基于此创建一个引人入胜的游戏,以及 (3) 为人工智能研究人员提供一个强大且具有挑战性的开发和基准测试领域。
闭源但可免费下载。他们正在开发 OpenNERO,它将是开源的,更倾向于作为研究平台。
Orca 是一个用于开发基于组件的机器人系统的开源框架。它提供了定义和开发构建块的方法,这些构建块可以拼凑在一起以形成任意复杂的机器人系统,从单辆车到分布式传感器网络。
Player 是一个设备服务器,为各种传感器和执行器(例如,机器人)提供强大而灵活的接口。由于 Player 使用基于 TCP 套接字的客户端/服务器模型,因此可以使用任何编程语言编写机器人控制程序,并且可以在任何具有网络连接到机器人的计算机上执行。此外,Player 支持与设备的多个并发客户端连接,为分布式和协作式传感和控制创造了新的可能性。
RealTimeBattle 是一款编程游戏,其中受程序控制的机器人相互战斗。目标是摧毁敌人,使用雷达检查环境并用大炮射击。
一款基于 Java 的机器人战斗编程游戏。它提供了一个简单的 API 和类框架。它被设计为一种学习 Java 的方法,并且易于上手使用,同时又不会限制程序员使用更高级的技术。它内置了一个安全管理器,可以安全地运行其他人的机器人。
Robodeb 是一个完整的机器人技术模拟环境,用于教授并发性和并行性。它为探索并发性和机器人技术提供了一个独特的环境。它为 occam-pi 编程语言提供了一个完整的 IDE,并利用 Transterpreter,我们用于该语言的可移植且灵活的运行时。这种组合至关重要,因为它为 Player/Stage API 提供了一个原则性的接口,Player/Stage API 是一组广泛使用的库,用于控制 Pioneer3 机器人平台。
RobotFlow 是一个基于 FlowDesigner 项目的移动机器人工具包。FlowDesigner 是一种面向数据流的架构,类似于 Simulink (Matlab) 或 Labview,它是免费的 (LGPL) 且用途广泛。FlowDesigner 项目中提供的可视化编程界面将通过使用图形探针和实时调试,帮助人们更好地可视化和理解机器人的控制回路、传感器、执行器中真正发生的事情。
RoboTournament 是一款受 RoboRally 启发的游戏,玩家在其中编程他们的机器人以击败他们的对手。RoboTournament 功能:多种游戏类型:死亡竞赛、拉力赛和夺旗。通过 TCP/IP 进行多人游戏,六种武器,包括 BFG、地图编辑器和各种各样的棋盘元素。
ROS 是您机器人的操作系统。它提供您期望从操作系统获得的服务,包括硬件抽象、底层设备控制、常用功能的实现、进程间消息传递和软件包管理。它还提供用于在多台计算机上获取、构建、编写和运行代码的工具和库。
Simbad 是一款用于科学和教育目的的 Java 3d 机器人模拟器。它主要面向希望为研究情境化人工智能、机器学习以及更广泛的人工智能算法(在自主机器人技术和自主智能体的背景下)提供简单基础的研究人员/程序员。它不打算提供真实世界的模拟,并且有意保持可读性和简单性。
Simbad 使程序员能够编写自己的机器人控制器、修改环境并使用可用的传感器。不要将其视为最终产品,而仅仅是一个用于测试您自己想法的开放框架。
SimRobot 是一个用于在 3D 环境中模拟基于传感器的机器人的程序。它用 C++ 编写,在 UNIX 和 X11 下运行,并且需要图形工具包 XView。
TclRobots 是一款编程游戏,类似于“核心战争”。要玩 TclRobots,您必须编写一个控制机器人的 Tcl 程序。机器人的任务是在与其他机器人的战斗中生存下来。在一次战斗中,两个、三个或四个机器人竞争,每个机器人运行不同的程序(或者可能在不同的机器人中运行相同的程序。)每个机器人都配备了扫描仪、大炮、驱动机构。一场比赛持续到只剩下一个机器人在运行为止。机器人可以单独竞争,也可以在以团队为导向的战斗中结合起来。可以使用任意数量的机器人程序运行锦标赛,每个机器人以循环赛方式一对一地与其他机器人对战。战斗模拟器可用于帮助调试机器人程序。
TclRobots 程序提供了一个物理环境,强制执行所有机器人必须遵守的某些游戏参数。TclRobots 还提供了战斗视图和控制用户界面。TclRobots 要求:从 Tcl 7.4 和 Tk 4.0 构建的 wish 解释器。
URBI 是一个通用实时行为接口,它为您提供了一种简单而强大的方法来控制任何机器人或复杂的系统(如视频游戏),使用方便易用的脚本语言,该语言可以与几种流行的编程语言(C++、Java、Matlab 等)和操作系统(Windows、Mac OSX、Linux)连接。URBI 基于客户端/服务器架构,这提供了很大的灵活性。与现有的脚本解决方案相比,URBI 包含强大的功能:命令的并行执行、事件编程、命令标记、动态变量等。目前,URBI 也被学术研究实验室、工业界和业余爱好者使用。
Vworld 是一个模拟环境,用于研究用 prolog 编写的自主智能体。它目前处于测试阶段。它与 SWI-prolog 配合良好,但只需稍作更改即可与 Quitnus-prolog 配合使用。它被设计用作处理 prolog 和自主智能体的课堂项目的教育工具。它带有三个演示世界或环境,以及它们的示例智能体。现在有两个版本。一个为 SWI-prolog 编写,一个为 LPA-prolog 编写。文档已大致完成(考虑到学生/教授框架)。
具有机器人技术库和图形交互式机器人模拟器的 FRP 系统。
函数式反应式编程 (FRP) 是一种用于以高级声明方式编程混合系统(即包含连续和离散组件组合的系统)的范例。FRP 的关键思想是其连续的、随时间变化的值以及离散事件的时间排序序列的概念。Yampa 是 FRP 在 Haskell 中嵌入的特定领域语言中的实例化。
YARP 是机器人软件的管道。它是一组库、协议和工具,用于保持模块和设备完全解耦。它是勉强的中间件,不渴望或期望控制您的系统。
更具体地说,YARP 支持将机器人控制系统构建为以对等方式通信的程序集合,具有一系列连接类型,可满足高级机器人技术多样化、有时矛盾且不断变化的需求。我们还鼓励以面向未来的方式编译和使用硬件设备。我们的战略目标是提高机器人软件项目的寿命。