4 minute read

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

Subtree Library GUI

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.

SetPlanData

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.

OmplPlanning

FollowPath

Used for following a given path in the simulator coordinates. Contains the subtree MoveTo.

FollowPath

MoveTo

Used for moving the robot to a given point.

MoveTo

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.

VFF

SetSpeed

Used for moving the robot to a given point.

SetSpeed

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

All Repositories in use