Skip to content

Commit

Permalink
Manipulator Kinematics
Browse files Browse the repository at this point in the history
  • Loading branch information
surajkiron committed Jun 25, 2024
1 parent b2159ce commit 65cf4b1
Show file tree
Hide file tree
Showing 53 changed files with 949 additions and 151 deletions.
2 changes: 1 addition & 1 deletion .quarto/xref/050afce2
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"entries":[],"headings":["suraj-kiron-nair","education","experience"]}
{"headings":["suraj-kiron-nair","education","experience"],"entries":[]}
3 changes: 3 additions & 0 deletions .quarto/xref/INDEX
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,8 @@
},
"posts/6_RLAN_3_UKF/index.qmd": {
"index.html": "76334727"
},
"posts/7_Manipulator_Kinematics/index.qmd": {
"index.html": "e3a88966"
}
}
124 changes: 11 additions & 113 deletions docs/about.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>

<meta charset="utf-8">
<meta name="generator" content="quarto-1.3.353">
<meta name="generator" content="quarto-1.2.335">

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">

Expand All @@ -17,7 +17,7 @@
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
</style>
Expand Down Expand Up @@ -73,33 +73,31 @@
<span class="navbar-title">Portfolio</span>
</a>
</div>
<div id="quarto-search" class="" title="Search"></div>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav navbar-nav-scroll ms-auto">
<li class="nav-item">
<a class="nav-link active" href="./about.html" rel="" target="" aria-current="page">
<a class="nav-link active" href="./about.html" aria-current="page">
<span class="menu-text">About</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="./resume.pdf" rel="" target="">
<a class="nav-link" href="./resume.pdf">
<span class="menu-text">Resume</span></a>
</li>
<li class="nav-item compact">
<a class="nav-link" href="https://github.com/surajkiron" rel="" target=""><i class="bi bi-github" role="img">
<a class="nav-link" href="https://github.com/surajkiron"><i class="bi bi-github" role="img">
</i>
<span class="menu-text"></span></a>
</li>
<li class="nav-item compact">
<a class="nav-link" href="https://www.linkedin.com/in/suraj-kiron/" rel="" target=""><i class="bi bi-linkedin" role="img">
<a class="nav-link" href="https://www.linkedin.com/in/suraj-kiron/"><i class="bi bi-linkedin" role="img">
</i>
<span class="menu-text"></span></a>
</li>
</ul>
<div class="quarto-navbar-tools">
</div>
<div id="quarto-search" class="" title="Search"></div>
</div> <!-- /navcollapse -->
</div> <!-- /container-fluid -->
</nav>
Expand All @@ -122,11 +120,11 @@ <h1 class="title">About</h1>
</div>
</header>
<div class="about-links">
<a href="https://www.linkedin.com/in/suraj-kiron/" class="about-link" rel="" target="">
<a href="https://www.linkedin.com/in/suraj-kiron/" class="about-link">
<i class="bi bi-linkedin"></i>
<span class="about-link-text">LinkedIn</span>
</a>
<a href="https://github.com/surajkiron" class="about-link" rel="" target="">
<a href="https://github.com/surajkiron" class="about-link">
<i class="bi bi-github"></i>
<span class="about-link-text">Github</span>
</a>
Expand Down Expand Up @@ -174,23 +172,9 @@ <h2 data-anchor-id="experience">Experience</h2>
}
}
toggleBodyColorPrimary();
const isCodeAnnotation = (el) => {
for (const clz of el.classList) {
if (clz.startsWith('code-annotation-')) {
return true;
}
}
return false;
}
const clipboard = new window.ClipboardJS('.code-copy-button', {
text: function(trigger) {
const codeEl = trigger.previousElementSibling.cloneNode(true);
for (const childEl of codeEl.children) {
if (isCodeAnnotation(childEl)) {
childEl.remove();
}
}
return codeEl.innerText;
target: function(trigger) {
return trigger.previousElementSibling;
}
});
clipboard.on('success', function(e) {
Expand Down Expand Up @@ -255,92 +239,6 @@ <h2 data-anchor-id="experience">Experience</h2>
return note.innerHTML;
});
}
let selectedAnnoteEl;
const selectorForAnnotation = ( cell, annotation) => {
let cellAttr = 'data-code-cell="' + cell + '"';
let lineAttr = 'data-code-annotation="' + annotation + '"';
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
return selector;
}
const selectCodeLines = (annoteEl) => {
const doc = window.document;
const targetCell = annoteEl.getAttribute("data-target-cell");
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
const lineIds = lines.map((line) => {
return targetCell + "-" + line;
})
let top = null;
let height = null;
let parent = null;
if (lineIds.length > 0) {
//compute the position of the single el (top and bottom and make a div)
const el = window.document.getElementById(lineIds[0]);
top = el.offsetTop;
height = el.offsetHeight;
parent = el.parentElement.parentElement;
if (lineIds.length > 1) {
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
height = bottom - top;
}
if (top !== null && height !== null && parent !== null) {
// cook up a div (if necessary) and position it
let div = window.document.getElementById("code-annotation-line-highlight");
if (div === null) {
div = window.document.createElement("div");
div.setAttribute("id", "code-annotation-line-highlight");
div.style.position = 'absolute';
parent.appendChild(div);
}
div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px";
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) {
gutterDiv = window.document.createElement("div");
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
gutterDiv.style.position = 'absolute';
const codeCell = window.document.getElementById(targetCell);
const gutter = codeCell.querySelector('.code-annotation-gutter');
gutter.appendChild(gutterDiv);
}
gutterDiv.style.top = top - 2 + "px";
gutterDiv.style.height = height + 4 + "px";
}
selectedAnnoteEl = annoteEl;
}
};
const unselectCodeLines = () => {
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
elementsIds.forEach((elId) => {
const div = window.document.getElementById(elId);
if (div) {
div.remove();
}
});
selectedAnnoteEl = undefined;
};
// Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) {
annoteDlNode.addEventListener('click', (event) => {
const clickedEl = event.target;
if (clickedEl !== selectedAnnoteEl) {
unselectCodeLines();
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
if (activeEl) {
activeEl.classList.remove('code-annotation-active');
}
selectCodeLines(clickedEl);
clickedEl.classList.add('code-annotation-active');
} else {
// Unselect the line
unselectCodeLines();
clickedEl.classList.remove('code-annotation-active');
}
});
}
const findCites = (el) => {
const parentEl = el.parentElement;
if (parentEl) {
Expand Down
55 changes: 48 additions & 7 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ <h1 class="title">Projects</h1>
<!-- margin-sidebar -->
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">

<h5 class="quarto-listing-category-title">Categories</h5><div class="quarto-listing-category category-default"><div class="category" data-category="">All <span class="quarto-category-count">(4)</span></div><div class="category" data-category="Computer Vision">Computer Vision <span class="quarto-category-count">(1)</span></div><div class="category" data-category="Control Systems">Control Systems <span class="quarto-category-count">(1)</span></div><div class="category" data-category="Filters">Filters <span class="quarto-category-count">(1)</span></div><div class="category" data-category="MATLAB">MATLAB <span class="quarto-category-count">(2)</span></div><div class="category" data-category="Quadrotors">Quadrotors <span class="quarto-category-count">(2)</span></div><div class="category" data-category="State Estimation">State Estimation <span class="quarto-category-count">(1)</span></div><div class="category" data-category="Visual Odometry">Visual Odometry <span class="quarto-category-count">(1)</span></div><div class="category" data-category="opencv">opencv <span class="quarto-category-count">(1)</span></div><div class="category" data-category="python">python <span class="quarto-category-count">(1)</span></div></div></div>
<h5 class="quarto-listing-category-title">Categories</h5><div class="quarto-listing-category category-default"><div class="category" data-category="">All <span class="quarto-category-count">(5)</span></div><div class="category" data-category="Computer Vision">Computer Vision <span class="quarto-category-count">(2)</span></div><div class="category" data-category="Control Systems">Control Systems <span class="quarto-category-count">(2)</span></div><div class="category" data-category="Filters">Filters <span class="quarto-category-count">(1)</span></div><div class="category" data-category="MATLAB">MATLAB <span class="quarto-category-count">(3)</span></div><div class="category" data-category="Quadrotors">Quadrotors <span class="quarto-category-count">(2)</span></div><div class="category" data-category="State Estimation">State Estimation <span class="quarto-category-count">(1)</span></div><div class="category" data-category="Visual Odometry">Visual Odometry <span class="quarto-category-count">(1)</span></div><div class="category" data-category="manipulators">manipulators <span class="quarto-category-count">(1)</span></div><div class="category" data-category="python">python <span class="quarto-category-count">(1)</span></div></div></div>
<!-- main -->
<main class="content quarto-banner-title-block column-page-left" id="quarto-document-content">

Expand All @@ -170,7 +170,48 @@ <h5 class="quarto-listing-category-title">Categories</h5><div class="quarto-list

<div class="quarto-listing quarto-listing-container-default" id="listing-listing">
<div class="list quarto-listing-default">
<div class="quarto-post image-right" data-index="0" data-categories="Computer Vision,Visual Odometry,MATLAB,Quadrotors" data-listing-date-sort="1677992400000" data-listing-file-modified-sort="1707707642648" data-listing-reading-time-sort="5.045">
<div class="quarto-post image-right" data-index="0" data-categories="manipulators,Control Systems,MATLAB" data-listing-date-sort="1719288000000" data-listing-file-modified-sort="1719349803809" data-listing-reading-time-sort="8.72">
<div class="thumbnail">
<p><a href="./posts/7_Manipulator_Kinematics/index.html"> <img src="./posts/7_Manipulator_Kinematics/images/scara.png" class="thumnail-image"> </a></p>
</div>
<div class="body">
<a href="./posts/7_Manipulator_Kinematics/index.html">
<h3 class="no-anchor listing-title">
Robotic Manipulators: Kinematic Control
</h3>
<div class="listing-subtitle">

</div>
</a>
<div class="listing-categories">
<div class="listing-category" onclick="window.quartoListingCategory('manipulators'); return false;">
manipulators
</div>
<div class="listing-category" onclick="window.quartoListingCategory('Control Systems'); return false;">
Control Systems
</div>
<div class="listing-category" onclick="window.quartoListingCategory('MATLAB'); return false;">
MATLAB
</div>
</div>
<a href="./posts/7_Manipulator_Kinematics/index.html">
<div class="listing-description">
This project will cover the following topics: <br> 1. Deriving Forward kinematics using DH Parmamertization of a robotic Arm <br> 2. Forward Differential Kinematics <br> 3. Inverse Differential Kinematics (using Jacobian Inverse and…<br><br>
</div>
</a>
</div>
<div class="metadata">
<a href="./posts/7_Manipulator_Kinematics/index.html">
<div class="listing-date">
Jun 25, 2024
</div>
<div class="listing-author">
Suraj Kiron Nair
</div>
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="1" data-categories="Computer Vision,Visual Odometry,MATLAB,Quadrotors" data-listing-date-sort="1677992400000" data-listing-file-modified-sort="1707707642648" data-listing-reading-time-sort="5.045">
<div class="thumbnail">
<p><a href="./posts/5_RLAN_2_VO/index.html"> <img src="./posts/5_RLAN_2_VO/image.jpeg" class="thumnail-image"> </a></p>
</div>
Expand Down Expand Up @@ -214,7 +255,7 @@ <h3 class="no-anchor listing-title">
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="1" data-categories="State Estimation,Filters,MATLAB,Quadrotors" data-listing-date-sort="1677387600000" data-listing-file-modified-sort="1707707475830" data-listing-reading-time-sort="3.375">
<div class="quarto-post image-right" data-index="2" data-categories="State Estimation,Filters,MATLAB,Quadrotors" data-listing-date-sort="1677387600000" data-listing-file-modified-sort="1719331681802" data-listing-reading-time-sort="4.35">
<div class="thumbnail">
<p><a href="./posts/4_RLAN_1_EKF/index.html"> <img src="./posts/4_RLAN_1_EKF/image.jpg" class="thumnail-image"> </a></p>
</div>
Expand Down Expand Up @@ -258,7 +299,7 @@ <h3 class="no-anchor listing-title">
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="2" data-categories="Control Systems,opencv,python" data-listing-date-sort="1669784400000" data-listing-file-modified-sort="1707707630334" data-listing-reading-time-sort="1.965">
<div class="quarto-post image-right" data-index="3" data-categories="Control Systems,Computer Vision,python" data-listing-date-sort="1669784400000" data-listing-file-modified-sort="1719349779937" data-listing-reading-time-sort="1.965">
<div class="thumbnail">
<p><a href="./posts/1_Line_ Follower/index.html"> <img src="./posts/1_Line_ Follower/thumb1.png" class="thumnail-image"> </a></p>
</div>
Expand All @@ -275,8 +316,8 @@ <h3 class="no-anchor listing-title">
<div class="listing-category" onclick="window.quartoListingCategory('Control Systems'); return false;">
Control Systems
</div>
<div class="listing-category" onclick="window.quartoListingCategory('opencv'); return false;">
opencv
<div class="listing-category" onclick="window.quartoListingCategory('Computer Vision'); return false;">
Computer Vision
</div>
<div class="listing-category" onclick="window.quartoListingCategory('python'); return false;">
python
Expand All @@ -299,7 +340,7 @@ <h3 class="no-anchor listing-title">
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="3" data-categories="" data-listing-date-sort="1660708800000" data-listing-file-modified-sort="1707707558318" data-listing-reading-time-sort="0.915">
<div class="quarto-post image-right" data-index="4" data-categories="" data-listing-date-sort="1660708800000" data-listing-file-modified-sort="1707707558318" data-listing-reading-time-sort="0.915">
<div class="thumbnail">
<p><a href="./posts/welcome/index.html"> <img src="./posts/welcome/thumbnail.jpg" class="thumnail-image"> </a></p>
</div>
Expand Down
1 change: 1 addition & 0 deletions docs/listings.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
{
"listing": "/index.html",
"items": [
"/posts/7_Manipulator_Kinematics/index.html",
"/posts/5_RLAN_2_VO/index.html",
"/posts/4_RLAN_1_EKF/index.html",
"/posts/1_Line_ Follower/index.html",
Expand Down
3 changes: 1 addition & 2 deletions docs/posts/1_Line_ Follower/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,8 @@
<div class="quarto-title column-body">
<h1 class="title">Race Circuit Line Follower</h1>
<div class="quarto-categories">
<div class="quarto-category">PID</div>
<div class="quarto-category">Control Systems</div>
<div class="quarto-category">opencv</div>
<div class="quarto-category">Computer Vision</div>
<div class="quarto-category">python</div>
</div>
</div>
Expand Down
Loading

0 comments on commit 65cf4b1

Please sign in to comment.