Robot Model
Turtlebot4 Standard
ROS distro
Jazzy
Networking Configuration
Discovery Server
OS
Ubuntu 24.04
Built from source or installed?
Built from Source
Package version
ubuntu@turtlebot4:~$ dpkg -s ros-jazzy-turtlebot4-navigation
Package: ros-jazzy-turtlebot4-navigation
Status: install ok installed
Priority: optional
Section: misc
Installed-Size: 2472
Maintainer: rkreinin rkreinin@clearpathrobotics.com
Architecture: arm64
Version: 2.0.1-1noble.20241028.132320
Depends: ros-jazzy-nav2-bringup, ros-jazzy-nav2-simple-commander, ros-jazzy-slam-toolbox, ros-jazzy-ros-workspace
Description: Turtlebot4 Navigation
Type of issue
Other
Expected behaviour
The ros2 action send_goal command below should work
ros2 action send_goal /drive_distance irobot_create_msgs/action/DriveDistance "{distance: -0.8}
Summary
Create3 base consistently latches BACKUP_LIMIT (hazard type 0) when commanding reverse. Robot moves back a little, then stalls with PWM inhibited. Forward can work, but reverse often re-latches. This blocks /drive_distance reverse commands and leaves wheels inhibited.
Environment
- OS: Ubuntu 24.04.4 LTS
- ROS 2: Jazzy
- Platform: TurtleBot4 / Create3 base
- RMW: FastDDS
- Safety override: set to FULL in Create3 web UI
Steps to Reproduce
- Run reverse using action:
ros2 action send_goal /drive_distance irobot_create_msgs/action/DriveDistance "{distance: -0.8}"
- Robot moves back briefly, then stalls.
Expected
Robot completes reverse distance.
Observed
Robot stalls; hazard_detection shows BACKUP_LIMIT (type: 0) and wheels are inhibited (pwm: -32767)
Evidence / Logs
$ ros2 action send_goal /drive_distance irobot_create_msgs/action/DriveDistance "{distance: -0.8}"
Waiting for an action server to become available...
Sending goal:
distance: -0.8
max_translation_speed: 0.3
Goal accepted with ID: cab390187ce243a99b11561f3986d36e
<The robot moves back a little, then stalls...>
$ ros2 topic echo /hazard_detection --once
header:
stamp:
sec: 1779595667
nanosec: 69189120
frame_id: base_link
detections:
- header:
stamp:
sec: 1779596186
nanosec: 964498194
frame_id: base_link
type: 0
---
# to decode what type: 0 means, run ' ros2 interface show ' command
$ ros2 interface show irobot_create_msgs/msg/HazardDetection
# This message describes a detected hazard.
# The frame ID allows to retrieve the location of the sensor that made the detection.
# The robot has reached its backup limit. It will not drive further backward for safety reasons.
# You can disable this limit through the Create3 "safety_override" parameter by setting it
# to "backup_only" or "full".
# The Create3 webserver can be used to set a default value for the parameter.
uint8 BACKUP_LIMIT=0
# The robot has bumped against an obstacle
uint8 BUMP=1
# The robot detected a cliff
uint8 CLIFF=2
# The wheels of the robot are stalled against an obstacle
uint8 STALL=3
# The wheels of the robot are fully dropped
uint8 WHEEL_DROP=4
# The robot detects an obstacle in close proximity
uint8 OBJECT_PROXIMITY=5
std_msgs/Header header
builtin_interfaces/Time stamp
int32 sec
uint32 nanosec
string frame_id
uint8 type
$ ros2 topic echo /wheel_status --once
header:
stamp:
sec: 1779596232
nanosec: 711027775
frame_id: base_link
current_ma_left: 0
current_ma_right: 0
pwm_left: -32767
pwm_right: -32767
wheels_enabled: true
---
Actual behaviour
Robot stalls; hazard_detection shows BACKUP_LIMIT and wheels are inhibited.
Error messages
$ ros2 action send_goal /drive_distance irobot_create_msgs/action/DriveDistance "{distance: -0.8}"
Waiting for an action server to become available...
Sending goal:
distance: -0.8
max_translation_speed: 0.3
Goal accepted with ID: cab390187ce243a99b11561f3986d36e
Result:
pose:
header:
stamp:
sec: 0
nanosec: 0
frame_id: ''
pose:
position:
x: 0.0
y: 0.0
z: 0.0
orientation:
x: 0.0
y: 0.0
z: 0.0
w: 1.0
Goal finished with status: ABORTED
To Reproduce
- undock the turtlebot 4
ros2 action send_goal /undock irobot_create_msgs/action/Undock
- move the turtlebot 4 forward
ros2 action send_goal /drive_distance irobot_create_msgs/action/DriveDistance "{distance: 1.0}"
- move the bot backward
ros2 action send_goal /drive_distance irobot_create_msgs/action/DriveDistance "{distance: -0.8}"
<The robot moves back a little, then stalls...>
- While reverse motion is being stuck: ssh into turtlebot 4 and print out messages from
/hazard_detection and /wheel_status topics
$ ros2 topic echo /hazard_detection --once
header:
stamp:
sec: 1779595667
nanosec: 69189120
frame_id: base_link
detections:
- header:
stamp:
sec: 1779596186
nanosec: 964498194
frame_id: base_link
type: 0
<To decode what type: 0 means, run 'ros2 interface show irobot_create_msgs/msg/HazardDetection'>
$ ros2 interface show irobot_create_msgs/msg/HazardDetection
# This message describes a detected hazard.
# The frame ID allows to retrieve the location of the sensor that made the detection.
# The robot has reached its backup limit. It will not drive further backward for safety reasons.
# You can disable this limit through the Create3 "safety_override" parameter by setting it
# to "backup_only" or "full".
# The Create3 webserver can be used to set a default value for the parameter.
uint8 BACKUP_LIMIT=0
# The robot has bumped against an obstacle
uint8 BUMP=1
# The robot detected a cliff
uint8 CLIFF=2
# The wheels of the robot are stalled against an obstacle
uint8 STALL=3
# The wheels of the robot are fully dropped
uint8 WHEEL_DROP=4
# The robot detects an obstacle in close proximity
uint8 OBJECT_PROXIMITY=5
std_msgs/Header header
builtin_interfaces/Time stamp
int32 sec
uint32 nanosec
string frame_id
uint8 type
$ ros2 topic echo /wheel_status --once
header:
stamp:
sec: 1779596232
nanosec: 711027775
frame_id: base_link
current_ma_left: 0
current_ma_right: 0
pwm_left: -32767
pwm_right: -32767
wheels_enabled: true
---
Robot Model
Turtlebot4 Standard
ROS distro
Jazzy
Networking Configuration
Discovery Server
OS
Ubuntu 24.04
Built from source or installed?
Built from Source
Package version
ubuntu@turtlebot4:~$ dpkg -s ros-jazzy-turtlebot4-navigation
Package: ros-jazzy-turtlebot4-navigation
Status: install ok installed
Priority: optional
Section: misc
Installed-Size: 2472
Maintainer: rkreinin rkreinin@clearpathrobotics.com
Architecture: arm64
Version: 2.0.1-1noble.20241028.132320
Depends: ros-jazzy-nav2-bringup, ros-jazzy-nav2-simple-commander, ros-jazzy-slam-toolbox, ros-jazzy-ros-workspace
Description: Turtlebot4 Navigation
Type of issue
Other
Expected behaviour
The
ros2 action send_goalcommand below should workSummary
Create3 base consistently latches BACKUP_LIMIT (hazard type 0) when commanding reverse. Robot moves back a little, then stalls with PWM inhibited. Forward can work, but reverse often re-latches. This blocks
/drive_distancereverse commands and leaves wheels inhibited.Environment
Steps to Reproduce
ros2 action send_goal /drive_distance irobot_create_msgs/action/DriveDistance "{distance: -0.8}"Expected
Robot completes reverse distance.
Observed
Robot stalls; hazard_detection shows BACKUP_LIMIT (type: 0) and wheels are inhibited (pwm: -32767)
Evidence / Logs
Actual behaviour
Robot stalls; hazard_detection shows BACKUP_LIMIT and wheels are inhibited.
Error messages
To Reproduce
/hazard_detectionand/wheel_statustopics