Proto commits in robotics-erlangen/framework

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:5269570
Author:Michel Schmid
Committer:Michel Schmid

ra: handle new ssl-vision geometry fields correctly

The documentation is generated from this commit.

Commit:a73cb6e
Author:Christoph Schmidtmeier
Committer:Michel Schmid

protobuf: robot: add comment on mapping motor ID to front/back/left/right This information stems from the usage in the robot information widget, see src/ra/robotwidget.cpp:554.

Commit:a87a1f8
Author:Michel Schmid
Committer:Michel Schmid

protobuf: update ssl_geometry (mostly to get the new boundary_width_goal_line)

Commit:b11c483
Author:Christoph Schmidtmeier
Committer:Michel Schmid

protobuf: robot: rename SpeedStatus more fittingly

Commit:1bf99bd
Author:Steffen Probst
Committer:Michel Schmid

ra: protobuf: Add documentation to robot.proto

Commit:cfe65ea
Author:Christoph Schmidtmeier
Committer:Michel Schmid

amun: processor/radiosystem: fully represent the 2025 radio responses in the protobuf message

Commit:9a2666a
Author:Christoph Schmidtmeier
Committer:Michel Schmid

protobuf: robot: change message and field name for more generic use

Commit:2cd3583
Author:Christoph Schmidtmeier
Committer:Michel Schmid

firmware: interface: rename spline fields to pos, vel, acc and jerk and differentiate the usage of the two spline styles

Commit:4d2da7b
Author:Paul Bergmann
Committer:Michel Schmid

amun: processor: Send robot detection of primary camera to radio Previously, the processor would add an arbitrary detection to the command. Now the tracker/filter adds detections, and prefers those from the primary camera.

Commit:b891a3c
Author:Christoph Schmidtmeier
Committer:Michel Schmid

protobuf: robot: add comment on usage of a field

Commit:6b090ee
Author:Christoph Schmidtmeier
Committer:Michel Schmid

amun: radiosystem: send out manual control commands as splines

Commit:519fd66
Author:Christoph Schmidtmeier
Committer:Michel Schmid

amun: js_path: pass alpha time trajectory data to typescript

Commit:e16b30c
Author:Christoph Schmidtmeier
Committer:Michel Schmid

amun: processor: Store and send last vision detection for each robot

Commit:239961b
Author:Paul Bergmann
Committer:Michel Schmid

ra: refereewidget: Allow toggling Game Controller auto continue I assume part of the reason why the game controller is only optionally enabled, is that it always used auto_continue. This can be a hinderance when trying to test. Since a later commit will require the game controller to run when using the internal referee, being able to toggle auto continue is necessary. Set it to false by default since this is what non-software people probably expect when opening up Ra.

Commit:35d8070
Author:Paul Bergmann
Committer:Michel Schmid

amun: internalgamecontroller: Change division via command Previously the InternalGameController would only tell the embedded CI GC to change division when the division sent via world state changed. The processor calculated the world state division from the geometry, and we change the simulator setup and thus the geometry when changing the division in the UI. However nowadays, the division on world state is primarily calculated from the team info (max allowed robots etc.) which is sent by the GC. Since the GC never received a command to change the division, it still sent out the old team info. Also rename MainWindow::changeDivision to MainWindow::changeFieldSetup since it does not really change the division (and that was never what it did primarily anyways)

Commit:1d2d898
Author:Paul Bergmann
Committer:Michel Schmid

ra: refereewidget: Add button to restart Game Controller

Commit:4a34d8d
Author:Andreas Wendler
Committer:Michel Schmid

ra: gameeventswidget: improve handling of multiple log files, cleanup

Commit:b6c119d
Author:Andreas Wendler
Committer:Michel Schmid

amun: simrobot: add erroneous rotation to simulator realism

Commit:8941019
Author:Paul Bergmann
Committer:Michel Schmid

protobuf: Group CommandReferee fields by use

Commit:6699ca1
Author:Paul Bergmann
Committer:Michel Schmid

amun: Always run actual Game Controller when internal Referee is active Otherwise, Ra has to keep implementing part of what the game controller does. This can lead to bugs, where we do not update the team info used to calculate the division, leaving us unable to change the simulated division. By requiring the actual Game Controller, we use a proven source of Referee messages. I assume part of the reason why the game controller was only optionally enabled, is that it always used auto_continue. This can be a hinderance when testing. However, since HEAD~, it is possible to toggle this. The flag also enabled and disabled the internal autoref. In order to do that now (i.e. run with or without Autoref), the user needs to load or disable to Autoref strategy in the TeamWidget. We no longer need to forward Referee packets when the InternalGameController is disabled, since we simply don't produce custom Referee packets in this case.

Commit:c98d648
Author:Andreas Wendler
Committer:Michel Schmid

ra: gameeventswidget: jump to frame in log on double click

Commit:84aa9fe
Author:Andreas Wendler
Committer:Michel Schmid

strategy: add functionality to report metric values

Commit:49d2071
Author:Paul Bergmann
Committer:Michel Schmid

amun: internalgamecontroller: Allow disabling events And disable them in the testing use-case. This keeps the game controller from calling lack of progress when running test moves.

Commit:0f685ab
Author:Paul Bergmann
Committer:Michel Schmid

protobuf: Remove remnants of mixed team challenge Simply removing the field from world state does not seem to cause any issues, since we never set it in any situation tests (where it would cause strategy type errors if it were still present in the situtation test).

Commit:2a94f56
Author:Andreas Wendler
Committer:Michel Schmid

simulator: add rotated robot detections to simulator realism

Commit:447bcd5
Author:Andreas Wendler
Committer:Michel Schmid

ra: gameeventswidget: scan log for game events

Commit:f4c47d7
Author:Paul Bergmann
Committer:Michel Schmid

amun: processor/tracking: Factor out vision processing time calculation - Pass around std::chrono types for more type safety - Add some comments to world.proto to hopefully avoid confusion about the unit of the protobuf vision_processing_time

Commit:5e42340
Author:Paul Bergmann
Committer:Michel Schmid

protobuf: Update Referee message to latest version Some C++ changes are necessary since the old game event format is now marked reserved instead of just deprecated, so we can't copy it over anymore. This hinders our ability to reconstruct vision logs from old (<= 2018) log files, but this wasn't even completely possible before, since we only log the time when we received vision packets since 2021 and we don't log the time when we receive Referee packets at all. Also propagate some integer promotions. Regarding the world state and logfiles, these should be compatible since on the wire sint32/sint64 and int32/int64 are the same. The reflection in the refereestatuswidget must be updated as not to cause any crashes due to to access via GetMessage

Commit:806ae13
Author:Paul Bergmann
Committer:Michel Schmid

amun: processor: Fix usage of has_vision_data This fixes an oversight of dd57e6aaef39. Prior to that commit, has_vision_data was set to true, if any vision wrapper was received since the last tracking reset (which is how the strategy uses it). I wrongfully assumed the meaning of the field is "received vision wrappers during this tick"

Commit:0b6a2b8
Author:Paul Bergmann
Committer:Michel Schmid

base: gamecontroller: Pass team color when connecting to GC This has been possible since GC v2.9.0 and allows both teams to connect to the GC even if they share a name. Congratulations, you may no play yourself.

Commit:66edc5a
Author:Paul Bergmann
Committer:Michel Schmid

protobuf: Delete ssl_game_event.proto We copied it to ssl_referee_game_event.proto, renamed the message to SSL_Referee_Game_Event and used that everywhere (and it is now deprecated), so we don't need this copy

Commit:53b4698
Author:Paul Bergmann
Committer:Michel Schmid

protobuf: Unify spaces usage For the Referee message, this leads to a more readable diff when comparing to the upstream proto file.

Commit:cecd6df
Author:Paul Bergmann
Committer:Michel Schmid

protobuf: Mirror upstream folder structure for small-size-league protocols That way, it is easier to see the correspondance between a local copy of the files and their upstream version. This is relevant when checking for diffs or updating them. Some of the files are present in multiple source repositories. We group them according to the technical overview page [1] into - Vision - Game Controller - Simulation Also we separate some old definitions, which are still present in old logs but are deprecated for new usage, or relate to old SSL stuff. [1] https://ssl.robocup.org/technical-overview-of-the-small-size-league/#protobuf-definitions

Commit:482c8d9
Author:Paul Bergmann
Committer:Michel Schmid

amun: processor/tracker: Introduce new vision latency calculation This should allow an easier (and for the camera frame rate: automatic) adaption of new latency values when something about the vision setup changes. Also rename a field in configdialog to ensure old configurations values do not get loaded, as the user-settable delay does not model the whole vision delay anymore. Note that this calculation is wrong for the internal simulator, as it does not simulate a shutter or transmission from camera to vision, and has lower latency to Ra (since there is no network inbetween).

Commit:00c3e40
Author:Paul Bergmann
Committer:Michel Schmid

amun/cmake/protobuf: Update Game Controller to 3.15.0 This requires an update to the Protobuf files and their usage in Amun, as they were updated upstream. The ssl-game-controller.yml was regenerated. engine.yml is moved to the data folder since - It is often modified by the GC and we do not want this to show in the git diff - It holds part of runtime configuration which we want to reset when restarting the GC

Commit:01b3410
Author:Paul Bergmann
Committer:Michel Schmid

amun: Remove user-configurable vision transmission delay The vision delay is now calculated purely from runtime measured values. Also, no one actually changed the value seen in the UI over the past years, since no one really knew what it did. The seemingly unrelated changes to configdialog.ui were produced by QT-Creator.

Commit:3e481b7
Author:Paul Bergmann
Committer:Michel Schmid

protobuf: Rename SSL_Referee_Game_Event to Old_Refbox_Game_Event ...for less confusion in the future, hopefully.

Commit:e7d8d4f
Author:Paul Bergmann
Committer:Michel Schmid

protobuf: Rename RobotPosition to TransformedRobotMeasurement Its not actually only a position anymore and "RobotPosition" is fairly generic. It is also not "raw" in the sense that these are in the vision coordinate system. They are scaled from mm to m. Also, the transform is applied (i.e. they are flipped and transformed for the virtual field if enabled)

Commit:45d91cd
Author:Paul Bergmann
Committer:Michel Schmid

protobuf: Copy in newest message definition from ssl-vision This includes the t_capture_camera field which will be used in the future, as well as some comments.

Commit:63a54f1
Author:Paul Bergmann
Committer:Michel Schmid

protobuf: Factor out ControllerReply to extra file This is the way it is in the upstream GC repo

Commit:58da88a
Author:Paul Bergmann
Committer:Michel Schmid

cmake: Allow protobuf files in subdirectories This is something we eventually want. This requires the usage of protobuf_generate over protobuf_generate_cpp. protobuf_generate is only available starting with CMake 3.13, however we do not support any old Ubuntu versions where this would be a problem (even 20.04 has support for 3.13) We also need to move every protobuf file to a subdirectory called protobuf. Since we want users of the library to be able to include the generated .pb.h files using #include "protobuf/foo.pb.h", we need to provide "protobuf" somewhere in their include path. This was previously done by "reusing" the protobuf path containing the CMakeLists. However, this would break for nested directory structures. The generated files would not use the protobuf prefix (since protoc has never seen it), causing included paths in generated files to be wrong. For non nested structures, this was no problem, since the include would simply refer to a file in the same directory. Setting the protobuf_generate IMPORT_DIRS to ${CMAKE_CURRENT_BINARY_DIR}/.. instead (and thus reusing the existing protobuf path) did not work.

Commit:365474a
Author:Paul Bergmann
Committer:Michel Schmid

amun/ra/protobuf/tests/simulator-cli: Fix -Wsign-compare - writeDatagram really returns a qint64 - Camera and Robot IDs are uint32_t in the proto so we might as well save them as such - Protobuf int64 and uint64 both use VARINT encoding on the wire, so this should not break senders unless they use really high command delays

Commit:bbc839c
Author:Paul Bergmann
Committer:Michel Schmid

cmake: Update to Protobuf 3.21.12 This is part of a stepwise upgrade to modern Protobuf versions, which hopefully brings performance improvements and upstream bugfixes. Also, support for the old Protobuf version broke with CMake 4. - We no longer set the cc_enable_arenas option since it is enabled unconditionally since Protobuf 3.14.0 [1] - The patch copying a CMakeLists is not needed anymore since Protobuf now just ships its own top level CMakeLists. - We do not pass the C++ standard version, since (a) we should forward CXX_STANDARD and (b) Protobuf just unconditionally writes its used C++ version, so our option likely does nothing (though this has not been verified) [1] https://github.com/protocolbuffers/protobuf/releases/tag/v3.14.0

