From: <he...@us...> - 2010-01-10 23:45:17
|
Revision: 140 http://simspark.svn.sourceforge.net/simspark/?rev=140&view=rev Author: hedayat Date: 2010-01-10 23:45:10 +0000 (Sun, 10 Jan 2010) Log Message: ----------- Add a new script: rcsoccersim3d to run both a server and a monitor, and shut down the server when monitor quits renamed simspark to rcssserver3d Updates release notes Modified Paths: -------------- trunk/rcssserver3d/CMakeLists.txt trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/RELEASE trunk/rcssserver3d/rcssserver3d/CMakeLists.txt trunk/rcssserver3d/rcssserver3d/main.cpp Added Paths: ----------- trunk/rcssserver3d/rcssserver3d/ trunk/rcssserver3d/rcssserver3d/naosoccersim.rb trunk/rcssserver3d/rcssserver3d/rcsoccersim3d.in Removed Paths: ------------- trunk/rcssserver3d/rcssserver3d/naosoccersim.rb trunk/rcssserver3d/simspark/ Modified: trunk/rcssserver3d/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/CMakeLists.txt 2010-01-10 09:14:25 UTC (rev 139) +++ trunk/rcssserver3d/CMakeLists.txt 2010-01-10 23:45:10 UTC (rev 140) @@ -76,7 +76,7 @@ add_subdirectory(plugin) add_subdirectory(rcssagent3d) add_subdirectory(rcssmonitor3d) -add_subdirectory(simspark) +add_subdirectory(rcssserver3d) ########### install files ############### Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2010-01-10 09:14:25 UTC (rev 139) +++ trunk/rcssserver3d/ChangeLog 2010-01-10 23:45:10 UTC (rev 140) @@ -1,3 +1,19 @@ +2010-01-11 Hedayat Vatankhah <he...@gr...> + + * RELEASE: + - added some notes about the name change and also the new script + (rcsoccersim3d) + + * CMakeLists.txt: + * rcssserver3d/main.cpp: + * rcssserver3d/CMakeLists.txt: + - renamed simspark -> rcssserver3d. creating a simspark symbolic link for + backward compatibility + + * rcssserver3d/rcsoccersim3d.in: + - added rcsoccersim3d script to run both rcssserver3d (simspark) and + rcssmonitor3d, and terminate the simulator when the monitor stops + 2010-01-09 Hedayat Vatankhah <he...@gr...> * data/models/leftgoal.obj: Modified: trunk/rcssserver3d/RELEASE =================================================================== --- trunk/rcssserver3d/RELEASE 2010-01-10 09:14:25 UTC (rev 139) +++ trunk/rcssserver3d/RELEASE 2010-01-10 23:45:10 UTC (rev 140) @@ -1,7 +1,10 @@ RELEASE News of rcssserver3d-0.6.3 (In progress) * Most notable changes: - - No internal monitor by default. Run rcssmonitor3d separately to see the game. + - Name change: simspark -> rcssserver3d. To make the functionality more clear. + - No internal monitor by default. Run rcssmonitor3d separately to see the game. + As another option, you might run rcsoccersim3d which runs both + rcssserver3d (simspark) and rcssmonitor3d on the local machine. - Added HMDP effector/perceptor - Some compilation fixes - Improved Windows support Modified: trunk/rcssserver3d/rcssserver3d/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/simspark/CMakeLists.txt 2009-12-18 13:01:31 UTC (rev 126) +++ trunk/rcssserver3d/rcssserver3d/CMakeLists.txt 2010-01-10 23:45:10 UTC (rev 140) @@ -1,10 +1,10 @@ ########### next target ############### -set(simspark_SRCS +set(rcssserver3d_SRCS main.cpp ) -add_executable(simspark ${simspark_SRCS}) +add_executable(rcssserver3d ${rcssserver3d_SRCS}) if (APPLE) set(SDL_LINK_LIBS ${SDLMAIN_LIBRARY} ${SDL_LIBRARY_TEMP}) @@ -12,16 +12,27 @@ include_directories(${SDL_INCLUDE_DIR}) -target_link_libraries(simspark ${SPARK_LIBRARIES} ${SALT_LIBRARIES} +target_link_libraries(rcssserver3d ${SPARK_LIBRARIES} ${SALT_LIBRARIES} ${ZEITGEIST_LIBRARIES} ${OXYGEN_LIBRARIES} ${KEROSIN_LIBRARIES} ${SDL_LINK_LIBS} ${RCSSNET3D_LIBRARY}) -set_target_properties(simspark PROPERTIES INSTALL_RPATH "${RPATH_DIRECTORIES}") -install(TARGETS simspark DESTINATION ${BINDIR}) +set_target_properties(rcssserver3d PROPERTIES INSTALL_RPATH "${RPATH_DIRECTORIES}") +install(TARGETS rcssserver3d DESTINATION ${BINDIR}) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/rcsoccersim3d.in + ${CMAKE_CURRENT_BINARY_DIR}/rcsoccersim3d) +execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink + ${CMAKE_INSTALL_PREFIX}/${BINDIR}/rcssserver3d + ${CMAKE_CURRENT_BINARY_DIR}/simspark) + ########### install files ############### install(FILES simspark.rb soccersim.rb naosoccersim.rb internalsoccermonitor.rb internalsoccerbindings.rb DESTINATION ${DATADIR}/${CMAKE_PROJECT_NAME}) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/rcsoccersim3d + ${CMAKE_CURRENT_BINARY_DIR}/simspark DESTINATION ${BINDIR} + PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ + GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE) Modified: trunk/rcssserver3d/rcssserver3d/main.cpp =================================================================== --- trunk/rcssserver3d/simspark/main.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ trunk/rcssserver3d/rcssserver3d/main.cpp 2010-01-10 23:45:10 UTC (rev 140) @@ -69,7 +69,7 @@ void SimSpark::PrintGreeting() { GetLog()->Normal() - << "simspark, a monolithic simulator 0.6.1\n" + << "rcssserver3d (formerly simspark), a monolithic simulator 0.6.1\n" << "Copyright (C) 2004 Markus Rollmann, \n" << "Universität Koblenz.\n" << "Copyright (C) 2004-2009, " @@ -80,7 +80,7 @@ void SimSpark::PrintHelp() { GetLog()->Normal() - << "\nusage: simspark [options] [script]\n" + << "\nusage: rcssserver3d [options] [script]\n" << "\noptions:\n" << " --help\t\t\t print this message.\n" << " --script-path PATH\t set the script path (simspark.rb path).\n" Deleted: trunk/rcssserver3d/rcssserver3d/naosoccersim.rb =================================================================== --- trunk/rcssserver3d/simspark/naosoccersim.rb 2009-12-18 13:01:31 UTC (rev 126) +++ trunk/rcssserver3d/rcssserver3d/naosoccersim.rb 2010-01-10 23:45:10 UTC (rev 140) @@ -1,103 +0,0 @@ -# -# prepare soccer simulation -# - -# setup soccer specific materials -# run "scripts/rcs-materials.rb" -if ($enableInternalMonitor) - run "scripts/rcs-materials-textures.rb" - - material = sparkCreate('kerosin/Material2DTexture', $serverPath+'material/matGrass'); - material.setDiffuse(1.0,1.0,1.0,1.0) - material.setAmbient(0.5,0.5,0.5,1.0) - material.setDiffuseTexture('textures/rcs-naofield.png') -end - -importBundle "soccer" - -# soccer namespace -$soccerNameSpace = "Soccer" - -# register a variable in the soccer namespace -def addSoccerVar(name, value) - createVariable($soccerNameSpace, name, value) -end - -# helper to get the value of a variable in the soccer namespace -def getSoccerVar(name) - eval <<-EOS - #{$soccerNameSpace}.#{name} - EOS -end - -# set a random seed (a seed of 0 means: use a random random seed) -randomServer = get($serverPath+'random') -if (randomServer != nil) - randomServer.seed(0) -end - -# the soccer field dimensions in meters -addSoccerVar('FieldLength', 12.0) -addSoccerVar('FieldWidth', 8.0) -addSoccerVar('FieldHeight', 40.0) -addSoccerVar('GoalWidth', 1.4) -addSoccerVar('GoalDepth', 0.4) -addSoccerVar('GoalHeight', 0.8) -addSoccerVar('PenaltyLength',1.2) -addSoccerVar('PenaltyWidth',2.6) -addSoccerVar('FreeKickDistance', 1.3) -addSoccerVar('FreeKickMoveDist', 1.5) -addSoccerVar('GoalKickDist', 1.0) -addSoccerVar('AutomaticKickOff', false) -addSoccerVar('WaitBeforeKickOff', 2.0) - -# agent parameters -addSoccerVar('AgentRadius', 0.4) - -# ball parameters -addSoccerVar('BallRadius', 0.042) -addSoccerVar('BallMass',0.026) - -# soccer rule parameters -addSoccerVar('RuleGoalPauseTime',3.0) -addSoccerVar('RuleKickInPauseTime',1.0) -addSoccerVar('RuleHalfTime',5.0 * 60) -addSoccerVar('RuleDropBallTime',30) -addSoccerVar('SingleHalfTime', false) -addSoccerVar('UseOffside',false) - -# recorders -addSoccerVar('BallRecorder',"Ball/geometry/recorder") -addSoccerVar('LeftGoalRecorder',"leftgoal/GoalBox/BoxCollider/recorder") -addSoccerVar('RightGoalRecorder',"rightgoal/GoalBox/BoxCollider/recorder") - -# textures -createVariable('Nao', 'UseTexture', 'true') - -scene = get($scenePath) -if (scene != nil) - scene.importScene('rsg/agent/nao/soccer.rsg') -end - -# setup the GameControlServer -gameControlServer = get($serverPath+'gamecontrol') -if (gameControlServer != nil) - gameControlServer.initControlAspect('GameStateAspect') - gameControlServer.initControlAspect('BallStateAspect') - gameControlServer.initControlAspect('SoccerRuleAspect') - obj = get('/sys/server/gamecontrol/GameStateAspect') - if (obj != nil) - obj.setTime(0) - obj.setScores(0,0) - end -end - -# init monitorItems to transmit game state information -monitorServer = get($serverPath+'monitor') -if (monitorServer != nil) - monitorServer.registerMonitorItem('GameStateItem') -end - -# install the TrainerCommandParser to parse commands received from a -# monitor client -sparkRegisterMonitorCmdParser 'TrainerCommandParser' Copied: trunk/rcssserver3d/rcssserver3d/naosoccersim.rb (from rev 130, trunk/rcssserver3d/simspark/naosoccersim.rb) =================================================================== --- trunk/rcssserver3d/rcssserver3d/naosoccersim.rb (rev 0) +++ trunk/rcssserver3d/rcssserver3d/naosoccersim.rb 2010-01-10 23:45:10 UTC (rev 140) @@ -0,0 +1,103 @@ +# +# prepare soccer simulation +# + +# setup soccer specific materials +# run "scripts/rcs-materials.rb" +if ($enableInternalMonitor) + run "scripts/rcs-materials-textures.rb" + + material = sparkCreate('kerosin/Material2DTexture', $serverPath+'material/matGrass'); + material.setDiffuse(1.0,1.0,1.0,1.0) + material.setAmbient(0.5,0.5,0.5,1.0) + material.setDiffuseTexture('textures/rcs-naofield.png') +end + +importBundle "soccer" + +# soccer namespace +$soccerNameSpace = "Soccer" + +# register a variable in the soccer namespace +def addSoccerVar(name, value) + createVariable($soccerNameSpace, name, value) +end + +# helper to get the value of a variable in the soccer namespace +def getSoccerVar(name) + eval <<-EOS + #{$soccerNameSpace}.#{name} + EOS +end + +# set a random seed (a seed of 0 means: use a random random seed) +randomServer = get($serverPath+'random') +if (randomServer != nil) + randomServer.seed(0) +end + +# the soccer field dimensions in meters +addSoccerVar('FieldLength', 18.0) +addSoccerVar('FieldWidth', 12.0) +addSoccerVar('FieldHeight', 40.0) +addSoccerVar('GoalWidth', 2.1) +addSoccerVar('GoalDepth', 0.6) +addSoccerVar('GoalHeight', 0.8) +addSoccerVar('PenaltyLength',1.8) +addSoccerVar('PenaltyWidth',3.9) +addSoccerVar('FreeKickDistance', 1.3) +addSoccerVar('FreeKickMoveDist', 1.5) +addSoccerVar('GoalKickDist', 1.0) +addSoccerVar('AutomaticKickOff', false) +addSoccerVar('WaitBeforeKickOff', 2.0) + +# agent parameters +addSoccerVar('AgentRadius', 0.4) + +# ball parameters +addSoccerVar('BallRadius', 0.042) +addSoccerVar('BallMass',0.026) + +# soccer rule parameters +addSoccerVar('RuleGoalPauseTime',3.0) +addSoccerVar('RuleKickInPauseTime',1.0) +addSoccerVar('RuleHalfTime',5.0 * 60) +addSoccerVar('RuleDropBallTime',30) +addSoccerVar('SingleHalfTime', false) +addSoccerVar('UseOffside',false) + +# recorders +addSoccerVar('BallRecorder',"Ball/geometry/recorder") +addSoccerVar('LeftGoalRecorder',"leftgoal/GoalBox/BoxCollider/recorder") +addSoccerVar('RightGoalRecorder',"rightgoal/GoalBox/BoxCollider/recorder") + +# textures +createVariable('Nao', 'UseTexture', 'true') + +scene = get($scenePath) +if (scene != nil) + scene.importScene('rsg/agent/nao/soccer.rsg') +end + +# setup the GameControlServer +gameControlServer = get($serverPath+'gamecontrol') +if (gameControlServer != nil) + gameControlServer.initControlAspect('GameStateAspect') + gameControlServer.initControlAspect('BallStateAspect') + gameControlServer.initControlAspect('SoccerRuleAspect') + obj = get('/sys/server/gamecontrol/GameStateAspect') + if (obj != nil) + obj.setTime(0) + obj.setScores(0,0) + end +end + +# init monitorItems to transmit game state information +monitorServer = get($serverPath+'monitor') +if (monitorServer != nil) + monitorServer.registerMonitorItem('GameStateItem') +end + +# install the TrainerCommandParser to parse commands received from a +# monitor client +sparkRegisterMonitorCmdParser 'TrainerCommandParser' Added: trunk/rcssserver3d/rcssserver3d/rcsoccersim3d.in =================================================================== --- trunk/rcssserver3d/rcssserver3d/rcsoccersim3d.in (rev 0) +++ trunk/rcssserver3d/rcssserver3d/rcsoccersim3d.in 2010-01-10 23:45:10 UTC (rev 140) @@ -0,0 +1,65 @@ +#! /bin/sh + +bindir="@CMAKE_INSTALL_PREFIX@/@BINDIR@" +libdir="@CMAKE_INSTALL_PREFIX@/@LIBDIR@" + +LIBPATH="$libdir/simspark:$libdir/rcssserver3d" +if [ x"$LIBPATH" != x ] ; then + if [ x"$LD_LIBRARY_PATH" = x ] ; then + LD_LIBRARY_PATH=$LIBPATH + else + LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH + fi + export LD_LIBRARY_PATH +fi + +#-------------------------------------------------- +# option +# + +SERV="$bindir/rcssserver3d" +if [ ! -f $SERV ]; then + echo "Error: $SERV does not exist!" + echo "" + exit 1 +fi + +MON="$bindir/rcssmonitor3d" +if [ ! -f $MON ]; then + echo "Error: $MON does not exist!" + echo "" + exit 1 +fi + +#-------------------------------------------------- +# set handler +# + +trap kill_server INT + +#-------------------------------------------------- +# start server +# + +$SERV & +PID=$! + +#-------------------------------------------------- +# kill server +# +kill_server() +{ + kill -s INT $PID + echo "" + exit 0 +} + +#-------------------------------------------------- +# start monitor +# + +sleep 2 + +$MON + +kill_server Property changes on: trunk/rcssserver3d/rcssserver3d/rcsoccersim3d.in ___________________________________________________________________ Added: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |