GithubHelp home page GithubHelp logo

medical_robotics_3d's Introduction

Medical Robotics post-graduate assignment

Implementation is in pure Matlab. You can reproduce the reported results running the corresponing scripts.

T1) Compute in symbolic form the matrix A_8^12

The kinematic diagram in the inertial coordinate system of the base and the arm are illustrated below: Alt text As we can see in the kinematic diagram, there are a 5-DOF manipulator. Using the kinematic configuration for each joint, we compute the Denavit โ€“ Hartenberg parameters.

T2) Given the bounds of q(described in the report), compute all the points of the 3D-working space.

The 3-D working space of the robot (sparse view - large step size) based on the initial conditions and the constraints. Alt text

T3) Solve the inverse kinematics problem, or given compatible values with the kinematic configuration of matrix T

In order to implement the IK problem we used:

  1. An analytical distance function that we try to minimize between the desired and current position. We used the sum of the absolute differences between coordinates with threshold 5(mm).
  2. A forward function that returns the position of the robot for the current parameters. (Forward.m file)
  3. A function that calculates the Jacobian matrix for the current parameters.(MyJacobian.m file) It is significant to mention that in order to compute the inverse of the Jacobian matrix, we calculated the pseudo-inverse so as the J is an orthonormal matrix. The result of the InverseKin.m function that we have made gives the following results as depicted.

Alt text

T4) Select any spiral trajectory within your working space where the coordinates x y z are not expressed necessarily with respect to the coordinate system. Approximate two circular motions of this spiral with at least 36 2 ? points under the assumption that T =1. Solve for these 72 points the inverse kinematics problem by computing q.

The purpose of this question is to create a spiral trajectory that corresponds, with the best feasible way, to the already computed 3D working space of the robot, so we can solve the inverse kinematic problem.

The solution can be divided into three smaller steps that are summarized below:

  1. Determine the parameters of the spiral trajectory so as to be in the range of 3D working space.
  2. Prune the total 3D working space, in order to pick the best possible matching points of the spiral trajectory, based on the geometry of the spiral.
  3. Solve the inverse kinematic problem combining the inverse Jacobian approximation with the pruned search method.

The results are presented below in different 2D planes:

Alt text Alt text Alt text Alt text

T5) Under the assumption that two successive points are connected by a third order polynomial with a stop-and-go trajectory plot the joint trajectories and the resulting end-effector trajectory

We created a Matlab function (Third_order_solver.m) that calculated the values of the polynomial with velocities both at start and end point equal to zero. Change of th8 angle is depicted below:
Alt text

Support

If you like this repo and find it useful, please consider (โ˜…) starring it, so that it can reach a broader audience.

medical_robotics_3d's People

Contributors

black0017 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.