Category Archives: Simulation

机器人仿真软件V-REP

最近有幸接触到了一款非常强大的机器人动态仿真软件:V-REP。V-REP有非常完善的物理仿真引擎,支持移动机器人、飞行机器人、人型机器人、多足机器人以及多轴机械手的运动学仿真。

vrep

V-REP的仿真程度非常高,不仅可以仿真机器人的本体与多种传感器,还支持障碍物以及地型(空中,地面,水底)的仿真。V-REP支持使用C/C++,Python,JAVA,Lua,Matlab编写脚本,十分适合于多机器人的仿真。

官方网站:

http://www.coppeliarobotics.com/

官方演示视频:

Robocode官方应用文章索引

Robocode最早来自IBM公司,由Mathew Nelson创立并维护。
IBMdeveloperWorks里,我找到了很多有关Robocode的应用文章,现整理如下:

Robocode 基本原理之方向剖析
http://www.ibm.com/developerworks/cn/java/l-robocode/

Robocode 高手的秘诀:圆周瞄准
http://www.ibm.com/developerworks/cn/java/j-circular/index.html

Robocode 参数大揭密
http://www.ibm.com/developerworks/cn/java/l-robocode5/index.html

Robocode Rumble: 冠军的技巧
http://www.ibm.com/developerworks/cn/java/j-robowrap/index.html

Robocode 高手的秘诀: 因数避墙法(factored wall avoidance)
http://www.ibm.com/developerworks/cn/java/j-fwa/

世界robocode机器人的四大运动方式分析
http://www.ibm.com/developerworks/cn/java/l-robocode3/index.html

Robocode 基本原理之坐标锁定
http://www.ibm.com/developerworks/cn/java/l-robocode2/index.html

在Robocode中使用Vector实现敌人列表
http://www.ibm.com/developerworks/cn/java/l-robocode4/index.html

人工智能 Java 坦克机器人系列: 强化学习
http://www.ibm.com/developerworks/cn/java/j-lo-robocode2/index.html

人工智能 Java 坦克机器人系列: 神经网络,上部
http://www.ibm.com/developerworks/cn/java/j-lo-robocode3/index.html?ca=drs

人工智能 Java 坦克机器人系列: 神经网络,下部
http://www.ibm.com/developerworks/cn/java/j-lo-robocode4/index.html?ca=drs

Robocode常见问题

本文由 云飞机器人实验室 翻译。

What is the difference between frames and ticks?
一帧(Frame)与单位时间(Tick)有什么区别?
A tick refers to one unit, which is also called a Turn in Robocode. During one turn, you may perform one action as a Robot, or multiple (independent) actions as an AdvancedRobot. A frame is a unit of drawing to the Robocode client interface. If you are processing turns slowly, you will get one frame per tick / turn. However, if you up the turns per second beyond your computer’s ability to render the frames, you will miss some frames of animation. This won’t affect the robots’ behavior, unless you foolishly added code in your onPaint(Graphics2D) method that alters your bots behavior. In that case, your bot will behave differently depending on whether or not the Paint button has been enabled, and if the framerate can keep up with the turnrate.
一个单位时间指Robocode中的一个回合。在这个回合中,Robot只能执行一个动作,AdvancedRobot只能执行一组独立动作。而一帧是一连串界面的绘图动作。如果你将每回合的时间设得很长,你会得到一帧/回合。然而,如果你每回合的速度过快,超过了计算机的绘制速度,那么你可能会丢帧。但这只是绘制上的损失,不会影响你机器人的行为(除非你傻到在OnPaint中编写代码)。

Can I fire bullets with power higher than 3.0 or lower than 1.0?
我可以发射火力在1.0与3.0之外的子弹么?
No and yes. You can’t fire bullets with power greater than 3.0, but you can fire bullets with power as low as 0.1. If you call a firing function (i.e. setFire()) with a value greater than 3.0, Robocode will adjust it to 3.0, and if you call it with a power lower than 0.1 (except 0.0 which will not fire) it will adjust it to 0.1. Additionally, you can fire bullets with power less than 0.1 under one condition: when your robot has less than 0.1 energy left, in which case a bullet is fired with however much energy your robot had left.
是也不是,你不可以发射大于3.0的子弹,但是可以发射小到0.1能量的子弹。如果调用setFire()时大于3.0,会被矫正到3.0;同样的,小于0.1会被矫正到0.1。只有一种情况能发射<0.1的子弹,那就是你的能量不足0.1,这时子弹能量是你当前的最大生命。

Read more »

构建你的第一个Robocode坦克

上次向大家简单介绍了一下Robocode的安装,但却没有具体说明如何创建一个Robocode项目。要开发Robocode,需要正确安装JVM(Java Virtual Machine),Robocode程序,以及Visual Studio2008。当然你也可以使用JAVA环境开发,这里假设你使用的是Robocode的.Net版本。

打开Visual Studio2008,点击File->New->Project,在弹出的窗口中选择Visual C#中的Class Library:

 
图1. 新建一个C# Class Library工程

输入工程名,比如”MyTank”。这时会生成一个工程,并默认包含了一个Class1.cs文件。因为我们需要使用Robocode的开发库,所以需要添加相关引用,右键点击工程树中的”References”选择”Add Reference”:

 
图2. 
添加引用   Read more »

Robocode的安装

上一次提到Robocode仿真平台,但没有具体介绍如何使用。
今天,我来教大家如何快速入门。
在正式开始之前,你必须安装JVM(java virtual machine),因为该平台是基于JAVA编写的。
Java的下载地址如下:http://java.com/en/download/

1、打开官方主页
http://robocode.sourceforge.net/
点击”Download”->Robocode->1.7.3.3
如果你想使用JAVA编写,选择 robocode-1.7.3.3-setup.jar
这里我们使用Visual Studio环境的版本 robocode.dotnet-1.7.3.3-setup.jar

2、安装程序
双击robocode.###-setup.jar,一有对话框弹出,就选择”yes”就行了
robocode会默认被安装到c:\robocode,建议还是不要修改的好。
过了2分钟,一切就会归于平静了。这样就好了?是的,这样就好了。

3、进入程序
如果安装正确,并且在提示“是否增加桌面快捷方式”时选择了”yes”,则此时在桌面上可以看到Robocode的图标。如果没有,可以手动运行C:\robocode\robocode.bat。
第一次进入程序会出现一段演示对战,让你提前体验一下Robocode的刺激与迷人之处。
至此,你就可以正式开始你的”Robocode”之旅了!