当前位置: 首页 > 工具软件 > documentation > 使用案例 >

Documentation

仲孙诚
2023-12-01

Documentation

General Process Flow(一般流程)

An agent receives information from the server which it processes in NaoBehavior::Think() after parsing the information in parser/parser.cc. Next an agent decides what to do in NaoBehavior::act() which typically involves selecting a skill (such as walking or a kick) to execute in NaoBehavior::selectSkill(). During the execution of a skill an agent determines new positions to move its joints to which are controlled by sending velocity commands (computed by PID controllers) to the server in servercomm/primitives.cc.

  1. 在解析 parser/parser.cc 中的信息之后,代理(agent)接收来自服务器(server)在NaoBehavior::Think()中加工的信息。
  2. 代理决定去执行 NaoBehavior::act() 中的指令,指令通常包括 selecting a skill(such as walking or a kick)在NaoBehavior::selectSkill()中执行。
  3. 在一个 skill 执行期间,代理准确计算出新的位置,并通过发送velocity代码(通过PID控制器)到 servercomm/primitives.cc 中的 server,去移动 关节(joints)

World Model

Agents build a model of the world based on their observations in the worldmodel directory files. This includes localizing themselves through the use of a particle filter (files in the particlefilter directory) and using Kalman filters (files in the kalman directory) to track the position of the ball and opponent agents. The world model allows for easy conversion of positions from/to local (relative to the agent) and global coordinate systems through the worldModel->l2g() and worldModel->g2l() methods. Information about different objects in the world are stored in WorldObjects (worldmodel/WorldObject.h).

  1. 在worldmodel文件种,基于对 他们的观察,Agents 构建一个这个世界的模型。
  2. 通过 particle filter(粒子过滤器)(文件在 particlefilter directory) 去定位他们自己。
  3. 使用 Kalman filters(Kalman过滤器)(文件在 kalman directory)去追踪球的位置 和 敌人的位置。
  4. world model 允许通过 worldModel->l2g() 和 worldModel->g2l() 方法 轻松地将位置与本地(相对于agent)和全局坐标系之间的位置进行转换
  5. 有关不同对象的信息存储在WorldObjects(worldmodel / WorldObject.h)中。

Drawings in Roboviz(在Roboviz中绘图)

