Enhance robot management and configuration features#3
Merged
mahi97 merged 164 commits intomahi97:masterfrom Apr 9, 2026
Merged
Enhance robot management and configuration features#3mahi97 merged 164 commits intomahi97:masterfrom
mahi97 merged 164 commits intomahi97:masterfrom
Conversation
Owner
mahi97
commented
Apr 9, 2026
Invalid robot status is sending
Some improvements to `FindODE.cmake`
Fix a mistake
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
Minor fixes
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
support up to 16 robots
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.
… build protobuf correctly
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
Merged
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.