Complete reimplementation of the old Referee Box (Refbox) for the @Work-League of RoboCup.
This Refbox is a native ROS application. However, it aims to enable multiple communication backends through individual plugins. Additionally, a RViz GUI will be developed, which will provide enhanced visualization capabilities for referees and visitors / spectators. Generation of tasks conforming to the rule book are configurable using the ROS parameters in order to be easily adaptable for any future changes in rules.
roslaunch atwork_commander atwork_commander.launch
roslaunch atwork_commander generate.launch task:=<task to generate>
Start the task execution using the CLI:
roslaunch atwork_commander start.launch
For testing the Refbox without any robot a fake robot may be used using the example_robot:
roslaunch atwork_commander example_robot.launch
roslaunch atwork_commander forward.launch
roslaunch atwork_commander stop.launch
You can use the script "default_bringup" which automates the refbox startup. Its purpose is mainly for new teams so that they can create bagfiles for tasks more easilys You can also use it for normal refbox startup, however you will need to kill the nodes afterwards manually.. The cleanup is done automatically if you set the _immediate param to True
Use e.g. this command to start the script (replace the task for the one you want):
rosrun atwork_commander default_bringup _task:=BTT1 _immediate:=True _record_rosbag:=True
NOTE: This requires rosbash to be installed:
sudo apt install ros-melodic-rosbash ros-melodic-rosbash-params
You can also modify the script to use other launchfiles than the default ones provided within this package. This is especially useful for your own arena configurations and robot descriptions.
There is a special launch file to generate rosbags for testing robots:
roslaunch atwork_commander generate_rosbag.launch task:=<BMT|BTT1|BTT2|ATT1|ATT2|FINAL>
Additional parameters to configure bag generation are:
id
: custom name to identify generated bagverbose
: more debug outputoutput
: log to screen
(console) or log
(rosout)output_dir
: where to put the resulting bag fileThe generated files are typically named <id>_<task>.bag
.
The default path for the bags is atwork_commander/common/bags/test_<task>.bag
.
Currently in the docu folder. Multiple '.graphml' files showing the design of the architecture and the future GUI (Viewable and editable with e.g. yEd Graph Editor) Source Code Reference
Issues, Milestones and Releases
The following section will briefly summarize the individual components purpose. For further information, please have a look at the respective sub-components' README.md.
State-Machine implementation, Pub/Sub and Service implementations to couple all sub-components.
Contains ROS messages and service descriptions necessary to communicate within the Refbox.
Will contain multiple communication plugins to enable flexible communication links to various types of robots.
Aims to enable visualization and control of multiple aspects of a Task before, during and after a run.
Enable dynamic task generation according to specified task types of the @Work RuleBook.