This package implements a shared-control navigation system for a TurtleBot3 using ROS 2 Jazzy. The robot can be driven manually, assisted by safety filtering, or automatically recovered when it reaches the edge of its operating area.
- ROS 2 Jazzy
- TurtleBot3
twist_mux
To install twist_mux:
sudo apt install ros-jazzy-twist-muxFrom the ROS 2 workspace root:
cd ~/ros2_ws
colcon build --packages-select shared_control_nav
source install/setup.bash-
Launch the shared-control system:
ros2 launch shared_control_nav shared_control.launch.py
-
In a second terminal, run the custom teleop node:
source ~/ros2_ws/install/setup.bash ros2 run shared_control_nav shared_teleop
-
Optional: in a third terminal, run the status monitor:
source ~/ros2_ws/install/setup.bash ros2 run shared_control_nav status_monitor
w/x : increase/decrease linear speed
a/d : increase/decrease angular speed
s or space : stop
1 : manual mode
2 : assisted mode
3 : recovery mode
CTRL-C : quit
- Manual: passes teleop commands through normally.
- Assisted: filters teleop commands using LiDAR and odometry.
- Recovery: drives toward the nearest recovery point, then returns to assisted mode.