Mobile Robots
Example Robots
Turtlebot3
There are 4 turtlebot actors, which have same ROS 2 Interfaces.
Topic name |
Topic type |
About |
---|---|---|
cmd_vel |
Robot velocity reference |
|
odom |
Odometry from robot pose |
|
scan |
Laser scan msg |
Turtlebot3 Burger
Turtlebot3 Burger Actors are examples of robots implemented in C++. All components, joints, etc are defined in C++.
Even if it is implemented in C++, we defined Blueprint child class to change parameters and assign meshes.
* Since all components are defined in C++, it is marked Edit in C++ in left components bar. * Hardcode mesh path in C++ cause error when the project is packaged.
- ATurtlebotBurgerVehicle
Example kinematic robot implementation in C++.
This is child class of ARRBaseRobot and is added SkeletalMesh and URR2DLidarComponent.
BP_TurtlebotBurgerVehicle : BP child class of ATurtlebotBurgerVehicle
- ATurtlebotBurger
Example physics robot implementation in C++.
This is child class of ARRBaseRobot and is added UStaticMeshComponent, UPhysicsConstraintComponent, UDifferentialDriveComponent, and URR2DLidarComponent.
BP_TurtlebotBurger: BP child class of ATurtlebotBurger
- URRTurtlebotROS2Interface
Example child class of URRROS2Interfaces.
Turtlebot3 Waffle
Turtlebot3 Waffle Actors are examples of robots implemented in BP. Both are child class of ARRBaseRobot and all additional components, joints, etc are defined in BP.
- BP_TurtlebotWaffleVehicle
Example kinematic robot implementation in BP.
This is child class of ARRBaseRobot and is added SkeletalMesh and URR2DLidarComponent similar as ATurtlebotBurgerVehicle in C++.
- BP_TurtlebotWaffle
Example physics robot implementation in BP.
This is child class of ARRBaseRobot and is added UStaticMeshComponent, UPhysicsConstraintComponent, UDifferentialDriveComponent, and URR2DLidarComponent similar as ATurtlebotBurger in C++.
To configure MoveComponent in BP, VehicleMoveComponentClass is set as None, then, VehicleMoveComponent is not configured in C++ function. Instead of configuration in C++, MoveComponent are set in Construction script in BP
- BP_TurtlebotROS2Interface
Example child class of URRROS2Interfaces.
Custom Robot Creation TIPS
To create custom mobile robot
- Create child class of ARRBaseRobot
Overwrite default parameters.
Configure meshes and physics constraints in BP.
If you want to dynamically spawn robots and pass random parameters, overwrite InitPropertiesFromJSON()
- Create child class of URobotVehicleMovementComponent if you want custom movement behaviour.
Configure movecomponent in your Robot Class similar as BP_TurtlebotWaffle.
- Create child class of URRROS2Interfaces
Overwrite default parameters such as topic name.
Add necessary ROS Interfaces. Please also refer rclUE tutorials.
Create ROS 2 Service client of /SpawnEntity and pass necessary parameters outside of UE if you want to dynamically spawn robots from outside of UE