Commit:949b21a
Author:Christoph Schmidtmeier
Committer:Michel Schmid

amun: seshat: show error message if log file cant be created

Commit:eefceff
Author:Michel Schmid
Committer:Michel Schmid

ra: rename the system delay configurable in the config widget to vision transmission to delay This is to distinguish it from all the other "system delays" we have and make it more clear what it is supposed to model.

Commit:075b853
Author:Paul Bergmann
Committer:Michel Schmid

amun: processor: Store radio command delay in log This should enable tracking replay on logs recorded with a non-zero radio command delay

Commit:1e2e79f
Author:Michel Schmid
Committer:Michel Schmid

tracking: improve timing of tracking by adding an expected delay for the radio commands The radio commands take a bit of time to arrive at the robot and for the robot to act on its command. This affects multiple things: 1. When we decide on a radio command we can't immediately incorporate that information in the tracking, but instead only after a delay. 2. When computing world state we use to compute the radio command we also need to predict into the future with this delay instead of using the state at current time. 3. When computing the world state for the strategy we want to predict up to the time the processor reaches case 2. which means we also need to add the delay here in addition to the previous tickDuration. 4. Previously the command evaluator expected the world time in 10ms, because it used the world time directly to compute the output1. This has been changed so that command evaluator receives the controllTime (time command reaches robot) and adds the 10ms itself for output1. IMPORTANT: the delay is unknown at this point and probably has to be reevaluated whenever something about the setup changes.

Commit:8915873
Author:Michel Schmid
Committer:Michel Schmid

simulator: add command_delay option to realism config

Commit:cc4f3e5
Author:Paul Bergmann
Committer:Paul Bergmann

amun: processor/radiosystem: Add name to transceiver status ...in order to differentiate them in the UI

Commit:090c0e5
Author:Christoph Schmidtmeier
Committer:Paul Bergmann

amun: processor/radiosystem: send robot phi instead of omega and velocities in global coordinates

Commit:6edbcf5
Author:Christoph Schmidtmeier
Committer:Michel Schmid

protobuf: robot: add documentation

Commit:38d980c
Author:Paul Bergmann
Committer:Michel Schmid

amun: Implement automatic entrypoints and accompanying GUI Automatic entrypoints are designed to be loaded when the game stage transitions to a specific stage, with the exception of FIRST_HALF (and FIRST_HALF_PRE). Detecting a change to the first_half stage is challenging due to its use as a default value. However this is inconsequential as we already select an entrypoint manually prior to the start of the game. The primary purpose of this feature is to enable the automatic loading of the lineup entrypoint when the break period begins.

Commit:74afb1f
Author:Michel Schmid
Committer:Michel Schmid

amun/simulator: implement blocks that smooth corners in new field setup The simulator setup now has an additional field for the size of the blocks that are put in the corners basically making two 45° angles out of every 90° angles making it easier for robots to reach the ball if it ends up in a corner.

Commit:a56c067
Author:Michel Schmid
Committer:Michel Schmid

robotspecs: add optional attributes can_shoot and can_dribble base/robot: add robot.canDribble and robot.canShoot and read values from specs. config: add defaults for new attributes.

Commit:0f5ffff
Author:Michel Schmid
Committer:Michel Schmid

protobuf: add tracker_port to CommandAmun package for autoref

Commit:fb7132f
Author:Paul Bergmann
Committer:Paul Bergmann

amun: gamecontroller: Only reconnect if source_identifier changes A locally running game controller multicasts referee messages over all local interfaces by default. These interfaces have different IP addresses. Identifying a game controller instance by its IP address is thus not possible and doing so leads to frequent reconnects, as the ExternalGameController assumes the game controller instance changes. Since 2.14.0 (more specifically 119977d5f5), the game controller sends out the source_identifier which is kept constant while the instance is running.

Commit:c6a6470
Author:Andreas Wendler
Committer:Paul Bergmann

amun: trajectorypath: move position and speed into RobotState struct for cleaner interface

Commit:4165a9d
Author:Andreas Wendler
Committer:Paul Bergmann

