From: <he...@us...> - 2015-03-27 19:39:58
|
Revision: 387 http://sourceforge.net/p/simspark/svn/387 Author: hedayat Date: 2015-03-27 19:39:48 +0000 (Fri, 27 Mar 2015) Log Message: ----------- Merge trunk/ with gui-bullet branch Modified Paths: -------------- branches/gui-bullet/rcssserver3d/CMakeLists.txt branches/gui-bullet/rcssserver3d/ChangeLog branches/gui-bullet/rcssserver3d/NEWS branches/gui-bullet/rcssserver3d/RELEASE branches/gui-bullet/rcssserver3d/data/rsg/agent/nao/nao_hetero.rsg branches/gui-bullet/rcssserver3d/data/rsg/agent/nao/naoleg.rsg branches/gui-bullet/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp branches/gui-bullet/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.h branches/gui-bullet/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp branches/gui-bullet/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.h branches/gui-bullet/rcssserver3d/rcssserver3d/naorobottypes.rb branches/gui-bullet/rcssserver3d/rcssserver3d/naosoccersim.rb branches/gui-bullet/spark/ChangeLog Added Paths: ----------- branches/gui-bullet/rcssserver3d/data/rsg/agent/nao/naolegtoe.rsg Property Changed: ---------------- branches/gui-bullet/ branches/gui-bullet/rcssserver3d/ Index: branches/gui-bullet =================================================================== --- branches/gui-bullet 2015-02-07 20:31:12 UTC (rev 386) +++ branches/gui-bullet 2015-03-27 19:39:48 UTC (rev 387) Property changes on: branches/gui-bullet ___________________________________________________________________ Added: svn:mergeinfo ## -0,0 +1 ## +/trunk:358-386 \ No newline at end of property Index: branches/gui-bullet/rcssserver3d =================================================================== --- branches/gui-bullet/rcssserver3d 2015-02-07 20:31:12 UTC (rev 386) +++ branches/gui-bullet/rcssserver3d 2015-03-27 19:39:48 UTC (rev 387) Property changes on: branches/gui-bullet/rcssserver3d ___________________________________________________________________ Modified: svn:mergeinfo ## -1 +1 ## -/trunk/rcssserver3d:329-355,360-372 +/trunk/rcssserver3d:329-355,358-386 \ No newline at end of property Modified: branches/gui-bullet/rcssserver3d/CMakeLists.txt =================================================================== --- branches/gui-bullet/rcssserver3d/CMakeLists.txt 2015-02-07 20:31:12 UTC (rev 386) +++ branches/gui-bullet/rcssserver3d/CMakeLists.txt 2015-03-27 19:39:48 UTC (rev 387) @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.6) project(rcssserver3d CXX C) -set(PACKAGE_VERSION "0.6.7") +set(PACKAGE_VERSION "0.6.8.1") ########## check for headerfiles/libraries ########## include(CheckIncludeFile) Modified: branches/gui-bullet/rcssserver3d/ChangeLog =================================================================== --- branches/gui-bullet/rcssserver3d/ChangeLog 2015-02-07 20:31:12 UTC (rev 386) +++ branches/gui-bullet/rcssserver3d/ChangeLog 2015-03-27 19:39:48 UTC (rev 387) @@ -1,3 +1,26 @@ +2014-06-25 Hedayat Vatankhah <hed...@gm...> + + * NEWS: + * RELEASE: + * CMakeLists.txt: + - prepared for 0.6.8.1 release + + * data/rsg/agent/nao/nao_hetero.rsg: + * data/rsg/agent/nao/naoleg.rsg: + * data/rsg/agent/nao/naolegtoe.rsg: + * rcssserver3d/naorobottypes.rb: + - Update robot types for RoboCup 2014 including two new types, one of which + has toes! Thanks to Patrick, Stefan and Klaus. + +2014-05-30 Hedayat Vatankhah <hed...@gm...> + + * NEWS: + * RELEASE: + * CMakeLists.txt: + - prepared for 0.6.8 release; including changes in this release like hear + message labeling, score reporting and bug fixes not documented in + ChangeLog + 2013-06-20 Hedayat Vatankhah <hed...@gm...> * plugin/soccermonitor/CMakeLists.txt: Modified: branches/gui-bullet/rcssserver3d/NEWS =================================================================== --- branches/gui-bullet/rcssserver3d/NEWS 2015-02-07 20:31:12 UTC (rev 386) +++ branches/gui-bullet/rcssserver3d/NEWS 2015-03-27 19:39:48 UTC (rev 387) @@ -1,6 +1,42 @@ +[0.6.8.1] +This is a bug-fix release for 0.6.8, which had a bug in labeling hear messages. +It also includes few other changes: a small bug fix, and new hetero robot types +for RoboCup 2014. Now, our Nao robots can have toe! :) + +[0.6.8] +This release mainly comes with 2 new features: 1. labeling hear messages with +team names so that it is clear which team the message comes from. 2. Score +reporting. A few bug fixes are also included. + +* Hear message labeling: + - Now hear messages include team names - Ex: (hear teamName 9 10 text) + +* Score Reporting: + - Example: (GS (unum 8) (team left) (sl 1) (sr 2) (t 0.00) (pm BeforeKickOff)) + +* New Options in naosoccersim.rb: + - LabelMessages - Toggles on/off labeling of messages (default on) + - ReportScores - Toggles on/off score reporting (default on) + - MaxRobotTypeCount - Maximum number of any one robot type that may be + used (default 7 and can be set to 11 to preserve 2013 competition behavior) + - MinRobotTypesCount - Minimum number of robot types that must be used for a + full team (default 3 and can be set to 1 to preserve 2013 competition + behavior) + - MaxSumTwoRobotTypes - The maximum sum of robots for any two robot types + (default 9 but can be set to 11 to preserve 2013 competition behavior) + +* Other changes: + - Robot type checking to ensure that enough robot types (3) are used and that + not too many of any one (7) or two (9) types is used. + - Updating naorobottypes.rb with robot types used in 2013 competitions + - Clear Players in GoalLeft/Right before kickoff to make sure that opponent + doesn't touch ball at the middle of the field. + - Don't enforce crowding rules on kickoff, since opponent should not come + near the ball + [0.6.7] This is the RoboCup 2013 release. It comes with some bug fixes, and also -compatibility with latest Boost libraries. New foulds and new debugging +compatibility with latest Boost libraries. New fouls and new debugging facility are provided. Now, fouls are sent to the monitor so that it can provide visual feedback about them. Finally, support for heterogeneous robots is added and two sample types are provided. Modified: branches/gui-bullet/rcssserver3d/RELEASE =================================================================== --- branches/gui-bullet/rcssserver3d/RELEASE 2015-02-07 20:31:12 UTC (rev 386) +++ branches/gui-bullet/rcssserver3d/RELEASE 2015-03-27 19:39:48 UTC (rev 387) @@ -1,49 +1,39 @@ -RELEASE News of rcssserver3d-0.6.7 +RELEASE News of rcssserver3d-0.6.8.1 -This is the RoboCup 2013 release. It comes with some bug fixes, and also -compatibility with latest Boost libraries. New foulds and new debugging -facility are provided. Now, fouls are sent to the monitor so that it can -provide visual feedback about them. Finally, support for heterogeneous robots -is added and two sample types are provided. +This is a bug-fix release for 0.6.8, which had a bug in labeling hear messages. +It also includes few other changes: a small bug fix, and new hetero robot types +for RoboCup 2014. Now, our Nao robots can have toe! :) -* Heterogeneous Players: - This release supports heterogeneous players. Currently, two extra Nao robots - are provided beside the standard Nao (thanks Stefan and Klaus). +And this is the release news for 0.6.8: +This release mainly comes with 2 new features: 1. labeling hear messages with +team names so that it is clear which team the message comes from. 2. Score +reporting. A few bug fixes are also included. + +* Hear message labeling: + - Now hear messages include team names - Ex: (hear teamName 9 10 text) - - Usage: to use the new heterogeneous players, a new scene command should be - used. While the old style scene commands work, for using hetero players you - should send "(scene rsg/agent/nao/nao_hetero.rsg TYPE_NO)", in which TYPE_NO - is the type number of the player type. Type 0 is the standard type, and - hetero types start from 1. Therefore, to load Nao type 1 the following - command should be sent: (scene rsg/agent/nao/nao_hetero.rsg 1). Notice that - you can use the new style command for loading standard Nao, using 0 as - TYPE_NO. - - - Heterogeneous Robot Parameters: The robot parameters for different types - are defined in a new file: "naorobottypes.rb". New types can be added to the - array. But to define new parameters, corresponding .rsg files should be - modified. - - - Rules: Each team can use a limited number of hetero players. The limits - can be configured in naosoccersim.rb using "MaxTotalHeteroCount" and - "MaxHeteroTypeCount" variables. The former limits the total number of hetero - players for each team, and the latter specifies the maximum number of players - of a single hetero player type. +* Score Reporting: + - Example: (GS (unum 8) (team left) (sl 1) (sr 2) (t 0.00) (pm BeforeKickOff)) -* Other Features/Changes: - - Charging fouls rules are added (thanks Patrick). These fouls are not - penalized, but recorded and sent to the monitor. New rules can be configured - in naosoccersim.rb. - - Fouls are added to the monitor protocol to provide visual feedback about - them to viewers. - - For debugging purposes, sensing the orientation of the agent can be - enabled using "setSenseMyOrien" option in the .rsg file of an agent (added - by Patrick) - - A player can kick the ball in kickoff if there are only 2 players in - the field to support current penalty mode. - - Fixed bugs in goal counting when changing team sides in the second half. - Now, this feature should work fine. However, it is disabled by default now - since we don't use it currently in the competitions. +* New Options in naosoccersim.rb: + - LabelMessages - Toggles on/off labeling of messages (default on) + - ReportScores - Toggles on/off score reporting (default on) + - MaxRobotTypeCount - Maximum number of any one robot type that may be + used (default 7 and can be set to 11 to preserve 2013 competition behavior) + - MinRobotTypesCount - Minimum number of robot types that must be used for a + full team (default 3 and can be set to 1 to preserve 2013 competition + behavior) + - MaxSumTwoRobotTypes - The maximum sum of robots for any two robot types + (default 9 but can be set to 11 to preserve 2013 competition behavior) + +* Other changes: + - Robot type checking to ensure that enough robot types (3) are used and that + not too many of any one (7) or two (9) types is used. + - Updating naorobottypes.rb with robot types used in 2013 competitions + - Clear Players in GoalLeft/Right before kickoff to make sure that opponent + doesn't touch ball at the middle of the field. + - Don't enforce crowding rules on kickoff, since opponent should not come + near the ball You can get the package on the Simspark page on SourceForge at http://sourceforge.net/projects/simspark/ Modified: branches/gui-bullet/rcssserver3d/data/rsg/agent/nao/nao_hetero.rsg =================================================================== --- branches/gui-bullet/rcssserver3d/data/rsg/agent/nao/nao_hetero.rsg 2015-02-07 20:31:12 UTC (rev 386) +++ branches/gui-bullet/rcssserver3d/data/rsg/agent/nao/nao_hetero.rsg 2015-03-27 19:39:48 UTC (rev 387) @@ -25,6 +25,9 @@ (def $TorsoInitZ 1.5) (def $loadObj (eval Nao.UseTexture)) + +(def $useToe (eval "NaoType["$type"]['UseToe']")) + ; ;Begin Construct of Nao ; @@ -131,18 +134,38 @@ ; ;The Right Leg ; - (importScene rsg/agent/nao/naoleg.rsg - 1 r - $TorsoInitX $TorsoInitY $TorsoInitZ $loadObj - $type) - + (switch $useToe + (true + (importScene rsg/agent/nao/naolegtoe.rsg + 1 r + $TorsoInitX $TorsoInitY $TorsoInitZ $loadObj + $type) + ) + (false + (importScene rsg/agent/nao/naoleg.rsg + 1 r + $TorsoInitX $TorsoInitY $TorsoInitZ $loadObj + $type) + ) + ) + ; ;The Left Leg ; - (importScene rsg/agent/nao/naoleg.rsg - -1 l - $TorsoInitX $TorsoInitY $TorsoInitZ $loadObj - $type) + (switch $useToe + (true + (importScene rsg/agent/nao/naolegtoe.rsg + -1 l + $TorsoInitX $TorsoInitY $TorsoInitZ $loadObj + $type) + ) + (false + (importScene rsg/agent/nao/naoleg.rsg + -1 l + $TorsoInitX $TorsoInitY $TorsoInitZ $loadObj + $type) + ) + ) );end of nd Space Modified: branches/gui-bullet/rcssserver3d/data/rsg/agent/nao/naoleg.rsg =================================================================== --- branches/gui-bullet/rcssserver3d/data/rsg/agent/nao/naoleg.rsg 2015-02-07 20:31:12 UTC (rev 386) +++ branches/gui-bullet/rcssserver3d/data/rsg/agent/nao/naoleg.rsg 2015-03-27 19:39:48 UTC (rev 387) @@ -47,9 +47,11 @@ ; ;Position Parameters ; - (def $Hip1RelTorso_X (eval $LRFactor * 0.055)) + ;(def $Hip1RelTorso_X (eval $LRFactor * 0.055)) + (def $Hip1RelTorso_X (eval $LRFactor * (eval "NaoType["$type"]['Hip1RelTorso_X']"))) (def $Hip1RelTorso_Y -0.01) - (def $Hip1RelTorso_Z -0.115) + ;(def $Hip1RelTorso_Z -0.115) + (def $Hip1RelTorso_Z (eval "NaoType["$type"]['Hip1RelTorso_Z']")) (def $Hip2RelHip1_X 0) (def $Hip2RelHip1_Y 0) Copied: branches/gui-bullet/rcssserver3d/data/rsg/agent/nao/naolegtoe.rsg (from rev 386, trunk/rcssserver3d/data/rsg/agent/nao/naolegtoe.rsg) =================================================================== --- branches/gui-bullet/rcssserver3d/data/rsg/agent/nao/naolegtoe.rsg (rev 0) +++ branches/gui-bullet/rcssserver3d/data/rsg/agent/nao/naolegtoe.rsg 2015-03-27 19:39:48 UTC (rev 387) @@ -0,0 +1,447 @@ +; -*- mode: lisp; -*- + +(RSG 0 1) +( + ; + ;Template + ;@param LRFactor is (left_leg ? -1 : 1) + ; + (templ $LRFactor $LeftOrRight + $Torso_X $Torso_Y $Torso_Z $loadObj + $type + ) + + ; + ;The Names + ; + (def $Hip1Name (join $LeftOrRight hip1)) + (def $Hip2Name (join $LeftOrRight hip2)) + (def $ThighName (join $LeftOrRight thigh)) + (def $ShankName (join $LeftOrRight shank)) + (def $AnkleName (join $LeftOrRight ankle)) + (def $FootName (join $LeftOrRight foot)) + (def $ToeName (join $LeftOrRight toe)) + + (def $Hip1BodyPath (join ../../ $Hip1Name /sphereBody)) + (def $Hip2BodyPath (join ../../ $Hip2Name /sphereBody)) + (def $ThighBodyPath (join ../../ $ThighName /boxBody)) + (def $ShankBodyPath (join ../../ $ShankName /boxBody)) + (def $AnkleBodyPath (join ../../ $AnkleName /sphereBody)) + (def $FootBodyPath (join ../../ $FootName /boxBody)) + (def $ToeBodyPath (join ../../ $ToeName /boxBody)) + + (def $Joint1PerName (join $LeftOrRight lj1)) + (def $Joint2PerName (join $LeftOrRight lj2)) + (def $Joint3PerName (join $LeftOrRight lj3)) + (def $Joint4PerName (join $LeftOrRight lj4)) + (def $Joint5PerName (join $LeftOrRight lj5)) + (def $Joint6PerName (join $LeftOrRight lj6)) + (def $Joint7PerName (join $LeftOrRight lj7)) + + (def $Joint1EffName (join $LeftOrRight le1)) + (def $Joint2EffName (join $LeftOrRight le2)) + (def $Joint3EffName (join $LeftOrRight le3)) + (def $Joint4EffName (join $LeftOrRight le4)) + (def $Joint5EffName (join $LeftOrRight le5)) + (def $Joint6EffName (join $LeftOrRight le6)) + (def $Joint7EffName (join $LeftOrRight le7)) + + (def $FRPName (join $LeftOrRight f)) + (def $FRPToeName (join $LeftOrRight f1)) + + ; + ;Size and Mass Parameters + ; + (def $Hip1Radius 0.01) + (def $Hip1Mass 0.09) + + (def $Hip2Radius 0.01) + (def $Hip2Mass 0.125) + + (def $ThighSizeX 0.07) + (def $ThighSizeY 0.07) + (def $ThighSizeZ 0.14) + (def $ThighMass 0.275) + + (def $ShankSizeX 0.08) + (def $ShankSizeY 0.07) + (def $ShankSizeZ 0.11) + (def $ShankMass 0.225) + + (def $AnkleRadius 0.01) + (def $AnkleMass 0.125) + + (def $ToeLength (eval "NaoType["$type"]['ToeLength']")) + (def $TotalFootLength 0.16) + (def $FootToeMassRatio (eval (eval $ToeLength / $TotalFootLength) * 0.5)) + (def $FootTotalMass 0.2) + + (def $FootSizeX 0.08) + (def $FootSizeY (eval $TotalFootLength - $ToeLength)) + (def $FootSizeZ 0.02) + (def $FootMass (eval (eval 1 - $FootToeMassRatio) * $FootTotalMass)) + + (def $ToeSizeX 0.08) + (def $ToeSizeY $ToeLength) + (def $ToeSizeZ 0.01) + (def $ToeMass (eval $FootToeMassRatio * $FootTotalMass)) + + + ; + ;Position Parameters + ; + ;(def $Hip1RelTorso_X (eval $LRFactor * 0.055)) + (def $Hip1RelTorso_X (eval $LRFactor * (eval "NaoType["$type"]['Hip1RelTorso_X']"))) + (def $Hip1RelTorso_Y -0.01) + ;(def $Hip1RelTorso_Z -0.115) + (def $Hip1RelTorso_Z (eval "NaoType["$type"]['Hip1RelTorso_Z']")) + + (def $Hip2RelHip1_X 0) + (def $Hip2RelHip1_Y 0) + (def $Hip2RelHip1_Z 0) + + (def $ThighRelHip2_X 0) + (def $ThighRelHip2_Y 0.01) + ;(def $ThighRelHip2_Z -0.04) + (def $ThighRelHip2_Z (eval "NaoType["$type"]['ThighRelHip2_Z']")) + + (def $ShankRelThigh_X 0) + (def $ShankRelThigh_Y 0.005) + (def $ShankRelThigh_Z -0.125) + + (def $AnkleRelShank_X 0) + (def $AnkleRelShank_Y -0.01) + ;(def $AnkleRelShank_Z -0.055) + (def $AnkleRelShank_Z (eval "NaoType["$type"]['AnkleRelShank_Z']")) + + (def $FootRelAnkle_X 0) + (def $FootRelAnkle_Y (eval (eval $FootSizeY * 0.5) - 0.05)) + (def $FootRelAnkle_Z -0.04) + + (def $ToeRelFoot_X 0) + (def $ToeRelFoot_Y (eval $TotalFootLength * 0.5)) + (def $ToeRelFoot_Z -0.005) + + (def $Hip1_X (eval $Torso_X + $Hip1RelTorso_X)) + (def $Hip1_Y (eval $Torso_Y + $Hip1RelTorso_Y)) + (def $Hip1_Z (eval $Torso_Z + $Hip1RelTorso_Z)) + + (def $Hip2_X (eval $Hip1_X + $Hip2RelHip1_X)) + (def $Hip2_Y (eval $Hip1_Y + $Hip2RelHip1_Y)) + (def $Hip2_Z (eval $Hip1_Z + $Hip2RelHip1_Z)) + + (def $Thigh_X (eval $Hip2_X + $ThighRelHip2_X)) + (def $Thigh_Y (eval $Hip2_Y + $ThighRelHip2_Y)) + (def $Thigh_Z (eval $Hip2_Z + $ThighRelHip2_Z)) + + (def $Shank_X (eval $Thigh_X + $ShankRelThigh_X)) + (def $Shank_Y (eval $Thigh_Y + $ShankRelThigh_Y)) + (def $Shank_Z (eval $Thigh_Z + $ShankRelThigh_Z)) + + (def $Ankle_X (eval $Shank_X + $AnkleRelShank_X)) + (def $Ankle_Y (eval $Shank_Y + $AnkleRelShank_Y)) + (def $Ankle_Z (eval $Shank_Z + $AnkleRelShank_Z)) + + (def $Foot_X (eval $Ankle_X + $FootRelAnkle_X)) + (def $Foot_Y (eval $Ankle_Y + $FootRelAnkle_Y)) + (def $Foot_Z (eval $Ankle_Z + $FootRelAnkle_Z)) + + (def $Toe_X (eval $Foot_X + $ToeRelFoot_X)) + (def $Toe_Y (eval $Foot_Y + $ToeRelFoot_Y)) + (def $Toe_Z (eval $Foot_Z + $ToeRelFoot_Z)) + + ; + ;Joint Parameters + ; + (def $PI 3.14159265) + (def $MaxAbsJointSpeed (eval $PI * (eval 351.77 / 180.0))) + + (def $lj1_min -90) + (def $lj1_max 1) + (def $lj1_max_abs_speed $MaxAbsJointSpeed) + + (def $right_lj2_min -45) + (def $left_lj2_min -25) + (def $lj2_min_c1 (eval (eval $right_lj2_min + $left_lj2_min) * 0.5)) + (def $lj2_min_c2 (eval (eval $right_lj2_min - $left_lj2_min) * 0.5)) + (def $lj2_min (eval $lj2_min_c1 + (eval $LRFactor * $lj2_min_c2))) + + (def $right_lj2_max 25) + (def $left_lj2_max 45) + (def $lj2_max_c1 (eval (eval $right_lj2_max + $left_lj2_max) * 0.5)) + (def $lj2_max_c2 (eval (eval $right_lj2_max - $left_lj2_max) * 0.5)) + (def $lj2_max (eval $lj2_max_c1 + (eval $LRFactor * $lj2_max_c2))) + (def $lj2_max_abs_speed $MaxAbsJointSpeed) + + (def $lj3_min -25) + (def $lj3_max 100) + (def $lj3_max_abs_speed $MaxAbsJointSpeed) + + (def $lj4_min -130) + (def $lj4_max 1) + (def $lj4_max_abs_speed $MaxAbsJointSpeed) + + (def $lj5_min -45) + (def $lj5_max 75) + (def $lj5_max_abs_speed (eval "NaoType["$type"]['lj5_max_abs_speed']")) + + (def $right_lj6_min -25) + (def $left_lj6_min -45) + (def $lj6_min_c1 (eval (eval $right_lj6_min + $left_lj6_min) * 0.5)) + (def $lj6_min_c2 (eval (eval $right_lj6_min - $left_lj6_min) * 0.5)) + (def $lj6_min (eval $lj6_min_c1 + (eval $LRFactor * $lj6_min_c2))) + + (def $right_lj6_max 45) + (def $left_lj6_max 25) + (def $lj6_max_c1 (eval (eval $right_lj6_max + $left_lj6_max) * 0.5)) + (def $lj6_max_c2 (eval (eval $right_lj6_max - $left_lj6_max) * 0.5)) + (def $lj6_max (eval $lj6_max_c1 + (eval $LRFactor * $lj6_max_c2))) + (def $lj6_max_abs_speed (eval "NaoType["$type"]['lj6_max_abs_speed']")) + + (def $lj7_min -1) + (def $lj7_max 70) + (def $lj7_max_abs_speed $MaxAbsJointSpeed) + + (def $lj1_axis_x -0.7071) + (def $lj1_axis_y 0) + (def $lj1_axis_z (eval $LRFactor * 0.7071)) + + (def $lj3_Anchor_X (eval -1 * $ThighRelHip2_X)) + (def $lj3_Anchor_Y (eval -1 * $ThighRelHip2_Y)) + (def $lj3_Anchor_Z (eval -1 * $ThighRelHip2_Z)) + + (def $lj6_Anchor_X 0) + (def $lj6_Anchor_Y -0.03) + (def $lj6_Anchor_Z 0.035) + + (def $lj7_Anchor_X 0) + (def $lj7_Anchor_Y (eval -0.5 * $ToeLength)) + (def $lj7_Anchor_Z -0.005) + + ; + ;Models obj + ; + (def $ThighObj (join models/ $LeftOrRight thigh.obj)) + (def $ShankObj (join models/ $LeftOrRight shank.obj)) + (def $FootObj (join models/ $LeftOrRight foot.obj)) + + ; + ;Construct Hip1 + ; + (nd Transform + (setName $Hip1Name) + (setLocalPos $Hip1_X $Hip1_Y $Hip1_Z) + + (importScene rsg/agent/nao/sphere_appearance.rsg $Hip1Radius matYellow) + ;(importScene rsg/agent/nao/sphere_physics $Hip1Radius $Hip1Mass) + (importScene rsg/agent/nao/sphere_physics_nocollider.rsg $Hip1Radius $Hip1Mass) + + + (importScene rsg/agent/nao/hingejoint.rsg + $Joint1PerName $Joint1EffName + ../sphereBody ../../body/boxBody + 0 0 0 + $lj1_axis_x $lj1_axis_y $lj1_axis_z + $lj1_min $lj1_max + $lj1_max_abs_speed) + ) + + ; + ;Construct Hip2 + ; + (nd Transform + (setName $Hip2Name) + (setLocalPos $Hip2_X $Hip2_Y $Hip2_Z) + + (importScene rsg/agent/nao/sphere_appearance.rsg $Hip2Radius matYellow) + ;(importScene rsg/agent/nao/sphere_physics.rsg $Hip2Radius $Hip2Mass) + (importScene rsg/agent/nao/sphere_physics_nocollider.rsg $Hip2Radius $Hip2Mass) + + (importScene rsg/agent/nao/hingejoint.rsg + $Joint2PerName $Joint2EffName + ../sphereBody $Hip1BodyPath + 0 0 0 ;anchor + 0 1 0 ;axis + $lj2_min $lj2_max + $lj2_max_abs_speed) + ) + + ; + ;Construct Thigh + ; + (nd Transform + (setName $ThighName) + (setLocalPos $Thigh_X $Thigh_Y $Thigh_Z) + + (switch $loadObj + (true + (nd StaticMesh (load $ThighObj) (setScale $ThighSizeX $ThighSizeX $ThighSizeX)) + ) + (false + (importScene rsg/agent/nao/box_appearance.rsg $ThighSizeX $ThighSizeY $ThighSizeZ matBlue) + ) + ) + + ;(importScene rsg/agent/nao/box_physics.rsg $ThighSizeX $ThighSizeY $ThighSizeZ $ThighMass) + (importScene rsg/agent/nao/box_physics_nocollider.rsg $ThighSizeX $ThighSizeY $ThighSizeZ $ThighMass) + + (nd BoxCollider + (setName (join $LeftOrRight ThighCollider)) + (addNotCollideWithColliderName TorsoCollider true) + (setBoxLengths $ThighSizeX $ThighSizeY $ThighSizeZ) + (importScene rsg/agent/nao/contactjointhandler.rsg) + ) + + + (importScene rsg/agent/nao/hingejoint.rsg + $Joint3PerName $Joint3EffName + ../boxBody $Hip2BodyPath + $lj3_Anchor_X $lj3_Anchor_Y $lj3_Anchor_Z + 1 0 0 ;1 -1 -1 + $lj3_min $lj3_max + $lj3_max_abs_speed) + + ) + + ; + ;Construct Shank + ; + (nd Transform + (setName $ShankName) + (setLocalPos $Shank_X $Shank_Y $Shank_Z) + + (switch $loadObj + (true + (nd StaticMesh (load $ShankObj) (setScale $ShankSizeX $ShankSizeX $ShankSizeX)) + ) + (false + (importScene rsg/agent/nao/box_appearance.rsg $ShankSizeX $ShankSizeY $ShankSizeZ matGrey) + ) + ) + + ;(importScene rsg/agent/nao/box_physics.rsg $ShankSizeX $ShankSizeY $ShankSizeZ $ShankMass) + (importScene rsg/agent/nao/box_physics_nocollider.rsg $ShankSizeX $ShankSizeY $ShankSizeZ $ShankMass) + + (nd BoxCollider + (setName (join $LeftOrRight ShankCollider)) + (setBoxLengths $ShankSizeX $ShankSizeY $ShankSizeZ) + (importScene rsg/agent/nao/contactjointhandler.rsg) + ) + + (importScene rsg/agent/nao/hingejoint.rsg + $Joint4PerName $Joint4EffName + ../boxBody $ThighBodyPath + 0 -0.01 0.045 + 1 0 0 ;0 -1 -1 + $lj4_min $lj4_max + $lj4_max_abs_speed) + + ) + + ; + ;Construct Ankle + ; + (nd Transform + (setName $AnkleName) + (setLocalPos $Ankle_X $Ankle_Y $Ankle_Z) + + (importScene rsg/agent/nao/sphere_appearance.rsg $AnkleRadius matRed) + ;(importScene rsg/agent/nao/sphere_physics.rsg $AnkleRadius $AnkleMass) + (importScene rsg/agent/nao/sphere_physics_nocollider.rsg $AnkleRadius $AnkleMass) + + (importScene rsg/agent/nao/hingejoint.rsg + $Joint5PerName $Joint5EffName + ../sphereBody $ShankBodyPath + 0 0 0 + 1 0 0 ;0 -1 -1 + $lj5_min $lj5_max + $lj5_max_abs_speed) + + ) + + ; + ;Construct Foot + ; + (nd Transform + (setName $FootName) + (setLocalPos $Foot_X $Foot_Y $Foot_Z) + + (nd ForceResistancePerceptor + (setName $FRPName) + ) + + (switch $loadObj + (true + (nd StaticMesh (load $FootObj) (setScale $FootSizeX (eval $FootSizeX * (eval $FootSizeY / $TotalFootLength)) $FootSizeX)) + ) + (false + (importScene rsg/agent/nao/box_appearance.rsg $FootSizeX $FootSizeY $FootSizeZ matBlue) + ) + ) + + ;(importScene rsg/agent/nao/box_physics_with_handler.rsg $FootSizeX $FootSizeY $FootSizeZ $FootMass) + (importScene rsg/agent/nao/box_physics_nocollider.rsg $FootSizeX $FootSizeY $FootSizeZ $FootMass) + + (nd BoxCollider + (setName (join $LeftOrRight FootCollider)) + (addNotCollideWithColliderName (join $LeftOrRight ShankCollider) true) + (setBoxLengths $FootSizeX $FootSizeY $FootSizeZ) + (importScene rsg/agent/nao/touchperceptorhandler.rsg) + ) + + (importScene rsg/agent/nao/hingejoint.rsg + $Joint6PerName $Joint6EffName + ../boxBody $AnkleBodyPath + $lj6_Anchor_X $lj6_Anchor_Y $lj6_Anchor_Z + 0 1 0 ;1 -1 -1 + $lj6_min $lj6_max + $lj6_max_abs_speed) + + (nd ObjectState + (setID $FootName) + ) + + + ) + + + + ; + ;Construct Toe + ; + (nd Transform + (setName $ToeName) + (setLocalPos $Toe_X $Toe_Y $Toe_Z) + + (nd ForceResistancePerceptor + (setName $FRPToeName) + ) + + (switch $loadObj + (true + (nd StaticMesh (load $FootObj) (setScale $FootSizeX (eval $FootSizeX * (eval $ToeSizeY / $FootSizeY)) (eval $FootSizeX * (eval $ToeSizeZ / $FootSizeZ)))) + ) + (false + (importScene rsg/agent/nao/box_appearance.rsg $ToeSizeX $ToeSizeY $ToeSizeZ matGrey) + ) + ) + + ;(importScene rsg/agent/nao/box_physics_with_handler.rsg $ToeSizeX $ToeSizeY $ToeSizeZ $ToeMass) + (importScene rsg/agent/nao/box_physics_nocollider.rsg $ToeSizeX $ToeSizeY $ToeSizeZ $ToeMass) + + (nd BoxCollider + (setName (join $LeftOrRight ToeCollider)) + (addNotCollideWithColliderName (join $LeftOrRight FootCollider) true) + (setBoxLengths $ToeSizeX $ToeSizeY $ToeSizeZ) + (importScene rsg/agent/nao/touchperceptorhandler.rsg) + ) + + (importScene rsg/agent/nao/hingejoint.rsg + $Joint7PerName $Joint7EffName + ../boxBody $FootBodyPath + $lj7_Anchor_X $lj7_Anchor_Y $lj7_Anchor_Z + 1 0 0 ;1 -1 -1 + $lj7_min $lj7_max + $lj7_max_abs_speed) + ) +) Modified: branches/gui-bullet/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp =================================================================== --- branches/gui-bullet/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp 2015-02-07 20:31:12 UTC (rev 386) +++ branches/gui-bullet/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp 2015-03-27 19:39:48 UTC (rev 387) @@ -58,7 +58,7 @@ mNotOffside(false), mLastModeWasPlayOn(false), mUseOffside(true), - mUseCharging(true), + mUseCharging(false), mChargingMinSpeed(0.2), mChargingMinBallDist(0.2), mChargingMaxOppSpeedAngle(90), @@ -75,7 +75,8 @@ mMaxTouchGroupSize(1000), mMaxFoulTime(0.0), // maximum time allowed for a player to commit a positional foul before being repositioned mLastKickOffKickTime(0), - mCheckKickOffKickerFoul(false) + mCheckKickOffKickerFoul(false), + mPenaltyShootout(false) { mFreeKickPos = Vector3f(0.0,0.0,mBallRadius); } @@ -120,6 +121,28 @@ // Reset touch groups ResetTouchGroups(TI_LEFT); ResetTouchGroups(TI_RIGHT); + + // If in penalty shootout mode check that the goalie remains in the penalty area + if (mPenaltyShootout) + { + SoccerBase::TAgentStateList agent_states; + if (! SoccerBase::GetAgentStates(*mBallState.get(), agent_states, TI_RIGHT)) + return; + boost::shared_ptr<oxygen::Transform> agent_aspect; + SoccerBase::TAgentStateList::const_iterator i; + for (i = agent_states.begin(); i != agent_states.end(); ++i) + { + SoccerBase::GetTransformParent(**i, agent_aspect); + Vector3f agentPos = agent_aspect->GetWorldTransform().Pos(); + if (agentPos.x() < mRightPenaltyArea.minVec[0] || agentPos.y() < mRightPenaltyArea.minVec[1] || agentPos.y() > mRightPenaltyArea.maxVec[1]) + { + // Penalty shootout goalie has left penalty area so award goal + mPenaltyShootout = false; + mGameState->ScoreTeam(TI_LEFT); + mGameState->SetPlayMode(PM_Goal_Left); + } + } + } } } @@ -548,27 +571,26 @@ for(int unum=1; unum<=11; unum++) { TPlayMode playMode = mGameState->GetPlayMode(); - if ((playMode == PM_KickOff_Left && idx != TI_LEFT) - || (playMode == PM_KickOff_Right && idx != TI_RIGHT) - || (playMode != PM_KickOff_Left && playMode != PM_KickOff_Right)) + bool checkCrowding = (playMode == PM_KickOff_Left && idx != TI_LEFT) + || (playMode == PM_KickOff_Right && idx != TI_RIGHT) + || (playMode != PM_KickOff_Left && playMode != PM_KickOff_Right); + + // I am the third closest player but i am too near the ball (and not the goalie) + if (checkCrowding && unum != 1 && closestPlayerDist[idx2] < mMinOppDistance + && (distArr[unum][idx] <= mMin3PlDistance + 0.01 + && ordArr[unum][idx] == 3)) { - // I am the third closest player but i am too near the ball (and not the goalie) - if (unum != 1 && closestPlayerDist[idx2] < mMinOppDistance - && (distArr[unum][idx] <= mMin3PlDistance + 0.01 - && ordArr[unum][idx] == 3)) - { playerFoulTime[unum][idx]++; playerLastFoul[unum][idx] = FT_Crowding; - } - // I am the second closest player but i am too near the ball (and not the goalie) - else if (unum != 1 && closestPlayerDist[idx2] < mMinOppDistance - && distArr[unum][idx] <= mMin2PlDistance + 0.01 - && ordArr[unum][idx] == 2) - { + } + // I am the second closest player but i am too near the ball (and not the goalie) + else if (checkCrowding && unum != 1 && closestPlayerDist[idx2] < mMinOppDistance + && distArr[unum][idx] <= mMin2PlDistance + 0.01 + && ordArr[unum][idx] == 2) + { playerFoulTime[unum][idx]++; playerLastFoul[unum][idx] = FT_Crowding; - } - } + } // Too many players inside my own penalty area and Im am the last one to enter or // the last one to enter was the goalie and I am the one further away from own goal else if((numPlInsideOwnArea[idx] > mMaxPlayersInsideOwnArea && unum != 1 && playerInsideOwnArea[unum][idx] == 1 && @@ -647,14 +669,11 @@ int unum = (*i)->GetUniformNumber(); if (playerFoulTime[unum][idx] > mMaxFoulTime / 0.02) { - if (playerLastFoul[unum][idx] != FT_Charging) - { - // I am not a very good soccer player... I am violating the rules... - salt::Vector3f new_pos = RepositionOutsidePos(ballPos, unum, idx); - //Calculate my Reposition pos outside of the field - SoccerBase::MoveAgent(agent_aspect, new_pos); - //Oh my God!! I am flying!! I am going outside of the field - } + // I am not a very good soccer player... I am violating the rules... + salt::Vector3f new_pos = RepositionOutsidePos(ballPos, unum, idx); + //Calculate my Reposition pos outside of the field + SoccerBase::MoveAgent(agent_aspect, new_pos); + //Oh my God!! I am flying!! I am going outside of the field ResetFoulCounterPlayer(unum, idx); // Record faul mFouls.push_back(Foul(mFouls.size() + 1, playerLastFoul[unum][idx], *i)); @@ -1269,6 +1288,7 @@ { // update freekickpos mFreeKickPos = mBallState->GetLastValidBallPosition(); + mFreeKickPos[2] = mBallRadius; return false; } @@ -1715,6 +1735,7 @@ SoccerBase::GetSoccerVar(*this,"GoalKickDist",mGoalKickDist); SoccerBase::GetSoccerVar(*this,"AutomaticKickOff",mAutomaticKickOff); SoccerBase::GetSoccerVar(*this,"WaitBeforeKickOff",mWaitBeforeKickOff); + SoccerBase::GetSoccerVar(*this,"PenaltyShootout",mPenaltyShootout); SoccerBase::GetSoccerVar(*this,"SingleHalfTime",mSingleHalfTime); SoccerBase::GetSoccerVar(*this,"AutomaticQuit",mAutomaticQuit); SoccerBase::GetSoccerVar(*this,"ChangeSidesInSecondHalf",mChangeSidesInSecondHalf); @@ -1790,12 +1811,16 @@ boost::shared_ptr<Transform> transform_parent; boost::shared_ptr<RigidBody> agent_body; + std::string team = ""; + for ( SoccerBase::TAgentStateList::const_iterator it = agent_states.begin(); it != agent_states.end(); it++ ) { + // Get name of team to label all messages with + team = (*it)->GetPerceptName(ObjectState::PT_Player); if ( (*it)->GetUniformNumber() == number) { (*it)->AddSelfMessage(message); @@ -1813,7 +1838,6 @@ Vector3f relPos = pos - new_pos; relPos = SoccerBase::FlipView(relPos, idx); float direction = salt::gRadToDeg(salt::gArcTan2(relPos[1], relPos[0])); - std::string team = (*it)->GetPerceptName(ObjectState::PT_Player); (*it)->AddMessage(message, team, direction, true); } } @@ -1836,7 +1860,6 @@ Vector3f relPos = pos - new_pos; relPos = SoccerBase::FlipView(relPos, SoccerBase::OpponentTeam(idx)); float direction = salt::gRadToDeg(salt::gArcTan2(relPos[1], relPos[0])); - std::string team = (*it)->GetPerceptName(ObjectState::PT_Player); (*it)->AddMessage(message, team, direction, false); } } Modified: branches/gui-bullet/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.h =================================================================== --- branches/gui-bullet/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.h 2015-02-07 20:31:12 UTC (rev 386) +++ branches/gui-bullet/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.h 2015-03-27 19:39:48 UTC (rev 387) @@ -448,6 +448,8 @@ boost::shared_ptr<oxygen::AgentAspect> mLastKickOffTaker; /** if kickoff taker should be checked for single kick rule */ bool mCheckKickOffKickerFoul; + /** if in penalty shootout mode */ + bool mPenaltyShootout; /** complete foul history */ std::vector<Foul> mFouls; Modified: branches/gui-bullet/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp =================================================================== --- branches/gui-bullet/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp 2015-02-07 20:31:12 UTC (rev 386) +++ branches/gui-bullet/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp 2015-03-27 19:39:48 UTC (rev 387) @@ -52,6 +52,8 @@ mCommandMap["repos"] = CT_REPOS; mCommandMap["killsim"] = CT_KILLSIM; mCommandMap["reqfullstate"] = CT_REQFULLSTATE; + mCommandMap["time"] = CT_TIME; + mCommandMap["score"] = CT_SCORE; // setup team index map // Originally team sides were "L","R" and "N" @@ -235,6 +237,12 @@ case CT_REQFULLSTATE: mMonitorControl->RequestFullState(); break; + case CT_TIME: + ParseTimeCommand(predicate); + break; + case CT_SCORE: + ParseScoreCommand(predicate); + break; default: return false; @@ -661,7 +669,7 @@ void TrainerCommandParser::ParseReposCommand(const oxygen::Predicate & predicate) { - cerr << "repos 2" << endl; + //cerr << "repos 2" << endl; Predicate::Iterator unumParam(predicate); int unum; @@ -714,7 +722,7 @@ ballPos = ballBody->GetPosition(); SoccerBase::GetTransformParent(**iter, agent_aspect); - cerr << "repos 3" << endl; + //cerr << "repos 3" << endl; Vector3f new_pos = mSoccerRule->RepositionOutsidePos(ballPos, (*iter)->GetUniformNumber(), (*iter)->GetTeamIndex()); SoccerBase::MoveAgent(agent_aspect, new_pos); @@ -727,3 +735,91 @@ { mSimServer->Quit(); } + +void TrainerCommandParser::ParseTimeCommand(const oxygen::Predicate & predicate) +{ + Predicate::Iterator timeParam(predicate); + float time; + + if (predicate.GetValue(timeParam,time)) + { + if (time >= 0) + { + mGameState->SetTime(time); + } + else + { + GetLog()->Debug() + << "(TrainerCommandParser) ERROR: value of time " + << time << " cannot be a negative value\n"; + return; + } + } + else + { + GetLog()->Debug() + << "(TrainerCommandParser) ERROR: could not parse time " + << time << "\n"; + return; + } +} + +void TrainerCommandParser::ParseScoreCommand(const oxygen::Predicate & predicate) +{ + Predicate::Iterator leftScoreParam(predicate); + int scoreLeft; + if (predicate.FindParameter(leftScoreParam, "left")) + { + if (!predicate.GetValue(leftScoreParam, scoreLeft)) + { + GetLog()->Debug() + << "(TrainerCommandParser) ERROR: could not parse score left " + << scoreLeft << "\n"; + return; + } + } + else + { + GetLog()->Debug() + << "(TrainerCommandParser) ERROR: could not find score left\n"; + return; + } + + + Predicate::Iterator rightScoreParam(predicate); + int scoreRight; + if (predicate.FindParameter(rightScoreParam, "right")) + { + if (!predicate.GetValue(rightScoreParam, scoreRight)) + { + GetLog()->Debug() + << "(TrainerCommandParser) ERROR: could not parse score right " + << scoreRight << "\n"; + return; + } + } + else + { + GetLog()->Debug() + << "(TrainerCommandParser) ERROR: could not find score right\n"; + return; + } + + if (scoreLeft < 0) + { + GetLog()->Debug() + << "(TrainerCommandParser) ERROR: score left " + << scoreLeft << " cannot be negative\n"; + return; + } + + if (scoreRight < 0) + { + GetLog()->Debug() + << "(TrainerCommandParser) ERROR: score right " + << scoreRight << " cannot be negative\n"; + return; + } + + mGameState->SetScores(scoreLeft, scoreRight); +} Modified: branches/gui-bullet/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.h =================================================================== --- branches/gui-bullet/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.h 2015-02-07 20:31:12 UTC (rev 386) +++ branches/gui-bullet/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.h 2015-03-27 19:39:48 UTC (rev 387) @@ -56,7 +56,9 @@ CT_KILL, CT_REPOS, CT_KILLSIM, - CT_REQFULLSTATE + CT_REQFULLSTATE, + CT_TIME, + CT_SCORE }; typedef std::map<std::string, ECommandType> TCommandMap; @@ -132,7 +134,18 @@ predicate */ void ParseKillSimCommand(const oxygen::Predicate & predicate); + + /** parses and executes the time command contained in the given + predicate + */ + void ParseTimeCommand(const oxygen::Predicate & predicate); + + /** parses and executes the score command contained in the given + predicate + */ + void ParseScoreCommand(const oxygen::Predicate & predicate); + protected: TCommandMap mCommandMap; Modified: branches/gui-bullet/rcssserver3d/rcssserver3d/naorobottypes.rb =================================================================== --- branches/gui-bullet/rcssserver3d/rcssserver3d/naorobottypes.rb 2015-02-07 20:31:12 UTC (rev 386) +++ branches/gui-bullet/rcssserver3d/rcssserver3d/naorobottypes.rb 2015-03-27 19:39:48 UTC (rev 387) @@ -1,27 +1,59 @@ NaoType = [ # Type 0 (Standard Nao) { + 'Hip1RelTorso_X' => 0.055, + 'Hip1RelTorso_Z' => -0.115, 'ThighRelHip2_Z' => -0.04, 'AnkleRelShank_Z' => -0.055, 'lj5_max_abs_speed' => 6.1395, 'lj6_max_abs_speed' => 6.1395, - 'ElbowRelUpperArm_Y' => 0.07 + 'ElbowRelUpperArm_Y' => 0.07, + 'UseToe' => 'false' }, -# Type 1 +# Type 1 (longer legs and arms) { + 'Hip1RelTorso_X' => 0.055, + 'Hip1RelTorso_Z' => -0.115, 'ThighRelHip2_Z' => -0.05832, 'AnkleRelShank_Z' => -0.07332, 'lj5_max_abs_speed' => 6.1395, 'lj6_max_abs_speed' => 6.1395, - 'ElbowRelUpperArm_Y' => 0.10664 + 'ElbowRelUpperArm_Y' => 0.10664, + 'UseToe' => 'false' }, -# Type 2 +# Type 2 (faster ankle-pitch and slower ankle-roll speed) { + 'Hip1RelTorso_X' => 0.055, + 'Hip1RelTorso_Z' => -0.115, 'ThighRelHip2_Z' => -0.04, 'AnkleRelShank_Z' => -0.055, 'lj5_max_abs_speed' => 8.80667, 'lj6_max_abs_speed' => 3.47234, - 'ElbowRelUpperArm_Y' => 0.07 + 'ElbowRelUpperArm_Y' => 0.07, + 'UseToe' => 'false' +}, +# Type 3 (longer legs and arms + wider hip) +{ + 'Hip1RelTorso_X' => 0.072954143, + 'Hip1RelTorso_Z' => -0.115, + 'ThighRelHip2_Z' => -0.067868424, + 'AnkleRelShank_Z' => -0.082868424, + 'lj5_max_abs_speed' => 6.1395, + 'lj6_max_abs_speed' => 6.1395, + 'ElbowRelUpperArm_Y' => 0.125736848, + 'UseToe' => 'false' +}, +# Type 4 (Nao toes model) +{ + 'Hip1RelTorso_X' => 0.055, + 'Hip1RelTorso_Z' => -0.115, + 'ThighRelHip2_Z' => -0.04, + 'AnkleRelShank_Z' => -0.055, + 'lj5_max_abs_speed' => 6.1395, + 'lj6_max_abs_speed' => 6.1395, + 'ElbowRelUpperArm_Y' => 0.07, + 'UseToe' => 'true', + 'ToeLength' => 0.035517656 } ] Modified: branches/gui-bullet/rcssserver3d/rcssserver3d/naosoccersim.rb =================================================================== --- branches/gui-bullet/rcssserver3d/rcssserver3d/naosoccersim.rb 2015-02-07 20:31:12 UTC (rev 386) +++ branches/gui-bullet/rcssserver3d/rcssserver3d/naosoccersim.rb 2015-03-27 19:39:48 UTC (rev 387) @@ -54,6 +54,7 @@ addSoccerVar('AutomaticKickOff', false) addSoccerVar('WaitBeforeKickOff', 30.0) addSoccerVar('CoinTossForKickOff', false) +addSoccerVar('PenaltyShootout', false) addSoccerVar('AutomaticQuit', false) addSoccerVar('ChangeSidesInSecondHalf', false) @@ -78,7 +79,7 @@ addSoccerVar('MaxTouchGroupSize', 2) # charging foul parameters -addSoccerVar('UseCharging', true) +addSoccerVar('UseCharging', false) addSoccerVar('ChargingMinSpeed', 0.2) addSoccerVar('ChargingMinBallDist', 0.2) addSoccerVar('IllegalInterceptMinAngle', 70) Modified: branches/gui-bullet/spark/ChangeLog =================================================================== --- branches/gui-bullet/spark/ChangeLog 2015-02-07 20:31:12 UTC (rev 386) +++ branches/gui-bullet/spark/ChangeLog 2015-03-27 19:39:48 UTC (rev 387) @@ -18,14 +18,14 @@ 2013-06-12 Hedayat Vatankhah <hed...@gm...> - * carbon/ - * guiplugin/ - * guilayout/ - * data/guisetups/ - * plugin/inputsysqt/ - * plugin/openglsysqt/ - - fixed compilation issues under GNU/Linux+GCC. - + * carbon/: + * guiplugin/: + * guilayout/: + * data/guisetups/: + * plugin/inputsysqt/: + * plugin/openglsysqt/: + - fixed compilation issues under GNU/Linux+GCC. + * lib/salt/gmath.h: - removed type specifier for std::isnan, since not all overloads are templates @@ -45,103 +45,103 @@ 2012-06-23 Patrick Geib <Pat...@on...> - * carbon/ - - the Carbon library - - * guiplugin/ - - generic (not soccer related) plugins for the carbon gui - - * guilayout/ - - layout projects for the Gui - - * data/guisetups/ - - image resources for the carbon gui. - - * plugin/inputsysqt/ - - a new spark plugin which handles inputs to a spark simulation by - converting from qt to spark defines. + * carbon/ + - the Carbon library + + * guiplugin/ + - generic (not soccer related) plugins for the carbon gui + + * guilayout/ + - layout projects for the Gui + + * data/guisetups/ + - image resources for the carbon gui. + + * plugin/inputsysqt/ + - a new spark plugin which handles inputs to a spark simulation by + converting from qt to spark defines. - * plugin/openglsysqt/ - - empty placeholder openglsystem to be used in simspark when an external - rendering by carbon is used. - - * spark/spark.h: - * spark/spark.cpp: - - relative path prefix can now be given in constructor as optional - parameter. Needed by carbon. - - * spark.rb: - - the spark script now contains logging functions and other functions - needed by the carbon gui - - * plugin/odeimps/odecollider.cpp: - - fixed bug where body was deleted twice + * plugin/openglsysqt/ + - empty placeholder openglsystem to be used in simspark when an external + rendering by carbon is used. + + * spark/spark.h: + * spark/spark.cpp: + - relative path prefix can now be given in constructor as optional + parameter. Needed by carbon. + + * spark.rb: + - the spark script now contains logging functions and other functions + needed by the carbon gui + + * plugin/odeimps/odecollider.cpp: + - fixed bug where body was deleted twice - * lib/zeitgeist/core.h: - * lib/zeitgeist/core.cpp: - - added function to reset the self pointer. Needed by carbon. + * lib/zeitgeist/core.h: + * lib/zeitgeist/core.cpp: + - added function to reset the self pointer. Needed by carbon. - * lib/zeitgeist/leaf_c.cpp: - - added unlinkLeaf() function to ruby interface. + * lib/zeitgeist/leaf_c.cpp: + - added unlinkLeaf() function to ruby interface. - * lib/zeitgeist/logserver/logserverstreambuf.h: - * lib/zeitgeist/logserver/logserverstreambuf.cpp: - - replaced typedef TMaskStream with struct MaskStream. Now it not only - contains the integer mask and stream pointer, but also a synchronization - flag. If the flag is true, the stream will by sync()'ed every time the - input stream flushes a message. This is needed for carbons message stream - appenders, so it can receive the logservers messages immediately when the - simulation thread sends them. + * lib/zeitgeist/logserver/logserverstreambuf.h: + * lib/zeitgeist/logserver/logserverstreambuf.cpp: + - replaced typedef TMaskStream with struct MaskStream. Now it not only + contains the integer mask and stream pointer, but also a synchronization + flag. If the flag is true, the stream will by sync()'ed every time the + input stream flushes a message. This is needed for carbons message stream + appenders, so it can receive the logservers messages immediately when the + simulation thread sends them. - * lib/zeitgeist/logserver/logserver.h: - * lib/zeitgeist/logserver/logserver.cpp: - * lib/zeitgeist/logserver/logserver_c.cpp: - - streams can now be added with an optional synchronization flag. - - updated the script interface for AddStream too. + * lib/zeitgeist/logserver/logserver.h: + * lib/zeitgeist/logserver/logserver.cpp: + * lib/zeitgeist/logserver/logserver_c.cpp: + - streams can now be added with an optional synchronization flag. + - updated the script interface for AddStream too. - * lib/zeitgeist/scriptserver/scriptserver.cpp: - - ruby error messages are now sent to ->Error() instead of ->Debug(). + * lib/zeitgeist/scriptserver/scriptserver.cpp: + - ruby error messages are now sent to ->Error() instead of ->Debug(). - * lib/oxygen/simulationserver/simulationserver.h: - * lib/oxygen/simulationserver/simulationserver.cpp: - - the Simulation can now be paused. There is a flag in the simulation - server and a pause/unpause function. When a simulation is paused, the next - simulation cycle will not call StartCycle, SenseAgent, ActAgent and - EndCycle, but a new control event CE_WaitCycle. - When a simulation is paused, the simulation time does not advance and - agents are not notified about changed time. The wait cycle lasts as long - as a normal simulation cycle. Calling pause(false) will resume the normal - simulation cycle after the current wait cycle and agents are - notified again. - The pausing function is meant to pause and observe the state of the - simulation using the carbon library and the gui. It was tested with - several agent implementations and seemed to work perfectly. + * lib/oxygen/simulationserver/simulationserver.h: + * lib/oxygen/simulationserver/simulationserver.cpp: + - the Simulation can now be paused. There is a flag in the simulation + server and a pause/unpause function. When a simulation is paused, the next + simulation cycle will not call StartCycle, SenseAgent, ActAgent and + EndCycle, but a new control event CE_WaitCycle. + When a simulation is paused, the simulation time does not advance and + agents are not notified about changed time. The wait cycle lasts as long + as a normal simulation cycle. Calling pause(false) will resume the normal + simulation cycle after the current wait cycle and agents are + notified again. + The pausing function is meant to pause and observe the state of the + simulation using the carbon library and the gui. It was tested with + several agent implementations and seemed to work perfectly. - * lib/oxygen/simulationserver/simcontrolnode.h: - - the new control event CE_WaitCycle calls a new interface function - WaitCycle() in simcontrolnodes. This way control nodes can be notified - about running and paused simulation steps. This is used by carbon. - WaitCycle() and EndCycle() are used for SimControlNodes which act as - interface between carbon and spark. + * lib/oxygen/simulationserver/simcontrolnode.h: + - the new control event CE_WaitCycle calls a new interface function + WaitCycle() in simcontrolnodes. This way control nodes can be notified + about running and paused simulation steps. This is used by carbon. + WaitCycle() and EndCycle() are used for SimControlNodes which act as + interface between carbon and spark. - * lib/kerosin/inputsystem/inputsystem.h: - * lib/kerosin/inputsystem/inputsystem.cpp: - - AddInput() and GetInput() now use a boost::shared_mutex to make the - access thread safe. This is neccessary because there may be simulatneous - access from different threads in a carbon simulation. + * lib/kerosin/inputsystem/inputsystem.h: + * lib/kerosin/inputsystem/inputsystem.cpp: + - AddInput() and GetInput() now use a boost::shared_mutex to make the + access thread safe. This is neccessary because there may be simulatneous + access from different threads in a carbon simulation. - * lib/kerosin/renderserver/renderserver.cpp: - - added OpenGlError-code checking between rendering stages. Removed double - picking-end-bracket glPopName() which caused picking to fail. + * lib/kerosin/renderserver/renderserver.cpp: + - added OpenGlError-code checking between rendering stages. Removed double + picking-end-bracket glPopName() which caused picking to fail. - * lib/kerosin/renderserver/rendercontrol.cpp: - * lib/kerosin/renderserver/rendercontrol.h: - * lib/kerosin/renderserver/rendercontrol_c.cpp: - - RenderControlNodes can no be activated or deactivated. Carbon uses this - feature to deactivate them in the spark simulation if the rendering is - done in the gui thread or any other than the server thread. - - Added setActive() function to ruby interface. - + * lib/kerosin/renderserver/rendercontrol.cpp: + * lib/kerosin/renderserver/rendercontrol.h: + * lib/kerosin/renderserver/rendercontrol_c.cpp: + - RenderControlNodes can no be activated or deactivated. Carbon uses this + feature to deactivate them in the spark simulation if the rendering is + done in the gui thread or any other than the server thread. + - Added setActive() function to ruby interface. + 2012-05-23 Hedayat Vatankhah <hed...@gm...> * lib/kerosin/CMakeLists.txt: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |