turtlebot3_interactive_marker
This file is ai generated. Do not edit this file directly. Instead, edit the node source code and run the generate-node-docs command to update this file.
Description
An interactive visualization node that allows users to control the TurtleBot3 using RViz interactive markers. Users can click and drag red arrows to move the robot to specific positions, or rotate circular handles to change the robot’s orientation. This provides an intuitive graphical interface for robot control.
Publishers
cmd_vel(geometry_msgs/Twist)Velocity commands based on interactive marker feedback
Subscribers
odom(nav_msgs/Odometry)Current robot pose for marker position updates
Parameters
The node uses hardcoded control parameters:
Maximum linear velocity: 0.1 m/s (in X and Y directions)
Maximum angular velocity: 0.5 rad/s
Position threshold: 0.01 meters
Orientation threshold: 0.01 radians (~0.57 degrees)
Update rate: 10 Hz (0.1 second timer)
Interactive Markers
The node creates two interactive markers in RViz:
Movement Marker (in “odom” frame):
Name:
turtlebot3_move_markerAllows translation in the XY plane
Drag to set goal position
Rotation Marker (in “base_link” frame):
Name:
turtlebot3_rotate_markerAllows rotation around Z-axis
Drag circular handle to set goal orientation
Example Usage
Launch the interactive marker node:
ros2 run turtlebot3_example turtlebot3_interactive_marker
Setup RViz visualization:
# In a separate terminal
rviz2
In RViz:
Add “InteractiveMarkers” display
Set the topic to
/turtlebot3_interactive_marker/updateYou should see red arrows for position control and a rotation handle
Behavior
Position Control
When the movement marker is dragged:
Node calculates the difference between current and goal position
Computes forward and lateral speeds in the robot’s frame
Linear velocities are clamped to ±0.1 m/s
Robot moves until within 0.01 m of target
Movement marker updates to track current position
Orientation Control
When the rotation marker is dragged:
Node calculates the angular difference between current and goal orientation
Angular velocity is clamped to ±0.5 rad/s
Robot rotates until within 0.01 rad (~0.57°) of target
Only angular velocity is commanded (no translation)
Marker Updates
Movement marker automatically updates its position and orientation to match the robot
This provides visual feedback of the robot’s current pose
Markers are updated at 10 Hz
Control Logic
If position goal is active:
- Calculate position error in global frame
- Transform to robot frame (forward/lateral)
- Apply velocity limits
- Publish Twist command
Else if orientation goal is active:
- Calculate angular error
- Apply velocity limits
- Publish Twist command with rotation only
Else:
- Publish zero velocity
Notes
Requires RViz2 with interactive markers plugin
Both position and orientation goals cannot be active simultaneously
Position goals take priority over orientation goals
The node provides smooth motion by continuously updating velocities
Interactive markers provide real-time visual feedback
Compatible with standard TurtleBot3 setup (requires odometry)