In this scenario, a IIT-R1 robot must fetch an object from a user and then reach a predefined location. Whenever the battery goes below 30% of its full capacity, the robot stops and reaches a charging station. It then waits until the battery gets fully charged. Once the battery is fully charged, the robot resumes the previous task. This scenario focuses on the development of the autogenerated boilerplate code for the skills, the development of the resource handling mechanism, and the experimental validation on a real robot.

The main differences with the Release 1 are:

  • The autogeneration of the boilerplate code for the skills: As mentioned in Deliverable 2, the manual development of the FSMs modelling the skills was a tedious task. In addition to the SCXML file, we had to implement source code to execute the FSMs. In this release, we require to develop the SCXML files only. The SCXMLs include additional information to allow the autogeneration.
  • The Implementation of a resource handling mechanism. Some components involve access to the robot’s hardware, to avoid concurrent access of there critical resources, we implemented a resource handling mechanism.
  • The deployment on a more complex task. In the first release, we presented a navigation task. In this release, the task includes a fetch-and-carry scenario.
  • The real robot validation. We provide experimental validation of the toolchain on a real robot.

Behavior Tree of Release 2

The figure below shows the BT of Release 2.

The BT encodes the following logic:

  • The robot checks if the battery level is below 30% of its capacity or if the battery is under charge.
  • If the battery level is below 30% and it is not already under charge, the robot goes to the charging station.
  • If the battery is under charge and the robot is at the charging station, the robot waits until the battery gets fully charged.
  • If the battery level is above 30% and it is not under charge, it performs the main task.

The main task is:

  • If there are no objects in the robot’s hand, the robot goes to the user to fetch an object.
  • If there is an object in the robot ‘s hand, the robot goes to a predefined destination.

Execution of Release 2

The video below shows the execution of Release 2