Skip to content

Enhance robot management and configuration features#3

Merged
mahi97 merged 164 commits intomahi97:masterfrom
RoboCup-SSL:master
Apr 9, 2026
Merged

Enhance robot management and configuration features#3
mahi97 merged 164 commits intomahi97:masterfrom
RoboCup-SSL:master

Conversation

@mahi97
Copy link
Copy Markdown
Owner

@mahi97 mahi97 commented Apr 9, 2026

1. Copy the correct template for your contribution
  - 🐛 Are you fixing a bug? Copy the template from http://bit.ly/grsim-bugfix
  - 📈 Are you improving the performance? Copy the template from http://bit.ly/grsim-perf
  - 📝 Are you updating the documentation? Copy the template from http://bit.ly/grsim-doc
  - 💻 Are you changing a functionality? Copy the template from http://bit.ly/grsim-feature
2. Replace this text with the contents of the template
3. Fill in all sections of the template
4. Click "Create pull request"

spiralray and others added 30 commits October 9, 2019 18:44
Some improvements to `FindODE.cmake`
Fixed segmentation fault when settings 'Geometry>Game>Robots Count' to 0
…nstall_dir

load configuration from system install directory on Linux (from NAMeC)
add pkg-config to dependency in documents
update resources/textures.qrc for 16 robots
- add updater of RobotCount/CurrentRobot  to RobotWidget

  - changeRobotCount() is used to shrink comboBox to fit to robot count
    to avoid access to non-existing robot on field
  - replace comboBox initializer in constructer with changeRobotCount()
    this works mostly same as before for this usage
  - changeCurrentRobot() is used to change currentIndex of robotCombo
    Even shrinking comboBox, segmentation fault is possibly happen
    because CurrentIndex of robotCombo is also used to update
    Current_robot of glwidget.

- implement updateRobotCount() and use it instead of restartSimulator()

  updateRobotCount() will
    1. checks robot count limitation (0 ~ MAX_ROBOT_COUNT),
    2. call changeRobotCount() and changeCurrentRobot() of robotwidget,
    3. call restartSimulator()
    4. call changeCurrentRobot() to update picture for current robot
       In this function, robotIndex() is used
       Before calling this fuction, SSLWorld::Robot must be initialized
       using current robot count because robotIndex() uses robot count on field.
      restartSimulator() do this

- skip some process in changeCurrentRobot/Team if robot count is zero
  to avoid segmentation fault

- block robotCombo signal during robotwidget::changeRobotCount()
  if not, out-of-index access will occurr in MainWindow::changeCurentRobot()
- Add 16 robots formation (just added)
  The default positions of robots 12~15 are on the side of the touchline.
- RobotsFomation::x[] and ::y[] are set when setAll() is called,
  and uses Robot_count() for assignment for-loop condition.
  If v_Robot_count is increased after RobotFormation object is created,
  positions for additional robots were undefined (maybe [0, 0]).
  This is solved by using MAX_ROBOT_COUNT instead of Robot_count().
Shrink current robot selector comboBox based on robot count
…ition

fix initial positions for increased robots
g3force and others added 28 commits January 3, 2024 17:26
It is pretty old.
GH seems to have issues finding a runner for it.
Since at least Protobuf 3.21 the version is incompatible causing various
include and linker errors. Maybe the incompatibility was introduced before that,
but I don't know. If that is the case the version number can just be set lower
than that in the future.
The approach is pretty much just copied from ER-Forces framework
(https://github.com/robotics-erlangen/framework) and adapted to fit the
structure of this repository.
On some systems the packaged ODE (e.g. the Manjaro ode package at time of
writing) causes grSim to crash almost instantly.
This *may* be caused by the package having been built without double precision
support, but I don't know what exactly breaks.
Additionally add this as a hint to INSTALL.md.
Also changed vcpkg dependency from qt5 to qt5-base, because that should be
enough and vcpkg seems to build from source (?) and no one has time to build Qt
completely.
Includes some hacks to get around the fact that the macos pipeline does not set
the path to the QtConfig.cmake correctly.
Apparently some weird issues are caused by using the INSTALL_DIR parameter
of ExternalProjects when using the Ninja generator.
Makes you wonder why that is even there, but cmake works in mysterious ways,
I guess.
Adding the install part as a substep and explicitly telling cmake that the
necessary libs and executables are produced by this step fixes this issue.
Windows pipeline is now doing what the samples from run-vcpkg and run-cmake
suggest it should do and vcpkg claims that it should handle cmake find_package
calls correctly if you use their vcpkg.cmake as the toolchain.
It's not working, because for some reason the find_package call for Qt still
fails with cmake claiming it can't find a Qt5config.cmake file.
Corresponding rule update: RoboCup-SSL/ssl-rules#103
- Split variable Field_Margin, making it possible to set both
  `Field_Margin_Goal_Line` and `Field_Margin_Touch_Line` separately.
- Set DivA_Field_Margin_Goal_line to 0.6m,
  set the others to 0.3m
- Replace usage of `ConfigWidget::Field_Margin()` to corresponding one
  (`ConfigWidget::Field_Margin_Touch_Line()`
  or `ConfigWidget::Field_Margin_Goal_Line()`)
-  Update goal side walls to extend to the outside wall
and set `cfg->Field_Margin_Goal_Line()` on `generatePacket()`

fef: RoboCup-SSL/ssl-vision#234
Add field value `Field_Goal_Substitution_Area_Width`
- Div.A: 0.3m
- Div.B: 0.0m (non available)

set the value on `generatePacket()`

ref: fef: RoboCup-SSL/ssl-vision#234
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.