Agents can draw objects in the roboviz monitor (https://github.com/magmaOffenburg/RoboViz) by sending commands to roboviz’s drawing port. See the files in the rvdraw directory for commands to draw objects in roboviz, as well as example drawing commands in behaviors/strategy.cc and behaviors/naobehavior.cc. By default the agent tries to connect to a version of roboviz running on the localhost, however it can connect to a remotely running instance of roboviz by using the start script command line option -mh <roboviz_host> to connect to an instance of roboviz running on a remote machine.

  1. 代理可以通过向 roboviz 中的 roboviz’s drawing port发送命令,在 roboviz monitor (https://github.com/magmaOffenburg/RoboViz)中绘制对象。
  2. 有关在 robovi z中绘制对象的命令,请查看 rvdraw目录中的文件,以及behaviors / strategy.cc和behaviors / naobehavior.cc中的绘制命令示例。
  3. 默认情况下,agent 会尝试连接到在本地主机上运行的roboviz版本,但是可以使用启动脚本命令行选项-mh <roboviz_host>连接到远程计算机上运行的roboviz实例,从而连接到远程运行的roboviz实例。

Skills

Agents have skills they can execute, such as getting up after falling and kicking the ball. Skills typically consist of a series of fixed poses that an agent moves through. Skills for standing up after falling are contained in behaviors/checkfall.cc. Other skills, such as those for kicking, use a skill description language to define them. Documentation about the skill description language, as well as some example kicking skills using the skill description language, are contained are in the skills directory.

  1. Agents 有他们可以执行的 skills ,例如 在摔倒 和 踢球后 站起。
  2. Skills 通常由 agent 通过一系列的固定姿势组成。
  3. 跌倒后站起的 skills 包含在 behaviors/checkfall.cc 中,
  4. 其它 skills,例如 一系列的kicking , 使用 skill 描述语言去定义它们。
  5. skills目录中包含有关技能描述语言的文档以及一些使用技能描述语言的踢球技巧示例

Parameter Files (参数文件)

Values for skills and other configurable variables can be read in and loaded at runtime from parameter files. See the paramfiles directory for more information.

  1. Values for skills 和 其它可配置变量的值可以在运行时从参数文件中读取并加载。
  2. 有关更多信息,请参见paramfiles目录。

Walk Engine

Agents use a double inverted pendulum omnidirectional walk engine to move. Code for the walk engine can be found in the utwalk directory. To move to a target location on the field agents can use NaoBehavior::goToTarget() or, to specify an exact direction, rotation, and speed to the walk engine, NaoBehavior::getWalk() can be used. Parameters that control the walk engine are contained in parameter files, and a default set of walk engine parameters that provide a slow and stable walk, as well as optimized walk engine parameters for positioning/dribbling and approaching the ball to kick, are included in this release. More information about the walk engine, as well as the process UT Austin Villa used to optimize parameters for the walk engine, can be found in the following paper:Patrick MacAlpine, Samuel Barrett, Daniel Urieli, Victor Vu, and Peter Stone.Design and Optimization of an Omnidirectional Humanoid Walk: A Winning Approach at the RoboCup 2011 3D Simulation Competition.In Proceedings of the Twenty-Sixth AAAI Conference on Artificial Intelligence (AAAI), July 2012. (http://www.cs.utexas.edu/~AustinVilla/sim/3dsimulation/AustinVilla3DSimulationFiles/2011/html/walk.html)

  1. agents 使用 double inverted pendulum omnidirectional walk engine 去移动。
  2. walk engine 的代码可以在utwalk目录中找到。
  3. 要移动到 field agents 中的一个目标位置可以使用NaoBehavior::goToTarget()
  4. 指定一个精确的位置,循环 和 速度 给 walk engine,可以使用 NaoBehavior::getWalk()
  5. 控制 walk engine 的参数 包含在 parameter files中,该参数包括一组默认的步行引擎参数,这些参数可提供缓慢而稳定的步行,以及用于定位/运球和逼近球的最佳步行引擎参数在这个版本中。
  6. 可以在以下论文中找到有关walk engine以及UT Austin Villa用于优化步行引擎参数的过程的更多信息:
  • Patrick MacAlpine,Samuel Barrett,Daniel Urieli,Victor Vu和Peter Stone。
  • 全向人形机器人步道的设计和优化:在RoboCup 2011 3D模拟竞赛中的获奖方法。
  • 在2012年7月第二十六届AAAI人工智能会议(AAAI)的会议记录中。(http://www.cs.utexas.edu/~AustinVilla/sim/3dsimulation/AustinVilla3DSimulationFiles/2011/html/walk.html)

Kicking

Two example kicking skills are included in this code release: one basic kicking skill and the other using inverse kinematics. To kick the ball use the kickBall() method which takes in both a kick type (can be either a kick or dribble) and a position to kick the ball toward. Code for approaching the ball and executing a kick is in behaviors/kicking.cc. More information about what the UT Austin Villa team has done to develop and optimize kicks can be found in the following publications:Mike Depinet, Patrick MacAlpine, and Peter Stone.Keyframe Sampling, Optimization, and Behavior Integration: Towards Long-Distance Kicking in the RoboCup 3D Simulation League.In Reinaldo A. C. Bianchi, H. Levent Akin, Subramanian Ramamoorthy, and Komei Sugiura, editors, RoboCup-2014: Robot Soccer World Cup XVIII, Lecture Notes in Artificial Intelligence, Springer Verlag, Berlin, 2015. (http://www.cs.utexas.edu/~pstone/Papers/bib2html/b2hd-LNAI14-Depinet.html)Patrick MacAlpine, Daniel Urieli, Samuel Barrett, Shivaram Kalyanakrishnan, Francisco Barrera, Adrian Lopez-Mobilia, Nicolae Stiurua, Victor Vu, and Peter Stone.UT Austin Villa 2011: A Champion Agent in the RoboCup 3D Soccer Simulation Competition.In Proc. of 11th Int. Conf. on Autonomous Agents and Multiagent Systems (AAMAS), June 2012. (http://www.cs.utexas.edu/~AustinVilla/sim/3dsimulation/AustinVilla3DSimulationFiles/2011/html/kick.html)

  1. 此代码版本中包含两种示例性的踢球技巧:
  • basic kicking skill(基本的踢球技巧)
  • using inverse kinematics (使用反向运动学的技巧)
  1. 要踢球,使用kickBall()方法同时采用kick type(踢球类型)(可以是踢球或运球)和将球踢向的指定位置。

Communication

See the files in the audio directory which implement a communication system previously provided for use in drop-in player challenges. This system, which can easily be extended, communicates basic information such as an agent’s position and the position of the ball to its teammates.

  1. 查看audio 目录里的文件,这些文件实现了先前提供给的用于嵌入式播放器挑战的通信系统。
  2. 该系统可以轻松扩展,可以将基本信息(例如agent的位置和球的位置)传达给队友。

Strategy

Most strategy and high level behavior has been removed from the code release, however a few example demo behaviors are provided in behaviors/strategy.cc. Additionally an example simple soccer behavior with a team attempting to kick the ball toward the opponent’s goal using a basic formation and dynamic greedy role assignment is provided in behaviors/simplesoccer.cc. The UT Austin Villa team has published papers about some of its high level strategy including role assignment to coordinate the movement of agents. More information about role assignment, and released code for performing role assignment, can be found in the following papers and locations:Patrick MacAlpine, Eric Price, and Peter Stone.SCRAM: Scalable Collision-avoiding Role Assignment with Minimal-makespan for Formational Positioning.In the Proceedings of the Twenty-Ninth AAAI Conference on Artificial Intelligence (AAAI-15) in Austin, Texas, USA, January 2015. (http://www.cs.utexas.edu/~AustinVilla/sim/3dsimulation/AustinVilla3DSimulationFiles/2013/html/scram.html)Patrick MacAlpine, Francisco Barrera, and Peter Stone.Positioning to Win: A Dynamic Role Assignment and Formation Positioning System.In Xiaoping Chen, Peter Stone, Luis Enrique Sucar, and Tijn Van der Zant, editors, RoboCup-2012: Robot Soccer World Cup XVI, Lecture Notes in Artificial Intelligence, Springer Verlag, Berlin, 2013. (http://www.cs.utexas.edu/~AustinVilla/sim/3dsimulation/AustinVilla3DSimulationFiles/2011/html/positioning.html)

  1. 大多数策略和高级行为已从代码版本中删除,但是在behaviors / strategy.cc中提供了一些示例演示行为。
  2. 在behaviors / simplesoccer.cc中提供了一个简单的足球行为示例,其中团队尝试使用基本队形和动态贪婪角色分配将球踢向对手的目标。
  3. UT Austin Villa团队发表了有关其一些高级策略的论文,包括协调代理人员流动的角色分配。在以下文件和位置中,可以找到有关角色分配的更多信息以及用于执行角色分配的已发布代码:
  • 帕特里克·麦克阿尔派(Patrick MacAlpine),埃里克·普莱斯(Eric Price)和彼得·斯通(Peter Stone)。
  • SCRAM:可扩展的冲突避免角色分配,具有最小的生成间隔以进行编队定位。
  • 在2015年1月在美国德克萨斯州奥斯汀举行的第29届AAAI人工智能会议(AAAI-15)的会议记录中。(http://www.cs.utexas.edu/~AustinVilla/sim/3dsimulation/AustinVilla3DSimulationFiles/ 2013 / html / scram.html)
  • 帕特里克·麦克阿尔派(Patrick MacAlpine),弗朗西斯科·巴雷拉(Francisco Barrera)和彼得·斯通(Peter Stone)。
  • 定位胜出:一个动态的角色分配和编队定位系统。
  • 陈小平,Peter Stone,Luis Enrique Sucar和Tijn Van der Zant,《 RoboCup-2012:机器人足球世界杯XVI》,人工智能讲义,施普林格出版社,柏林,2013年。(http://www.cs .utexas.edu /〜AustinVilla / sim / 3dsimulation / AustinVilla3DSimulationFiles / 2011 / html / positioning.html)

Penalty Kick Behaviors

Behaviors executed during penalty kicks are in behaviors/pkbehaviors.*. Penalty kick kickers and goalies can be started with the start_penalty_kicker.sh and start_penalty_goalie.sh start scripts.

  1. 罚点球期间执行的行为在behaviors / pkbehaviors中
  2. 罚点球和守门员可以使用start_penalty_kicker.sh和start_penalty_goalie.sh启动脚本启动。

Optimization ​

A considerable amount of the UT Austin Villa team’s efforts in preparing for RoboCup competitions has been in the area of skill optimization and optimizing parameters for walks and kicks. Example agents for optimizing a kick and forward walk are provided in the optimization directory. Optimization agents perform some task (such as kicking a ball) and then determine how well they did at the task (such as how far they kicked the ball) with the updateFitness() method. When performing an optimization task agents are able to change the world as needed (such as move themselves and the ball around) by sending training command parser commands to the server on the monitor port through the setMonMessage() method. More information about optimizations performed by the team can be found in the following paper:Patrick MacAlpine and Peter Stone.Overlapping Layered Learning.Artificial Intelligence (AIJ), 254:21-43, Elsevier, January 2018. (http://www.cs.utexas.edu/~pstone/Papers/bib2html/b2hd-AIJ18-MacAlpine.html)

  1. UT Austin Villa团队在为RoboCup比赛做准备方面做出了很大的努力,其中包括 skill(技能)优化和 walk(步行)和 kicks(踢球)参数的优化。
  2. optimization 目录中提供了用于优化 kick(踢)和 forward walk(向前走)的示例代理。
  3. 优化代理执行某些任务(例如,踢球),然后通过 updateFitness()方法确定它们在任务中的表现(例如它们踢球踢得多远)。
  4. 在执行优化任务时,代理可以通过该setMonMessage() 方法向监视器端口上的服务器发送 training command(训练命令)解析器命令,从而根据需要改变世界(例如,移动自己和球)
  5. 参考论文:
  • 帕特里克·麦克阿尔派恩(Patrick MacAlpine)和彼得·斯通(Peter Stone)。
  • 重叠的分层学习。
  • 人工智能(AIJ),254:21-43,Elsevier,2018年1月。(http://www.cs.utexas.edu/~pstone/Papers/bib2html/b2hd-AIJ18-MacAlpine.html)

Collection Game Statistics/Data(收集游戏统计数据)

Scripts and code for collecting game statistics/data are provided in the stats directory.

  1. stats目录中提供了用于收集游戏统计数据/数据的脚本和代码。

Useful Scripts

Some useful scripts for copying shared objects to the libs directory to be loaded at runtime, and copying files needed to run the binary to a new directory, are provided in the scripts directory.

  1. scripts目录中提供了一些有用的脚本,用于将共享对象复制到运行时加载的libs目录,以及将运行二进制文件所需的文件复制到新目录。

More Documentation(更多文档)

More information about the UT Austin Villa agent, including a fairly comprehensive description of its behavior, can be found in the following paper:Patrick MacAlpine, Daniel Urieli, Samuel Barrett, Shivaram Kalyanakrishnan, Francisco Barrera, Adrian Lopez-Mobilia, Nicolae Stiurua, Victor Vu, and Peter Stone.UT Austin Villa 2011 3D Simulation Team Report.Technical Report AI11-10, The University of Texas at Austin, Department of Computer Science, AI Laboratory, 2011. (http://www.cs.utexas.edu/~pstone/Papers/bib2html/b2hd-AI1110-macalpine.html)

  1. 关于UT Austin Villa代理的更多信息,包括对其行为的相当全面的描述,可以在以下论文中找到:
  • Patrick MacAlpine, Daniel Urieli, Samuel Barrett, Shivaram Kalyanakrishnan, Francisco Barrera, Adrian Lopez-Mobilia, Nicolae Stiurua, Victor Vu,和Peter Stone。
  • 德州大学奥斯汀别墅2011 3D模拟团队报告。技术报告AI11-10,德州大学奥斯汀分校,计算机科学系,人工智能实验室,2011。
 类似资料:

相关阅读

相关文章

相关问答