From: <yx...@us...> - 2013-03-08 10:55:10
|
Revision: 334 http://simspark.svn.sourceforge.net/simspark/?rev=334&view=rev Author: yxu Date: 2013-03-08 10:55:04 +0000 (Fri, 08 Mar 2013) Log Message: ----------- Merge branch 'open-source-paper' * open-source-paper: choose title ideas 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-03-08 10:37:09 UTC (rev 333) +++ trunk/spark/doc/papers/2013/opensource.tex 2013-03-08 10:55:04 UTC (rev 334) @@ -1,8 +1,11 @@ \documentclass{llncs} + +\usepackage{todonotes} + \begin{document} -\title{SimSpark: Open Source Robot Soccer 3D Simulator} +\title{SimSpark: An Open Source Robot Simulator Developed by RoboCup Community} \author{Yuan Xu\inst{1} \and Hedayat Vatankhah\inst{2}} @@ -21,8 +24,37 @@ \end{abstract} \section{Introduction} + +\todo[inline]{Background/histsory} \cite{Boedecker2008,OR05} +\todo[inline]{Releated work: SimRobot, Webots, V-REP, Gazebo...} + +\section{Current state / development sicen 2008} +Because last paper about simspark was in 2008 +\todo[inline]{sensors: ACC, FSR, restict vision, with line perceptions, image ...} +\todo[inline]{robot model: NAO} +\todo[inline]{soccer rules (referee)} +\todo[inline]{bigger fields and more robots} + +\section{relastic motor and model (Yuan)} + +\section{applications} + +\paragraph{RoboCup simulation league (of course)} + +\paragraph{research (used by teams have real robot)} +- we (NaoTH) have shared common interface with NAO +- FUmanoid +- education + +\section{development plan/ current development} +\begin{itemize} +\item heterogeneous robots +\item agent proxies +\item Player integration +\end{itemize} + \section{Conclusion and Future Work} \bibliographystyle{splncs03} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2013-03-18 20:02:03
|
Revision: 337 http://simspark.svn.sourceforge.net/simspark/?rev=337&view=rev Author: hedayat Date: 2013-03-18 20:01:56 +0000 (Mon, 18 Mar 2013) Log Message: ----------- - Add a section about 'architectral changes'. (should it be included at all?) - Add Gyro sensor - Add a draft about heterogeneous players. 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-03-15 15:38:19 UTC (rev 336) +++ trunk/spark/doc/papers/2013/opensource.tex 2013-03-18 20:01:56 UTC (rev 337) @@ -71,11 +71,27 @@ \section{Current state / development since 2008} Because last paper about simspark was in 2008 -\todo[inline]{sensors: ACC, FSR, restict vision, with line perceptions, image ...} -\todo[inline]{robot model: NAO} -\todo[inline]{soccer rules (referee)} -\todo[inline]{bigger fields and more robots} +\subsection{Architectural Changes (?)} +\todo[inline]{separation of simspark and rcssserver3d} +\todo[inline]{Cmake migration?} +\todo[inline]{windows support (mingw32,VC)} +\subsection{New Sensors} + - ACC + - FSR + - Gyroasdf + - Restrict Vision + -- Line perceptions + -- camera (image) + +\todo[inline]{robot model: NAO (rcssserver3d)} +\todo[inline]{soccer rules (referee) (rcssserver3d)} +\todo[inline]{bigger fields and more robots (rcssserver3d)} +\todo[inline]{sync mode (simspark)} +\todo[inline]{multi-threaded (simulation engine, agent controls) (simspark)} +\todo[inline]{integrated agents (simspark)} +\todo[inline]{physics simulation engine abstraction (simspark)} + \section{Recent Development (Changes 2013)} @@ -237,7 +253,33 @@ \end{figure} \subsection{Heterogeneous Robots} +\todo[inline]{Draft, needs better English} +Simulation is great for experimenting with robots without need to buy expensive +real robots. Also, the robots are never damaged and they can be used for long +running experiences without human intervention. +However, the possibilities which are 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 a single robot. 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. + +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 +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. When you want to load such a model, you shold +specify which type of that robot is needed and its parameters are replaced in the +parametric model and the model is created. + \subsection{Agent Proxies} \subsection{Player Integration??} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yx...@us...> - 2013-03-26 11:40:24
|
Revision: 341 http://simspark.svn.sourceforge.net/simspark/?rev=341&view=rev Author: yxu Date: 2013-03-26 11:40:17 +0000 (Tue, 26 Mar 2013) Log Message: ----------- Merge branch 'open-source-paper' * open-source-paper: draft introduction 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-03-25 10:14:37 UTC (rev 340) +++ trunk/spark/doc/papers/2013/opensource.tex 2013-03-26 11:40:17 UTC (rev 341) @@ -66,10 +66,22 @@ Using simulation for algorithm development and testing makes thing easier. % \paragraph{History} -SimSpark was initially developed by Marco Kögler and Oliver Obst at the University of Koblenz-Landau in Koblenz, Germany\cite{OR05}. -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\cite{Boedecker2008,usermanual}. +\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. +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. -\todo[inline]{Plugin system, core part} +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?}. +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} . + +\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.\todo{integrated agent as well} @@ -78,15 +90,9 @@ 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. -\todo[inline]{Releated work: SimRobot, Webots, V-REP, Gazebo...} - - -\section{Current state / development since 2008} -Because last paper about simspark was in 2008 - 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 (?)} +% \subsection{Architectural Changes (?)} \todo[inline]{separation of simspark and rcssserver3d}\todo{Hedayat Vatankhah: Architecture Enhancements Proposal for Soccer Simulation Server 3D} 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. @@ -94,17 +100,16 @@ \todo[inline]{Cmake migration?} \todo[inline]{windows support (mingw32,VC)} +\section{Spark} +\label{s:spark} \subsection{New Sensors} - ACC - FSR - - Gyroasdf + - Gyro - Restrict Vision -- Line perceptions -- camera (image) -\todo[inline]{robot model: NAO (rcssserver3d)} -\todo[inline]{soccer rules (referee) (rcssserver3d)} -\todo[inline]{bigger fields and more robots (rcssserver3d)} \todo[inline]{sync mode (simspark)} \todo[inline]{integrated agents (simspark)} \todo[inline]{physics simulation engine abstraction (simspark)} @@ -135,7 +140,14 @@ \todo[inline]{logfiles} +\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)} + \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} @@ -335,7 +347,7 @@ \subsection{Player Integration??} \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. For example, RoboViz\cite{Stoecker2012} is designed to assess and develop agent behaviors in SimSpark, @@ -368,7 +380,7 @@ \section{Conclusion and Future Work} - +\label{s:conclusion} SimSpark is a powerful tool to state different multi-agent research questions. \todo[inline]{Other physic engine, Bullet} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2013-03-29 17:39:11
|
Revision: 343 http://simspark.svn.sourceforge.net/simspark/?rev=343&view=rev Author: hedayat Date: 2013-03-29 17:39:00 +0000 (Fri, 29 Mar 2013) Log Message: ----------- - Added my address - Few spelling errors fixed - Integrated Agents - Sync Mode - Physics Abstraction Layer - Some English fixes for heterogeneous robots section 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-03-28 13:14:58 UTC (rev 342) +++ trunk/spark/doc/papers/2013/opensource.tex 2013-03-29 17:39:00 UTC (rev 343) @@ -45,7 +45,9 @@ \begin{minipage}[t]{0.4\textwidth} \and \centering -Amirkabir University of Technology, Iran\\ +Department of Computer Engineering and IT \\ +Amirkabir University of Technology \\ +Tehran, Iran\\ \email{hed...@gm...} \end{minipage} } @@ -69,9 +71,9 @@ \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. 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. +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?}. +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} . @@ -85,7 +87,8 @@ 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. -\todo{integrated agent as well} +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. @@ -110,7 +113,7 @@ \section{Spark} \label{s:spark} -\subsection{New Sensors} +\paragraph{New Sensors} - ACC - FRP (Force Resistance Perceptor) - Gyro @@ -118,12 +121,51 @@ -- Line perceptions -- camera (image) -\todo[inline]{sync mode (simspark)} -\todo[inline]{integrated agents (simspark)} -\todo[inline]{physics simulation engine abstraction (simspark)} +\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. +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 CUP with multi-cores or even multi-CPUs. +In modern time, computers have a CPU 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. @@ -323,30 +365,31 @@ \end{figure} \subsection{Heterogeneous Robots} -\todo[inline]{Draft, needs better English} -Simulation is great for experimenting with robots without need to buy expensive -real robots. Also, the robots are never damaged and they can be used for long +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. -However, the possibilities which are provided by a simulation environment is +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 +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 a single robot. If heterogeneous +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. -Simspark already provided the ability to define different robot models and +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 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 +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.\todo[color=green]{which parameters? for example} When you want to load such a model, you shold +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. @@ -370,12 +413,12 @@ 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 -occures, but it is better, more predictable and more fair than the current model. Also, +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. -Currently, an initial version of agent proxies is under development outside simspark +Currently, an initial version of agent proxies is under development outside SimSpark project using Java. \subsection{Integration With Existing Robotic Frameworks} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2013-03-29 19:47:56
|
Revision: 344 http://simspark.svn.sourceforge.net/simspark/?rev=344&view=rev Author: hedayat Date: 2013-03-29 19:47:49 +0000 (Fri, 29 Mar 2013) Log Message: ----------- Add integrating with Player/ROS to future work. Add a section about SimSpark GUI by Patrick Geib which could be completed using wiki info 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-03-29 17:39:00 UTC (rev 343) +++ trunk/spark/doc/papers/2013/opensource.tex 2013-03-29 19:47:49 UTC (rev 344) @@ -421,11 +421,13 @@ Currently, an initial version of agent proxies is under development outside SimSpark project using Java. -\subsection{Integration With Existing Robotic Frameworks} -\todo{Hedayat Vatankhah:Architecture Enhancements Proposal for Soccer -Simulation Server 3D} +\subsection{SimSpark GUI} +\todo{SimSpark GUI: http://simspark.sourceforge.net/wiki/index.php/Graphical_User_Interface} +NOTE: It will be merged to trunk soon. So it is almost complete. +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} \label{s:application} \paragraph{RoboCup Soccer Simulation League} @@ -463,6 +465,31 @@ \label{s:conclusion} SimSpark is a powerful tool to state different multi-agent research questions. +\paragraph{Integration With Existing Robotic Frameworks} +To enhance the usability of SimSpark for wider usage, and also to make it easier +for developers to develop and test their robotic software on SimSpark and to +use the same code on real hardware, we aim to integrate SimSpark to an +existing robotic framework. Player is a well-known robotic framework which +can be used to control both real and simulated robots. We planned to integrate +SimSpark with Player so that people can develop agents for SimSpark using +Player interfaces. It has the additional benefit of using Player's network +protocol which is much more efficient than the current network protocol used +in SimSpark. It is also a good opportunity to enhance the multi-threaded +capabilities of SimSpark given the asynchronous nature of using Player with +different robot sensors. + +Recently, another robotic framework called ROS is gaining popularity and is in +active development. Therefore, we will reconsider our planning and might decide +to integrate SimSpark with ROS instead. However, considering that Player itself +is integrated into ROS, integrating with Player still might make sense. + +If SimSpark is integrated into an existing robotic framework, it is possible +for researchers to develop a single program to control both a simulated +robot inside and the same real robot given that the robot itself is also +supported by the framework. It will be also much easier to attract people +who have developed programs for real robots using the framework to experiment +with SimSpark. + \todo[inline]{Other physic engine, Bullet} \todo[inline]{better GUI} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yx...@us...> - 2013-03-29 21:12:04
|
Revision: 346 http://simspark.svn.sourceforge.net/simspark/?rev=346&view=rev Author: yxu Date: 2013-03-29 21:11:54 +0000 (Fri, 29 Mar 2013) Log Message: ----------- Merge branch 'open-source-paper' * open-source-paper: some text for connecting sections draft Acknowledgments draft abstract 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-03-29 20:18:52 UTC (rev 345) +++ trunk/spark/doc/papers/2013/opensource.tex 2013-03-29 21:11:54 UTC (rev 346) @@ -59,11 +59,10 @@ \maketitle \begin{abstract} - - current state of simspark - - changes 2013 - - evidence of impact of the released component to the RoboCup community. - - technical contribution - - benefit for the RoboCup community. + SimSpark is an open source robot simulator developed by RoboCup Community. + This paper briefly describes the development of SimSpark since 2008. + Furthermore, some new features are proposed and implemented for the next RoboCup, including realistic motor, heterogeneous robots, and agent proxies. + As a powerful tool to state different multi-robot researches, SimSpark has been successfully used in RoboCup simulation league, standard platform league and humanoid league. \end{abstract} \section{Introduction} @@ -82,11 +81,8 @@ 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} . +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} @@ -147,9 +143,9 @@ \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 +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 makes coordination between multi-robots more important. - \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. @@ -162,8 +158,10 @@ \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) +For getting more realistic simulation, some new features are proposed and implemented, including realistic motor, heterogeneous robots, and agent proxies. Furthermore, a new graphic user interface is implemented for better user experiences. +These experimental features probably will be used in RoboCup 2013 for the first time. + \subsection{Realistic Motor} NAO robot has twenty-one motor joints as its actuators. The simulation engine, e.g. ODE, provides a simple model of real life servos: @@ -343,7 +341,7 @@ project using Java. \subsection{SimSpark GUI} -\todo{SimSpark GUI: http://simspark.sourceforge.net/wiki/index.php/Graphical_User_Interface} +\todo{SimSpark GUI: \url{http://simspark.sourceforge.net/wiki/index.php/Graphical_User_Interface}} NOTE: It will be merged to trunk soon. So it is almost complete. @@ -389,7 +387,11 @@ \section{Conclusion and Future Work} \label{s:conclusion} SimSpark is a powerful tool to state different multi-robot researches. +The introduction of a humanoid robot model to the simulation gave another perspective to the league. +The interest in the 3D simulation competition is growing fast and research is slowly getting back to the design and implementation of multi-agent higher-level behaviors based on solid low level behavior architectures for realistic humanoid robot teams. +SimSpark has undergone continuous development driven by the requirement of continues research in multi-robot system. + \paragraph{Integration With Existing Robotic Frameworks} To enhance the usability of SimSpark for wider usage, and also to make it easier for developers to develop and test their robotic software on SimSpark and to @@ -415,11 +417,10 @@ who have developed programs for real robots using the framework to experiment with SimSpark. -\todo[inline]{Other physic engine, Bullet / physics simulation engine abstraction} -\todo[inline]{better GUI} -\todo[inline]{more robot models?} +\paragraph{physics simulation engine abstraction / Bullet} +\paragraph{more robot models, formate?} \section*{Acknowledgments} - +We wish to thank other members in in the Maintenance Committee of the RoboCup Soccer Simulation League, especially the original authors of SimSpark: M. K\"ogler, M. Rollmann, and O. Obst. Furthermore, thanks go to J. Boedecker for introducing us to the SimSpark project.\todo{other names here...} \bibliographystyle{splncs03} \bibliography{reference} \end{document} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yx...@us...> - 2013-05-20 11:28:56
|
Revision: 350 http://sourceforge.net/p/simspark/svn/350 Author: yxu Date: 2013-05-20 11:28:53 +0000 (Mon, 20 May 2013) Log Message: ----------- Merge branch 'open-source-paper' # By Xu Yuan (1) and hedayat (1) * open-source-paper: comments of the reviewers Add heterogeneous robot type to AgentState, so that it can be checked by rules. 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-04-24 20:11:40 UTC (rev 349) +++ trunk/spark/doc/papers/2013/opensource.tex 2013-05-20 11:28:53 UTC (rev 350) @@ -1,7 +1,7 @@ \documentclass{llncs} \usepackage[belowskip=-15pt,aboveskip=10pt]{caption} \usepackage[utf8]{inputenc} -\usepackage[disable]{todonotes} +\usepackage{todonotes} \usepackage{amsmath} \usepackage[hidelinks]{hyperref} \usepackage{cleveref} @@ -25,6 +25,8 @@ \input{#1.tikz} } +\newcommand{\review}[1]{\todo[inline,color=red]{REVIEW: #1}} + \renewcommand{\textfraction}{0.15} \renewcommand{\topfraction}{0.85} \renewcommand{\bottomfraction}{0.65} @@ -34,7 +36,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} -\title{SimSpark: An Open Source Robot Simulator Developed by RoboCup Community} +\title{SimSpark: An Open Source Robot Simulator Developed by the RoboCup Community} \author{Yuan Xu\inst{1} \and Hedayat Vatankhah\inst{2}} @@ -83,6 +85,8 @@ Furthermore, we will give the application examples of SimSpark in section \ref{s:application}. Finally, we will outline future development plans in section \ref{s:conclusion}. +\review{As a technical paper, it is better to add detailed description of the mechanism to guarantee the generality and the extendability of SimSpark.} + \section{Project Overview} \label{s:overview} @@ -102,6 +106,9 @@ \section{Spark} \label{s:spark} + +\review{a picture of the architecture would simplify reading may be including clients and monitor} + As a generic simulation environment, Spark provides a rich set of features to create, debug and modify multi-robot simulations. 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. @@ -131,8 +138,14 @@ 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}. -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?} +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. +\review{22 agents is great. Just to add that in such a setup, the soccerserver claims 'only' 160\% of an 800\% CPU availability even when run in as fast as possible mode. So there still might be space for improvement.} + +\review{it is nice to add some comparative evaluation of speed up by multi-threading.} + +\todo[color=yellow]{results of performance improvement, any benchmark?} + \section{RCSSServer3D} \label{s:rcssserver3d} @@ -332,7 +345,7 @@ 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. +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} Currently, an initial version of agent proxies is under development outside SimSpark project using Java. @@ -345,7 +358,7 @@ % 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. It is also widely used to teach artificial intelligence and robotic lectures. +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. \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. @@ -384,12 +397,12 @@ The introduction of a humanoid robot model increase the realism of SimSpark, and gains popularity in research teams who have real robots. The increased number of players per team makes research slowly get back to the high level behaviors based on solid low level behavior for realistic humanoid robot teams. -SimSpark has undergone continuous development driven by the requirement of continuous research in multi-robot system. The following approaches are planned: +SimSpark has undergone continuous development driven by the requirement of continuous research in multi-robot system. The following extentions are planned: \begin{description} \item[Integration With Existing Robotic Frameworks] To enhance the usability of SimSpark for wider usage, and also to make it easier to develop and test their robotic software on SimSpark and to use the same code on real hardware, we aim to integrate SimSpark to an -existing robotic framework, such as Player and ROS. +existing robotic framework, such as ROS or Player. % Player is a well-known robotic framework which % can be used to control both real and simulated robots. We planned to integrate @@ -412,16 +425,18 @@ % who have developed programs for real robots using the framework to experiment % with SimSpark. -\item[Abstract Physics Layer] +\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?} + \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} \section*{Acknowledgments} -We wish to thank other members in the Maintenance Committee of the RoboCup Soccer Simulation League, especially the original authors of SimSpark: M. K\"ogler, M. Rollmann, and O. Obst. Furthermore, thanks go to J. Boedecker for supporting us to work in the SimSpark project.\todo{other names here...} +We wish to thank other members in the Maintenance Committee of the RoboCup Soccer Simulation League, especially the original authors of SimSpark: M. K\"ogler, M. Rollmann, and O. Obst. Furthermore, thanks go to J. Boedecker for supporting us to work in the SimSpark project. \bibliographystyle{splncs03} \bibliography{reference} \end{document} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
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. |