Skip to content

parth-20-07/Trajectory-Tracking-using-State-Feedback-Linearization-Control-for-a-2-DoF-RRBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trajectory Tracking using State Feedback Linearization Control for a 2 DoF RRBot

The assignment aims to design State Feedback Linearization Controller for a 2-DoF Revolute Revolute Arm for Trajectory Tracking.

RRBot

The project uses the Equation of Motion derived in this project for the identical RRBot.

The assignment aims to design a polynomial trajectory of 3rd order and design a controller based on state feedback Linearization control for the RRBot using Virtual Control. The controller is of the form:

$$ v_{i} = - K(x - x_{d}) + v_{d} $$

where;

  • $v_{i}$ is the virtual input for the joint
  • $x_{d}$ is the desired position at any instance of time
  • $v_{d}$ is the desired acceleration at any instance of time which is calculated by taking the double derivative of the position equation

How to Design State Feedback Linearization Controller

Calculate the Equation of Motion

Calculate the equation of motion for the system using the guide here.

Design State Feedback Linearization Controller

  • Design the controller of the form:

$$ \begin{equation}\notag \begin{bmatrix} u_{1}\\ u_{2} \end{bmatrix}= \begin{bmatrix} \ddot{\theta_{1}}\\ \ddot{\theta_{2}} \end{bmatrix} \end{equation} $$

  • Replace $\ddot{\theta_{i}}$ with virtual input $v_{i}$ for trajectory tracking controller design.

Code

MATLAB

The complete calculation has been done here (webpage form) in MATLAB. The systems with the equation of motion are simulated as follows

MATLAB Simulation

Gazebo and ROS

The same system is simulated with the equations of motion present in Gazebo with real-world physics replication as shown here (webpage form).

Performance Comparison

  • $\theta_{1}$ vs $t$

performance theta1vt

  • $\dot{\theta_{1}}$ vs $t$

performance dtheta1vt

  • $\tau_{1}$ vs $t$

performance tau1vt

  • $\theta_{2}$ vs $t$

performance theta2vt

  • $\dot{\theta_{2}}$ vs $t$

performance dtheta2vt

Possible Reasons for difference:

  • The lack of friction in the MATLAB System.
  • The estimated value of gravitational acceleration in MATLAB.

Designer Details

  • Designed for:
    • Worcester Polytechnic Institute
    • RBE502 - Robot Control
  • Designed by:

License

This project is licensed under GNU General Public License v3.0 (see LICENSE.md).

Copyright 2023 Parth Patel

Licensed under the GNU General Public License, Version 3.0 (the "License"); you may not use this file except in compliance with the License.

You may obtain a copy of the License at

https://www.gnu.org/licenses/gpl-3.0.en.html

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published