Created
May 9, 2021 06:49
-
-
Save mirrornerror/da09d0871d5894665d9cb8d104061ebe to your computer and use it in GitHub Desktop.
FK_IK/Jacobian_cross_product_AngleLimit
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "# Inverse Kinematics: \n### Homogeneous Transformation Matrix and Jacobian Matrix by cross products \n### with Angle Limit" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2021-05-09T06:48:02.649879Z", | |
"end_time": "2021-05-09T06:48:03.918677Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "%matplotlib notebook\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom numpy.linalg import inv, pinv, norm\nfrom numpy import sin, cos, pi, degrees, radians\ntau = 2 * pi", | |
"execution_count": 2, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2021-05-09T06:48:03.921946Z", | |
"end_time": "2021-05-09T06:48:03.974164Z" | |
}, | |
"code_folding": [], | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "# 4x4 homogeneous transformation matrix\ndef H(length, theta):\n return np.array([[cos(theta), - sin(theta), 0, length],\n [sin(theta), cos(theta), 0, 0],\n [ 0, 0, 1, 0],\n [ 0, 0, 0, 1]])\n\n# forward kinematics returns 3x(N+1) matrix: N-joints vectors and End-effector vector\ndef FK(L, TH):\n N = len(L)\n T = H(0, TH[0])\n V = np.zeros(3)\n for i in range(1, N):\n T = T @ H(L[i-1], TH[i])\n V = np.c_[V, T[:3, -1]]\n EE = T @ np.array([[L[-1], 0, 0, 1]]).T\n V = np.c_[V, EE[:3, -1]]\n return V\n\n# plot function\ndef Plot(V):\n fig = plt.figure(figsize=(5,5))\n ax = fig.add_subplot(111)\n n = len(V[0])\n ax.axis('equal')\n ax.axis([-1, n, -1, n])\n ax.grid()\n ax.plot(V[0], V[1])\n ax.scatter(V[0], V[1])\n ax.plot(Target[0], Target[1], marker='x', ms=20, color='red')", | |
"execution_count": 3, | |
"outputs": [] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## FK with Homogeneous transformation matrix" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2021-05-09T06:48:05.061043Z", | |
"end_time": "2021-05-09T06:48:05.172496Z" | |
}, | |
"code_folding": [], | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "N = 4 # the number of links\nL = [1] * N # length of each link\nTH = [pi / 2 / N] * N # theta at each joint\n\nTarget = np.array([3, 3, 0]) # x, y, z coords\nif norm(Target) > sum(L):\n Target = Target * sum(L) / norm(Target)\n print('Target overwritten:', Target)\n\nV = FK(L, TH) # V: all-joints and End-Effector vectors\nPlot(V)\nprint('Target :', Target)\nprint('End-Effector:', V[:, -1])", | |
"execution_count": 4, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "Target overwritten: [2.82842712 2.82842712 0. ]\n", | |
"name": "stdout" | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": "<IPython.core.display.Javascript object>", | |
"application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n if (this.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: this.ratio });\n }\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n var resizeObserver = new ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n resizeObserver.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n var cursor = msg['cursor'];\n switch (cursor) {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n evt.data.type = 'image/png';\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n evt.data\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.which === this._key) {\n return;\n } else {\n this._key = event.which;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.which !== 17) {\n value += 'ctrl+';\n }\n if (event.altKey && event.which !== 18) {\n value += 'alt+';\n }\n if (event.shiftKey && event.which !== 16) {\n value += 'shift+';\n }\n\n value += 'k';\n value += event.which.toString();\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(msg['content']['data']);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.one(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager) {\n manager = IPython.keyboard_manager;\n }\n\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n" | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": "<IPython.core.display.HTML object>", | |
"text/html": "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAPoCAYAAABNo9TkAAAgAElEQVR4Xuy9e7ymdV31/x0GxuHkgaPIQQJBRSdJEAEBUQRLpSfgFZQH1CQpezQjFbXHxDyg9KjkYyUphZn2ixQtjRRRFFAEhNQRIXBEI0AESQ4BAjP797o3sWGGOdyHz7ruta793n9pXPe61vVeq+vLcu+ZvWBmZmam8QUBCEAAAhCAAAQgAAEIQAACEIDAVAksYKBPlT83hwAEIAABCEAAAhCAAAQgAAEIzBJgoFMECEAAAhCAAAQgAAEIQAACEICAAQEGukEIWIAABCAAAQhAAAIQgAAEIAABCDDQ6QAEIAABCEAAAhCAAAQgAAEIQMCAAAPdIAQsQAACEIAABCAAAQhAAAIQgAAEGOh0AAIQgAAEIAABCEAAAhCAAAQgYECAgW4QAhYgAAEIQAACEIAABCAAAQhAAAIMdDoAAQhAAAIQgAAEIAABCEAAAhAwIMBANwgBCxCAAAQgAAEIQAACEIAABCAAAQY6HYAABCAAAQhAAAIQgAAEIAABCBgQYKAbhIAFCEAAAhCAAAQgAAEIQAACEIAAA50OQAACEIAABCAAAQhAAAIQgAAEDAgw0A1CwAIEIAABCEAAAhCAAAQgAAEIQICBTgcgAAEIQAACEIAABCAAAQhAAAIGBBjoBiFgAQIQgAAEIAABCEAAAhCAAAQgwECnAxCAAAQgAAEIQAACEIAABCAAAQMCDHSDELAAAQhAAAIQgAAEIAABCEAAAhBgoNMBCEAAAhCAAAQgAAEIQAACEICAAQEGukEIWIAABCAAAQhAAAIQgAAEIAABCDDQ6QAEIAABCEAAAhCAAAQgAAEIQMCAAAPdIAQsQAACEIAABCAAAQhAAAIQgAAEGOh0AAIQgAAEIAABCEAAAhCAAAQgYECAgW4QAhYgAAEIQAACEIAABCAAAQhAAAIMdDoAAQhAAAIQgAAEIAABCEAAAhAwIMBANwgBCxCAAAQgAAEIQAACEIAABCAAAQY6HYAABCAAAQhAAAIQgAAEIAABCBgQYKAbhIAFCEAAAhCAAAQgAAEIQAACEIAAA50OQAACEIAABCAAAQhAAAIQgAAEDAgw0A1CwAIEIAABCEAAAhCAAAQgAAEIQICBTgcgAAEIQAACEIAABCAAAQhAAAIGBBjoBiFgAQIQgAAEIAABCEAAAhCAAAQgwECnAxCAAAQgAAEIQAACEIAABCAAAQMCDHSDELAAAQhAAAIQgAAEIAABCEAAAhBgoNMBCEAAAhCAAAQgAAEIQAACEICAAQEGukEIWIAABCAAAQhAAAIQgAAEIAABCDDQ6QAEIAABCEAAAhCAAAQgAAEIQMCAAAPdIAQsQAACEIAABCAAAQhAAAIQgAAEGOh0AAIQgAAEIAABCEAAAhCAAAQgYECAgW4QAhYgAAEIQAACEIAABCAAAQhAAAIMdDoAAQhAAAIQgAAEIAABCEAAAhAwIMBANwgBCxCAAAQgAAEIQAACEIAABCAAAQY6HYAABCAAAQhAAAIQgAAEIAABCBgQYKAbhIAFCEAAAhCAAAQgAAEIQAACEIAAA50OQAACEIAABCAAAQhAAAIQgAAEDAgw0A1CwAIEIAABCEAAAhCAAAQgAAEIQICBTgcgAAEIQAACEIAABCAAAQhAAAIGBBjoBiFgAQIQgAAEIAABCEAAAhCAAAQgwECnAxCAAAQgAAEIQAACEIAABCAAAQMCDHSDELAAAQhAAAIQgAAEIAABCEAAAhBgoNMBCEAAAhCAAAQgAAEIQAACEICAAQEGukEIWIAABCAAAQhAAAIQgAAEIAABCDDQ6QAEIAABCEAAAhCAAAQgAAEIQMCAAAPdIAQsQAACEIAABCAAAQhAAAIQgAAEGOh0AAIQgAAEIAABCEAAAhCAAAQgYECAgW4QAhYgAAEIQAACEIAABCAAAQhAAAIMdDoAAQhAAAIQgAAEIAABCEAAAhAwIMBANwgBCxCAAAQgAAEIQAACEIAABCAAAQY6HYAABCAAAQhAAAIQgAAEIAABCBgQYKAbhIAFCEAAAhCAAAQgAAEIQAACEIAAA50OQAACEIAABCAAAQhAAAIQgAAEDAgw0A1CwAIEIAABCEAAAhCAAAQgAAEIQICBTgcgAAEIQAACEIAABCAAAQhAAAIGBBjoBiFgAQIQgAAEIAABCEAAAhCAAAQgwECnAxCAAAQgAAEIQAACEIAABCAAAQMCDHSDELAAAQhAAAIQgAAEIAABCEAAAhBgoNMBCEAAAhCAAAQgAAEIQAACEICAAQEGukEIWIAABCAAAQhAAAIQgAAEIAABCDDQ6QAEIAABCEAAAhCAAAQgAAEIQMCAAAPdIAQsQAACEIAABCAAAQhAAAIQgAAEGOh0AAIQgAAEIAABCEAAAhCAAAQgYECAgW4QAhYgAAEIQAACEIAABCAAAQhAAAIMdDoAAQhAAAIQgAAEIAABCEAAAhAwIMBANwgBCxCAAAQgAAEIQAACEIAABCAAAQY6HYAABCAAAQhAAAIQgAAEIAABCBgQYKAbhIAFCEAAAhCAAAQgAAEIQAACEIAAA50OQAACEIAABCAAAQhAAAIQgAAEDAgw0A1CwAIEIAABCEAAAhCAAAQgAAEIQICBTgcgAAEIQAACEIAABCAAAQhAAAIGBBjoBiFgAQIQgAAEIAABCEAAAhCAAAQgwECnAxCAAAQgAAEIQAACEIAABCAAAQMCDHSDELAAAQhAAAIQgAAEIAABCEAAAhBgoNMBCEAAAhCAAAQgAAEIQAACEICAAQEGukEIWIAABCAAAQhAAAIQgAAEIAABCDDQ6QAEIAABCEAAAhCAAAQgAAEIQMCAAAPdIAQsQAACEIAABCAAAQhAAAIQgAAEGOh0AAIQgAAEIAABCEAAAhCAAAQgYECAgW4QAhYgAAEIQAACEIAABCAAAQhAAAIMdDoAAQhAAAIQgAAEIAABCEAAAhAwIMBANwgBCxCAAAQgAAEIQAACEIAABCAAAQY6HYAABCAAAQhAAAIQgAAEIAABCBgQYKAbhIAFCEAAAhCAAAQgAAEIQAACEIAAA50OQAACEIAABCAAAQhAAAIQgAAEDAgw0A1CwAIEIAABCEAAAhCAAAQgAAEIQICBTgcgAAEIQAACEIAABCAAAQhAAAIGBBjoBiFgAQIQgAAEIAABCEAAAhCAAAQgwECnAxCAAAQgAAEIQAACEIAABCAAAQMCDHSDELAAAQhAAAIQgAAEIAABCEAAAhBgoNMBCEAAAhCAAAQgAAEIQAACEICAAQEGukEIWIAABCAAAQhAAAIQgAAEIAABCDDQ6QAEIAABCEAAAhCAAAQgAAEIQMCAAAPdIAQsQAACEIAABCAAAQhAAAIQgAAEGOh0AAIQgAAEIAABCEAAAhCAAAQgYECAgW4QAhYgAAEIQAACEIAABCAAAQhAAAIMdDoAAQhAAAIQgAAEIAABCEAAAhAwIMBANwgBCxCAAAQgAAEIQAACEIAABCAAAQY6HYAABCAAAQhAAAIQgAAEIAABCBgQYKAbhIAFCEAAAhCAAAQgAAEIQAACEIAAA50OQAAC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vStCfv+cd9D9elO0Mgp60Q74uP6zzz6b/d55ugdF79695Xe/+132rgmPahJI3ztPd/ROH4H993//95peI1STVMxVby7g6R/jn3vuuezmsVs+KOgxfdVW/dJLL2X3KEj/oDN69GiZPXu29iWYVwMBCnoNkDwdQkH35IZvLXwH3bc/RaqjoBdJ38e1X375ZXnve98rr7/+evZx15///OfZx9t5VJtA+jpUejc9lbf0iartt9++2kBKsvp0p/Z0s9hUun7zm99kH3F+94OCXhKzFZaRPkFz1113ZZPSTSR33XVXhamMqIcABb0eWk6OTU+0zT6GDRtW080feAe9WdLFns9d3Ivl7/XqFHSvzuSjK5Xy9M55eqckvVuavpN81lln5XNxruKawC233CJnnHFGpvHmm2+Wz3zmM671Iq42AlOmTJFrrrlG9txzT/ne977X7km33367/OIXv8j+7N/+7d8k3eU7PdLPLr773fbarspRUQmcf/75ctlll2Xy081DjzzyyKhLCaubgh7WunyEU9Dz4Wx1FX4H3Yps7LkU9Nj+NaM+/exi+hh7+ohrevz4xz+Wr3zlK82M5NwSEUg3hTrppJOyFV188cVywQUXlGh11V1K+krjT3/604YApE/bpNeCPKpDIN2j4Ac/+AEFvUDLKegFwo9waQp6BJc61viNb3xDLrnkkuyAGTNmdHh33ksvvbTthVj6HurmF2ixV4/6jghQ0KuZjeXLl8v73ve+7O7N6ZH+3v/rv/5rNWGw6nYJbHmH9yuvvFL+8R//EVIlIEBBL4GJOS4h/TTv3XffnV0x3VByt912y/HqXCoRoKCTg04JUNBjByR9NGnzT+akj7iln9B49yP9BnL6abV0Z9d0Z8/0U2saNyKMTa7c6ino5fa3vdWtWbMm+4e3P/3pT9kff/Ob35Tvfve71QPBijslsOUL8/vuu0+OO+44iFWEAN9Br4jRXSwzffUp/fza+vXrs69EpF954JE/AQp6/sxDXZGCHsqudsVu/ph7jx49ZNq0aTJhwoStjkvfM0rfN0qPiy66SNImzaPcBCjo5fb33atLN4ZK3yOdOnVq9kdf/epXs5/S4lEdAumd8dNOO0369OnT4aJ/9KMfyXnnnZf9edr7092b077BoxoEKOjl9/mOO+7Ifkato7/X7/6ZtR/+8Idtzwnlp+NrhRR0X34Uqib99vVDDz20lYavfe1rsnTpUtlxxx3bvo+y+YAPfOADsssuuxSqmYt3TSD9nuXRRx+d/d7tgAEDJH3s/fjjj8/+/7feemt245j0GDNmjDz22GMycODArodyRCgC6e/1lr9tn76HnL5jlh4pG+ecc85W66nlJxhDAai42E996lPyy1/+MqOQPuKeynm6OVxHj169emXPBzzKQyAV7pUrV0rKQrp7f/q987QfpP/29NNPZzeE2/zpiuR/uoPz+9///vIAYCVdEqCgd4ko/AHpeSC9M56eB9KbNen/37dvX0mvCe6///7sU5bpNX96pOeJe++9N/sJTh75E6Cg58/c7RW3/O5ZLSL5+FstlHwck/7V9Mwzz5QVK1a0Kyi9GE8vyNJvXvIoH4F6v3/Y2tpaPggVXlFnZbw9LKNGjZL0KQse5SGw+dNwXa1o+PDh8h//8R9y4okndnUof14yAhT0khnaznJqfR5IBf66667LvvbIoxgCFPRiuLu8KgXdpS1qoubOnStXXHFFVsTTTT/SuySpkJ966qly7rnnSr9+/dSuxSBfBCjovvzIWw0FPW/i/q6Xvkea3g1L/7Ce7jeSPsqa3ilLH3kfOnSoHHLIIZJ++3jSpEnsBf7sy0URBT0XzIVe5IEHHpD0v+nTp2c/s5neOU9v3KRP04wYMUKOOuooOfvss7f5KmShoit6cQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgiwAF3ZcfqIEABCAAAQhAAAIQgAAEIACBihKgoFfUeJYNAQhAAAIQgAAEIAABCEAAAr4IUNB9+YEaCEAAAhCAAAQgAAEIQAACEKgoAQp6RY1n2RCAAAQgAAEIQAACEIAABCDgi8D/D8WXW9bNTFmBAAAAAElFTkSuQmCC\" width=\"500\">" | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "stream", | |
"text": "Target : [2.82842712 2.82842712 0. ]\nEnd-Effector: [2.01366975 3.01366975 0. ]\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## IK: 3xN Jacobian matrix by cross products + Angle Limit" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2021-05-09T06:48:07.149326Z", | |
"end_time": "2021-05-09T06:48:07.318488Z" | |
}, | |
"code_folding": [], | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "N = 4 # the number of links\nL = [1] * N # length of each link\nTH = [np.pi / 2 / N] * N # theta at each joint\nMinA = [-tau] + [-pi/2] * (N - 1) # minimum angle at each joint\nMaxA = [tau] + [pi/2] * (N - 1) # maximum angle at each joint\n\nTarget = [N * 0.7, N * 0.6, 0] # x, y, z: target vector\nif norm(Target) > sum(L):\n Target = Target * sum(L) / norm(Target)\n print('Target overwritten')\n \ndef Jacobian(V): # returns 3xN Jacobian matrix\n UV = np.array([0, 0, 1]) # z-axis unit vector\n J = []\n for i in range(N):\n # ith_J = UV x (End_effector_vector - ith_Joint_vector)\n J.append(np.cross(UV, V[:, -1] - V[:, i]))\n return np.array(J).T\n\ndef angleLimit(TH, MinA, MaxA):\n for i in range(N):\n TH[i] = TH[i] % tau\n if TH[i] > pi:\n TH[i] -= tau\n if TH[i] < MinA[i]:\n TH[i] = MinA[i]\n if TH[i] > MaxA[i]:\n TH[i] = MaxA[i]\n return TH\n\nscaler = 0.1\nloop = 0\n\nwhile True:\n V = FK(L, TH)\n J = Jacobian(V)\n EE = V[:, -1]\n Error = Target - EE\n if norm(Error) < 1e-4:\n print('Error Norm :', norm(Error))\n print('Target :', Target)\n print('End-Effector:', V[:, -1])\n print('Loop:', loop)\n Plot(V)\n break\n dTheta = pinv(J) @ Error * scaler\n TH += dTheta\n TH = angleLimit(TH, MinA, MaxA)\n loop += 1\n if loop > 1000:\n print('over 1000 loops')\n break", | |
"execution_count": 5, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "Error Norm : 9.374641466494251e-05\nTarget : [2.8, 2.4, 0]\nEnd-Effector: [2.79992516 2.40005646 0. ]\nLoop: 88\n", | |
"name": "stdout" | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": "<IPython.core.display.Javascript object>", | |
"application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n if (this.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: this.ratio });\n }\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n var resizeObserver = new ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n resizeObserver.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n var cursor = msg['cursor'];\n switch (cursor) {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n evt.data.type = 'image/png';\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n evt.data\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.which === this._key) {\n return;\n } else {\n this._key = event.which;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.which !== 17) {\n value += 'ctrl+';\n }\n if (event.altKey && event.which !== 18) {\n value += 'alt+';\n }\n if (event.shiftKey && event.which !== 16) {\n value += 'shift+';\n }\n\n value += 'k';\n value += event.which.toString();\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(msg['content']['data']);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.one(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager) {\n manager = IPython.keyboard_manager;\n }\n\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n" | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": "<IPython.core.display.HTML object>", | |
"text/html": "<img src=\"data:image/png;base64,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3ZYfqIEABCAAAQhAAAIQgAAEIACBCiVAQa9Q49k2BCAAAQhAAAIQgAAEIAABCNgiQEG35QdqIAABCEAAAhCAAAQgAAEIQKBCCVDQK9R4tg0BCEAAAhCAAAQgAAEIQAACtghQ0G35gRoIQAACEIAABCAAAQhAAAIQqFACFPQKNZ5tQwACEIAABCAAAQhAAAIQgIAtAhR0W36gBgIQgAAEIAABCEAAAhCAAAQqlAAFvUKNZ9sQgAAEIAABCEAAAhCAAAQgYIsABd2WH6iBAAQgAAEIQAAC/7/9OqYBAABAGObfNTZIVgdQLggQIECAQFTAQY8OrzYBAgQIECBAgAABAgQIfAk46F97SEOAAAECBAgQIECAAAECUQEHPTq82gQIECBAgAABAgQIECDwJeCgf+0hDQECBAgQIECAAAECBAhEBRz06PBqEyBAgAABAgQIECBAgMCXgIP+tYc0BAgQIECAAAECBAgQIBAVcNCjw6tNgAABAgQIECBAgAABAl8CDvrXHtIQIECAAAECBAgQIECAQFTAQY8OrzYBAgQIECBAgAABAgQIfAk46F97SEOAAAECBAgQIECAAAECUQEHPTq82gQIECBAgAABAgQIECDwJeCgf+0hDQECBAgQIECAAAECBAhEBRz06PBqEyBAgAABAgQIECBAgMCXgIP+tYc0BAgQIECAAAECBAgQIBAVcNCjw6tNgAABAgQIECBAgAABAl8CDvrXHtIQIECAAAECBAgQIECAQFTAQY8OrzYBAgQIECBAgAABAgQIfAk46F97SEOAAAECBAgQIECAAAECUQEHPTq82gQIECBAgAABAgQIECDwJeCgf+0hDQECBAgQIECAAAECBAhEBRz06PBqEyBAgAABAgQIECBAgMCXwAArtbHlbizcHQAAAABJRU5ErkJggg==\" width=\"500\">" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## IK Interactive mode: Arm follows Mouse" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2021-05-09T06:48:26.611254Z", | |
"end_time": "2021-05-09T06:48:26.720582Z" | |
}, | |
"code_folding": [], | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "N = 4 # the number of links\nL = [1] * N # length of each link\nTH = [np.pi / 2 / N] * N # theta at each joint\nMinA = [-pi] + [-pi/2] * (N - 1) # minimum angle at each joint\nMaxA = [pi] + [pi/2] * (N - 1) # maximum angle at each joint\nscaler = 0.1\n\ndef motion(event): # interactive function: Arm follows Mouse\n global TH\n mx = event.xdata\n my = event.ydata\n Mouse.set_data(mx, my)\n \n Target = np.array([mx, my, 0]) # target: mouse coords\n if norm(Target) > sum(L): # overwrite the target coord if not reachable\n Target = Target * sum(L) / norm(Target)\n \n V = FK(L, TH) # V: Joints vectors from Forward Kinematiks\n Line.set_data(V[0], V[1])\n Dot.set_data(V[0], V[1])\n \n EE = V[:, -1] # End-effector-vector\n Error = Target - EE # error between Target-vector and current End-effector-vector\n J = Jacobian(V) # 3xN Jacobian Matrix\n Jpinv = pinv(J) # Pseudo-inverse Jacobian Matrix: JT·inv(J·JT)\n dTheta = Jpinv @ Error * scaler # to get delta thetas from Inverse Kinematics\n TH += dTheta # delta thetas for the next motion\n TH = angleLimit(TH, MinA, MaxA)\n\n plt.draw()\n\nfig = plt.figure(figsize=(5,5))\nax = fig.add_subplot(111)\nax.axis('equal')\nax.axis([-1, N+1, -1, N+1])\nax.grid()\n\nLine, = ax.plot([],[], linestyle='-', color='tab:blue')\nDot, = ax.plot([],[], marker='o', color='tab:blue')\nMouse, = ax.plot([],[], marker='x', ms=20, color='red')\n\nplt.connect('motion_notify_event', motion)\nplt.show()", | |
"execution_count": 7, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": "<IPython.core.display.Javascript object>", | |
"application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n if (this.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: this.ratio });\n }\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n var resizeObserver = new ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n resizeObserver.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n var cursor = msg['cursor'];\n switch (cursor) {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n evt.data.type = 'image/png';\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n evt.data\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.which === this._key) {\n return;\n } else {\n this._key = event.which;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.which !== 17) {\n value += 'ctrl+';\n }\n if (event.altKey && event.which !== 18) {\n value += 'alt+';\n }\n if (event.shiftKey && event.which !== 16) {\n value += 'shift+';\n }\n\n value += 'k';\n value += event.which.toString();\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(msg['content']['data']);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.one(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager) {\n manager = IPython.keyboard_manager;\n }\n\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n" | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": "<IPython.core.display.HTML object>", | |
"text/html": "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAPoCAYAAABNo9TkAAAgAElEQVR4Xuy9e7zndV3t/54L43DLC7c0UJSLgqIYCIKAgjB4BPUgmWaGmqSWJz2aCGkppBHiz4daWqaolMb5ecFLKUcGFB3ACyN4QcAwBEVCEEWEYBrmch57KwMbZmZ/L6/1+a712U/+KubzXZ/1fq7VfrPae2bmrV27dm3jHwhAAAIQgAAEIAABCEAAAhCAAAQmSmAeA32i/Hk5BCAAAQhAAAIQgAAEIAABCEBgmgADnSJAAAIQgAAEIAABCEAAAhCAAAQMCDDQDULAAgQgAAEIQAACEIAABCAAAQhAgIFOByAAAQhAAAIQgAAEIAABCEAAAgYEGOgGIWABAhCAAAQgAAEIQAACEIAABCDAQKcDEIAABCAAAQhAAAIQgAAEIAABAwIMdIMQsAABCEAAAhCAAAQgAAEIQAACEGCg0wEIQAACEIAABCAAAQhAAAIQgIABAQa6QQhYgAAEIAABCEAAAhCAAAQgAAEIMNDpAAQgAAEIQAACEIAABCAAAQhAwIAAA90gBCxAAAIQgAAEIAABCEAAAhCAAAQY6HQAAhCAAAQgAAEIQAACEIAABCBgQICBbhACFiAAAQhAAAIQgAAEIAABCEAAAgx0OgABCEAAAhCAAAQgAAEIQAACEDAgwEA3CAELEIAABCAAAQhAAAIQgAAEIAABBjodgAAEIAABCEAAAhCAAAQgAAEIGBBgoBuEgAUIQAACEIAABCAAAQhAAAIQgAADnQ5AAAIQgAAEIAABCEAAAhCAAAQMCDDQDULAAgQgAAEIQAACEIAABCAAAQhAgIFOByAAAQhAAAIQgAAEIAABCEAAAgYEGOgGIWABAhCAAAQgAAEIQAACEIAABCDAQKcDEIAABCAAAQhAAAIQgAAEIAABAwIMdIMQsAABCEAAAhCAAAQgAAEIQAACEGCg0wEIQAACEIAABCAAAQhAAAIQgIABAQa6QQhYgAAEIAABCEAAAhCAAAQgAAEIMNDpAAQgAAEIQAACEIAABCAAAQhAwIAAA90gBCxAAAIQgAAEIAABCEAAAhCAAAQY6HQAAhCAAAQgAAEIQAACEIAABCBgQICBbhACFiAAAQhAAAIQgAAEIAABCEAAAgx0OgABCEAAAhCAAAQgAAEIQAACEDAgwEA3CAELEIAABCAAAQhAAAIQgAAEIAABBjodgAAEIAABCEAAAhCAAAQgAAEIGBBgoBuEgAUIQAACEIAABCAAAQhAAAIQgAADnQ5AAAIQgAAEIAABCEAAAhCAAAQMCDDQDULAAgQgAAEIQAACEIAABCAAAQhAgIFOByAAAQhAAAIQgAAEIAABCEAAAgYEGOgGIWABAhCAAAQgAAEIQAACEIAABCDAQKcDEIAABCAAAQhAAAIQgAAEIAABAwIMdIMQsAABCEAAAhCAAAQgAAEIQAACEGCg0wEIQAACEIAABCAAAQhAAAIQgIABAQa6QQhYgAAEIAABCEAAAhCAAAQgAAEIMNDpAAQgAAEIQAACEIAABCAAAQhAwIAAA90gBCxAAAIQgAAEIAABCEAAAhCAAAQY6HQAAhCAAAQgAAEIQAACEIAABCBgQICBbhACFiAAAQhAAAIQgAAEIAABCEAAAgx0OgABCEAAAhCAAAQgAAEIQAACEDAgwEA3CAELEIAABCAAAQhAAAIQgAAEIAABBjodgAAEIAABCEAAAhCAAAQgAAEIGBBgoBuEgAUIQAACEIAABCAAAQhAAAIQgAADnQ5AAAIQgAAEIAABCEAAAhCAAAQMCDDQDULAAgQgAAEIQAACEIAABCAAAQhAgIFOByAAAQhAAAIQgAAEIAABCEAAAgYEGOgGIWABAhCAAAQgAAEIQAACEIAABCDAQKcDEIAABCAAAQhAAAIQgAAEIAABAwIMdIMQsAABCEAAAhCAAAQgAAEIQAACEGCg0wEIQAACEIAABCAAAQhAAAIQgIABAQa6QQhYgAAEIAABCEAAAhCAAAQgAAEIMNDpAAQgAAEIQAACEIAABCAAAQhAwIAAA90gBCxAAAIQgAAEIAABCEAAAhCAAAQY6HQAAhCAAAQgAAEIQAACEIAABCBgQICBbhACFiAAAQhAAAIQgAAEIAABCEAAAgx0OgABCEAAAhCAAAQgAAEIQAACEDAgwEA3CAELEIAABCAAAQhAAAIQgAAEIAABBjodgAAEIAABCEAAAhCAAAQgAAEIGBBgoBuEgAUIQAACEIAABCAAAQhAAAIQgAADnQ5AAAIQgAAEIAABCEAAAhCAAAQMCDDQDULAAgQgAAEIQAACEIAABCAAAQhAgIFOByAAAQhAAAIQgAAEIAABCEAAAgYEGOgGIWABAhCAAAQgAAEIQAACEIAABCDAQKcDEIAABCAAAQhAAAIQgAAEIAABAwIMdIMQsAABCEAAAhCAAAQgAAEIQAACEGCg0wEIQAACEIAABCAAAQhAAAIQgIABAQa6QQhYgAAEIAABCEAAAhCAAAQgAAEIMNDpAAQgAAEIQAACEIAABCAAAQhAwIAAA90gBCxAAAIQgAAEIAABCEAAAhCAAAQY6HQAAhCAAAQgAAEIQAACEIAABCBgQICBbhACFiAAAQhAAAIQgAAEIAABCEAAAgx0OgABCEAAAhCAAAQgAAEIQAACEDAgwEA3CAELEIAABCAAAQhAAAIQgAAEIAABBjodgAAEIAABCEAAAhCAAAQgAAEIGBBgoBuEgAUIQAACEIAABCAAAQhAAAIQgAADnQ5AAAIQgAAEIAABCEAAAhCAAAQMCDDQDULAAgQgAAEIQAACEIAABCAAAQhAgIFOByAAAQhAAAIQgAAEIAABCEAAAgYEGOgGIWABAhCAAAQgAAEIQAACEIAABCDAQKcDEIAABCAAAQhAAAIQgAAEIAABAwIMdIMQsAABCEAAAhCAAAQgAAEIQAACEGCg0wEIQAACEIAABCAAAQhAAAIQgIABAQa6QQhYgAAEIAABCEAAAhCAAAQgAAEIMNDpAAQgAAEIQAACEIAABCAAAQhAwIAAA90gBCxAAAIQgAAEIAABCEAAAhCAAAQY6HQAAhCAAAQgAAEIQAACEIAABCBgQICBbhACFiAAAQhAAAIQgAAEIAABCEAAAgx0OgABCEAAAhCAAAQgAAEIQAACEDAgwEA3CAELEIAABCAAAQhAAAIQgAAEIAABBjodgAAEIAABCEAAAhCAAAQgAAEIGBBgoBuEgAUIQAACEIAABCAAAQhAAAIQgAADnQ5AAAIQgAAEIAABCEAAAhCAAAQMCDDQDULAAgQgAAEIQAACEIAABCAAAQhAgIFOByAAAQhAAAIQgAAEIAABCEAAAgYEGOgGIWABAhCAAAQgAAEIQAACEIAABCDAQKcDEIAABCAAAQhAAAIQgAAEIAABAwIMdIMQsAABCEAAAhCAAAQgAAEIQAACEGCg0wEIQAACEIAABCAAAQhAAAIQgIABAQa6QQhYgAAEIAABCEAAAhCAAAQgAAEIMNDpAAQgAAEIQAACEIAABCAAAQhAwIAAA90gBCxAAAIQgAAEIAABCEAAAhCAAAQY6HQA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\" width=\"500\">" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "", | |
"execution_count": null, | |
"outputs": [] | |
} | |
], | |
"metadata": { | |
"_draft": { | |
"nbviewer_url": "https://gist.github.com/675c168e62865063929be4f8293e88d4" | |
}, | |
"gist": { | |
"id": "675c168e62865063929be4f8293e88d4", | |
"data": { | |
"description": "FK_IK/Jacobian_cross_product_AngleLimit", | |
"public": true | |
} | |
}, | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3", | |
"language": "python" | |
}, | |
"language_info": { | |
"name": "python", | |
"version": "3.8.5", | |
"mimetype": "text/x-python", | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"pygments_lexer": "ipython3", | |
"nbconvert_exporter": "python", | |
"file_extension": ".py" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment