Skip to content

SamS709/dynamic_feedback_linearisation_ros

Repository files navigation

Unicycle Dynamic Feedback Linearization Node

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)

Turtlesim Example

Installation

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.git

Install dependencies (if needed):

cd ..
rosdep install --from-paths src --ignore-src -r -y

Build the workspace:

colcon build --packages-select turtle_node

Source the workspace before running the node:

source install/setup.bash

Replace <ros2_ws> with your actual workspace path if different.

Run

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.0

Documentation

See the documentation for the implementation in the unicycle_controller_explenation.pdf file.

The Powerpoint presentation is the presentation.pdf file.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors