Components and main C++ classes

Overview and main C++ classes for components. Please check detail explanation of those class and other classes in C++ Documentation

Drives

Drives provides feature to control robot.
Custom robot movment class should be created as child class of RobotVehicleMovementComponent
Custom joint class should be created as child class of RRJointComponent

example of class relations

doxygen_generated/html/dd/d32/class_u_differential_drive_component__inherit__graph.png doxygen_generated/html/db/dc5/class_u_r_r_joint_component__inherit__graph.png

main C++ classes

Sensors

Sensor classes which can be used as stand alone actor or component of Robot.
RRROS2<sensor name>Component class is designed to used as part of robot.
RRROS2<sensor name>Actor class is designed to used as stand alone actor and ROS node.

example of class relations

doxygen_generated/html/dd/da7/class_a_r_r_r_o_s2_camera_actor__coll__graph.png

main C++ classes

main Blueprint classes classes

  • BP_Lidar_* : Set parameters for specific lidar products.

Robots

Please check Overview: Robot and GameMode and Robots

Core

Core has base classes which are directly or indirectly used by other components in RapyutaSimulationPlugins Plugins.
Core also has util classes as well.

example of class relations

doxygen_generated/html/de/d5e/class_a_r_r_r_o_s2_game_mode__coll__graph.png

main C++ classes(todo)

Tools

Offline and runtime tools.
URRROS2<msg name or others>Publisher class is publisher of a specific msg type or purpose. Child class of UROS2Publisher.

main C++ classes

  • URRROS2SimulationstateClient

    Provide spawn/delete/attach/set/get ROS 2 interfaces. Typically this class is initialized from GameMode.

  • ASimulationState

    Has implementation of spawn/delete/attach/set/get ROS 2 interfaces. Communicate with URRROS2SimulationstateClient to execute manipulation.

  • URRROS2ClockPublisher

    Publish /clock topic. Typically this class is initialized from GameMode.

  • OccupancyMapGenerator

    Generate 2D occupancy map for navigation/localization.

  • URRROS2BaseSensorPublisher

    Base Sensor Publisher class. Other sensor publisher class should inherit from this class.

Other Experimentals

  • General
    • ARRGameMode: GameMode with asset loading and scene

    • ARRBaseActor: Base actor class for all Rapyuta Sim actors which has pointer to RRGame* objects and ARRActorCommon.

    • URRCoreUtils: todo

  • Asset Loading

    This is used to load asset at runtime as well. This is designed to create/spawn robot asset dynamically.

  • Scene(for Data Generation)

    Scene is the concept to separate same level into multiple areas. Scnes has SceneDirector, SceneInstance, RRGamePlayer and URRActorCommon and mainly used for data generation.

  • Mesh

    MeshComponent with utils to be used for Asset loading and data generation.

  • Robot
    • Skeletal Turtlebot3: Physics-enabled skeletal mesh component-based turtlebot3 robots of types:
      • BallCasterSphereWheeled : With ball caster sphere wheel

      • ConvexWheeled : Wheels have convex-hull collision

      • SphereWheeled : Wheels have sphere collision

      • StaticMeshConstrained : Built from separate static mesh components connected to one another by physics constraints

      • FullLockConstrained : All physics constraints are locked

      • WheeledVehicle : Utilize SimpleWheeledVehicleMovement

      • SkeletalTurtlebot3Examples level: Have all example skeletal robots being put to automatically move forward upon Play