ra: add widget to set ball model parameters

Commit:703384d
Author:Andreas Wendler
Committer:Michel Schmid

amun: tracking: calculate ball maxspeed in the tracking

Commit:6ae49f5
Author:Andreas Wendler
Committer:Michel Schmid

amun: processor: use simple tracking ball for autoref execution

Commit:3ad65ad
Author:Andreas Wendler
Committer:Michel Schmid

amun: simulator: add acceleration limits per wheel

Commit:4aa2d4f
Author:Michel Schmid
Committer:Michel Schmid

base/gamecontroller: reintroduce the advantage rule in some cases The advantage rule has been reintroduced, but differently. This time if the opposing team receives a yellow card, but does not remove a robot in 10s the game would be halted, unless we send an advantage message with the new function sendAdvantageResponse.

Commit:aefac55
Author:Tobias Heineken
Committer:Michel Schmid

proto: make git_info repeated

Commit:9a3db8c
Author:Andreas Wendler
Committer:Michel Schmid

amun: trajectorypath: add and use specialized obstacles for opponent robots These obstacles can then change their size not only based on the speed difference between the robots at the current time, but also based on the speed the own robot will have at any point on the trajectory.

Commit:f37c636
Author:Michel Schmid
Committer:Michel Schmid

amun: refactor gitinfo status message

Commit:03a87c5
Author:Michel Schmid
Committer:Michel Schmid

amun: send strategy git hash and commit in status

Commit:5ae9dd8
Author:Andreas Lobmeier
Committer:Michel Schmid

amun, ra: fix semantic errors in using quaternions

Commit:0f49e67
Author:Andreas Wendler
Committer:Michel Schmid

amun: simulator: add option for missing robot detections

Commit:143c4d4
Author:Andreas Wendler
Committer:Michel Schmid

ra/strategy: add fast image based visualization Although it is comparatively very fast and uses little memory in logs, please do not use too much outside of testing.

Commit:3cfbbea
Author:Andreas Wendler
Committer:Michel Schmid

ra: simulator/plotter: save and show proper origin time for simulator truth

Commit:5007a7d
Author:Andreas Wendler
Committer:Tobias Heineken

ra: logwidget: list all game events, even if multiple arrive during one frame This mostly happens for the third foul, we would previously only show the multile fouls message, not the third foul that occured.

Commit:be5bf0b
Author:Andreas Wendler
Committer:Tobias Heineken

strategy: distinguish between internal and external simulation This allows a strategy to handle an external simulation like a real field for some applications, and like the internal simulator for other applications. The most visible application where a strategy might be interested in treating the external simulation like a real field is moving your robots in the UI while no control-connection with the external simulation has been established.

Commit:c933a1b
Author:Andreas Wendler
Committer:Tobias Heineken

amun: simrobot: add ball-touch information to simulator truth For autoref event checking

Commit:e874129
Author:Andreas Wendler
Committer:Tobias Heineken

ra: do not disable logslider when recording a log in ra This should only be done when recording a loglog in horus

Commit:f887546
Author:Andreas Wendler
Committer:Tobias Heineken

simulator: add offset in reported object positions This also happens with the vision, though slightly different. Here, the offset is constant over the whole simulated camera, but in reality, this offset will vary over the area of the camera, resulting from wrong distortion settings or calculation. During the robocup 2019 (towards the final), the difference in reported positions of the two cameras in their overlap area was relatively constant for most of the overlap area, so this simplified model was chosen to simulate this effect. It should re-create most of the annoying artefacts this can cause. The value of 2 cm per camera (a total difference of 4 cm difference between the two cameras) was chosen as it is close to the values observed during robocup 2019. Should a filter be implemented in the tracking to combat this effect, real vision data from games has to be used, as the effect simulated here is highly simplified.

Commit:7276aea
Author:Andreas Wendler
Committer:Paul Bergmann

amun: sslgamecontroller: Add automatic robot exchange

Commit:0f9db80
Author:Andreas Wendler
Committer:Paul Bergmann

protobuf: command: remove outdated and unused simulator move command messages

Commit:f511bb2
Author:Andreas Wendler
Committer:Paul Bergmann

ra: add info text for the GC status

