|
From: <yx...@us...> - 2013-03-29 20:19:02
|
Revision: 345
http://simspark.svn.sourceforge.net/simspark/?rev=345&view=rev
Author: yxu
Date: 2013-03-29 20:18:52 +0000 (Fri, 29 Mar 2013)
Log Message:
-----------
Merge branch 'open-source-paper'
* open-source-paper:
nao model
spark section
begin Spark
short realistic motor
clean
draft introduction
Modified Paths:
--------------
trunk/spark/doc/papers/2013/joint-temp-LKneePitch.tikz
trunk/spark/doc/papers/2013/opensource.tex
trunk/spark/doc/papers/2013/reference.bib
Modified: trunk/spark/doc/papers/2013/joint-temp-LKneePitch.tikz
===================================================================
--- trunk/spark/doc/papers/2013/joint-temp-LKneePitch.tikz 2013-03-29 19:47:49 UTC (rev 344)
+++ trunk/spark/doc/papers/2013/joint-temp-LKneePitch.tikz 2013-03-29 20:18:52 UTC (rev 345)
@@ -1884,7 +1884,7 @@
enlarge x limits=false,
legend pos=north west,
xlabel={time (s)},
-ylabel={temperature (\textdegree{}C)},
+ylabel={temperature ($^{\circ}$C)},
]
\addplot[every mark/.append style={solid},
black, solid, mark=none, line legend] table[x=x, y=y] {
Modified: trunk/spark/doc/papers/2013/opensource.tex
===================================================================
--- trunk/spark/doc/papers/2013/opensource.tex 2013-03-29 19:47:49 UTC (rev 344)
+++ trunk/spark/doc/papers/2013/opensource.tex 2013-03-29 20:18:52 UTC (rev 345)
@@ -2,7 +2,6 @@
\usepackage[utf8]{inputenc}
\usepackage{todonotes}
\usepackage{amsmath}
-\usepackage{textcomp} % for \textdegree
\usepackage[hidelinks]{hyperref}
\usepackage{cleveref}
\crefname{figure}{Fig.}{Fig.}
@@ -25,6 +24,11 @@
\input{#1.tikz}
}
+\renewcommand{\textfraction}{0.15}
+\renewcommand{\topfraction}{0.85}
+\renewcommand{\bottomfraction}{0.65}
+\renewcommand{\floatpagefraction}{0.60}
+
\graphicspath{{fig/}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
@@ -64,45 +68,34 @@
\section{Introduction}
The development on robots may be severely limited by the constrained resources.
-This is especially true in the research of multi-robots systems in areas such as RoboCup.
+This is especially true in the research of multi-robot systems in areas such as RoboCup.
Using simulation for algorithm development and testing makes thing easier.
% \paragraph{History}
\textit{SimSpark}, a multi-robot simulator based on the generic components of the Spark\cite{OR05} physical multi-agent simulation system, has been used in the RoboCup Soccer Simulation League since 2004.
-The project was registered as open source project in SourceForge\footnote{\url{http://simspark.sourceforge.net}} in 2004, it has an established code base with development increasing year-over-year.
+The project was registered as open source project in SourceForge in 2004, it has an established code base with development increasing year-over-year.
As the result, RoboCup soccer simulations have changed significantly over the years, going from rather abstract agent representations to more and more realistic humanoid robot games\cite{Boedecker2008,usermanual}.
Thanks to the flexibility of the Spark system, these transitions were achieved with little changes to the simulator's core architecture.
-In this paper we describe the recent development of \textit{SimSpark} project, which make the \textit{SimSpark} possible to simulate 11 vs. 11 humanoid robot soccer games in real time\todo{is it real time in RoboCup? ``Almost! It'll be slower if there are many collisions''}.
-In section \ref{s:overview}, we will give an overview of \textit{SimSpark} project since 2008. After that, we will describe the development in core module -- names \textit{Spark} in section \ref{s:spark}. In section \ref{s:rcssserver3d}, we will give the implementation of RoboCup 3D Soccer Simulator -- \textit{RCSSServer3D}. We will introduce some ongoing work for RoboCup 2013 in
-section \ref{s:ongoing}. Furthermore, we will discuss the application of \textit{SimSpark} not only in simulation league but also other leagues with real robots in section \ref{s:application}. Finally, we will outline future development plans in section \ref{s:conclusion} .
+In this paper we describe the recent development of \textit{SimSpark} project, which make the \textit{SimSpark} possible to simulate 11 vs. 11 humanoid robot soccer games in real time\todo{is it real time in RoboCup 2012?}.
+In section \ref{s:overview}, we will give an overview of \textit{SimSpark} project since 2008. After that, we will describe the development of the \textit{Spark} simulation platform in section \ref{s:spark}.
+In section \ref{s:rcssserver3d}, we will briefly describe the implementation of RoboCup 3D Soccer Simulator -- \textit{RCSSServer3D}.
+We will introduce some new features for RoboCup 2013 in section \ref{s:ongoing}.
+Furthermore, we will discuss the application of \textit{SimSpark} not only in simulation league but also other leagues with real robots in section \ref{s:application}.
+Finally, we will outline future development plans in section \ref{s:conclusion} .
\todo[inline,color=gray]{Releated work: SimRobot, Webots, V-REP, Gazebo...}
\section{Project Overview}
\label{s:overview}
-Because last paper about simspark was in 2008
-In comparison to specialized simulators, users can create new simulations by using a scene description language.
-
-Agents communicate with the simulation server via UDP or TCP, and therefore can be implemented in any language that supports such sockets.
-It is also possible to use integrated agents, which are programmed as part of the
-simulator; but it is mainly for debugging purposes.
-Multiple software agents can participate in one simulation.
-
-Simulations are created within the server using the Ruby language and text-based RSG files.
-SimSpark uses the Open Dynamics Engine (ODE) for detecting collisions and for simulating rigid body dynamics. ODE allows accurate simulation of the physical properties of objects such as velocity, inertia and friction.
-
-The soccer simulation for this tournament was developed in parallel with the SimSpark simulator. In its initial version players were modeled as spheres in a physical three dimensional world. Since then SimSpark grew considerably and now supports humanoid players with articulated bodies.
-
-% \subsection{Architectural Changes (?)}
-It served from the beginning as a test bed and a guide for essential new features that were added to the simulator during development. However changes to the simulator core were never customized for the soccer simulation. Instead generic simulator services were implemented with all soccer specific details contained in a set of plugins and applications. Until 2008, soccer simulation and SimSpark simulator were developed and released as a single project called rcssserver3d, but it was already decided that they should be separated
-to make the separation more visible for both users new developers.
+Until 2008, soccer simulation and SimSpark simulator were developed and released as a single project called rcssserver3d, but it was already decided that they should be separated
+to make the separation more visible for both users and developers.
In late 2008, the separation happened with the migration of sources from CVS repository
at \url{http://sserver.sourceforge.net} to SimSpark's project Subversion repository at
\url{http://simspark.sourceforge.net}. As part of this process, the project was broken
-to two main projects (SimSpark simulator and RCSSServer3D soccer simulation software)
+to two main projects (Spark simulation platform and RCSSServer3D soccer simulation server)
and two auxiliary projects (RSGEdit and simspark-utilities). Also, simspark binary was
renamed to rcssserver3d to make it clear that it runs soccer simulation rather than a
generic simulation environment.
@@ -113,62 +106,24 @@
\section{Spark}
\label{s:spark}
-\paragraph{New Sensors}
- - ACC
- - FRP (Force Resistance Perceptor)
- - Gyro
- - Restrict Vision
- -- Line perceptions
- -- camera (image)
+As a generic simulation environment, Spark provides a rich set of features to create, debug and modify multi-robot simulation.
+It has three main components, including the simulation engine, the object and memory management system, and the physics engine. Details about architecture and concepts of Spark have been described in \cite{Boedecker2008,OR05}.
+In this section, we describe the necessary changes for simulating 11 vs. 11 humanoid robot soccer game.
+However changes to the simulator core were never customized for the soccer simulation.
+First, a set of sensors of humanoid robot are implemented as plugins. Second, multi-threads supporting takes advantage of multi-cores in modern CPU to be able to run in real time.
-\paragraph{Integrated Agents}
-Since the agents run as separate processes than the simulator, it was not possible to
-use debugging tools to debug agents while the server was running because if the
-agent process was paused, the simulator continued the simulation which would usually
-lead to unwanted results. For example, if the agent was paused in the middle of walking
-in an unstable state, it would fall on the ground. Therefore, support for integrated
-agents have been added to the simulator so that it is possible to program and run an
-agent as a part of the simulator process. It also makes development of simple agents
-easier since there is no need to bother about agent/server communication.
+\paragraph{Sensor Plugins}
+Sensors of a robot allows awareness of the robot's state and the environment.
+Humanoid robots like the NAO usually have many different sensors installed.
+We have implemented new plugins to simulate sensors of humanoid robots.
+Some of the sensors delivers information from physics engine, such as joint position, gyro, accelerometer, and force resistance. Furthermore, lines can be sensed by virtual vision.
+Additionally, a more realistic camera which delivers images rendered via OpenGL hardware accelerated offscreen buffers is implemented. Details of these sensors can be found in \cite{usermanual}.
-While support for integrated agents was mainly added to facilitate debugging, the
-addition of sync mode is a better solution for this purpose which is introduced below.
-
-\paragraph{Sync Mode}
-As the number of agents increase, the simulator puts a lot more load on CPU. As a
-result, it will be more difficult to run the agents on the same machine as the simulator
-since they will not get enough processing time in each cycle. This will make it
-difficult or almost impossible to develop and run multi-agent systems on a single
-machine or on older machines. To overcome this issue, a new running mode called
-``Sync Mode'' has been added to the simulator. When it is running in the sync mode,
-the cycles will not be advanced automatically. Instead, the simulator will proceed
-to the next cycle when all connected agents send a ``(sync)'' command indicating that
-they are finished with this cycle. Therefore, agents doesn't need to catch up with the
-simulator and it will wait for them as much as needed.
-
-Not only this feature will make it possible to experiment with the simulator on
-slower systems, but also it will make debugging much easier even on multi-agent setups.
-For instance, if an agent is paused in a debugger tool, the simulator will not proceed
-to the next cycle and also all other agents have to wait for the next cycle.
-
-\paragraph{Support for Other Physics Engines}
-SimSpark was initially built around ODE physics engine. However, it turned out that
-it has its own limitations and using other engines might provide extra benefits.
-For example, some engines might provide better multi-threaded support or could
-support hardware acceleration physics simulation. And some of them might be better
-suited to some types of simulation.
-
-As a result, a physics abstraction layer was implemented by Andreas Held \todo{should we cite people?} and ODE
-implementation was moved out of the core and become a plugin. Now, it is possible
-to implement support for other physics engines as plugins, and use an appropriate
-plugin for a simulation on each hardware. A partial implementation of Bullet physics
-plugin is already available.
-
-\paragraph{Multi-threads Supporting\todo{agent controls}}
-In modern time, computers have a CPU with multi-cores or even multi-CPUs.
+\paragraph{Multi-threads Supporting}
+In modern time, computers have a processor with multi-cores or even multi-CPUs.
This improves the performance greatly, but only the multi-threaded program can benefit.
One great feature of SimSpark is switching between single thread mode and multi-threads
-mode. The multi-threads mode can improve the performance in computer with multi-cores CPU, but the single thread mode is also useful for developing the simulator.
+mode. The multi-threads mode can improve the performance in computer with multi-cores processor, but the single thread mode is also useful for developing the simulator.
The implementation of multi-threads loop is based on two conditions.
First, different tasks are assigned to different \textit{SimControlNode}s in SimSpark.
@@ -177,38 +132,45 @@
Second, all data of simulation state is stored in a tree called \textit{active scene},
the physics engine and \textit{SimControlNode}s interact through the \textit{active scene}.
As we know, the physics computation is the most time-consuming, and the physics engine does not need to access the active scene during physics computation.
-So the physics computation and \textit{SimControlNode}s can run in parallel.\todo[color=green]{UML?}\todo[color=yellow]{results of performance improvement, any benchmark?}
+So the physics computation and \textit{SimControlNode}s can run in parallel.
+Furthermore, the physics engine, e.g. Open Dynamic Engine\cite{Smith:ODE}, is modified to run in parallel by using Intel Threading Building Blocks\cite{tbb}.
-\todo[inline]{
-Sander van Dijk and Ubbo Visser
-Proposal: Boosting the 3D SSL Simulator
-Increase Research Possibilities in the RC SSL Community
+In RoboCup 2012, the 11 vs. 11 humanoid robot (22 degree of freedom) soccer games were simulated in real time by computer with Intel Core i7-975 @3.33GHz CPU and 4G DDR3 RAM. \todo[color=yellow]{results of performance improvement, any benchmark?}
-ODE TBB, ??sander's paper -- where??}\footnote{\url{http://www.robocup.org/2011/03/robocup-federation-call-for-project-proposals-2/}}
+\section{RCSSServer3D}
+\label{s:rcssserver3d}
-\todo[inline]{Internal/External Monitor}
+As the competition environment for the Soccer Simulation 3D League at RoboCup,
+RCSSServer3D simulates the soccer field where two team of robots play soccer game.
+In its initial version players were modeled as spheres in a physical three dimensional world. Now it supports humanoid players with articulated bodies. In particular, the soccer environment and rules are implemented in the simulation, and the NAO robot manufactured by Aldebaran Robotics is modeled.
-\todo[inline]{logfiles}
+\paragraph{Soccer Simulation}
+Most rules of the soccer game are judged by an automatic rule set that enforces the basic soccer rule set.
+However more involved situations like detection unfair behavior still require a human referee.
+Noticeably, the size of soccer field is increasing every year, since the number of robots in each team is increasing. In RoboCup 2012, each team has 11 robots. This
-\section{RCSSServer3D}
-\label{s:rcssserver3d}
-\todo[inline]{robot model: NAO (rcssserver3d)}
-\todo[inline]{soccer rules (referee) (rcssserver3d)}
-\todo[inline]{bigger fields and more robots (rcssserver3d)}
+\paragraph{Robot Model}
+The NAO robot is currently used in the competitions of the Soccer Simulation 3D League at RoboCup. Its height is about 57cm and its weight is around 4.5kg.
+Its biped architecture with 22 degrees of freedom allows NAO to have great mobility.
+The NAO robot model is also equipped with a powerful selection of the
+sensors described in section \ref{s:spark}, to provide a widespread information base for
+agent development.
+
+There are differences between simulated NAO and real NAO. For example, the left hip and the right hip in the real NAO are physically connected by one motor so they cannot be controlled independently. The simulated robot has a motor for each joint. Furthermore, the simulated robot gets positions of objects via virtual vision sensor, while the real robot has to process images to understand the world. Never the less, this NAO model enables RCSSServer3D as a good humanoid robot research platform.
+
+
\section{Experimental Features}
\label{s:ongoing}
These features are experimental, they (probably) will be used in RoboCup 2013 for the first time. (Some of them are still under the development)
\subsection{Realistic Motor}
-\todo{motivation: my email...}
-\todo{shorter}
NAO robot has twenty-one motor joints as its actuators.
+The simulation engine, e.g. ODE, provides a simple model of real life servos:
+the motor brings the body up to speed in one step; and provides force that is not more than is allowed.
The simple motor model is one reason for the unrealistic simulation results.
-The ODE provides a simple model of real life servos.
-It has two parameters: a desired speed and the maximum force that is available to reach that speed. The motor brings the body up to speed in one step; and provides force that is not more than is allowed.
-There is no motor that works like this in reality.
Furthermore, some aspects like stiffness control, power consumption and temperature regulation, are missing but are also important for robotics.
+In this section, we proposed and implemented a realistic motor model. More details and experimental results are given in \cite{Xu2012}.
\paragraph{Stiffness}
The stiffness determines how strong the motor is. The value is from 0.0
@@ -217,15 +179,11 @@
this percentage is the maximum electric current applied to the motor. Setting the
stiffness to 0.5 means that the electric current limitation is reduced
to 50\%.
-
For a DC motor, the electric current, $I$, determines the output torque,
-$\tau$:
-\begin{align}
- \tau &= K_\tau I \label{eq:tau-i}
-\end{align}
-where $K_\tau$ is the torque constant of the motor. It can be found in the
-specifications from \cite{naoqi}. In
-the simulation, the maximum torque of the servo can be specified, therefore the
+$\tau = K_\tau I \label{eq:tau-i}$;
+where $K_\tau$ is the torque constant of the motor. $K_\tau$ can be found in the
+specifications of motor, e.g. \cite{naoqi}.
+The simulation engine can specified the maximum torque of the servo, therefore the
stiffness control can be easily implemented by setting the maximum torque
of the simulated servo:
\begin{align}
@@ -239,46 +197,36 @@
Another important aspect besides the motor's performance is its
power consumption: how much energy does it cost to run.
The robot is powered by a battery with limited energy, and has to walk during the
-game: half a game is 10 minutes.
+game.
An even more important factor in energy consumption is
that the motor can overheat if it consumes too much energy and
-becomes too hot. In the real NAO, Aldebaran Robotics estimates the temperature
-of each motor by integrating electric current, and shuts down the motor
-when the temperature is too high. Therefore modeling power consuming
-is important for implementing energy effective motions.
+becomes too hot.
+In the real robot, the temperature of each motor is measured, and the motor shuts down
+when the temperature is too high.
-DC motors are based on the following equations:
-\begin{align}
- U &= U_e + IR \label{eq:u-ir}\\
- U_e &= K_e \dot{\theta} \label{eq:u-ke}
-\end{align}
+DC motors are based on this equation:
+$U = U_e + IR \label{eq:u-ir} = K_e \dot{\theta} \label{eq:u-ke}$;
where $U$ is the voltage of input, $U_e$ is the back electromotive
force (EMF), $I$ is the electric current, $R$ is resistance,
$\dot{\theta}$ is the speed, and $K_e$ is the speed constant of the motor.
-
-The value of $R$ and $K_e$ can be found in the specifications from \cite{naoqi};
+The value of $R$ and $K_e$ can be found in the specifications of motor again;
and the simulation engine provides
the value of $\tau$ and $\dot{\theta}$; therefore we can calculate the
-power consumption by putting \cref{eq:tau-i,eq:u-ir,eq:u-ke} together:
+power consumption:
\begin{align}
- P &= UI \\
- &= U_eI + I^2R \\
- &= \frac{K_e}{K_\tau}\dot{\theta}\tau + \frac{R}{K_\tau^2}\tau^2
+ P = UI = U_eI + I^2R = \frac{K_e}{K_\tau}\dot{\theta}\tau + \frac{R}{K_\tau^2}\tau^2
\end{align}
-
And the total energy used by the motor is:
\begin{equation}
\label{eq:motor-power}
E = \sum_t{P_t\Delta{}t}
\end{equation}
-where $\Delta{}t$ is the time step of the simulation, and $P_t$ is the power consumed at time $t$.
-
-\Cref{fig:battery} compares the simulation result of this model to
-reality. In this example, the robot turns left for 5 minutes, then
-stands for 1 minutes and then turns right for 5 minutes. This is shown by the change of electric current in the figure. For the overall
+where $\Delta{}t$ is the time step of the simulation, and $P_t$ is the power consumed at time $t$. For the overall
power consumption, the energy consumed by devices other than motors,
e.g. mainboard, CPU, camera, etc. has to be added. It is the power
-consumption of the robot in an idle state (all motors are off), and measured to be 33 W.
+consumption of the NAO robot in an idle state (all motors are off), and measured to be 33 W.
+\Cref{fig:battery} compares the simulation result of this model to
+reality.
\begin{figure}
\centering
@@ -286,15 +234,18 @@
\centering
\pgfplotsset{width=0.9\columnwidth,height=7cm}
\inputtikz{battery}
- \caption{Power consumption of the real and the simulated robot in action.
- The electric current is the summary of all motors.}
+ \caption{Power consumption of the real and the simulated NAO robot in action.
+ The electric current is the summary of all motors.
+ In this example, the robot turns left for 5 minutes, then
+stands for 1 minutes and then turns right for 5 minutes. This is shown by the change of electric current.}
\label{fig:battery}
\end{minipage}\hfill{}
\begin{minipage}{0.49\columnwidth}
\centering
\pgfplotsset{width=0.9\columnwidth,height=7cm}
\inputtikz{joint-temp-LKneePitch}
- \caption{The temperature of the (knee pitch) motor in the simulation and the real robot. The green background is the electric current in the real robot.}
+ \caption{The temperature of the (knee pitch) motor in the simulation and the real NAO robot. The green background is the electric current in the real robot. Note that the temperature of real NAO has accuracy of 1 $^{\circ}$C.\newline
+ }
\label{fig:joint-temperature}
\end{minipage}
\end{figure}
@@ -302,10 +253,8 @@
\paragraph{Temperature Regulation}
We model the temperature and heat of the motor with the following equations:
\begin{align}
- \Delta{}Q^+ &= I^2R\Delta{}t \\
- \Delta{}Q^- &= -\lambda(T-T_e)\Delta{}t \\
- \Delta{}Q &= \Delta{}Q^+ + \Delta{}Q^-\\
- C &= \frac{\Delta{}Q}{\Delta{}T}
+ \Delta{}Q &= \Delta{}Q^+ + \Delta{}Q^- = I^2R\Delta{}t -\lambda(T-T_e)\Delta{}t \\
+ \Delta{}Q &= C\Delta{}T
\end{align}
where $T$ is the temperature of the motor, $T_e$
is the temperature of the environment, but it is the internal temperature
@@ -320,43 +269,15 @@
\label{eq:motor-temp}
T_{t+\Delta{}t} = T_t + \Delta{}T = T_t + \frac{[I^2R-\lambda(T_t-T_e)]\Delta{}t}{C}
\end{equation}
-
-In this model, we determined $T_e$, $\lambda$, and $C$ by experiments. It can be formulate as a classic linear regression problem. We rewrite \cref{eq:motor-temp} to:
-\begin{align}
- \label{eq:motor-temp-ols}
- \Delta{}tx_0 + T_t\Delta{}tx_1 - \Delta{}t x_2 &= I^2R \\
- x_0 &= C \\
- x_1 &= \lambda \\
- x_2 &= \lambda Te
-\end{align}
-A sequence values of $\Delta{}t$, $T_t$, and $I^2R$ can be measured by experiment, therefore the optimum values for $x_0$, $x_1$, and $x_2$ can be obtained by linear least squares method, so the parameters of \cref{eq:motor-temp} is determined. \Cref{tab:motor-parameter} gives the results of the experiment.
-\begin{table}[h]
- \centering
- \caption{Parameters $T_e$, $\lambda$ and $C$ in the \cref{eq:motor-temp} for different joints of the NAO V3.}
- \label{tab:motor-parameter}
- \begin{tabular}{lccc}
- \toprule
- Joints & $T_e$ (\textdegree{}C) & $\lambda$ (W/\textdegree{}C) & $C$ (J/\textdegree{}C)\\
- \midrule
- HipYawPitch & 33 & 0.0158 & 27.2 \\
- \midrule
- HipRoll & & & \\
- AnkleRoll & 27 & 0.0158 & 27.2 \\
- \midrule
- HipPitch & & & \\
- KneePitch & 27 & 0.0198 & 43.6 \\
- AnklePitch & & & \\
- \bottomrule
- \end{tabular}
-\end{table}
-
+In this model, we need to determine $T_e$, $\lambda$, and $C$ by experiments. It can be formulate as a classic linear regression problem.
+A sequence values of $\Delta{}t$, $T_t$, and $I^2R$ can be measured by experiment, therefore the optimum parameters of \cref{eq:motor-temp} is determined.
After determining the parameters in the \cref{eq:motor-temp}, we can use this model to simulate motor temperature. In \Cref{fig:joint-temperature}, the simulated temperature is compared with data from the real robot.
The whole process of joint simulation is summarized in
\Cref{fig:joint}: stiffness $k_s$ is simulated by setting the maximum torque
of the motor $\tau_{max}$; the final maximum torque $\tau_m$ used by simulation engine is calculated by temperature regulation; and the simulation engine computes the resulted angle
and torque applied; in the end, the consumed power and temperature are
-computed by \cref{eq:motor-power,eq:motor-temp} respectively. When the battery is empty, the maximum torque $\tau_{max}$ is set 0 to turn off the motor.
+computed by \cref{eq:motor-power,eq:motor-temp} respectively. When the battery is empty, the maximum torque $\tau_{max}$ is set to 0 to turn off the motor.
\begin{figure}
\centering
\inputtikz{joint}
@@ -431,12 +352,15 @@
\section{Applications}
\label{s:application}
\paragraph{RoboCup Soccer Simulation League}
-In RoboCup 2004, SimSpark was successfully used for the first official competition in RoboCup Simulation 3D League. Since then, it is used as a standard research platform and test bed\todo{How many teams in last RoboCup?}. By using it, simulation teams not only have designed and tested new algorithms, but also developed useful research tools based on SimSpark. Some of these tools are also released as open source.
+In RoboCup 2004, SimSpark was successfully used for the first official competition in RoboCup Simulation 3D League. Since then, it is used as a standard research platform and test bed\todo{How many teams in last RoboCup?}.
+Simulation teams also developed useful research tools based on SimSpark. Some of these tools are also released as open source.
For example, RoboViz\cite{Stoecker2012} is designed to assess and develop agent behaviors in SimSpark,
it facilitates the real-time visualization of agents running concurrently on the SimSpark simulator,
-and provides higher-level analysis and visualization of agent behaviors.
+and provides higher-level analysis and visualization of agent behaviors.
+Combined with these tools, SimSpark becomes a good platform to develop and test new algorithms for multi-robot systems.
+It is also widely used to teach artificial intelligence and robotic lectures.
-\paragraph{Usage for Real Robot}
+\paragraph{RoboCup Soccer Standard Platform League}
As one of the long term goals of the soccer simulation is to aim for realism the long term objective are realistic humanoid players in a physical environment.
These players should one day challenge the champion of the most recent World Cup.
The SimSpark is also used by teams in RoboCup Standard Platform League and Humanoid League.
@@ -454,6 +378,7 @@
\label{f:simspark-spl}
\end{figure}
+\paragraph{RoboCup Soccer Humanoid League}
Of course the simulator can also be extended for other leagues by adding new robot models.
For example, in RoboCup Humanoid Kid Size League, FUmanoid\cite{Donat2012} uses
SimSpark to perform multi-level testing methods for archiving higher
@@ -463,7 +388,7 @@
\section{Conclusion and Future Work}
\label{s:conclusion}
-SimSpark is a powerful tool to state different multi-agent research questions.
+SimSpark is a powerful tool to state different multi-robot researches.
\paragraph{Integration With Existing Robotic Frameworks}
To enhance the usability of SimSpark for wider usage, and also to make it easier
@@ -490,9 +415,9 @@
who have developed programs for real robots using the framework to experiment
with SimSpark.
-\todo[inline]{Other physic engine, Bullet}
+\todo[inline]{Other physic engine, Bullet / physics simulation engine abstraction}
\todo[inline]{better GUI}
-
+\todo[inline]{more robot models?}
\section*{Acknowledgments}
\bibliographystyle{splncs03}
Modified: trunk/spark/doc/papers/2013/reference.bib
===================================================================
--- trunk/spark/doc/papers/2013/reference.bib 2013-03-29 19:47:49 UTC (rev 344)
+++ trunk/spark/doc/papers/2013/reference.bib 2013-03-29 20:18:52 UTC (rev 345)
@@ -77,6 +77,26 @@
RoboCup Simulation League competition. }
}
+@ARTICLE{riley2003spades,
+ author = {Riley, Patrick},
+ title = {SPADES: a system for parallel-agent, discrete-event simulation},
+ journal = {AI Magazine},
+ year = {2003},
+ volume = {24},
+ pages = {41},
+ number = {2}
+}
+
+@MANUAL{Smith:ODE,
+ title = {Open Dynamic Engine User Guide},
+ author = {Russell Smith},
+ year = {2006},
+ note = {Last visited at 07.02.2013},
+ file = {:windows/E/download_doc/RoboCup/ode-latest-userguide.pdf:PDF},
+ typeoflit = {EB/OL},
+ url = {http://www.ode.org}
+}
+
@INPROCEEDINGS{Stoecker2012,
author = {Justin Stoecker and Ubbo Visser},
title = {RoboViz: Programmable Visualization for Simulated Soccer},
@@ -86,12 +106,22 @@
timestamp = {2013.03.25}
}
-@article{riley2003spades,
- title={SPADES: a system for parallel-agent, discrete-event simulation},
- author={Riley, Patrick},
- journal={AI Magazine},
- volume={24},
- number={2},
- pages={41},
- year={2003}
+@PHDTHESIS{Xu2012,
+ author = {Yuan Xu},
+ title = {From Simulation to Reality: Migration of Humanoid Robot Control},
+ school = {Humboldt-Universität zu Berlin},
+ year = {2012},
+ owner = {xu},
+ timestamp = {2013.03.29}
}
+
+@WEBPAGE{tbb,
+ title = {Intel® Threading Building Blocks},
+ url = {http://threadingbuildingblocks.org/},
+ lastchecked = {2013.03},
+ owner = {xu},
+ timestamp = {2013.03.29}
+}
+
+@comment{jabref-entrytype: Webpage: req[title;url] opt[author;editor;note;year;month;lastchecked;forcedlabel]}
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|