Skip to content

2D simulator for robot soccer competitions, IEEE Very Small Size category.

License

Notifications You must be signed in to change notification settings

unball/simulator_unity

Repository files navigation

IEEE Very Small Size Soccer simulator

Simulator for the IEEE Very Small Size Soccer competition. Developed in Unity and integrated with the ROS environment using the rosbridge suite.

The simulator uses two asset store packages, JSON Object and Simple Web Sockets for Unity WebGL.

Note: This simulator was developed and tested using ROS Kinetic. Previous versions of ROS are not supported.

Running the simulator

Before running the simulator, it is necessary to have ROS and the rosbridge suite installed, as well as the latest simulator build, which can be found here. Alternatively, the simulator code can be downloaded and built using the Unity Engine.

To run the simulator just paste the following command on a terminal window:

roslaunch rosbridge_server rosbridge_websocket.launch

After that, just run the simulator executable.

Running the simulator before starting the rosbridge server is not a problem, but the simulation won't start until the rosbridge suite has started.

ROS Message details

All robot positions and their orientations, and the ball position are published on a single ROS message of type "measurement_system/measurement_msg", on the topic "measurement_system_topic". The message file can be viewed here.

Pausing and resuming the simulation publishes a message of type "unball/KeyboardMessage", on the topic "keyboard_topic". Pausing will send the char 'p' and resuming will send the char 'r'. The message file can be viewed here.

The robots can be controlled by an external application through ROS, by publishing messages of type "communication/robots_speeds_msg", on the topic "robots_speeds". The message file can be viewed here.

The allied field side can be changed via a dropdown in the simulation scene. The field side is published to the topic "field_side_topic" as a message of type "std_msgs/String", as described here. The strings sent are "Right" and "Left".

All measurements are received and transmitted according to the International System of Units.

Measurement conventions

1 Unity unit = 0.1 metres = 100 pixels
Robot angles are sent in -pi:pi range

Developed and maintained by Gabriel Naves

Releases

No releases published

Packages

No packages published