GSoC 2025: Recap
In this post I will resume the changes done during this GSoC project. The main points that I will talk will be:
- New updated GUI
- Updated subtree library with new entries
- New Demos
Updated GUI
The new update GUI of BT Studio took the first 6 weeks from the GSoC period but the result was worth it. The new user interface provides an easier and smoother experience to the user as well as being more modular and reusable in other of JdeRobots projects such as Robotics Academy.
This redesign was done in the majority inside the new node package jderobot-ide-interface that was created for this purpose and will be linked below.
To best appreciate this new update please watch also the video at the end of this post.
Updated subtree library
The old subtree library has been completely overhauled in order to become the new one. The final design of the library is as follows:
- Divided into 2 sections: User and Standard
- User library: allows the user to import trees or subtrees from their other project
- Standard library: the user can import usefull trees or subtrees predefined in this library
When importing a tree or subtree from the library the user will have to name it and the imported files will be named as follows considerign the name given by the user to be myName, the original action name Action.py and the original additional subtree name as Subtree.json.
- Main tree (the one selected): myName.json
- Actions: myName_Action.py
- Additional subtrees: myName_Subtree.json
New standard subtree library entries
The entries that have been added to the standard library are the following 6:
SetPlanData
Used for setting the data necessary, such as the map, robot size and goal for the OmplPlanning subtree. Normally used together with OmplPlanning.
OmplPlanning
Used for generating a path from the robot position to the goal using Ompl. Normally used together with SetPlanData for setting the needed map, robot size and goal.
FollowPath
Used for following a given path in the simulator coordinates. Contains the subtree MoveTo.
MoveTo
Used for moving the robot to a given point.
VFF
Used for calculating the desired speed to reach the target without crashing into any obstacles. That target is defined inside GoalVFF.
For more information please visit this link.
SetSpeed
Used for moving the robot to a given point.
New BT Studio demo
I have created 4 new demos to test the new features solving exercises from Robotics Academy using Behavior Trees.
The first one was to test the new GUI of BT Studio. This demo was Follow Line.
The other 3 were done in order to test the subtree library and create new useful entries in the standard library:
Final Thoughts
Taking a look at the original schedule there has been a lot of changes:
Schedule | Changes |
---|---|
Community Bonding Period: May 8 - June 1 | Extend the RAM functionality for the custom universe and add it to the UI. Also simplify the backend API |
Week 1-2: June 1 - June 15 | Improve the frontend UI and infrastructure |
Week 3-4: June 16 - June 29 | Add the improvements to the library and test it |
Week 5: June 30 - July 6 | Identify commonly used BTs and prepare them |
Week 6-7: July 7 - July 20 | Code the identified BTs |
Week 8: July 21 - July 27 | More testing of the library feature |
Week 9: July 28 - August 3 | Implement any remaining identified features from previous weeks |
Week 10: August 4 - August 10 | Final bug-fixing and report |
But most of them can be accounted by adding 3 extra weeks after the week 2 in the original schedule and extending the rest to the final 13 weeks.
From the original objectives all of them have been tackled and solved in a satisfying way as stated in the sections above.
All Github Pull Request used
- Robotics Application Manager Pull Request 223: Add tools for neutral RAM
- Robotics Academy Pull Request 3132: Add tools for neutral RAM
- Robotics Infrastructure Pull Request 524: Add neutral RAM to the database
- BT Studio Pull Request 308: Improve BT Studio GUI
- BT Studio Pull Request 310: Separate python from xml
- BT Studio Pull Request 313: Fix universe file access
- BT Studio Pull Request 314: Start new Subtree Library
- BT Studio Pull Request 319: Update standard library
- BT Studio Pull Request 322: Fix output ports
- BT Studio Pull Request 323: Add warehouse demo
- BT Studio Pull Request 325: Global Nav demo
- BT Studio Pull Request 328: Adding missing icons
- BT Studio Pull Request 329: Imporve Subtree Library GUI
- BT Studio Pull Request 331: New Vff demo and library
- BT Studio Pull Request 332: Add webpack and update header
- BT Studio Pull Request 334: Remove outdated node_modules