♻️ refactor: format code

This commit is contained in:
2022-07-07 11:54:43 +02:00
parent 14e5edd35a
commit bfd15205cf
18 changed files with 14772 additions and 5116 deletions
+130
View File
@@ -0,0 +1,130 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# Based on Node.gitignore ( https://github.com/github/gitignore/blob/master/Node.gitignore )
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.local
.env.development.local
.env.test
.env.test.local
.env.production
.env.production.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
.pnp
# misc
.DS_Store
+4388 -1
View File
File diff suppressed because one or more lines are too long
+3781 -3658
View File
File diff suppressed because it is too large Load Diff
+6 -7
View File
@@ -5,11 +5,10 @@
*/
/* Loader */
body.landing.is-preload:before {
display: none;
}
body.landing.is-preload:before {
display: none;
}
body.landing.is-preload:after {
display: none;
}
body.landing.is-preload:after {
display: none;
}
+10 -10
View File
@@ -1,18 +1,18 @@
var acc = document.getElementsByClassName("accordion");
var i;
var acc = document.getElementsByClassName('accordion')
var i
for (i = 0; i < acc.length; i++) {
acc[i].addEventListener("click", function() {
acc[i].addEventListener('click', function () {
/* Toggle between adding and removing the "active" class,
to highlight the button that controls the panel */
this.classList.toggle("active");
this.classList.toggle('active')
/* Toggle between hiding and showing the active panel */
var panel = this.nextElementSibling;
var panel = this.nextElementSibling
if (panel.style.maxHeight) {
panel.style.maxHeight = null;
panel.style.maxHeight = null
} else {
panel.style.maxHeight = panel.scrollHeight + "px";
}
});
}
panel.style.maxHeight = panel.scrollHeight + 'px'
}
})
}
+128 -2
View File
@@ -1,2 +1,128 @@
/* breakpoints.js v1.0 | @ajlkn | MIT licensed */
var breakpoints=function(){"use strict";function e(e){t.init(e)}var t={list:null,media:{},events:[],init:function(e){t.list=e,window.addEventListener("resize",t.poll),window.addEventListener("orientationchange",t.poll),window.addEventListener("load",t.poll),window.addEventListener("fullscreenchange",t.poll)},active:function(e){var n,a,s,i,r,d,c;if(!(e in t.media)){if(">="==e.substr(0,2)?(a="gte",n=e.substr(2)):"<="==e.substr(0,2)?(a="lte",n=e.substr(2)):">"==e.substr(0,1)?(a="gt",n=e.substr(1)):"<"==e.substr(0,1)?(a="lt",n=e.substr(1)):"!"==e.substr(0,1)?(a="not",n=e.substr(1)):(a="eq",n=e),n&&n in t.list)if(i=t.list[n],Array.isArray(i)){if(r=parseInt(i[0]),d=parseInt(i[1]),isNaN(r)){if(isNaN(d))return;c=i[1].substr(String(d).length)}else c=i[0].substr(String(r).length);if(isNaN(r))switch(a){case"gte":s="screen";break;case"lte":s="screen and (max-width: "+d+c+")";break;case"gt":s="screen and (min-width: "+(d+1)+c+")";break;case"lt":s="screen and (max-width: -1px)";break;case"not":s="screen and (min-width: "+(d+1)+c+")";break;default:s="screen and (max-width: "+d+c+")"}else if(isNaN(d))switch(a){case"gte":s="screen and (min-width: "+r+c+")";break;case"lte":s="screen";break;case"gt":s="screen and (max-width: -1px)";break;case"lt":s="screen and (max-width: "+(r-1)+c+")";break;case"not":s="screen and (max-width: "+(r-1)+c+")";break;default:s="screen and (min-width: "+r+c+")"}else switch(a){case"gte":s="screen and (min-width: "+r+c+")";break;case"lte":s="screen and (max-width: "+d+c+")";break;case"gt":s="screen and (min-width: "+(d+1)+c+")";break;case"lt":s="screen and (max-width: "+(r-1)+c+")";break;case"not":s="screen and (max-width: "+(r-1)+c+"), screen and (min-width: "+(d+1)+c+")";break;default:s="screen and (min-width: "+r+c+") and (max-width: "+d+c+")"}}else s="("==i.charAt(0)?"screen and "+i:i;t.media[e]=!!s&&s}return t.media[e]!==!1&&window.matchMedia(t.media[e]).matches},on:function(e,n){t.events.push({query:e,handler:n,state:!1}),t.active(e)&&n()},poll:function(){var e,n;for(e=0;e<t.events.length;e++)n=t.events[e],t.active(n.query)?n.state||(n.state=!0,n.handler()):n.state&&(n.state=!1)}};return e._=t,e.on=function(e,n){t.on(e,n)},e.active=function(e){return t.active(e)},e}();!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.breakpoints=t()}(this,function(){return breakpoints});
/* breakpoints.js v1.0 | @ajlkn | MIT licensed */
var breakpoints = (function () {
'use strict'
function e(e) {
t.init(e)
}
var t = {
list: null,
media: {},
events: [],
init: function (e) {
;(t.list = e),
window.addEventListener('resize', t.poll),
window.addEventListener('orientationchange', t.poll),
window.addEventListener('load', t.poll),
window.addEventListener('fullscreenchange', t.poll)
},
active: function (e) {
var n, a, s, i, r, d, c
if (!(e in t.media)) {
if (
('>=' == e.substr(0, 2)
? ((a = 'gte'), (n = e.substr(2)))
: '<=' == e.substr(0, 2)
? ((a = 'lte'), (n = e.substr(2)))
: '>' == e.substr(0, 1)
? ((a = 'gt'), (n = e.substr(1)))
: '<' == e.substr(0, 1)
? ((a = 'lt'), (n = e.substr(1)))
: '!' == e.substr(0, 1)
? ((a = 'not'), (n = e.substr(1)))
: ((a = 'eq'), (n = e)),
n && n in t.list)
)
if (((i = t.list[n]), Array.isArray(i))) {
if (((r = parseInt(i[0])), (d = parseInt(i[1])), isNaN(r))) {
if (isNaN(d)) return
c = i[1].substr(String(d).length)
} else c = i[0].substr(String(r).length)
if (isNaN(r))
switch (a) {
case 'gte':
s = 'screen'
break
case 'lte':
s = 'screen and (max-width: ' + d + c + ')'
break
case 'gt':
s = 'screen and (min-width: ' + (d + 1) + c + ')'
break
case 'lt':
s = 'screen and (max-width: -1px)'
break
case 'not':
s = 'screen and (min-width: ' + (d + 1) + c + ')'
break
default:
s = 'screen and (max-width: ' + d + c + ')'
}
else if (isNaN(d))
switch (a) {
case 'gte':
s = 'screen and (min-width: ' + r + c + ')'
break
case 'lte':
s = 'screen'
break
case 'gt':
s = 'screen and (max-width: -1px)'
break
case 'lt':
s = 'screen and (max-width: ' + (r - 1) + c + ')'
break
case 'not':
s = 'screen and (max-width: ' + (r - 1) + c + ')'
break
default:
s = 'screen and (min-width: ' + r + c + ')'
}
else
switch (a) {
case 'gte':
s = 'screen and (min-width: ' + r + c + ')'
break
case 'lte':
s = 'screen and (max-width: ' + d + c + ')'
break
case 'gt':
s = 'screen and (min-width: ' + (d + 1) + c + ')'
break
case 'lt':
s = 'screen and (max-width: ' + (r - 1) + c + ')'
break
case 'not':
s = 'screen and (max-width: ' + (r - 1) + c + '), screen and (min-width: ' + (d + 1) + c + ')'
break
default:
s = 'screen and (min-width: ' + r + c + ') and (max-width: ' + d + c + ')'
}
} else s = '(' == i.charAt(0) ? 'screen and ' + i : i
t.media[e] = !!s && s
}
return t.media[e] !== !1 && window.matchMedia(t.media[e]).matches
},
on: function (e, n) {
t.events.push({ query: e, handler: n, state: !1 }), t.active(e) && n()
},
poll: function () {
var e, n
for (e = 0; e < t.events.length; e++) (n = t.events[e]), t.active(n.query) ? n.state || ((n.state = !0), n.handler()) : n.state && (n.state = !1)
},
}
return (
(e._ = t),
(e.on = function (e, n) {
t.on(e, n)
}),
(e.active = function (e) {
return t.active(e)
}),
e
)
})()
!(function (e, t) {
'function' == typeof define && define.amd ? define([], t) : 'object' == typeof exports ? (module.exports = t()) : (e.breakpoints = t())
})(this, function () {
return breakpoints
})
+103 -2
View File
@@ -1,2 +1,103 @@
/* browser.js v1.0 | @ajlkn | MIT licensed */
var browser=function(){"use strict";var e={name:null,version:null,os:null,osVersion:null,touch:null,mobile:null,_canUse:null,canUse:function(n){e._canUse||(e._canUse=document.createElement("div"));var o=e._canUse.style,r=n.charAt(0).toUpperCase()+n.slice(1);return n in o||"Moz"+r in o||"Webkit"+r in o||"O"+r in o||"ms"+r in o},init:function(){var n,o,r,i,t=navigator.userAgent;for(n="other",o=0,r=[["firefox",/Firefox\/([0-9\.]+)/],["bb",/BlackBerry.+Version\/([0-9\.]+)/],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/],["opera",/OPR\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)/],["edge",/Edge\/([0-9\.]+)/],["safari",/Version\/([0-9\.]+).+Safari/],["chrome",/Chrome\/([0-9\.]+)/],["ie",/MSIE ([0-9]+)/],["ie",/Trident\/.+rv:([0-9]+)/]],i=0;i<r.length;i++)if(t.match(r[i][1])){n=r[i][0],o=parseFloat(RegExp.$1);break}for(e.name=n,e.version=o,n="other",o=0,r=[["ios",/([0-9_]+) like Mac OS X/,function(e){return e.replace("_",".").replace("_","")}],["ios",/CPU like Mac OS X/,function(e){return 0}],["wp",/Windows Phone ([0-9\.]+)/,null],["android",/Android ([0-9\.]+)/,null],["mac",/Macintosh.+Mac OS X ([0-9_]+)/,function(e){return e.replace("_",".").replace("_","")}],["windows",/Windows NT ([0-9\.]+)/,null],["bb",/BlackBerry.+Version\/([0-9\.]+)/,null],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/,null],["linux",/Linux/,null],["bsd",/BSD/,null],["unix",/X11/,null]],i=0;i<r.length;i++)if(t.match(r[i][1])){n=r[i][0],o=parseFloat(r[i][2]?r[i][2](RegExp.$1):RegExp.$1);break}e.os=n,e.osVersion=o,e.touch="wp"==e.os?navigator.msMaxTouchPoints>0:!!("ontouchstart"in window),e.mobile="wp"==e.os||"android"==e.os||"ios"==e.os||"bb"==e.os}};return e.init(),e}();!function(e,n){"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?module.exports=n():e.browser=n()}(this,function(){return browser});
/* browser.js v1.0 | @ajlkn | MIT licensed */
var browser = (function () {
'use strict'
var e = {
name: null,
version: null,
os: null,
osVersion: null,
touch: null,
mobile: null,
_canUse: null,
canUse: function (n) {
e._canUse || (e._canUse = document.createElement('div'))
var o = e._canUse.style,
r = n.charAt(0).toUpperCase() + n.slice(1)
return n in o || 'Moz' + r in o || 'Webkit' + r in o || 'O' + r in o || 'ms' + r in o
},
init: function () {
var n,
o,
r,
i,
t = navigator.userAgent
for (
n = 'other',
o = 0,
r = [
['firefox', /Firefox\/([0-9\.]+)/],
['bb', /BlackBerry.+Version\/([0-9\.]+)/],
['bb', /BB[0-9]+.+Version\/([0-9\.]+)/],
['opera', /OPR\/([0-9\.]+)/],
['opera', /Opera\/([0-9\.]+)/],
['edge', /Edge\/([0-9\.]+)/],
['safari', /Version\/([0-9\.]+).+Safari/],
['chrome', /Chrome\/([0-9\.]+)/],
['ie', /MSIE ([0-9]+)/],
['ie', /Trident\/.+rv:([0-9]+)/],
],
i = 0;
i < r.length;
i++
)
if (t.match(r[i][1])) {
;(n = r[i][0]), (o = parseFloat(RegExp.$1))
break
}
for (
e.name = n,
e.version = o,
n = 'other',
o = 0,
r = [
[
'ios',
/([0-9_]+) like Mac OS X/,
function (e) {
return e.replace('_', '.').replace('_', '')
},
],
[
'ios',
/CPU like Mac OS X/,
function (e) {
return 0
},
],
['wp', /Windows Phone ([0-9\.]+)/, null],
['android', /Android ([0-9\.]+)/, null],
[
'mac',
/Macintosh.+Mac OS X ([0-9_]+)/,
function (e) {
return e.replace('_', '.').replace('_', '')
},
],
['windows', /Windows NT ([0-9\.]+)/, null],
['bb', /BlackBerry.+Version\/([0-9\.]+)/, null],
['bb', /BB[0-9]+.+Version\/([0-9\.]+)/, null],
['linux', /Linux/, null],
['bsd', /BSD/, null],
['unix', /X11/, null],
],
i = 0;
i < r.length;
i++
)
if (t.match(r[i][1])) {
;(n = r[i][0]), (o = parseFloat(r[i][2] ? r[i][2](RegExp.$1) : RegExp.$1))
break
}
;(e.os = n),
(e.osVersion = o),
(e.touch = 'wp' == e.os ? navigator.msMaxTouchPoints > 0 : !!('ontouchstart' in window)),
(e.mobile = 'wp' == e.os || 'android' == e.os || 'ios' == e.os || 'bb' == e.os)
},
}
return e.init(), e
})()
!(function (e, n) {
'function' == typeof define && define.amd ? define([], n) : 'object' == typeof exports ? (module.exports = n()) : (e.browser = n())
})(this, function () {
return browser
})
+248 -2
View File
File diff suppressed because one or more lines are too long
+4320 -1
View File
File diff suppressed because one or more lines are too long
+116 -1
View File
@@ -1,2 +1,117 @@
/* jquery.scrollex v0.2.1 | (c) @ajlkn | github.com/ajlkn/jquery.scrollex | MIT licensed */
!function(t){function e(t,e,n){return"string"==typeof t&&("%"==t.slice(-1)?t=parseInt(t.substring(0,t.length-1))/100*e:"vh"==t.slice(-2)?t=parseInt(t.substring(0,t.length-2))/100*n:"px"==t.slice(-2)&&(t=parseInt(t.substring(0,t.length-2)))),t}var n=t(window),i=1,o={};n.on("scroll",function(){var e=n.scrollTop();t.map(o,function(t){window.clearTimeout(t.timeoutId),t.timeoutId=window.setTimeout(function(){t.handler(e)},t.options.delay)})}).on("load",function(){n.trigger("scroll")}),jQuery.fn.scrollex=function(l){var s=t(this);if(0==this.length)return s;if(this.length>1){for(var r=0;r<this.length;r++)t(this[r]).scrollex(l);return s}if(s.data("_scrollexId"))return s;var a,u,h,c,p;switch(a=i++,u=jQuery.extend({top:0,bottom:0,delay:0,mode:"default",enter:null,leave:null,initialize:null,terminate:null,scroll:null},l),u.mode){case"top":h=function(t,e,n,i,o){return t>=i&&o>=t};break;case"bottom":h=function(t,e,n,i,o){return n>=i&&o>=n};break;case"middle":h=function(t,e,n,i,o){return e>=i&&o>=e};break;case"top-only":h=function(t,e,n,i,o){return i>=t&&n>=i};break;case"bottom-only":h=function(t,e,n,i,o){return n>=o&&o>=t};break;default:case"default":h=function(t,e,n,i,o){return n>=i&&o>=t}}return c=function(t){var i,o,l,s,r,a,u=this.state,h=!1,c=this.$element.offset();i=n.height(),o=t+i/2,l=t+i,s=this.$element.outerHeight(),r=c.top+e(this.options.top,s,i),a=c.top+s-e(this.options.bottom,s,i),h=this.test(t,o,l,r,a),h!=u&&(this.state=h,h?this.options.enter&&this.options.enter.apply(this.element):this.options.leave&&this.options.leave.apply(this.element)),this.options.scroll&&this.options.scroll.apply(this.element,[(o-r)/(a-r)])},p={id:a,options:u,test:h,handler:c,state:null,element:this,$element:s,timeoutId:null},o[a]=p,s.data("_scrollexId",p.id),p.options.initialize&&p.options.initialize.apply(this),s},jQuery.fn.unscrollex=function(){var e=t(this);if(0==this.length)return e;if(this.length>1){for(var n=0;n<this.length;n++)t(this[n]).unscrollex();return e}var i,l;return(i=e.data("_scrollexId"))?(l=o[i],window.clearTimeout(l.timeoutId),delete o[i],e.removeData("_scrollexId"),l.options.terminate&&l.options.terminate.apply(this),e):e}}(jQuery);
!(function (t) {
function e(t, e, n) {
return (
'string' == typeof t &&
('%' == t.slice(-1)
? (t = (parseInt(t.substring(0, t.length - 1)) / 100) * e)
: 'vh' == t.slice(-2)
? (t = (parseInt(t.substring(0, t.length - 2)) / 100) * n)
: 'px' == t.slice(-2) && (t = parseInt(t.substring(0, t.length - 2)))),
t
)
}
var n = t(window),
i = 1,
o = {}
n
.on('scroll', function () {
var e = n.scrollTop()
t.map(o, function (t) {
window.clearTimeout(t.timeoutId),
(t.timeoutId = window.setTimeout(function () {
t.handler(e)
}, t.options.delay))
})
})
.on('load', function () {
n.trigger('scroll')
}),
(jQuery.fn.scrollex = function (l) {
var s = t(this)
if (0 == this.length) return s
if (this.length > 1) {
for (var r = 0; r < this.length; r++) t(this[r]).scrollex(l)
return s
}
if (s.data('_scrollexId')) return s
var a, u, h, c, p
switch (
((a = i++),
(u = jQuery.extend({ top: 0, bottom: 0, delay: 0, mode: 'default', enter: null, leave: null, initialize: null, terminate: null, scroll: null }, l)),
u.mode)
) {
case 'top':
h = function (t, e, n, i, o) {
return t >= i && o >= t
}
break
case 'bottom':
h = function (t, e, n, i, o) {
return n >= i && o >= n
}
break
case 'middle':
h = function (t, e, n, i, o) {
return e >= i && o >= e
}
break
case 'top-only':
h = function (t, e, n, i, o) {
return i >= t && n >= i
}
break
case 'bottom-only':
h = function (t, e, n, i, o) {
return n >= o && o >= t
}
break
default:
case 'default':
h = function (t, e, n, i, o) {
return n >= i && o >= t
}
}
return (
(c = function (t) {
var i,
o,
l,
s,
r,
a,
u = this.state,
h = !1,
c = this.$element.offset()
;(i = n.height()),
(o = t + i / 2),
(l = t + i),
(s = this.$element.outerHeight()),
(r = c.top + e(this.options.top, s, i)),
(a = c.top + s - e(this.options.bottom, s, i)),
(h = this.test(t, o, l, r, a)),
h != u &&
((this.state = h),
h ? this.options.enter && this.options.enter.apply(this.element) : this.options.leave && this.options.leave.apply(this.element)),
this.options.scroll && this.options.scroll.apply(this.element, [(o - r) / (a - r)])
}),
(p = { id: a, options: u, test: h, handler: c, state: null, element: this, $element: s, timeoutId: null }),
(o[a] = p),
s.data('_scrollexId', p.id),
p.options.initialize && p.options.initialize.apply(this),
s
)
}),
(jQuery.fn.unscrollex = function () {
var e = t(this)
if (0 == this.length) return e
if (this.length > 1) {
for (var n = 0; n < this.length; n++) t(this[n]).unscrollex()
return e
}
var i, l
return (i = e.data('_scrollexId'))
? ((l = o[i]), window.clearTimeout(l.timeoutId), delete o[i], e.removeData('_scrollexId'), l.options.terminate && l.options.terminate.apply(this), e)
: e
})
})(jQuery)
+42 -1
View File
@@ -1,2 +1,43 @@
/* jquery.scrolly v1.0.0-dev | (c) @ajlkn | MIT licensed */
(function(e){function u(s,o){var u,a,f;if((u=e(s))[t]==0)return n;a=u[i]()[r];switch(o.anchor){case"middle":f=a-(e(window).height()-u.outerHeight())/2;break;default:case r:f=Math.max(a,0)}return typeof o[i]=="function"?f-=o[i]():f-=o[i],f}var t="length",n=null,r="top",i="offset",s="click.scrolly",o=e(window);e.fn.scrolly=function(i){var o,a,f,l,c=e(this);if(this[t]==0)return c;if(this[t]>1){for(o=0;o<this[t];o++)e(this[o]).scrolly(i);return c}l=n,f=c.attr("href");if(f.charAt(0)!="#"||f[t]<2)return c;a=jQuery.extend({anchor:r,easing:"swing",offset:0,parent:e("body,html"),pollOnce:!1,speed:1e3},i),a.pollOnce&&(l=u(f,a)),c.off(s).on(s,function(e){var t=l!==n?l:u(f,a);t!==n&&(e.preventDefault(),a.parent.stop().animate({scrollTop:t},a.speed,a.easing))})}})(jQuery);
;(function (e) {
function u(s, o) {
var u, a, f
if ((u = e(s))[t] == 0) return n
a = u[i]()[r]
switch (o.anchor) {
case 'middle':
f = a - (e(window).height() - u.outerHeight()) / 2
break
default:
case r:
f = Math.max(a, 0)
}
return typeof o[i] == 'function' ? (f -= o[i]()) : (f -= o[i]), f
}
var t = 'length',
n = null,
r = 'top',
i = 'offset',
s = 'click.scrolly',
o = e(window)
e.fn.scrolly = function (i) {
var o,
a,
f,
l,
c = e(this)
if (this[t] == 0) return c
if (this[t] > 1) {
for (o = 0; o < this[t]; o++) e(this[o]).scrolly(i)
return c
}
;(l = n), (f = c.attr('href'))
if (f.charAt(0) != '#' || f[t] < 2) return c
;(a = jQuery.extend({ anchor: r, easing: 'swing', offset: 0, parent: e('body,html'), pollOnce: !1, speed: 1e3 }, i)),
a.pollOnce && (l = u(f, a)),
c.off(s).on(s, function (e) {
var t = l !== n ? l : u(f, a)
t !== n && (e.preventDefault(), a.parent.stop().animate({ scrollTop: t }, a.speed, a.easing))
})
}
})(jQuery)
+197 -244
View File
@@ -4,247 +4,200 @@
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/
(function($) {
var $window = $(window),
$body = $('body');
// Breakpoints.
breakpoints({
xlarge: [ '1281px', '1680px' ],
large: [ '981px', '1280px' ],
medium: [ '737px', '980px' ],
small: [ '481px', '736px' ],
xsmall: [ null, '480px' ]
});
// Play initial animations on page load.
$window.on('load', function() {
window.setTimeout(function() {
$body.removeClass('is-preload');
}, 100);
});
// Touch mode.
if (browser.mobile)
$body.addClass('is-touch');
// Scrolly links.
$('.scrolly').scrolly({
speed: 2000
});
// Dropdowns.
$('#nav > ul').dropotron({
alignment: 'right',
hideDelay: 350
});
// Nav.
// Title Bar.
$(
'<div id="titleBar">' +
'<a href="#navPanel" class="toggle"></a>' +
'<span class="title">' + $('#logo').html() + '</span>' +
'</div>'
)
.appendTo($body);
// Panel.
$(
'<div id="navPanel">' +
'<nav>' +
$('#nav').navList() +
'</nav>' +
'</div>'
)
.appendTo($body)
.panel({
delay: 500,
hideOnClick: true,
hideOnSwipe: true,
resetScroll: true,
resetForms: true,
side: 'left',
target: $body,
visibleClass: 'navPanel-visible'
});
// Parallax.
// Disabled on IE (choppy scrolling) and mobile platforms (poor performance).
if (browser.name == 'ie'
|| browser.mobile) {
$.fn._parallax = function() {
return $(this);
};
}
else {
$.fn._parallax = function() {
$(this).each(function() {
var $this = $(this),
on, off;
on = function() {
$this
.css('background-position', 'center 0px');
$window
.on('scroll._parallax', function() {
var pos = parseInt($window.scrollTop()) - parseInt($this.position().top);
$this.css('background-position', 'center ' + (pos * -0.15) + 'px');
});
};
off = function() {
$this
.css('background-position', '');
$window
.off('scroll._parallax');
};
breakpoints.on('<=medium', off);
breakpoints.on('>medium', on);
});
return $(this);
};
$window
.on('load resize', function() {
$window.trigger('scroll');
});
}
// Spotlights.
var $spotlights = $('.spotlight');
$spotlights
._parallax()
.each(function() {
var $this = $(this),
on, off;
on = function() {
var top, bottom, mode;
// Use main <img>'s src as this spotlight's background.
$this.css('background-image', 'url("' + $this.find('.image.main > img').attr('src') + '")');
// Side-specific scrollex tweaks.
if ($this.hasClass('top')) {
mode = 'top';
top = '-20%';
bottom = 0;
}
else if ($this.hasClass('bottom')) {
mode = 'bottom-only';
top = 0;
bottom = '20%';
}
else {
mode = 'middle';
top = 0;
bottom = 0;
}
// Add scrollex.
$this.scrollex({
mode: mode,
top: top,
bottom: bottom,
initialize: function(t) { $this.addClass('inactive'); },
terminate: function(t) { $this.removeClass('inactive'); },
enter: function(t) { $this.removeClass('inactive'); },
// Uncomment the line below to "rewind" when this spotlight scrolls out of view.
//leave: function(t) { $this.addClass('inactive'); },
});
};
off = function() {
// Clear spotlight's background.
$this.css('background-image', '');
// Remove scrollex.
$this.unscrollex();
};
breakpoints.on('<=medium', off);
breakpoints.on('>medium', on);
});
// Wrappers.
var $wrappers = $('.wrapper');
$wrappers
.each(function() {
var $this = $(this),
on, off;
on = function() {
$this.scrollex({
top: 250,
bottom: 0,
initialize: function(t) { $this.addClass('inactive'); },
terminate: function(t) { $this.removeClass('inactive'); },
enter: function(t) { $this.removeClass('inactive'); },
// Uncomment the line below to "rewind" when this wrapper scrolls out of view.
//leave: function(t) { $this.addClass('inactive'); },
});
};
off = function() {
$this.unscrollex();
};
breakpoints.on('<=medium', off);
breakpoints.on('>medium', on);
});
// Banner.
var $banner = $('#banner');
$banner
._parallax();
})(jQuery);
;(function ($) {
var $window = $(window),
$body = $('body')
// Breakpoints.
breakpoints({
xlarge: ['1281px', '1680px'],
large: ['981px', '1280px'],
medium: ['737px', '980px'],
small: ['481px', '736px'],
xsmall: [null, '480px'],
})
// Play initial animations on page load.
$window.on('load', function () {
window.setTimeout(function () {
$body.removeClass('is-preload')
}, 100)
})
// Touch mode.
if (browser.mobile) $body.addClass('is-touch')
// Scrolly links.
$('.scrolly').scrolly({
speed: 2000,
})
// Dropdowns.
$('#nav > ul').dropotron({
alignment: 'right',
hideDelay: 350,
})
// Nav.
// Title Bar.
$('<div id="titleBar">' + '<a href="#navPanel" class="toggle"></a>' + '<span class="title">' + $('#logo').html() + '</span>' + '</div>').appendTo($body)
// Panel.
$('<div id="navPanel">' + '<nav>' + $('#nav').navList() + '</nav>' + '</div>')
.appendTo($body)
.panel({
delay: 500,
hideOnClick: true,
hideOnSwipe: true,
resetScroll: true,
resetForms: true,
side: 'left',
target: $body,
visibleClass: 'navPanel-visible',
})
// Parallax.
// Disabled on IE (choppy scrolling) and mobile platforms (poor performance).
if (browser.name == 'ie' || browser.mobile) {
$.fn._parallax = function () {
return $(this)
}
} else {
$.fn._parallax = function () {
$(this).each(function () {
var $this = $(this),
on,
off
on = function () {
$this.css('background-position', 'center 0px')
$window.on('scroll._parallax', function () {
var pos = parseInt($window.scrollTop()) - parseInt($this.position().top)
$this.css('background-position', 'center ' + pos * -0.15 + 'px')
})
}
off = function () {
$this.css('background-position', '')
$window.off('scroll._parallax')
}
breakpoints.on('<=medium', off)
breakpoints.on('>medium', on)
})
return $(this)
}
$window.on('load resize', function () {
$window.trigger('scroll')
})
}
// Spotlights.
var $spotlights = $('.spotlight')
$spotlights._parallax().each(function () {
var $this = $(this),
on,
off
on = function () {
var top, bottom, mode
// Use main <img>'s src as this spotlight's background.
$this.css('background-image', 'url("' + $this.find('.image.main > img').attr('src') + '")')
// Side-specific scrollex tweaks.
if ($this.hasClass('top')) {
mode = 'top'
top = '-20%'
bottom = 0
} else if ($this.hasClass('bottom')) {
mode = 'bottom-only'
top = 0
bottom = '20%'
} else {
mode = 'middle'
top = 0
bottom = 0
}
// Add scrollex.
$this.scrollex({
mode: mode,
top: top,
bottom: bottom,
initialize: function (t) {
$this.addClass('inactive')
},
terminate: function (t) {
$this.removeClass('inactive')
},
enter: function (t) {
$this.removeClass('inactive')
},
// Uncomment the line below to "rewind" when this spotlight scrolls out of view.
//leave: function(t) { $this.addClass('inactive'); },
})
}
off = function () {
// Clear spotlight's background.
$this.css('background-image', '')
// Remove scrollex.
$this.unscrollex()
}
breakpoints.on('<=medium', off)
breakpoints.on('>medium', on)
})
// Wrappers.
var $wrappers = $('.wrapper')
$wrappers.each(function () {
var $this = $(this),
on,
off
on = function () {
$this.scrollex({
top: 250,
bottom: 0,
initialize: function (t) {
$this.addClass('inactive')
},
terminate: function (t) {
$this.removeClass('inactive')
},
enter: function (t) {
$this.removeClass('inactive')
},
// Uncomment the line below to "rewind" when this wrapper scrolls out of view.
//leave: function(t) { $this.addClass('inactive'); },
})
}
off = function () {
$this.unscrollex()
}
breakpoints.on('<=medium', off)
breakpoints.on('>medium', on)
})
// Banner.
var $banner = $('#banner')
$banner._parallax()
})(jQuery)
+440 -565
View File
File diff suppressed because it is too large Load Diff
+33 -24
View File
@@ -12,25 +12,32 @@
<div id="page-wrapper">
<!-- Header -->
<header id="header">
<h1 id="logo"><a href="index.html">Michele Tartari</a></h1>
<nav id="nav">
<ul>
<li><a href="index.html">Home</a></li>
<li>
<a href="projects.html">Projects</a>
<ul>
<li><a href="projects.html#robotics">Robotics</a></li>
<li><a href="projects.html#engineering">Engineering</a></li>
<li><a href="projects.html#hobbies">Hobbies</a></li>
<!-- <li><a href="projects.html#other">Others</a></li> -->
</ul>
</li>
<li><a href="curriculum.html">Curriculim</a></li>
<li><a href="contacts.html" class="button primary">Contact me</a></li>
</ul>
</nav>
</header>
<header id="header">
<h1 id="logo"><a href="index.html">Michele Tartari</a></h1>
<nav id="nav">
<ul>
<li>
<a href="index.html">Home</a></li>
<li>
<a href="projects.html">Projects</a>
<ul>
<li>
<a href="projects.html#robotics">Robotics</a></li>
<li>
<a href="projects.html#engineering">Engineering</a></li>
<li>
<a href="projects.html#hobbies">Hobbies</a></li>
<!-- <li>
<a href="projects.html#other">Others</a></li> -->
</ul>
</li>
<li>
<a href="curriculum.html">Curriculim</a></li>
<li>
<a href="contacts.html" class="button primary">Contact me</a></li>
</ul>
</nav>
</header>
<!-- Main -->
<div id="main" class="wrapper style1">
@@ -42,8 +49,9 @@
<section>
<h3>Feel free to contact me using any of the following:</h3>
<ul style="list-style: none;">
<li><a target="_blank" rel="noopener noreferrer" style="color: #ccc;" class="icon solid alt fa-envelope" href="mailto:michele.tartari@live.com">
<span class="label">Email</span>
<li>
<a target="_blank" rel="noopener noreferrer" style="color: #ccc;" class="icon solid alt fa-envelope" href="mailto:michele.tartari@live.com">
<span class="label">Email</span>
&nbsp;&nbsp;michele.tartari@live.com
</a>
</li>
@@ -53,15 +61,16 @@
&nbsp;&nbsp; m-tartari
</a>
</li>
<li><a target="_blank" rel="noopener noreferrer" style="color: #ccc;" class="icon brands alt fa-github" href="https://github.com/m-tartari">
<span class="label">GitHub</span>
<li>
<a target="_blank" rel="noopener noreferrer" style="color: #ccc;" class="icon brands alt fa-github" href="https://github.com/m-tartari">
<span class="label">GitHub</span>
&nbsp;&nbsp; m-tartari
</a>
</li>
</ul>
</section>
<!-- Text -->
<section>
<section>
<!-- FIXME: check https://stackoverflow.com/questions/91905/adding-urgent-priority-to-mail-set-from-mailto-link and https://www.w3.org/TR/WD-html40-970917/htmlweb.html-->
<h3>Or prepare it here:</h3>
<form method="post" action="mailto:michele.tartari@live.com">
+43 -43
View File
@@ -58,8 +58,8 @@
<button class="accordion">
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">
04/20 - Today
</em>
<b style="color: #ffffff; font-weight: 300; line-height: 1em; font-size: 1.35em; ">
</em>
<b style="color: #ffffff; font-weight: 300; line-height: 1em; font-size: 1.35em; ">
Embedded Engineer
</b>
<br/>
@@ -80,8 +80,8 @@
<button class="accordion">
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">
01/19 - 06/19
</em>
<b style="color: #ffffff; font-weight: 300; line-height: 1em; font-size: 1.35em; ">
</em>
<b style="color: #ffffff; font-weight: 300; line-height: 1em; font-size: 1.35em; ">
Researcher - Internship
</b>
<br/>
@@ -98,8 +98,8 @@
<button class="accordion">
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">
02/17 - 06/17
</em>
<b style="color: #ffffff; font-weight: 300; line-height: 1em; font-size: 1.35em; ">
</em>
<b style="color: #ffffff; font-weight: 300; line-height: 1em; font-size: 1.35em; ">
Researcher - Internship
</b>
<br/>
@@ -114,9 +114,9 @@
<!-- LAR - Unibo -->
<section id="LAR-intern">
<button class="accordion">
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">01/17 - 02/17</em>
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">01/17 - 02/17</em>
<b style="color: #ffffff; font-weight: 300; line-height: 1em; font-size: 1.35em; ">
Researcher - Internship
Researcher - Internship
</b>
<br />
LAR - University of Bologna
@@ -133,17 +133,17 @@
<!-- Education -->
<section id="education">
<h2 style="color: #e44c65;">Education</h2>
<h2 style="margin-bottom: -5px;">
<a target="_blank" rel="noopener noreferrer" href="https://master-emaro.ec-nantes.fr/">
EMARO+ Program - Master Studies
<h2 style="margin-bottom: -5px;">
<a target="_blank" rel="noopener noreferrer" href="https://master-emaro.ec-nantes.fr/">
EMARO+ Program - Master Studies
</a>
</h2>
<!-- Warsaw -->
<section id="WUT">
<button class="accordion">
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">09/18 - 06/19</em>
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">09/18 - 06/19</em>
<b style="color: #ffffff; font-weight: 300; line-height: 1em; font-size: 1.35em; ">
Warsaw University of Technology
</b>
@@ -154,8 +154,8 @@
<li> Consortium scholarship issued for EMARO+ students based on academic merits and offered to top applicants only. </li>
<li> Relevant courses: Research Methodology, Bio-Robotics, Dynamics of Multi-Body Systems, Advanced Mechanical Design. </li>
<li> Other relevant courses: 2 exams of Polish language and 1 of Polish culture. </li>
<li> Thesis: <a target="_blank" rel="noopener noreferrer" href="https://drive.google.com/drive/folders/1Y7TJJN8z1llCkSTnpVHMELD3PqsX8VF9?usp=sharing">Voice Controlled Mobile Robot for Indoor Applications</a>
(research publication <a target="_blank" rel="noopener noreferrer" href="https://doi.org/10.1007/978-3-030-58380-4_7"><em>here</em></a>).
<li> Thesis: <a target="_blank" rel="noopener noreferrer" href="https://drive.google.com/drive/folders/1Y7TJJN8z1llCkSTnpVHMELD3PqsX8VF9?usp=sharing">Voice Controlled Mobile Robot for Indoor Applications</a>
(research publication <a target="_blank" rel="noopener noreferrer" href="https://doi.org/10.1007/978-3-030-58380-4_7"><em>here</em></a>).
</li>
</div>
</section>
@@ -163,7 +163,7 @@
<!-- ECN -->
<section id="ECN">
<button class="accordion">
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">09/17 - 06/18</em>
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">09/17 - 06/18</em>
<b style="color: #ffffff; font-weight: 300; line-height: 1em; font-size: 1.35em; ">
Ecole Centrale de Nantes
</b>
@@ -179,16 +179,16 @@
</section>
<h2 style="margin-top: 5px; margin-bottom: -5px;">
<h2 style="margin-top: 5px; margin-bottom: -5px;">
<a target="_blank" rel="noopener noreferrer" href="https://corsi.unibo.it/2cycle/AutomationEngineering/opportunities-multiple-degree-programme">
Almatong Project - Bachelor Studies
Almatong Project - Bachelor Studies
</a>
</h2>
<!-- Tongji -->
<section id="TJ">
<button class="accordion">
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">09/14 - 06/17</em>
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">09/14 - 06/17</em>
<b style="color: #ffffff; font-weight: 300; line-height: 1em; font-size: 1.35em; ">
Tongji Univeristy
</b>
@@ -205,7 +205,7 @@
<!-- Unibo -->
<section id="UniBo">
<button class="accordion">
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">09/13 - 12/16</em>
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">09/13 - 12/16</em>
<b style="color: #ffffff; font-weight: 300; line-height: 1em; font-size: 1.35em; ">
Alma Mater Studiorum - University of Bologna
</b>
@@ -221,18 +221,18 @@
</section>
<!-- High School Studies -->
<h2 style="margin-top: 5px; margin-bottom: -5px;">
<h2 style="margin-top: 5px; margin-bottom: -5px;">
High School Studies
</h2>
<!-- Roiti -->
<section id="Roiti">
<!--<h3 style="margin-top: -30px;">
<em style="color: #e44c65;"> 09/08 - 06/13 </em> Liceo scientifico “Antonio Roiti”
<em style="color: #e44c65;"> 09/08 - 06/13 </em> Liceo scientifico “Antonio Roiti”
</h3>
<p style="margin-top: -30px;"> Scientific High School Diploma (grade: 92/100) </p> -->
<button class="accordion">
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">09/08 - 06/13</em>
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">09/08 - 06/13</em>
<b style="color: #ffffff; font-weight: 300; line-height: 1em; font-size: 1.35em; ">
Liceo scientifico “Antonio Roiti”
</b>
@@ -255,7 +255,7 @@
</h3>
<p style="margin-top: -30px;"> Foreign Exchange Student Program </p> -->
<button class="accordion">
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">09/11 - 06/12</em>
<em style="color: #e44c65; font-weight: 300; line-height: 1em; font-size: 1.35em;">09/11 - 06/12</em>
<b style="color: #ffffff; font-weight: 300; line-height: 1em; font-size: 1.35em; ">
El Modena High School
</b>
@@ -263,7 +263,7 @@
Foreign Exchange Student Program
</button>
<div class="panel">
El Modena High School is a traditional 4 year public high school located in the El Modena neighborhood in the eastern portion of the city of Orange in Orange County, California.
El Modena High School is a traditional 4 year public high school located in the El Modena neighborhood in the eastern portion of the city of Orange in Orange County, California.
I studied there as a senior year stundent through a foreign exchange student program. <br>
The school website can be found <a target="_blank" rel="noopener noreferrer" href="https://www.elmodenahs.org/">here</a>.
</div>
@@ -271,12 +271,12 @@
</section>
<hr />
<!-- Skills -->
<section id="skills">
<h2 style="color: #e44c65;">Skills</h2>
<table> <!-- style="border: none; background-color: transparent"> -->
<tr>
<tr>
<td width = "15%">
<b>Languages</b>
</td>
@@ -285,7 +285,7 @@
</td>
</tr>
<tr>
<tr>
<td width = "15%">
<b>Digital</b>
</td>
@@ -298,7 +298,7 @@
</table>
</td>
</tr>
</table>
</section>
@@ -307,21 +307,21 @@
<h2 style="color: #e44c65;">Presentations, Proceedings, and Papers</h2>
<h3 style="margin-top: -20px;">Publications</h3>
<ul style="margin-top: -30px;">
<li>
Zielinska T., <b>Tartari M.</b> (2020)
<a target="_blank" rel="noopener noreferrer" href="https://doi.org/10.1007/978-3-030-58380-4_7"><em>Control System Design for Human Assisting Robot.</em></a>
<li>
Zielinska T., <b>Tartari M.</b> (2020)
<a target="_blank" rel="noopener noreferrer" href="https://doi.org/10.1007/978-3-030-58380-4_7"><em>Control System Design for Human Assisting Robot.</em></a>
In: ROMANSY 23 - Robot Design, Dynamics and Control. CISM International Centre for Mechanical Sciences (Courses and Lectures), vol 601. Springer, Cham.
</li>
</ul>
<!-- Other - ->
<h3 style="margin-top: -20px;">Other</h3> -->
<!-- Certifications -->
<h3 style="margin-top: -20px;">Press Releases</h3>
<ul style="margin-top: -30px;">
<li>
<b>Speaker</b> in (2020, August 6)
<li>
<b>Speaker</b> in (2020, August 6)
<a target="_blank" rel="noopener noreferrer" href="https://www.youtube.com/watch?v=Blat-e2Vyzk&feature=youtu.be"><em>Covid-19: L'impatto sui giovani talenti.</em></a>
Organized by: Talents in Motion, Rome, Italy.
</li>
@@ -338,8 +338,8 @@
<li> 2008 - 2014 · Scoutism and associated volunteering activities in Agesci. </li>
<li> 2011 - 2012 · Boy Scout of America (BSA)</li>
</ul>
<!-- Other - ->
<h3 style="margin-top: -20px;">Other</h3> -->
<!-- Certifications -->
@@ -347,14 +347,14 @@
<ul style="margin-top: -30px;">
<li> 2016 · Job Safety Courses Certification for Electronic <!--
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -->
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -->
and Electrical Sector
<!-- <br/> -->
</li>
<li> 2014 · Driving Licence: B Category</li>
<li> 2014 · CSR Ju-jitsu Italia Black Belt</li>
</ul>
<!-- Interests -->
@@ -394,4 +394,4 @@
<script src="assets/js/main.js"></script>
</body>
</html>
</html>
+251 -167
View File
@@ -1,160 +1,228 @@
<!DOCTYPE HTML>
<!DOCTYPE html>
<!--
Based on Landed by HTML5 UP @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html>
<head>
<title>Michele Tartari</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="assets/css/main.css" />
<link rel="icon" type="image/png" href="images/robot.png">
<noscript><link rel="stylesheet" href="assets/css/noscript.css" /></noscript>
</head>
<body class="is-preload landing">
<div id="page-wrapper">
<head>
<title>Michele Tartari</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="assets/css/main.css" />
<link rel="icon" type="image/png" href="images/robot.png" />
<noscript><link rel="stylesheet" href="assets/css/noscript.css" /></noscript>
</head>
<body class="is-preload landing">
<div id="page-wrapper">
<!-- Header -->
<header id="header">
<h1 id="logo"><a href="index.html">Michele Tartari</a></h1>
<nav id="nav">
<ul>
<li><a href="index.html">Home</a></li>
<li>
<a href="projects.html">Projects</a>
<ul>
<li><a href="projects.html#robotics">Robotics</a></li>
<li><a href="projects.html#engineering">Engineering</a></li>
<li><a href="projects.html#hobbies">Hobbies</a></li>
<!-- <li><a href="projects.html#other">Others</a></li> -->
</ul>
</li>
<li><a href="curriculum.html">Curriculim</a></li>
<li><a href="contacts.html" class="button primary">Contact me</a></li>
</ul>
</nav>
</header>
<!-- Header -->
<header id="header">
<h1 id="logo"><a href="index.html">Michele Tartari</a></h1>
<nav id="nav">
<ul>
<li><a href="index.html">Home</a></li>
<li>
<a href="projects.html">Projects</a>
<ul>
<li><a href="projects.html#robotics">Robotics</a></li>
<li><a href="projects.html#engineering">Engineering</a></li>
<li><a href="projects.html#hobbies">Hobbies</a></li>
<!-- <li><a href="projects.html#other">Others</a></li> -->
</ul>
</li>
<li><a href="curriculum.html">Curriculim</a></li>
<li><a href="contacts.html" class="button primary">Contact me</a></li>
</ul>
</nav>
</header>
<!-- Banner -->
<section id="banner">
<!-- Background photo by by Denys Nevozhai on Unsplash -->
<div class="content">
<header>
<!-- <h2>Michele Tartari</h2>
<!-- Banner -->
<section id="banner">
<!-- Background photo by by Denys Nevozhai on Unsplash -->
<div class="content">
<header>
<!-- <h2>Michele Tartari</h2>
<h3>Robotics Engineer</h3>-->
<h2>Robotics Engineer</h2>
<p>See some of my works below. Send a message to get in touch.</p>
<ul class="icons">
<li><a target="_blank" rel="noopener noreferrer" href="https://www.linkedin.com/in/m-tartari/" class="icon brands alt fa-linkedin-in"><span class="label">LinkedIn</span></a></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari" class="icon brands alt fa-github"><span class="label">GitHub</span></a></li>
<li><a target="_blank" rel="noopener noreferrer" href="mailto:michele.tartari@live.com" class="icon solid alt fa-envelope"><span class="label">Email</span></a></li>
</ul>
</header>
<span class="image"><img src="images/me.jpg" alt="" /></span>
</div>
<a href="#one" class="goto-next scrolly">Next</a>
</section>
<h2>Robotics Engineer</h2>
<p>See some of my works below. Send a message to get in touch.</p>
<ul class="icons">
<li>
<a target="_blank" rel="noopener noreferrer" href="https://www.linkedin.com/in/m-tartari/" class="icon brands alt fa-linkedin-in"
><span class="label">LinkedIn</span></a
>
</li>
<li>
<a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari" class="icon brands alt fa-github"
><span class="label">GitHub</span></a
>
</li>
<li>
<a target="_blank" rel="noopener noreferrer" href="mailto:michele.tartari@live.com" class="icon solid alt fa-envelope"
><span class="label">Email</span></a
>
</li>
</ul>
</header>
<span class="image"><img src="images/me.jpg" alt="" /></span>
</div>
<a href="#one" class="goto-next scrolly">Next</a>
</section>
<!-- One -->
<section id="one" class="spotlight style1 bottom">
<span class="image fit main"><img src="images/thesis.jpg" alt="" /></span>
<div class="content">
<div class="container">
<div class="row">
<div class="col-4 col-12-medium">
<header>
<h2>Voice Controlled Mobile Robot for Indoor Applications</h2>
<p>
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://drive.google.com/drive/folders/1Y7TJJN8z1llCkSTnpVHMELD3PqsX8VF9?usp=sharing" class="icon alt far fa-file-pdf"><span class="label">Slideshow</span></a></i>
<i class="fa-stack">
<i class="fa icon brands alt fa-github fa-stack-1x"></i>
<i class="fa alt fa-slash fa-stack-1x "></i>
</i>
Master Thesis</p>
</header>
</div>
<div class="col-8 col-12-medium">
<p>This thesis proposes a design for a small mobile robot controlled by voice. Firstly a preliminary analysis of the state of art of human-robot interaction has been conducted.
Then, an analysis of the equipment selected took place, and, later, appropriate methodologies for voice recognition and user detection have been evaluated for this specific case.
Finally, an overview of the complete software architecture of the system was given with three possible structures and their comparison.
The results obtained show both the feasibility of using low power boards and some of their limitations.
<em>(research publication available <a target="_blank" rel="noopener noreferrer" href="https://doi.org/10.1007/978-3-030-58380-4_7"><em>here</em></a>).</em>
</p>
</div>
</div>
</div>
</div>
<a href="#two" class="goto-next scrolly">Next</a>
</section>
<!-- One -->
<section id="one" class="spotlight style1 bottom">
<span class="image fit main"><img src="images/thesis.jpg" alt="" /></span>
<div class="content">
<div class="container">
<div class="row">
<div class="col-4 col-12-medium">
<header>
<h2>Voice Controlled Mobile Robot for Indoor Applications</h2>
<p>
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://drive.google.com/drive/folders/1Y7TJJN8z1llCkSTnpVHMELD3PqsX8VF9?usp=sharing"
class="icon alt far fa-file-pdf"
><span class="label">Slideshow</span></a
></i
>
<i class="fa-stack">
<i class="fa icon brands alt fa-github fa-stack-1x"></i>
<i class="fa alt fa-slash fa-stack-1x"></i>
</i>
Master Thesis
</p>
</header>
</div>
<div class="col-8 col-12-medium">
<p>
This thesis proposes a design for a small mobile robot controlled by voice. Firstly a preliminary analysis of the state of art of human-robot
interaction has been conducted. Then, an analysis of the equipment selected took place, and, later, appropriate methodologies for voice
recognition and user detection have been evaluated for this specific case. Finally, an overview of the complete software architecture of the
system was given with three possible structures and their comparison. The results obtained show both the feasibility of using low power boards
and some of their limitations.
<em
>(research publication available
<a target="_blank" rel="noopener noreferrer" href="https://doi.org/10.1007/978-3-030-58380-4_7"><em>here</em></a
>).</em
>
</p>
</div>
</div>
</div>
</div>
<a href="#two" class="goto-next scrolly">Next</a>
</section>
<!-- Two -->
<section id="two" class="spotlight style2 right">
<span class="image fit main"><img src="images/recharge_car.png" alt="" /></span>
<div class="content">
<header>
<h2>Recharging Electric Cars with a Mobile Robot</h2>
<p>
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://drive.google.com/file/d/1wBfvAzy9N8uChNxNj9Kd_hcvI0Qq3uQj/view?usp=sharing" class="icon alt far fa-file-pdf"><span class="label">Slideshow</span></a></i>
<i class="fa-stack">
<i class="fa icon brands alt fa-github fa-stack-1x"></i>
<i class="fa alt fa-slash fa-stack-1x "></i>
</i>
</p>
</header>
<p>
The aim of this project was to prove the possibility to design an autonomous mobile robot whose task was to recharge electric cars in a parking lot. This was done by the means of a simulation, using the Gazebo simulator and a ROS based software architecture to control both the cars and the mobile robot.
We also simulated a world with a gas station and a small parking lot, consisting of four parking spots, to give an idea of the possible environment in which the robot could be used.
</p>
<!-- <ul class="actions">
<!-- Two -->
<section id="two" class="spotlight style2 right">
<span class="image fit main"><img src="images/recharge_car.png" alt="" /></span>
<div class="content">
<header>
<h2>Recharging Electric Cars with a Mobile Robot</h2>
<p>
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://drive.google.com/file/d/1wBfvAzy9N8uChNxNj9Kd_hcvI0Qq3uQj/view?usp=sharing"
class="icon alt far fa-file-pdf"
><span class="label">Slideshow</span></a
></i
>
<i class="fa-stack">
<i class="fa icon brands alt fa-github fa-stack-1x"></i>
<i class="fa alt fa-slash fa-stack-1x"></i>
</i>
</p>
</header>
<p>
The aim of this project was to prove the possibility to design an autonomous mobile robot whose task was to recharge electric cars in a parking lot.
This was done by the means of a simulation, using the Gazebo simulator and a ROS based software architecture to control both the cars and the mobile
robot. We also simulated a world with a gas station and a small parking lot, consisting of four parking spots, to give an idea of the possible
environment in which the robot could be used.
</p>
<!-- <ul class="actions">
<li><a href="#" class="button">Learn More</a></li>
</ul> -->
</div>
<a href="#three" class="goto-next scrolly">Next</a>
</section>
</div>
<a href="#three" class="goto-next scrolly">Next</a>
</section>
<!-- Three -->
<section id="three" class="spotlight style3 left">
<span class="image fit main bottom"><img src="images/self_loc.jpg" alt="" /></span>
<div class="content">
<header>
<h2>Mobile Robot Self-Localization</h2>
<p>
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://drive.google.com/file/d/1BgPj-fgtYDDEsFHmDk2fGVm7DCPFWEeN/view?usp=sharing" class="icon alt far fa-file-pdf"><span class="label">Slideshow</span></a></i>
&nbsp;&nbsp;
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/ekf_matlab" class="icon brands alt fa-github"><span class="label">GitHub</span></a></i>
</p>
</header>
<p>
For this project we worked with the data retrieved from a differential drive robot for its localization in a certain area by the means of the Extended Kalman filter (EKF).
A first step included the development of a Kalman Filter for the self-localization. This has been then improved by implenting an Extended Kalman Filter that allowed to reduce.
Finally a comparison in performance of the two has been done.
</p>
</div>
<a href="#four" class="goto-next scrolly">Next</a>
</section>
<!-- Three -->
<section id="three" class="spotlight style3 left">
<span class="image fit main bottom"><img src="images/self_loc.jpg" alt="" /></span>
<div class="content">
<header>
<h2>Mobile Robot Self-Localization</h2>
<p>
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://drive.google.com/file/d/1BgPj-fgtYDDEsFHmDk2fGVm7DCPFWEeN/view?usp=sharing"
class="icon alt far fa-file-pdf"
><span class="label">Slideshow</span></a
></i
>
&nbsp;&nbsp;
<i class="icon"
><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/ekf_matlab" class="icon brands alt fa-github"
><span class="label">GitHub</span></a
></i
>
</p>
</header>
<p>
For this project we worked with the data retrieved from a differential drive robot for its localization in a certain area by the means of the
Extended Kalman filter (EKF). A first step included the development of a Kalman Filter for the self-localization. This has been then improved by
implenting an Extended Kalman Filter that allowed to reduce. Finally a comparison in performance of the two has been done.
</p>
</div>
<a href="#four" class="goto-next scrolly">Next</a>
</section>
<!-- Four -->
<section id="four" class="spotlight style2 right">
<span class="image fit main"><img src="images/PVTOL.jpg" alt="" /></span>
<div class="content">
<header>
<h2>Control of a Nonlinear System (PVTOL aircraft)</h2>
<p>
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://drive.google.com/file/d/1TE3TWkXZjVq8OuBkLl497c_MQSs3MiLQ/view?usp=sharing" class="icon alt far fa-file-pdf"><span class="label">Slideshow</span></a></i>
&nbsp;&nbsp;
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/modelling_and_control_of_manipulators" class="icon brands alt fa-github"><span class="label">GitHub</span></a></i>
</p>
</header>
<p>The aim of this project was to implement a control law for a nonlinear system (based on the model of a PVTOL aircraft), using the proper approach depending on the range of settings given in the four subsequent tasks. This shows the various theories and which is to be preferred over to the others, according to the situation to deal with.</p>
<!-- <ul class="actions">
<!-- Four -->
<section id="four" class="spotlight style2 right">
<span class="image fit main"><img src="images/PVTOL.jpg" alt="" /></span>
<div class="content">
<header>
<h2>Control of a Nonlinear System (PVTOL aircraft)</h2>
<p>
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://drive.google.com/file/d/1TE3TWkXZjVq8OuBkLl497c_MQSs3MiLQ/view?usp=sharing"
class="icon alt far fa-file-pdf"
><span class="label">Slideshow</span></a
></i
>
&nbsp;&nbsp;
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://github.com/m-tartari/modelling_and_control_of_manipulators"
class="icon brands alt fa-github"
><span class="label">GitHub</span></a
></i
>
</p>
</header>
<p>
The aim of this project was to implement a control law for a nonlinear system (based on the model of a PVTOL aircraft), using the proper approach
depending on the range of settings given in the four subsequent tasks. This shows the various theories and which is to be preferred over to the
others, according to the situation to deal with.
</p>
<!-- <ul class="actions">
<li><a href="#" class="button">Learn More</a></li>
</ul> -->
</div>
</section>
</div>
</section>
<!--
<!--
<section id="four" class="wrapper style1 special fade-up">
<div class="container">
<header class="major">
@@ -203,7 +271,7 @@
</div>
</section> -->
<!-- Five - ->
<!-- Five - ->
<section id="five" class="wrapper style2 special fade">
<div class="container">
<header>
@@ -219,29 +287,45 @@
</div>
</section> -->
<!-- Footer -->
<footer id="footer">
<ul class="icons">
<li><a target="_blank" rel="noopener noreferrer" href="https://www.linkedin.com/in/m-tartari/" class="icon brands alt fa-linkedin-in"><span class="label">LinkedIn</span></a></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari" class="icon brands alt fa-github"><span class="label">GitHub</span></a></li>
<li><a target="_blank" rel="noopener noreferrer" href="mailto:michele.tartari@live.com" class="icon solid alt fa-envelope"><span class="label">Email</span></a></li>
</ul>
<ul class="copyright">
<li>&copy; 2020-<script>document.write( new Date().getFullYear() );</script> Michele Tartari. All rights reserved.</li>
</ul>
</footer>
<!-- Footer -->
<footer id="footer">
<ul class="icons">
<li>
<a target="_blank" rel="noopener noreferrer" href="https://www.linkedin.com/in/m-tartari/" class="icon brands alt fa-linkedin-in"
><span class="label">LinkedIn</span></a
>
</li>
<li>
<a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari" class="icon brands alt fa-github"
><span class="label">GitHub</span></a
>
</li>
<li>
<a target="_blank" rel="noopener noreferrer" href="mailto:michele.tartari@live.com" class="icon solid alt fa-envelope"
><span class="label">Email</span></a
>
</li>
</ul>
<ul class="copyright">
<li>
&copy; 2020-
<script>
document.write(new Date().getFullYear());
</script>
Michele Tartari. All rights reserved.
</li>
</ul>
</footer>
</div>
</div>
<!-- Scripts -->
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/jquery.scrolly.min.js"></script>
<script src="assets/js/jquery.dropotron.min.js"></script>
<script src="assets/js/jquery.scrollex.min.js"></script>
<script src="assets/js/browser.min.js"></script>
<script src="assets/js/breakpoints.min.js"></script>
<script src="assets/js/util.js"></script>
<script src="assets/js/main.js"></script>
</body>
</html>
<!-- Scripts -->
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/jquery.scrolly.min.js"></script>
<script src="assets/js/jquery.dropotron.min.js"></script>
<script src="assets/js/jquery.scrollex.min.js"></script>
<script src="assets/js/browser.min.js"></script>
<script src="assets/js/breakpoints.min.js"></script>
<script src="assets/js/util.js"></script>
<script src="assets/js/main.js"></script>
</body>
</html>
+415 -267
View File
@@ -1,293 +1,441 @@
<!DOCTYPE HTML>
<!DOCTYPE html>
<html>
<head>
<title>Michele Tartari - Projects</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="assets/css/main.css" />
<link rel="icon" type="image/png" href="images/robot.png">
<noscript><link rel="stylesheet" href="assets/css/noscript.css" /></noscript>
</head>
<body class="is-preload">
<div id="page-wrapper">
<head>
<title>Michele Tartari - Projects</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="assets/css/main.css" />
<link rel="icon" type="image/png" href="images/robot.png" />
<noscript><link rel="stylesheet" href="assets/css/noscript.css" /></noscript>
</head>
<body class="is-preload">
<div id="page-wrapper">
<!-- Header -->
<header id="header">
<h1 id="logo"><a href="index.html">Michele Tartari</a></h1>
<nav id="nav">
<ul>
<li><a href="index.html">Home</a></li>
<li>
<a href="projects.html">Projects</a>
<ul>
<li><a href="projects.html#robotics">Robotics</a></li>
<li><a href="projects.html#engineering">Engineering</a></li>
<li><a href="projects.html#hobbies">Hobbies</a></li>
<!-- <li><a href="projects.html#other">Others</a></li> -->
</ul>
</li>
<li><a href="curriculum.html">Curriculim</a></li>
<li><a href="contacts.html" class="button primary">Contact me</a></li>
</ul>
</nav>
</header>
<!-- Header -->
<header id="header">
<h1 id="logo"><a href="index.html">Michele Tartari</a></h1>
<nav id="nav">
<ul>
<li><a href="index.html">Home</a></li>
<li>
<a href="projects.html">Projects</a>
<ul>
<li><a href="projects.html#robotics">Robotics</a></li>
<li><a href="projects.html#engineering">Engineering</a></li>
<li><a href="projects.html#hobbies">Hobbies</a></li>
<!-- <li><a href="projects.html#other">Others</a></li> -->
</ul>
</li>
<li><a href="curriculum.html">Curriculim</a></li>
<li><a href="contacts.html" class="button primary">Contact me</a></li>
</ul>
</nav>
</header>
<!-- Main -->
<div id="main" class="wrapper style1">
<div class="container">
<header class="major">
<h2>Projects</h2> <!--
<!-- Main -->
<div id="main" class="wrapper style1">
<div class="container">
<header class="major">
<h2>Projects</h2>
<!--
<p>Ipsum dolor feugiat aliquam tempus sed magna lorem consequat accumsan</p> -->
</header>
<!-- Content -->
<section id="robotics">
<h2 style="color: #e44c65;">Robotics</h2>
<p style="margin-top: -20px;">Here there is a collection of all the projects that are strictly related to the design, development and functioning of robots:</p>
</header>
<button class="accordion"><b>Voice Controlled Mobile Robot for Indoor Applications</b></button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://drive.google.com/drive/folders/1Y7TJJN8z1llCkSTnpVHMELD3PqsX8VF9?usp=sharing" class="icon alt far fa-file-pdf"><span class="label">Slideshow</span></a></i>
<i class="fa-stack">
<i class="fa icon brands alt fa-github fa-stack-1x"></i>
<i class="fa alt fa-slash fa-stack-1x "></i>
</i>
Master Thesis
<p>This thesis proposes a design from scratch for a small mobile robot controlled by voice using ROS.
The results obtained show both the feasibility of using low power boards and some of their limitations.
(Research publication in preparation)
</p>
</div>
<!-- Content -->
<section id="robotics">
<h2 style="color: #e44c65">Robotics</h2>
<p style="margin-top: -20px">
Here there is a collection of all the projects that are strictly related to the design, development and functioning of robots:
</p>
<!-- Recharge Electric Car -->
<button class="accordion"><b> Recharging Electric Cars with a Mobile Robot </b></button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://drive.google.com/file/d/1wBfvAzy9N8uChNxNj9Kd_hcvI0Qq3uQj/view?usp=sharing" class="icon alt far fa-file-pdf"><span class="label">Slideshow</span></a></i>
<i class="fa-stack">
<i class="fa icon brands alt fa-github fa-stack-1x"></i>
<i class="fa alt fa-slash fa-stack-1x "></i>
</i>
<p>
The aim of this project was to prove the possibility to design an autonomous mobile robot whose task was to recharge electric cars in a parking lot.
This was done in simulation, using the Gazebo and ROS.
</p>
</div>
<button class="accordion">
<b>Voice Controlled Mobile Robot for Indoor Applications</b>
</button>
<div class="panel">
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://drive.google.com/drive/folders/1Y7TJJN8z1llCkSTnpVHMELD3PqsX8VF9?usp=sharing"
class="icon alt far fa-file-pdf"
><span class="label">Slideshow</span></a
></i
>
<i class="fa-stack">
<i class="fa icon brands alt fa-github fa-stack-1x"></i>
<i class="fa alt fa-slash fa-stack-1x"></i>
</i>
Master Thesis
<p>
This thesis proposes a design from scratch for a small mobile robot controlled by voice using ROS. The results obtained show both the
feasibility of using low power boards and some of their limitations. (Research publication in preparation)
</p>
</div>
<!-- EKF Matlab -->
<button class="accordion"><b>
Mobile Robot Self-Localization
</b></button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://drive.google.com/file/d/1BgPj-fgtYDDEsFHmDk2fGVm7DCPFWEeN/view?usp=sharing" class="icon alt far fa-file-pdf"><span class="label">Slideshow</span></a></i>
&nbsp;&nbsp;
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/ekf_matlab" class="icon brands alt fa-github"><span class="label">GitHub</span></a></i>
<p>
For this project we worked using Matlab on data retrieved from a differential drive robot for its localization in a certain area by the means of the Extended Kalman filter (EKF).
</p>
</div>
<!-- Recharge Electric Car -->
<button class="accordion"><b> Recharging Electric Cars with a Mobile Robot </b></button>
<div class="panel">
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://drive.google.com/file/d/1wBfvAzy9N8uChNxNj9Kd_hcvI0Qq3uQj/view?usp=sharing"
class="icon alt far fa-file-pdf"
><span class="label">Slideshow</span></a
></i
>
<i class="fa-stack">
<i class="fa icon brands alt fa-github fa-stack-1x"></i>
<i class="fa alt fa-slash fa-stack-1x"></i>
</i>
<p>
The aim of this project was to prove the possibility to design an autonomous mobile robot whose task was to recharge electric cars in a parking
lot. This was done in simulation, using the Gazebo and ROS.
</p>
</div>
<!-- Biorobotics -->
<button class="accordion"><b> Onychophora-Inspired Firefighting Robot</b></button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://drive.google.com/open?id=1a_ZvgaQjzvedeo296zrDpdvNL_VJDWTX" class="icon alt far fa-file-pdf"><span class="label">Slideshow</span></a></i>
&nbsp;&nbsp;
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/firebot" class="icon brands alt fa-github"><span class="label">GitHub</span></a></i>
<p>
This project proposes a conceptual design for a firefighting robot suitable for indoor environments by taking inspiration from the biological world.
</p>
</div>
<!-- EKF Matlab -->
<button class="accordion"><b> Mobile Robot Self-Localization </b></button>
<div class="panel">
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://drive.google.com/file/d/1BgPj-fgtYDDEsFHmDk2fGVm7DCPFWEeN/view?usp=sharing"
class="icon alt far fa-file-pdf"
><span class="label">Slideshow</span></a
></i
>
&nbsp;&nbsp;
<i class="icon"
><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/ekf_matlab" class="icon brands alt fa-github"
><span class="label">GitHub</span></a
></i
>
<p>
For this project we worked using Matlab on data retrieved from a differential drive robot for its localization in a certain area by the means of
the Extended Kalman filter (EKF).
</p>
</div>
<!-- DESRO -->
<button class="accordion"><b> 3RRR Planar Parallel Manipulator </b></button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://drive.google.com/open?id=11lCJM3EjVsua379BKD5NcEDHQLL4jdQn" class="icon alt far fa-file-pdf"><span class="label">Slideshow</span></a></i>
&nbsp;&nbsp;
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/3RRR_planar_parallel_manipulator" class="icon brands alt fa-github"><span class="label">GitHub</span></a></i>
<p>
This project concerns the design and optimization of a 3RRR planar parallel manipulator using MATLAB and CATIA
</p>
</div>
<!-- Biorobotics -->
<button class="accordion"><b> Onychophora-Inspired Firefighting Robot</b></button>
<div class="panel">
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://drive.google.com/open?id=1a_ZvgaQjzvedeo296zrDpdvNL_VJDWTX"
class="icon alt far fa-file-pdf"
><span class="label">Slideshow</span></a
></i
>
&nbsp;&nbsp;
<i class="icon"
><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/firebot" class="icon brands alt fa-github"
><span class="label">GitHub</span></a
></i
>
<p>
This project proposes a conceptual design for a firefighting robot suitable for indoor environments by taking inspiration from the biological
world.
</p>
</div>
<!-- OPTEC -->
<button class="accordion"><b> Point-to-Point Trajectory Optimization </b></button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://drive.google.com/open?id=11m7r7fLda_jpDEZ-9qAWvnfRN2kLkhlA" class="icon alt far fa-file-pdf"><span class="label">Slideshow</span></a></i>
&nbsp;&nbsp;
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/simple_trajectory_optimization" class="icon brands alt fa-github"><span class="label">GitHub</span></a></i>
<p>
For this project we worked to find the optimal trajectory for a simple model of a robot performing point-to-point navigation in a room with some obstacles using MATLAB.
</p>
</div>
<!-- DESRO -->
<button class="accordion"><b> 3RRR Planar Parallel Manipulator </b></button>
<div class="panel">
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://drive.google.com/open?id=11lCJM3EjVsua379BKD5NcEDHQLL4jdQn"
class="icon alt far fa-file-pdf"
><span class="label">Slideshow</span></a
></i
>
&nbsp;&nbsp;
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://github.com/m-tartari/3RRR_planar_parallel_manipulator"
class="icon brands alt fa-github"
><span class="label">GitHub</span></a
></i
>
<p>This project concerns the design and optimization of a 3RRR planar parallel manipulator using MATLAB and CATIA</p>
</div>
<!-- SOFAR -->
<button class="accordion"><b> Simple Swarm </b></button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/simple_swarm" class="icon brands alt fa-github"><span class="label">GitHub</span></a></i>
&nbsp;&nbsp;
<p>
Simple simulation and visualization of swarms of differential drive robots following a leader. Developed using C++ and ROS.
</p>
</div>
<!-- OPTEC -->
<button class="accordion"><b> Point-to-Point Trajectory Optimization </b></button>
<div class="panel">
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://drive.google.com/open?id=11m7r7fLda_jpDEZ-9qAWvnfRN2kLkhlA"
class="icon alt far fa-file-pdf"
><span class="label">Slideshow</span></a
></i
>
&nbsp;&nbsp;
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://github.com/m-tartari/simple_trajectory_optimization"
class="icon brands alt fa-github"
><span class="label">GitHub</span></a
></i
>
<p>
For this project we worked to find the optimal trajectory for a simple model of a robot performing point-to-point navigation in a room with some
obstacles using MATLAB.
</p>
</div>
<!-- ARPRO-IRP -->
<button class="accordion"><b> Industrial Robot Programming </b></button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/industrial_robot_programming" class="icon brands alt fa-github"><span class="label">GitHub</span></a></i>
<p>
Industrial Robot Programming using VAL II and V+ tested on a PUMA and a RX90 robots.
</p>
</div>
<!-- SOFAR -->
<button class="accordion"><b> Simple Swarm </b></button>
<div class="panel">
<i class="icon"
><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/simple_swarm" class="icon brands alt fa-github"
><span class="label">GitHub</span></a
></i
>
&nbsp;&nbsp;
<p>Simple simulation and visualization of swarms of differential drive robots following a leader. Developed using C++ and ROS.</p>
</div>
<!-- MOCOM -->
<button class="accordion"><b> Modelling and Control of Manipulators </b></button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/modelling_and_control_of_manipulators" class="icon brands alt fa-github"><span class="label">GitHub</span></a></i>
<p>
This contains several projects regarding modelling and control of various manipulators using MATLAB, Simulink and ADAMS.
</p>
</div>
<!-- ARPRO-IRP -->
<button class="accordion"><b> Industrial Robot Programming </b></button>
<div class="panel">
<i class="icon"
><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/industrial_robot_programming" class="icon brands alt fa-github"
><span class="label">GitHub</span></a
></i
>
<p>Industrial Robot Programming using VAL II and V+ tested on a PUMA and a RX90 robots.</p>
</div>
</section>
<hr />
<!-- MOCOM -->
<button class="accordion"><b> Modelling and Control of Manipulators </b></button>
<div class="panel">
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://github.com/m-tartari/modelling_and_control_of_manipulators"
class="icon brands alt fa-github"
><span class="label">GitHub</span></a
></i
>
<p>This contains several projects regarding modelling and control of various manipulators using MATLAB, Simulink and ADAMS.</p>
</div>
</section>
<hr />
<!-- Engineering Projects -->
<section id="engineering">
<h2 style="color: #e44c65;">Engineering</h2>
<p style="margin-top: -20px;">Here there is a collection of all the projects that are related to all the other fields of engineering:</p>
<!-- Engineering Projects -->
<section id="engineering">
<h2 style="color: #e44c65">Engineering</h2>
<p style="margin-top: -20px">Here there is a collection of all the projects that are related to all the other fields of engineering:</p>
<!-- Tongji Theis -->
<button class="accordion">
<b>
Solar Panel Fault Detection Method Based on Infrared Image Processing
</b>
</button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://drive.google.com/file/d/0B1z42QMR-0UtYzBYSVhRV3ZPWk0/view?usp=sharing" class="icon alt far fa-file-pdf"><span class="label">Slideshow</span></a></i>
<i class="fa-stack">
<i class="fa icon brands alt fa-github fa-stack-1x"></i>
<i class="fa alt fa-slash fa-stack-1x "></i>
</i>
Bachelor Thesis
<p>
My Chinese bachelor thesis that proposes a method to detect malfunctioning solar panels by processing thermal images using MATLAB.
</p>
</div>
<!-- Tongji Theis -->
<button class="accordion">
<b> Solar Panel Fault Detection Method Based on Infrared Image Processing </b>
</button>
<div class="panel">
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://drive.google.com/file/d/0B1z42QMR-0UtYzBYSVhRV3ZPWk0/view?usp=sharing"
class="icon alt far fa-file-pdf"
><span class="label">Slideshow</span></a
></i
>
<i class="fa-stack">
<i class="fa icon brands alt fa-github fa-stack-1x"></i>
<i class="fa alt fa-slash fa-stack-1x"></i>
</i>
Bachelor Thesis
<p>My Chinese bachelor thesis that proposes a method to detect malfunctioning solar panels by processing thermal images using MATLAB.</p>
</div>
<!-- Unibo Thesis -->
<button class="accordion">
<b>
Design of a Testing Machine for Flexure Hinges
</b>
</button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://drive.google.com/file/d/0B1z42QMR-0UtSkxRVzJPTk1IX0k/view?usp=sharing" class="icon alt far fa-file-pdf"><span class="label">Slideshow</span></a></i>
<i class="fa-stack">
<i class="fa icon brands alt fa-github fa-stack-1x"></i>
<i class="fa alt fa-slash fa-stack-1x "></i>
</i>
Bachelor Thesis
<p>
My Italian bachelor thesis that proposes a design from scratch of a machine for the empirical characterization of flexure hinges.
</p>
</div>
<!-- Unibo Thesis -->
<button class="accordion">
<b> Design of a Testing Machine for Flexure Hinges </b>
</button>
<div class="panel">
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://drive.google.com/file/d/0B1z42QMR-0UtSkxRVzJPTk1IX0k/view?usp=sharing"
class="icon alt far fa-file-pdf"
><span class="label">Slideshow</span></a
></i
>
<i class="fa-stack">
<i class="fa icon brands alt fa-github fa-stack-1x"></i>
<i class="fa alt fa-slash fa-stack-1x"></i>
</i>
Bachelor Thesis
<p>My Italian bachelor thesis that proposes a design from scratch of a machine for the empirical characterization of flexure hinges.</p>
</div>
<!-- NOLCO -->
<button class="accordion"><b> Control of a Nonlinear System </b></button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://drive.google.com/file/d/1TE3TWkXZjVq8OuBkLl497c_MQSs3MiLQ/view?usp=sharing" class="icon alt far fa-file-pdf"><span class="label">Slideshow</span></a></i>
&nbsp;&nbsp;
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/modelling_and_control_of_manipulators" class="icon brands alt fa-github"><span class="label">GitHub</span></a></i>
<p>
The aim of this project was to implement control laws for a nonlinear system (based on the model of a PVTOL aircraft).
</p>
</div>
<!-- NOLCO -->
<button class="accordion"><b> Control of a Nonlinear System </b></button>
<div class="panel">
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://drive.google.com/file/d/1TE3TWkXZjVq8OuBkLl497c_MQSs3MiLQ/view?usp=sharing"
class="icon alt far fa-file-pdf"
><span class="label">Slideshow</span></a
></i
>
&nbsp;&nbsp;
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://github.com/m-tartari/modelling_and_control_of_manipulators"
class="icon brands alt fa-github"
><span class="label">GitHub</span></a
></i
>
<p>The aim of this project was to implement control laws for a nonlinear system (based on the model of a PVTOL aircraft).</p>
</div>
<!-- Multi-body -->
<button class="accordion"><b> Multi-Body System’s Kinematic Analysis </b></button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://drive.google.com/file/d/15yrDU2blkb34Jy2GXkCIe4qNmDRmp31w/view?usp=sharing" class="icon alt far fa-file-pdf"><span class="label">Slideshow</span></a></i>
&nbsp;&nbsp;
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/multi-body-kinematics" class="icon brands alt fa-github"><span class="label">GitHub</span></a></i>
<p>
For this project the kinematic analysis has been performed upon agiven mechanism using MATLAB.
It has been then validated by comparing it to the ADAMS model of the same mechanism.
</p>
</div>
<!-- Multi-body -->
<button class="accordion"><b> Multi-Body System’s Kinematic Analysis </b></button>
<div class="panel">
<i class="icon"
><a
target="_blank"
rel="noopener noreferrer"
href="https://drive.google.com/file/d/15yrDU2blkb34Jy2GXkCIe4qNmDRmp31w/view?usp=sharing"
class="icon alt far fa-file-pdf"
><span class="label">Slideshow</span></a
></i
>
&nbsp;&nbsp;
<i class="icon"
><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/multi-body-kinematics" class="icon brands alt fa-github"
><span class="label">GitHub</span></a
></i
>
<p>
For this project the kinematic analysis has been performed upon agiven mechanism using MATLAB. It has been then validated by comparing it to the
ADAMS model of the same mechanism.
</p>
</div>
<!-- SIPRO -->
<button class="accordion"><b> Signal Processing </b></button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/signal_processing" class="icon brands alt fa-github"><span class="label">GitHub</span></a></i>
&nbsp;&nbsp;
<p>
Several Signal processing projects developed using MATLAB.
</p>
</div>
<!-- SIPRO -->
<button class="accordion"><b> Signal Processing </b></button>
<div class="panel">
<i class="icon"
><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/signal_processing" class="icon brands alt fa-github"
><span class="label">GitHub</span></a
></i
>
&nbsp;&nbsp;
<p>Several Signal processing projects developed using MATLAB.</p>
</div>
<!-- RETSY -->
<button class="accordion"><b> Real Time Systems </b></button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/real_time_systems" class="icon brands alt fa-github"><span class="label">GitHub</span></a></i>
&nbsp;&nbsp;
<p>
Several real-time systems' projects developed using C++ and OIL, and run using Trampoline RTOS on a Teensy board.
</p>
</div>
</section>
<hr />
<!-- RETSY -->
<button class="accordion"><b> Real Time Systems </b></button>
<div class="panel">
<i class="icon"
><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/real_time_systems" class="icon brands alt fa-github"
><span class="label">GitHub</span></a
></i
>
&nbsp;&nbsp;
<p>Several real-time systems' projects developed using C++ and OIL, and run using Trampoline RTOS on a Teensy board.</p>
</div>
</section>
<hr />
<!-- Hobbies -->
<section id="hobbies">
<h2 style="color: #e44c65;">Hobbies</h2>
<p style="margin-top: -20px;">Here there is a collection of projects related to things I do for fun:</p>
<!-- Medieval Furniture -->
<button class="accordion"><b>Medieval Furniture</b></button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/medieval_furniture" class="icon brands alt fa-github"><span class="label">GitHub</span></a></i>
<p>
A collection of pdf and CAD models to create late XIV century furniture and medieval camp equipment. These objects are being realized by <a target="_blank" rel="noopener noreferrer" href="http://www.compagniadarmedelsantoluca.it/">Compagnia d'Arme del Santo Luca</a>.
</p>
</div>
<!-- Hobbies -->
<section id="hobbies">
<h2 style="color: #e44c65">Hobbies</h2>
<p style="margin-top: -20px">Here there is a collection of projects related to things I do for fun:</p>
<!-- Pinterest -->
<button class="accordion"><b>Pinterest Pinner</b></button>
<div class="panel">
<i class="icon"><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/pinterest_pinner" class="icon brands alt fa-github"><span class="label">GitHub</span></a></i>
<p>
Publishes all photos from a <a target="_blank" rel="noopener noreferrer" href="http://www.compagniadarmedelsantoluca.it/">selected website</a> into a target Pinterest board using Python3 and the Pinterest API.
</p>
</div>
</section>
<hr />
<!-- Medieval Furniture -->
<button class="accordion"><b>Medieval Furniture</b></button>
<div class="panel">
<i class="icon"
><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/medieval_furniture" class="icon brands alt fa-github"
><span class="label">GitHub</span></a
></i
>
<p>
A collection of pdf and CAD models to create late XIV century furniture and medieval camp equipment. These objects are being realized by
<a target="_blank" rel="noopener noreferrer" href="http://www.compagniadarmedelsantoluca.it/">Compagnia d'Arme del Santo Luca</a>.
</p>
</div>
</div>
</div>
<!-- Pinterest -->
<button class="accordion"><b>Pinterest Pinner</b></button>
<div class="panel">
<i class="icon"
><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari/pinterest_pinner" class="icon brands alt fa-github"
><span class="label">GitHub</span></a
></i
>
<p>
Publishes all photos from a
<a target="_blank" rel="noopener noreferrer" href="http://www.compagniadarmedelsantoluca.it/">selected website</a>
into a target Pinterest board using Python3 and the Pinterest API.
</p>
</div>
</section>
<hr />
</div>
</div>
<!-- Footer -->
<footer id="footer">
<ul class="icons">
<li><a target="_blank" rel="noopener noreferrer" href="https://www.linkedin.com/in/m-tartari/" class="icon brands alt fa-linkedin-in"><span class="label">LinkedIn</span></a></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari" class="icon brands alt fa-github"><span class="label">GitHub</span></a></li>
<li><a target="_blank" rel="noopener noreferrer" href="mailto:michele.tartari@live.com" class="icon solid alt fa-envelope"><span class="label">Email</span></a></li>
</ul>
<ul class="copyright">
<li>&copy; 2020-<script>document.write( new Date().getFullYear() );</script> Michele Tartari. All rights reserved.</li>
</ul>
</footer>
</div>
<!-- Footer -->
<footer id="footer">
<ul class="icons">
<li>
<a target="_blank" rel="noopener noreferrer" href="https://www.linkedin.com/in/m-tartari/" class="icon brands alt fa-linkedin-in"
><span class="label">LinkedIn</span></a
>
</li>
<li>
<a target="_blank" rel="noopener noreferrer" href="https://github.com/m-tartari" class="icon brands alt fa-github"
><span class="label">GitHub</span></a
>
</li>
<li>
<a target="_blank" rel="noopener noreferrer" href="mailto:michele.tartari@live.com" class="icon solid alt fa-envelope"
><span class="label">Email</span></a
>
</li>
</ul>
<ul class="copyright">
<li>
&copy; 2020-
<script>
document.write(new Date().getFullYear());
</script>
Michele Tartari. All rights reserved.
</li>
</ul>
</footer>
</div>
<!-- Scripts -->
<script src="assets/js/accordion.js"></script>
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/jquery.scrolly.min.js"></script>
<script src="assets/js/jquery.dropotron.min.js"></script>
<script src="assets/js/jquery.scrollex.min.js"></script>
<script src="assets/js/browser.min.js"></script>
<script src="assets/js/breakpoints.min.js"></script>
<script src="assets/js/util.js"></script>
<script src="assets/js/main.js"></script>
</body>
<!-- Scripts -->
<script src="assets/js/accordion.js"></script>
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/jquery.scrolly.min.js"></script>
<script src="assets/js/jquery.dropotron.min.js"></script>
<script src="assets/js/jquery.scrollex.min.js"></script>
<script src="assets/js/browser.min.js"></script>
<script src="assets/js/breakpoints.min.js"></script>
<script src="assets/js/util.js"></script>
<script src="assets/js/main.js"></script>
</body>
</html>
+121 -121
View File
@@ -1,162 +1,162 @@
<!DOCTYPE html>
<html>
<head>
<style>
body {
display: flex;
margin: 0;
align-items: center;
justify-content: center;
height: 100vh;
background-color: #7681B3;
}
<head>
<style>
body {
display: flex;
margin: 0;
align-items: center;
justify-content: center;
height: 100vh;
background-color: #7681b3;
}
.presentational-container {
padding: 20px;
box-shadow: 2px 2px 10px 5px;
background-color: #fff;
}
.presentational-container {
padding: 20px;
box-shadow: 2px 2px 10px 5px;
background-color: #fff;
}
table {
background: none;
margin: 0;
padding: 10px 10px 0;
border-width: 3px 0 0 0;
border-style: solid;
border-color: #232C9F;
}
table {
background: none;
margin: 0;
padding: 10px 10px 0;
border-width: 3px 0 0 0;
border-style: solid;
border-color: #232c9f;
}
tr.outer-row td.headshot-cell {
padding: 0 12px 0 0;
}
tr.outer-row td.headshot-cell {
padding: 0 12px 0 0;
}
td.headshot-cell a {
text-decoration: none;
}
td.headshot-cell a {
text-decoration: none;
}
td.headshot-cell img {
vertical-align: middle;
width:120px;
border-radius: 100%;
}
td.headshot-cell img {
vertical-align: middle;
width: 120px;
border-radius: 100%;
}
td.description-cell {
padding: 0 0 0 12px;
}
td.description-cell {
padding: 0 0 0 12px;
}
td.description-cell > table {
background: none;
border: 0px;
margin: 0;
padding: 0;
}
td.description-cell > table {
background: none;
border: 0px;
margin: 0;
padding: 0;
}
td.full-name {
font-weight: bold;
color: #232C9F;
font-size: 18px;
font-family: Arial, Helvetica, sans-serif;
}
td.full-name {
font-weight: bold;
color: #232c9f;
font-size: 18px;
font-family: Arial, Helvetica, sans-serif;
}
td.title {
padding-bottom: 10px;
color: #333333;
font-size: 14px;
font-family: Arial, Helvetica, sans-serif;
}
td.title {
padding-bottom: 10px;
color: #333333;
font-size: 14px;
font-family: Arial, Helvetica, sans-serif;
}
td.website {
padding-bottom: 10px;
vertical-align: top;
color: #333333;
font-size: 14px;
font-family: Arial, Helvetica, sans-serif;
}
td.website {
padding-bottom: 10px;
vertical-align: top;
color: #333333;
font-size: 14px;
font-family: Arial, Helvetica, sans-serif;
}
td.website a {
color: #4BAFDB;
text-decoration: none;
font-weight: normal;
font-size: 14px;
}
td.website a {
color: #4bafdb;
text-decoration: none;
font-weight: normal;
font-size: 14px;
}
td.social-icons {
padding-top: 5px;
}
td.social-icons {
padding-top: 5px;
}
td.social-icons ul {
list-style: none;
padding: 0;
margin: 0;
height: 25px;
}
td.social-icons ul {
list-style: none;
padding: 0;
margin: 0;
height: 25px;
}
td.social-icons li {
display: inline-block;
}
td.social-icons li {
display: inline-block;
}
td.social-icons a {
text-decoration: none;
}
td.social-icons a {
text-decoration: none;
}
td.social-icons img {
width: 25px;
height: 25px;
}
</style>
</head>
<body>
td.social-icons img {
width: 25px;
height: 25px;
}
</style>
</head>
<body>
<div>
<table role="presentation">
<table role="presentation">
<tbody>
<tr class="outer-row">
<tr class="outer-row">
<td class="headshot-cell">
<a href="http://www.m-tartari.eu">
<img src="https://drive.google.com/uc?id=1Y6t65qoE8s6CUPcfVQii6RZgAl1YmALD" name="preview-image-url" alt="Photo"/>
</a>
<a href="http://www.m-tartari.eu">
<img src="https://drive.google.com/uc?id=1Y6t65qoE8s6CUPcfVQii6RZgAl1YmALD" name="preview-image-url" alt="Photo" />
</a>
</td>
<td class="description-cell">
<table role="presentation">
<table role="presentation">
<tbody>
<tr>
<tr>
<td colspan="2" class="full-name">Michele Tartari</td>
</tr>
<tr>
</tr>
<tr>
<td colspan="2" class="title">Robotics Engineer</td>
</tr>
<tr>
</tr>
<tr>
<td valign="top" class="website">
<a href="http://www.m-tartari.eu">www.m-tartari.eu</a>
<a href="http://www.m-tartari.eu">www.m-tartari.eu</a>
</td>
</tr>
<tr>
</tr>
<tr>
<!-- Social Icons found here: https://www.flaticon.com/packs/social-media-color -->
<td colspan="2" class="social-icons">
<ul>
<ul>
<li>
<a href="http://www.m-tartari.eu">
<img src="https://drive.google.com/uc?id=1KCLt13X7Jn-vTmcpCBjDJssYsKb29tRT" alt="Website"/>
</a>
<a href="http://www.m-tartari.eu">
<img src="https://drive.google.com/uc?id=1KCLt13X7Jn-vTmcpCBjDJssYsKb29tRT" alt="Website" />
</a>
</li>
<li>
<a href="https://github.com/m-tartari">
<img src="https://drive.google.com/uc?id=1KferYVq2PXqGLZWEy6HlEYEaCKKZ8KiR" alt="Github"/>
</a>
<a href="https://github.com/m-tartari">
<img src="https://drive.google.com/uc?id=1KferYVq2PXqGLZWEy6HlEYEaCKKZ8KiR" alt="Github" />
</a>
</li>
<li>
<a href="https://www.linkedin.com/in/m-tartari/">
<img src="https://drive.google.com/uc?id=1V9nFk0LaUXXNhPb-FnmP0M30ubXrjyAo" alt="LinkedIn"/>
</a>
<a href="https://www.linkedin.com/in/m-tartari/">
<img src="https://drive.google.com/uc?id=1V9nFk0LaUXXNhPb-FnmP0M30ubXrjyAo" alt="LinkedIn" />
</a>
</li>
</ul>
</ul>
</td>
</tr>
</tr>
</tbody>
</table>
</table>
</td>
</tr>
</tr>
</tbody>
</table>
</table>
</div>
</body>
</body>
</html>