Additionally, the following changes to existing components are included:
In the move_arm action, a whole_body MoveIt! group instance was added (this is treated as optional in the implementation - if a particular robot doesn't have whole body control, this can be ignored - but is absolutely essential for the HSR)
In the move_base action, a simple recovery behaviour was introduces according to which, if the goal pose is not reachable, another pose around the goal is sampled and used as an alternative goal pose (the new pose is sampled from a Gaussian distribution whose standard deviation is passed as an argument to the action)
Additional notes
The fact that the task had to be performed in simulation unfortunately meant that we could not use some of the components that we run on the real robot:
The implementation was used for the simulation competition at RoboCup Japan Open, such that we were not able to set up a MongoDB server with the Docker-based competition setup. This, in turn, means that we were not able to interact with mongodb_store. For this reason, the mdr_wrs_tidy_up package includes scenario states which are just reimplementations of some of the action clients, but without using the knowledge base.
The simulation of the HSR does not include joint velocity controllers; we were thus not able to execute demonstrated trajectories, but had to rely on MoveIt! instead. Properly using MoveIt! required minor changes to the pickup and place actions, particularly related to the goal frame of reference, but also regarding pregrasp poses. These changes are not included in this PR; they were added on a separate branch and I will only selectively introduce them later on - they have to be thought out better
Short summary
This PR primarily adds an implementation of the Tidy Up task as described in the World Robot Summit rulebook. A demonstration of the robot performing the task in simulation can be found at https://youtu.be/Tnhf6nUeuDI
Additions and changes
The following new components are included in the PR:
mdr_wrs_tidy_up
undermdr_robocup_tasks
mdr_environments
Additionally, the following changes to existing components are included:
move_arm
action, awhole_body
MoveIt! group instance was added (this is treated as optional in the implementation - if a particular robot doesn't have whole body control, this can be ignored - but is absolutely essential for the HSR)move_base
action, a simple recovery behaviour was introduces according to which, if the goal pose is not reachable, another pose around the goal is sampled and used as an alternative goal pose (the new pose is sampled from a Gaussian distribution whose standard deviation is passed as an argument to the action)Additional notes
The fact that the task had to be performed in simulation unfortunately meant that we could not use some of the components that we run on the real robot:
mongodb_store
. For this reason, themdr_wrs_tidy_up
package includes scenario states which are just reimplementations of some of the action clients, but without using the knowledge base.