This ROS2 node implements the dynamic feedback linearization controller described in the paper:
"Stabilization of the Unicycle via Dynamic Feedback Linearization"
De Luca, Oriolo, Vendittelli, IFAC 2000
The node is designed for use with turtlesim, but can be easily adapted to any robot that publishes odometry and accepts velocity commands. To adapt, simply change the subscribed and published topics to match your robot's interface.
- Input: Robot pose (odometry)
- Output: Velocity commands (Twist)
Clone this package into the src/ directory of your ROS2 workspace (e.g., /<ros2_ws>/src):
cd <ros2_ws>/src
# Clone the repository (replace <repo-url> with the actual URL)
git clone https://github.com/SamS709/dynamic_feedback_linearisation_ros.gitInstall dependencies (if needed):
cd ..
rosdep install --from-paths src --ignore-src -r -yBuild the workspace:
colcon build --packages-select turtle_nodeSource the workspace before running the node:
source install/setup.bashReplace <ros2_ws> with your actual workspace path if different.
First terminal:
ros2 run turtlesim turtlesim_node Second terminal:
ros2 run turtle_node unicycle_controller_node --ros-args -p goal_x:=3.0 -p goal_y:=3.0 -p kp1:=1.0 -p kd1:=3.0See the documentation for the implementation in the unicycle_controller_explenation.pdf file.
The Powerpoint presentation is the presentation.pdf file.
