From: <yx...@us...> - 2013-05-24 15:01:11
|
Revision: 352 http://sourceforge.net/p/simspark/svn/352 Author: yxu Date: 2013-05-24 15:01:08 +0000 (Fri, 24 May 2013) Log Message: ----------- Merge branch 'open-source-paper' * open-source-paper: read through the text Modified Paths: -------------- trunk/spark/doc/papers/2013/opensource.tex Modified: trunk/spark/doc/papers/2013/opensource.tex =================================================================== --- trunk/spark/doc/papers/2013/opensource.tex 2013-05-22 14:59:02 UTC (rev 351) +++ trunk/spark/doc/papers/2013/opensource.tex 2013-05-24 15:01:08 UTC (rev 352) @@ -79,7 +79,7 @@ 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 SimSpark project, which make the SimSpark possible to simulate 11 vs. 11 humanoid robot soccer games in real time\todo{is it real time in RoboCup 2012?}. +In this paper we describe the recent development of SimSpark project, which make the SimSpark possible to simulate 11 vs. 11 humanoid robot soccer games in real time. In section \ref{s:overview}, we will give an overview of the SimSpark project since 2008. After that, we will describe the development of the Spark simulation platform in section \ref{s:spark} and the implementation of RoboCup 3D Soccer Simulator in section \ref{s:rcssserver3d}. We will introduce some new features for RoboCup 2013 in section \ref{s:ongoing}. Furthermore, we will give the application examples of SimSpark in section \ref{s:application}. @@ -90,15 +90,12 @@ \section{Project Overview} \label{s:overview} -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 +Until 2008, soccer simulation and SimSpark simulator were developed and released as a single project called rcssserver3d. +In late 2008, the SimSpark project migrated from CVS repository at \url{http://sserver.sourceforge.net} to the new project Subversion repository at \url{http://simspark.sourceforge.net}. As part of this process, the project was broken 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. +and two auxiliary projects (RSGEdit and simspark-utilities). +The separation clarifies SimSpark is a generic simulation environment rather than only a robot soccer simulator. SimSpark was never a single-platform project, but it practically didn't support Windows. In recent years, Windows support was added after migration from Autotools @@ -166,10 +163,9 @@ 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 hip joints are physically connected by one motor in the real NAO. Furthermore, the simulated robot gets positions of objects via virtual vision sensor, while the real robot has to process images to understand the world. Nevertheless, this NAO model enables RCSSServer3D to be a good humanoid robot research platform. -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 one 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. Nevertheless, this NAO model enables RCSSServer3D to be a good humanoid robot research platform. - \section{Experimental Features} \label{s:ongoing} @@ -294,33 +290,21 @@ \end{figure} \subsection{Heterogeneous Robots} -Simulation is a great tool for experimenting with robots without buying expensive -real robots. Also, the simulated robots are never damaged and they can be used for long -running experiences without human intervention. +Heterogeneous systems are emerging as effective solutions to many multi-robot tasks, +it is also true for the soccer team. The physical difference between robots are important when they serve diverse roles in a cooperating team. +In simulation, the physical properties of the robot can be easily changed, so it is a good platform for researching on heterogeneous systems. -However, the possibilities provided by a simulation environment is -not limited to these. Not only you can experiment with different behaviors, but -also you can modify the mechanical properties of the robot as you wish. Additionally, -it is possible to create new challenges for robot AI developers. Since you can -generate robots with different mechanical properties very easily at run time, -you can provide variations of a robot to teams and they can use them if they can -adopt their developed behaviors to unseen robots; which is in contrast with -real robots because teams know the exact specification of the robots and -can develop behaviors specifically tuned for them. If heterogeneous -robots are available in a game, teams can use them only if they can adopt -their behaviors to the robots they didn't know about. +Heterogeneity also creates new challenges for robot AI developers. +The robots with different mechanical properties will be generated at running time, +different robots are provided to teams, so teams have to adopt their developed behaviors to unknown robots. SimSpark already provided the ability to define different robot models and use them in its simulation environment. However, each model was fixed and if you -wanted to have several variations of a robot, you should have defined several +wanted to have several variations of a robot, you had to defined several separate robot models. To better support games with heterogeneous robots, we have -added the support for parametric models to SimSpark. Therefore, it is possible to -define models in which a number of parameters are variables and can have different -values for different robot variations. For example, the length and the mass of the -legs of a robot can be different for different types of that robot model. -When you want to load such a model, you should -specify which type of that robot is needed and its parameters are replaced in the -parametric model and the model is created. +implemented the parametric robot model. +This model has a number of parameters and can have different values for different robot variations. For example, the length of the legs can be different for different robots. +In order to launch this model, only these parameters have to be specified additionally. \subsection{Agent Proxies} Initially, SimSpark used SPADES\cite{riley2003spades} for managing external agents. It @@ -330,22 +314,21 @@ latency. Therefore, if agents were unable to deliver their commands to the server in a cycle because of network latency, their commands were executed by the simulator in the next simulation cycle. As the number of soccer players in soccer simulation -increased, this problem become more apparent. +increased, this problem became more apparent. -To solve this problem, the concept of agent proxies were proposed. Agent proxies -run on the client machines were agents will be running, and they are responsible for -communicating with the server. Agents communicate with the proxies instead of +To solve this problem, the concept of agent proxies was proposed. +Agents communicate with the proxies instead of communicating directly with the simulator. In this model, the cycle time is managed by the proxies on the client side, and they communicate with the simulator in Sync Mode. Therefore, the simulator waits for all proxies to signal the end of a cycle and then proceeds with the next cycle. This model ensures that agents can use the allowed cycle time to think in a cycle when new information is delivered to them. -This model is not ideal because the agents can have some spare time if network latency -occurs, but it is better, more predictable and more fair than the current model. Also, -no new information is arrived to agents in that spare time and they cannot send new -commands for that cycle. Hopefully, by using a new binary network protocol the network -traffic and therefore the latency will be reduced considerably.\review{this does not quite fit to the rest of section where you argue that the proxy exactly removes the need for such optimizations} +This model is not perfect because the agents can have some spare time if network latency +occurs, but it is more predictable and fairer than the old model. +The network latency can be reduced by using binary network protocol between proxies and simulator. +Nevertheless, no new information is arrived to agents in that spare time and they cannot send new +commands for that cycle. Currently, an initial version of agent proxies is under development outside SimSpark project using Java. @@ -358,12 +341,12 @@ % The main goal of this project is to provide a flexible and extensible User Interface and Simulation Development Environment, that can be used to start, control and monitor different simulations using the Simspark server, agent and monitor processes, as well as incorporate several additional tools like for example a visual editor for robot models (like RsgEdit) or a debugging monitor for agents (like RoboViz). \section{Applications} -As a powerful robot simulator, SimSpark is gaining popularity in RoboCup, including Standard Platform League and Humanoid League.\review{may be this is too obvious, but the main application is still 3D simulation league that is not mentioned here. It should be. That has the most impact as of today.} It is also widely used to teach artificial intelligence and robotic lectures. +In addition to be used in RoboCup Soccer Simulation 3D League, SimSpark is gaining popularity in other leagues, including Standard Platform League and Humanoid League. It is also widely used to teach artificial intelligence and robotic lectures. \label{s:application} -% \paragraph{RoboCup Soccer Simulation League} Simulation 3D League. Since 2004, SimSpark has been used as a official competitions environment. Since then, research teams have 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. -% Combined with these tools, SimSpark becomes a useful platform to develop and test new algorithms for multi-robot systems. +\paragraph{RoboCup Soccer Simulation 3D League} Since 2004, SimSpark has been used as a official competitions environment. Research teams have developed useful research tools based on SimSpark. +For example, RoboViz\cite{Stoecker2012} is designed to assess and develop agent behaviors in SimSpark. And these tools are also released in open source. +Combined with these tools, SimSpark becomes a featured platform to develop and test new algorithms for multi-robot systems. \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. @@ -373,11 +356,11 @@ The special situation between Standard Platform League and 3D Simulation League is that both leagues use the same robot model — NAO from Aldebaran. So it appears to be natural to reuse the work which has already been done. Nao Team Humboldt developed a software architecture\cite{SCPR2010} which enables their control software can run both in real NAO and simulated NAO with SimSpark. This helps them to participate in both Simulation League and Standard Platform League, and achieve some good results. -Furthermore, Nao Team Humboldt also promotes the usage of SimSpark in the Standard Platform League by implementing its rules, see \Cref{f:simspark-spl}. +Furthermore, they also promotes the usage of SimSpark in the Standard Platform League by implementing its rules, see \Cref{f:simspark-spl}. \begin{figure} \centering - \includegraphics[width = 0.6\columnwidth]{simspark-spl} + \includegraphics[width = 0.9\columnwidth]{simspark-spl} \caption{Prototype of the extended SimSpark for Standard Platform League. The bottom of screen are images of robot cameras.} \label{f:simspark-spl} @@ -427,10 +410,9 @@ \item[Physics Abstraction Layer] Relying on a single physics engine, i.e. ODE, hampers Simspark's flexibility. -Thus, an abstract physics layer was development\cite{Held2010}, ODE and Bullet can be used as plugins with the abstract physics layer. However, current implementation has many drawbacks and difficult to maintenance. -\review{any plans to support physics calculations in GPU? Or is it done already?} +Thus, the physics abstraction layer has be developed\cite{Held2010}, ODE and Bullet can be used as plugins of SimSpark. However, current implementation has many drawbacks and difficult to maintenance. +% \review{any plans to support physics calculations in GPU? Or is it done already? -- it should be the task of physics engine} - \item[Robot Model Importers] The usage of SimSpark will be extended when it has more robot models, however creating robot models is a time consuming task. The idea is to create model importers for different model format, so SimSpark will be able to use the robot model which is available in other simulators. \end{description} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |