@@ -3,6 +3,7 @@ package simctl
33import (
44 "github.com/RoboCup-SSL/ssl-simulation-controller/internal/referee"
55 "github.com/golang/protobuf/proto"
6+ "github.com/golang/protobuf/ptypes/any"
67 "gopkg.in/yaml.v2"
78 "io/ioutil"
89 "log"
@@ -13,13 +14,14 @@ type TeamRobotSpecs struct {
1314}
1415
1516type RobotSpec struct {
16- Radius float32 `yaml:"radius"`
17- Height float32 `yaml:"height"`
18- Mass float32 `yaml:"mass"`
19- MaxLinearKickSpeed float32 `yaml:"max_linear_kick_speed"`
20- MaxChipKickSpeed float32 `yaml:"max_chip_kick_speed"`
21- CenterToDribbler float32 `yaml:"center_to_dribbler"`
22- Limits Limits `yaml:"limits"`
17+ Radius float32 `yaml:"radius"`
18+ Height float32 `yaml:"height"`
19+ Mass float32 `yaml:"mass"`
20+ MaxLinearKickSpeed float32 `yaml:"max_linear_kick_speed"`
21+ MaxChipKickSpeed float32 `yaml:"max_chip_kick_speed"`
22+ CenterToDribbler float32 `yaml:"center_to_dribbler"`
23+ Limits Limits `yaml:"limits"`
24+ CustomErforce CustomRobotSpecErForce `yaml:"custom_erforce"`
2325}
2426
2527type Limits struct {
@@ -31,6 +33,11 @@ type Limits struct {
3133 VelAngularMax float32 `yaml:"vel_angular_max,omitempty"`
3234}
3335
36+ type CustomRobotSpecErForce struct {
37+ ShootRadius float32 `yaml:"shoot_radius"`
38+ DribblerHeight float32 `yaml:"dribbler_height"`
39+ }
40+
3441type RobotSpecSetter struct {
3542 c * SimulationController
3643
@@ -106,6 +113,20 @@ func mapRobotSpec(spec RobotSpec) (protoSpec *RobotSpecs) {
106113 protoSpec .MaxChipKickSpeed = & spec .MaxChipKickSpeed
107114 protoSpec .CenterToDribbler = & spec .CenterToDribbler
108115 protoSpec .Limits = mapRobotLimits (spec .Limits )
116+
117+ customErForce := RobotSpecErForce {
118+ ShootRadius : & spec .CustomErforce .ShootRadius ,
119+ DribblerHeight : & spec .CustomErforce .DribblerHeight ,
120+ }
121+ customErForceSerialized , err := proto .Marshal (& customErForce )
122+ if err != nil {
123+ log .Println ("Could not serialize custom ER-Force robot specs: " , err )
124+ }
125+ customErForce .ProtoReflect ().Descriptor ().FullName ()
126+ protoSpec .Custom = append (protoSpec .Custom , & any.Any {
127+ TypeUrl : "RobotSpecErForce" ,
128+ Value : customErForceSerialized ,
129+ })
109130 return
110131}
111132
0 commit comments