Create® 3
The TurtleBot 4 can also use all of the actions, messages, and services that the iRobot® Create® 3 platform supports:
- Warning
ROS 2 Galactic is no longer supported. Please consider upgrading to a newer release
Actions
- AudioNoteSequence: Play a given set of notes from the speaker for a given number of iterations.
- DockServo: Command the robot to dock into its charging station.
- DriveArc: Command the robot to drive along an arc defined by radius.
- DriveDistance: Command the robot to drive a defined distance in a straight line.
- LedAnimation: Command the lights to perform specified animation.
- NavigateToPosition: Command the robot to drive to a goal odometry position using simple approach that rotates to face goal position then translates to goal position then optionally rotates to goal heading.
- RotateAngle: Command the robot to rotate in place a specified amount.
- Undock: Command the robot to undock from its charging station.
- WallFollow: Command the robot to wall follow on left or right side using bump and IR sensors.
Messages
- AudioNote: Command the robot to play a note.
- AudioNoteVector: Command the robot to play a sequence of notes.
- Button: Status for a button.
- Dock: Information about the robot sensing the its dock charging station.
- HazardDetection: An hazard or obstacle detected by the robot.
- HazardDetectionVector: All the hazards and obstacles detected by the robot.
- InterfaceButtons: Status of the 3 interface buttons on the Create® robot faceplate.
- IrIntensity: Reading from an IR intensity sensor.
- IrIntensityVector: Vector of current IR intensity readings from all sensors.
- IrOpcode: Opcode detected by the robot IR receivers. Used to detect the dock and virtual walls.
- KidnapStatus: Whether the robot has been picked up off the ground.
- LedColor: RGB values for an LED.
- LightringLeds: Command RGB values of 6 lightring lights.
- Mouse: Reading from a mouse sensor.
- SlipStatus: Whether the robot is currently slipping or not.
- StopStatus: Whether the robot is currently stopped or not.
- WheelStatus: Current/PWM readings from the robot's two wheels in addition to whether wheels are enabled.
- WheelTicks: Reading from the robot two wheels encoders.
- WheelVels: Indication about the robot two wheels current speed.
Services
- EStop: Set system EStop on or off, cutting motor power when on and enabling motor power when off.
- RobotPower: Power off robot.
See irobot_create_msgs for more details.
NoteWhen publishing or subscribing to topics, make sure that the QoS that you use matches that of the topic.
- Note
When using the Create® 3 with the Discovery Server network configuration, these topics, actions and services must be enabled in the
create3_republisher
launch parameters. For more information see the Create® 3 Republisher sectionActions
- AudioNoteSequence: Play a given set of notes from the speaker for a given number of iterations.
- Dock: Command the robot to dock into its charging station.
- DriveArc: Command the robot to drive along an arc defined by radius.
- DriveDistance: Command the robot to drive a defined distance in a straight line.
- LedAnimation: Command the lights to perform specified animation.
- NavigateToPosition: Command the robot to drive to a goal odometry position using simple approach that rotates to face goal position then translates to goal position then optionally rotates to goal heading.
- RotateAngle: Command the robot to rotate in place a specified amount.
- Undock: Command the robot to undock from its charging station.
- WallFollow: Command the robot to wall follow on left or right side using bump and IR sensors.
Messages
- AudioNote: Command the robot to play a note.
- AudioNoteVector: Command the robot to play a sequence of notes.
- Button: Status for a button.
- DockStatus: Information about the robot sensing the its dock charging station.
- HazardDetection: An hazard or obstacle detected by the robot.
- HazardDetectionVector: All the hazards and obstacles detected by the robot.
- InterfaceButtons: Status of the 3 interface buttons on the Create® robot faceplate.
- IrIntensity: Reading from an IR intensity sensor.
- IrIntensityVector: Vector of current IR intensity readings from all sensors.
- IrOpcode: Opcode detected by the robot IR receivers. Used to detect the dock and virtual walls.
- KidnapStatus: Whether the robot has been picked up off the ground.
- LedColor: RGB values for an LED.
- LightringLeds: Command RGB values of 6 lightring lights.
- Mouse: Reading from a mouse sensor.
- SlipStatus: Whether the robot is currently slipping or not.
- StopStatus: Whether the robot is currently stopped or not.
- WheelStatus: Current/PWM readings from the robot's two wheels in addition to whether wheels are enabled.
- WheelTicks: Reading from the robot two wheels encoders.
- WheelVels: Indication about the robot two wheels current speed.
Services
- EStop: Set system EStop on or off, cutting motor power when on and enabling motor power when off.
- RobotPower: Power off robot.
See irobot_create_msgs for more details.
NoteWhen publishing or subscribing to topics, make sure that the QoS that you use matches that of the topic.
Create® 3 Republisher
In certain network configurations it is beneficial to isolate the Create® 3 from the remainder of the ROS 2 network traffic. The Create® 3 has limited resources and can be overwhelmed with too many topics to discover. The Create® 3 Republisher is used to achieve this. All communication to the Create® 3 is routed through the Raspberry Pi via the republished ROS 2 topics, action and services. This allows nodes to interact with the Create® 3 ROS 2 elements normally while only needing communication with the Raspberry Pi.
This is achieved by having the Create® 3 on its own unique namespace which is a combination of the robot namespace and
_do_not_use
. This results in all of its topics being hidden and indicates clearly that these topics, actions and services are not to be used directly by the user. The Create® 3 only communicates with the single Raspberry Pi that is present on the same robot. All of the Create® 3 topics, actions and services are then republished and relayed by the Raspberry Picreate3_republisher
node with just the robot namespace so they are fully visible and available to the rest of the ROS 2 network. In order to interact with the Create® 3, any given node will interact with the topics, actions, and servers generated by the Raspberry Pi, and the republisher node on the Raspberry Pi will relay that information back to the Create® 3.NoteThe
_do_not_use
namespace, as the name suggests, should not be used by any other nodes. The only place this namespace should ever be referenced is inside the configuration file for thecreate3_republisher
node and within the Create® 3’s application configuration.All other ROS nodes, shell commands (e.g.
ros2 topic echo ...
) should use the republished topics, actions, and services.In order to prevent overloading the system with too many topics, the number of topics, actions and services that are relayed through the republisher node are limited. The default list of topics, actions and services that are being relayed can be found in the
create3_republisher
launch parameters. To optimize the system, update this list to only include the necessary topics, actions and services that are needed. - Note
When using the Create® 3 with the Discovery Server network configuration, these topics, actions and services must be enabled in the
create3_republisher
launch parameters. For more information see the Create® 3 Republisher sectionActions
- AudioNoteSequence: Play a given set of notes from the speaker for a given number of iterations.
- Dock: Command the robot to dock into its charging station.
- DriveArc: Command the robot to drive along an arc defined by radius.
- DriveDistance: Command the robot to drive a defined distance in a straight line.
- LedAnimation: Command the lights to perform specified animation.
- NavigateToPosition: Command the robot to drive to a goal odometry position using simple approach that rotates to face goal position then translates to goal position then optionally rotates to goal heading.
- RotateAngle: Command the robot to rotate in place a specified amount.
- Undock: Command the robot to undock from its charging station.
- WallFollow: Command the robot to wall follow on left or right side using bump and IR sensors.
Messages
- AudioNote: Command the robot to play a note.
- AudioNoteVector: Command the robot to play a sequence of notes.
- Button: Status for a button.
- DockStatus: Information about the robot sensing the its dock charging station.
- HazardDetection: An hazard or obstacle detected by the robot.
- HazardDetectionVector: All the hazards and obstacles detected by the robot.
- InterfaceButtons: Status of the 3 interface buttons on the Create® robot faceplate.
- IrIntensity: Reading from an IR intensity sensor.
- IrIntensityVector: Vector of current IR intensity readings from all sensors.
- IrOpcode: Opcode detected by the robot IR receivers. Used to detect the dock and virtual walls.
- KidnapStatus: Whether the robot has been picked up off the ground.
- LedColor: RGB values for an LED.
- LightringLeds: Command RGB values of 6 lightring lights.
- Mouse: Reading from a mouse sensor.
- SlipStatus: Whether the robot is currently slipping or not.
- StopStatus: Whether the robot is currently stopped or not.
- WheelStatus: Current/PWM readings from the robot's two wheels in addition to whether wheels are enabled.
- WheelTicks: Reading from the robot two wheels encoders.
- WheelVels: Indication about the robot two wheels current speed.
Services
- EStop: Set system EStop on or off, cutting motor power when on and enabling motor power when off.
- RobotPower: Power off robot.
See irobot_create_msgs for more details.
NoteWhen publishing or subscribing to topics, make sure that the QoS that you use matches that of the topic.
Create® 3 Republisher
By default, the Turtlebot 4 uses the
create3_republisher
node to isolate the Create® 3 from the remainder of the ROS 2 network traffic. This helps limit the network traffic that reaches the Create® 3 when it is connected to the wireless network, especially when multiple robots are connected. All ROS 2 traffic is routed via the Turtlebot 4's Raspberry Pi computer, and thecreate3_republisher
node exposes the Create® 3's topics, services, and actions the robot's main namespace. This allows external workstations and other robots to interact with the robot via the Raspberry Pi's wireless connection.The Create® 3's topics, services, and actions are all available inside a namespace called
_do_not_use
. This results in the topics being hidden, and clearly indicates that they should not be used directly by the user. The Create® 3 only communicates with the single Raspberry Pi that is present on the same robot. All of the Create® 3 topics, actions and services are then republished and relayed by the Raspberry Picreate3_republisher
node with just the robot namespace so they are fully visible and available to the rest of the ROS 2 network. In order to interact with the Create® 3, any given node will interact with the topics, actions, and servers generated by the Raspberry Pi, and the republisher node on the Raspberry Pi will relay that information back to the Create® 3.NoteThe
_do_not_use
namespace, as the name suggests, should not be used by any other nodes. The only place this namespace should ever be referenced is inside the configuration file for thecreate3_republisher
node and within the Create® 3’s application configuration.All other ROS nodes, shell commands (e.g.
ros2 topic echo ...
) should use the republished topics, actions, and services.In order to prevent overloading the system with too many topics, the number of topics, actions and services that are relayed through the republisher node are limited. The default list of topics, actions and services that are being relayed can be found in the
create3_republisher
launch parameters. To optimize the system, update this list to only include the necessary topics, actions and services that are needed.