Commit:6efe7b5
Author:Andreas Wendler
Committer:Paul Bergmann

amun: gamecontroller: handle sides flipped information

Commit:4b86ca8
Author:Andreas Wendler
Committer:Paul Bergmann

amun: gamecontroller: update the geometry for the gamecontroller While this only works for the newest version of the game controller (without a precompiled release so far), it will just do nothing with the currently downloaded version.

Commit:0796190
Author:Andreas Wendler
Committer:Paul Bergmann

amun: run the official ssl game controller The rest of amun does not yet connect to it, but you got to start somewhere

Commit:f42ac9a
Author:Michel Schmid
Committer:Paul Bergmann

amun: p/processor: Add config file for division dimensions Processor now reads the field dimensions for the divisions from config/division-dimensions.txt, to make it easier to change in case of future rule changes.

Commit:74414f6
Author:Michel Schmid
Committer:Paul Bergmann

amun: p/processor: Detect division and amend status accordingly Since the division is not part of the referee message the division is inferred via the field dimensions. This information is then added to the geometry message as an additional field to avoid computing it again at every point that needs it. The "Team Information" widget is now the "Referee Information" widget, because it now also displays the current division, which is obviously team independent. strategy/base/world: add support to read the division from the geometry message.

Commit:ab5da04
Author:Andreas Wendler
Committer:Paul Bergmann

cpptest: add more simulator tests For teleportation, correct geometry, invisible ball and camera overlap

Commit:09482c4
Author:Tobias Heineken
Committer:Paul Bergmann

simulator-cli: include recent protocoll updates

Commit:9655177
Author:Tobias Heineken
Committer:Tobias Heineken

networktransceiver: Send our specs to a remote simulator

Commit:36e5bb6
Author:Michel Schmid
Committer:Tobias Heineken

amun/simulator: simulator now reacts to simulatingDribble + delete old realism config message

Commit:7fd2914
Author:Tobias Heineken
Committer:Tobias Heineken

simulator-cli: update ssl-sim protocol

Commit:732c1ba
Author:Andreas Wendler
Committer:Tobias Heineken

amun: simulator: send out the new ssl geometry ball model

Commit:d3724a4
Author:Michel Schmid
Committer:Tobias Heineken

ra/simconfig: change realism command to ssl version

Commit:99b5d63
Author:Michel Schmid
Committer:Tobias Heineken

amun/networktransceiver: add support for different sim ports networktransceiver got a new struct to manage the additional config ports for separate control of simulator/blue/yellow

Commit:da60699
Author:Michel Schmid
Committer:Tobias Heineken

ra/config: add additional ports for simulator

Commit:1a9932e
Author:Tobias Heineken
Committer:Tobias Heineken

simulator-cli: accept geometry commands

Commit:9869682
Author:Tobias Heineken
Committer:Tobias Heineken

robot.proto: reserve Specs field 20 Specs field 20 has been used for a short time internally at ERForce. To make sure not to break compatibility, even for these few logs, this field is now reserved (and therefore unused) for eternity.

Commit:8ffa28c
Author:Tobias Heineken
Committer:Tobias Heineken

proto: ssl_simulation_control: Add a warning While the official use of these messages includes the gameController coordinate system, we use the vision system instead. The only difference is a factor of 1000 everywhere. To make sure this fact ist known, a new comment was added to ssl_simulation_control

Commit:9436ab4
Author:Andreas Wendler
Committer:Tobias Heineken

amun/simulator: accept camera setup with full camera information Like most importantly the camera positions, not just the number and height of the cameras.

Commit:2eb77ee
Author:Tobias Heineken
Committer:Tobias Heineken

simrobot: read new sslsim commands This is commit 2 of three(+) to remove our obsolete own commands and replace them by the ssl_simulator_protocoll commands

Commit:cddeb5c
Author:Tobias Heineken
Committer:Tobias Heineken

command.proto: remove move_ball This is step one of three+ to remove our deprecated simulator commands by sslsim

Commit:875f50c
Author:Tobias Heineken
Committer:Tobias Heineken

protobuf: Add remainging ssl_simulator_*.proto files and depcreate some commands

Commit:aa98a86
Author:Tobias Heineken
Committer:Tobias Heineken

amun: networktransceiver: don't use stderr for simerrors