-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrcl.html
185 lines (173 loc) · 12.9 KB
/
rcl.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
<!DOCTYPE html>
<html>
<head>
<title>David Black Portfolio</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="w3.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<style>
body,h1,h2,h3,h4,h5,h6 {font-family: "Lato", sans-serif;}
body, html {
height: 100%;
color: #777;
line-height: 1.8;
}
/* Create a Parallax Effect */
.bgimg-1 {
background-attachment: fixed;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
/* First image (Logo. Full height) */
.bgimg-1 {
background-image: url('images/blackcomb.jpg');
min-height: 100%;
}
.w3-wide {letter-spacing: 10px;}
.w3-hover-opacity {cursor: pointer;}
/* Turn off parallax scrolling for tablets and phones */
@media only screen and (max-device-width: 1600px) {
.bgimg-1 {
background-attachment: scroll;
min-height: 400px;
}
}
</style>
</head>
<body>
<!-- Navbar (sit on top) -->
<div class="w3-top">
<div class="w3-bar" id="myNavbar">
<a class="w3-bar-item w3-button w3-hover-black w3-hide-medium w3-hide-large w3-right" href="javascript:void(0);" onclick="toggleFunction()" title="Toggle Navigation Menu">
<i class="fa fa-bars"></i>
</a>
<a href="index.html" class="w3-bar-item w3-button">HOME</a>
<a href="index.html#about" class="w3-bar-item w3-button w3-hide-small"><i class="fa fa-user"></i> ABOUT</a>
<a href="index.html#cv" class="w3-bar-item w3-button w3-hide-small"><i class="fa fa-th"></i> CV</a>
<a href="adventure.html" class="w3-bar-item w3-button w3-hide-small"><i class="fa fa-map-o"></i> ADVENTURE</a>
<a href="index.html#contact" class="w3-bar-item w3-button w3-hide-small"><i class="fa fa-envelope"></i> CONTACT</a>
<a href="#" class="w3-bar-item w3-button w3-hide-small w3-right w3-hover-red">
<i class="fa fa-search"></i>
</a>
</div>
<!-- Navbar on small screens -->
<div id="navDemo" class="w3-bar-block w3-white w3-hide w3-hide-large w3-hide-medium">
<a href="index.html#about" class="w3-bar-item w3-button" onclick="toggleFunction()">ABOUT</a>
<a href="index.html#cv" class="w3-bar-item w3-button" onclick="toggleFunction()">CV</a>
<a href="adventure.html" class="w3-bar-item w3-button" onclick="toggleFunction()">ADVENTURE</a>
<a href="index.html#contact" class="w3-bar-item w3-button" onclick="toggleFunction()">CONTACT</a>
<a href="#" class="w3-bar-item w3-button">SEARCH</a>
</div>
</div>
<!-- First Parallax Image with Logo Text -->
<div class="bgimg-1 w3-display-container w3-opacity-min" id="home">
<div class="w3-display-middle" style="white-space:nowrap;">
<span class="w3-center w3-padding-large w3-black w3-xlarge w3-wide w3-animate-opacity">DAVID <span class="w3-hide-small"></span> BLACK</span>
</div>
</div>
<!-- Container (About Section) -->
<div class="w3-content w3-container w3-padding-64" id="about">
<h2 id="robotics-and-control-lab-rcl-coop">Robotics and Control Lab (RCL) Coop</h2>
<h4 id="date-may-december-2019">Date: May - December 2019</h4>
<p>I did an 8 month internship in Dr. Tim Salcudean’s lab at the University of British Columbia in 2019, working towards a haptic feedback system for the da Vinci surgical robot. I redesigned the wrist of the master arm to integrate a force sensor with minimal impact on the robot’s kinematics or dynamics. I also implemented various experiments and applications using the design and the robot’s complex teleoperation and control systems. This involved mechanical and electrical design and prototyping, working with Robot Operating System (ROS), C++, Python, and MATLAB, as well as kinematics, and dynamic model identification. I also helped design a real-time communication and control system for a novel 6-axis force/torque sensor with IMU and temperature sensing.</p>
<h4 id="publication">Publications</h4>
<p>After the first 4 months of the coop, I wrote a paper which has been published in Robotics and Automation Letters and the International Conference for Robotics and Automation in Paris in 2020. The paper gives much more detail about the design pictured below and can be downloaded here:
<a href="/files/ICRA_Paper.pdf">6-DOF Force Sensing for the Master Tool Manipulator of the da Vinci Surgical System</a><br>We also wrote a paper entitled <a href="files/IEEE_TIE_Paper.pdf">Ultra Low-Noise FPGA-Based 6-Axis Optical Force-Torque Sensor: Hardware and Software</a> which was published in IEEE Transactions on Industrial Electronics in September 2020. I am second author on this paper, having written much of the control software and helped develop the firmware of the force sensor.</p>
<ul>
<li> <p>A.H. Hadi Hosseinabadi, <strong>D. Black</strong>, S. Salcudean. "Multi-Axis Force Sensing in Laparoscopic Surgery," in IEEE Robotics and Automation Letters, January 2024, Manuscript ID RA-L 23-2321.</p>
<ul>
<li><a href="https://doi.org/10.1109/LRA.2024.3355729">DOI: 10.1109/LRA.2024.3355729</a></li>
</ul>
</li>
<li><p>A. H. Hadi Hosseinabadi, <strong>D. Black</strong> and S. Salcudean, "Ultra Low-Noise FPGA-Based 6-Axis Optical Force-Torque Sensor: Hardware and Software," in IEEE Transactions on Industrial Electronics. Vol 68, No 10, pp. 10207 - 10217. 2020. doi: 10.1109/TIE.2020.3021648.</p>
<ul>
<li><a href="https://ieeexplore.ieee.org/document/9194325">DOI: 10.1109/TIE.2020.3021648</a></li>
<li>PDF of paper <a href="/files/IEEE_TIE_Paper.pdf">here</a></li>
</ul>
</li>
<li><p><strong>D. Black</strong>, A. H. H. Hosseinabadi and S. E. Salcudean, "6-DOF Force Sensing for the Master Tool Manipulator of the da Vinci Surgical System," in IEEE Robotics and Automation Letters, vol. 5, no. 2, pp. 2264-2271, April 2020, doi: 10.1109/LRA.2020.2970944.</p>
<ul>
<li><a href="https://doi.org/10.1109/LRA.2020.2970944">DOI: 10.1109/LRA.2020.2970944</a></li>
<li>PDF of paper <a href="/files/ICRA_Paper.pdf">here</a></li>
<li>Also presented at the International Conference on Robotics and Automation 2020</li>
<li><a href="https://events.infovaya.com/presentation?id=70342">View Abstract and Presentation</a></li>
<li>Or for higher quality: <a href="https://youtu.be/QgkJ0okXtuQ">YouTube</a></li>
</ul>
</li>
</ul>
<h4 id="highlights-of-the-work-done">Highlights of the Work Done</h4>
<p>The RCL Lab works closely with Intuitive to perform groundbreaking research with the da Vinci Robot. As such, we were given two master manipulators. I first designed and built a simple frame to mount the two arms (Master Tool Manipulaters, i.e. MTMs):</p>
<p><img width="270" height="315" src="images/work/frame.jpg" alt="MTM Frame">
<img width="270" height="315" src="images/work/arms.jpg" alt="Mounted MTMs"></p>
<p>I then began reverse-engineering the MTM wrist yaw link, and modified it mechanically and electrically to integrate a 6-axis ATI Nano43 force/torque sensor without changing the kinematics of the robot. This involved complex CAD modelling and a variety of manufacturing processes as we went through a number of prototypes, trying to fine-tune the rigidity, weight and tolerances to minimize impact on friction, flexing, and inertia, and thus the robot dynamics and operator feel.</p>
<h5 id="one-idea-in-cad">One idea in CAD</h5>
<p><img width="420" height="315" src="images/work/cad.png" alt="MTM CAD"></p>
<p>We tried waterjet cutting the part. The result can be seen here: </p>
<iframe width="420" height="315" src="https://www.youtube.com/embed/lddXpukYc3k">
</iframe>
<p>Unfortunately, this led to higher friction and was heavier, though its rigidity was excellent.</p>
<h5 id="printed-part">The final 3D-printed part, with electrical modifications</h5>
<p><img width="250" height="315" src="images/work/wristOpen.jpg" alt="MTM Wrist Open">
<img width="250" height="315" src="images/work/wrist.jpg" alt="MTM Wrist Yaw Link"></p>
<h5 id="electrical-design">The electrical design included creating a flexible PCB to connect to the finger grips</h5>
<p><img width="300" height="315" src="images/work/pcbs.jpg" alt="Flexible PCB"></p>
<p>Once the mechanical and electrical design and fabrication were complete, I integrated the force sensor and modified wrist into the teleoperation system of the da Vinci robot. I also implemented a few example applications that are described in the paper above. This involved programming in C++ and Python with ROS, da Vinci Research Kit, and the CISST/SAW architecture.</p>
<p>An overview video of one of the applications can be viewed here:</p>
<iframe width="420" height="315" src="https://www.youtube.com/embed/t2htzyCRrIE">
</iframe>
<p>Finally, I implemented a dynamics identification routine for the arm. This involved developing a physical model of the mixed serial and parallel manipulator, then creating an optimal trajectory for the arm to move through that most excites the dynamics. By giving torque commands and recording the resultant joint velocities, the data could be fitted to the physical model using a convex optimization algorithm to obtain the dynamic parameters (inertia, damping, friction, etc.) of each joint. Using this method, we found that the addition of the force sensor only marginally increased the inertia of the wrist yaw link.</p>
<p>In parallel to this project, I wrote a communication and control system for a novel optical force sensor being designed by a PhD student at the lab. The sensor's design allows it to pick up nm deflections of the rod it is mounted on, and it runs at high speeds of 6.85MBaud with a 5kHz sampling rate. The sensor is described in more detail <a href="https://github.com/dgblack/portfolio/raw/master/files/forcesensor.pdf">here</a>. The sensor interfaces to a host computer using data packets sent over RS-485 to USB and PCIe, with Cyclic Redundancy Check error checking. I designed the host-PC side of this interaction using the Linux Comedi C++ libraries with a Python wrapper for low level control, and a GUI for real-time plotting and user sensor control.</p>
<p>I also designed a control box to interface between the host Linux computer and the sensor. The design was made to be modular, and to allow easy reparations or modifications by ensuring one does not have to solder awkwardly inside the box. The design can be seen here: Control Box Design:</p>
<iframe width="420" height="315" src="https://www.youtube.com/embed/HjcpAAcEoUk">
</iframe>
<h5 id="ui">Screenshot of the User Interface</h5>
<p><img width="300" height="315" src="images/work/gui.jpg" alt="Sensor GUI"></p>
<h5 id="control-box">The Sensor with Control Box</h5>
<p><img width="300" height="315" src="images/work/forcesensor.jpg" alt="Optical Force Sensor"></p>
<p>Finally, I also implemented modifications in an MRI compatible shaker for MRI elastography of the prostate. The modifications ensured the plastic bolts would not shear under the stress and heat generated by the shaking, as polycarbonate bolts had done before. They also made the the shaker more steadily hold its position in the rails of the MRI bed.</p>
<h5 id="mri-shaker">MRI Shaker</h5>
<p><img width="250" height="315" src="images/work/mriShaker.jpg" alt="MRI Shaker"></p>
<!-- Footer -->
<footer class="w3-center w3-black w3-padding-64 w3-opacity w3-hover-opacity-off">
<a href="#home" class="w3-button w3-light-grey"><i class="fa fa-arrow-up w3-margin-right"></i>To the top</a>
<div class="w3-xlarge w3-section">
<a href="https://github.com/dgblack"><i class="fa fa-github w3-hover-opacity"></i></a>
<a href="https://scholar.google.com/citations?user=As_yDKkAAAAJ&hl=en"><i class="fa fa-google w3-hover-opacity"></i></a>
<a href="https://twitter.com/BlackDavidG"><i class="fa fa-twitter w3-hover-opacity"></i></a>
<a href="https://linkedin.com/in/davidgblack"><i class="fa fa-linkedin w3-hover-opacity"></i></a>
</div>
<p>Powered by <a href="https://www.w3schools.com/w3css/default.asp" title="W3.CSS" target="_blank" class="w3-hover-text-green">w3.css</a></p>
</footer>
<script>
// Modal Image Gallery
function onClick(element) {
document.getElementById("img01").src = element.src;
document.getElementById("modal01").style.display = "block";
var captionText = document.getElementById("caption");
captionText.innerHTML = element.alt;
}
// Change style of navbar on scroll
window.onscroll = function() {myFunction()};
function myFunction() {
var navbar = document.getElementById("myNavbar");
if (document.body.scrollTop > 100 || document.documentElement.scrollTop > 100) {
navbar.className = "w3-bar" + " w3-card" + " w3-animate-top" + " w3-white";
} else {
navbar.className = navbar.className.replace(" w3-card w3-animate-top w3-white", "");
}
}
// Used to toggle the menu on small screens when clicking on the menu button
function toggleFunction() {
var x = document.getElementById("navDemo");
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
} else {
x.className = x.className.replace(" w3-show", "");
}
}
</script>
</body>
</html>