RoboCup 3D Soccer Simulator ROS2 Interface

Hi, this is Kenji from ROS Sports!

We are pleased to announce that a ROS2 agent interface to the RoboCup 3D Soccer Simulator is now in an alpha release stage! :partying_face:

The motivation behind the ROS2 interface for the Rcss3d Agent is to ease the entry-barrier for the 3d simulation league, and allow the simulator to be reused for other leagues in RoboCup.

GIFs are worth a thousand words. It is this easy to interact with an agent in the simulator!

effector_ros2
Sending velocity commands to the head joints

percept_ros2
Reading the Force Sensors on the feet and the Accelerometer

rcss3d_agent provides

  • A general ROS2 library that handles the network connection and parsing/packing of data into the format that the simulator understands (s-expressions)
  • A basic node that provides a ROS2 pub/sub interface to the library

For 3D simulation teams, the basic node is probably all you need. Teams from other leagues such as the humanoid league or SPL, can use the general library to implement their own pub/sub layer to convert the simulator-specific msgs to their own msgs of choice.

An example of this is provided by the rcss3d_nao package currently under development for SPL that publishes/subscribes using ROS2-released Nao specific messages (nao_command_msgs and nao_sensor_msgs), such that a real robot can be substituted out for a simulated one seamlessly.

We are actively looking for teams to work with and test out the packages. Please let us know if your team may be interested in working together.