RoboVis Alistair Wick.

Slides:



Advertisements
Similar presentations
Tips, Tricks and the Things Everyone Tells You Can't be Done with Hyperion Financial Reports Alex Ladd Sr. Partner MindStream Analytics.
Advertisements

KompoZer. This is what KompoZer will look like with a blank document open. As you can see, there are a lot of icons for beginning users. But don't be.
Parameterizing a Geometry using the COMSOL Moving Mesh Feature
Links and Joints.
CSCE 641: Forward kinematics and inverse kinematics Jinxiang Chai.
A graphical user interface (GUI) is a pictorial interface to a program. A good GUI can make programs easier to use by providing them with a consistent.
CSCE 641: Forward kinematics and inverse kinematics Jinxiang Chai.
CSCE 689: Forward Kinematics and Inverse Kinematics
Lecture 2: Introduction to Concepts in Robotics
Introduction to Controlling the Output Power of a Transistor Stage A load network will be designed to maximize the output power obtainable from the Mitsubishi.
Programming Project (Last updated: August 31 st /2010) Updates: - All details of project given - Deadline: Part I: September 29 TH 2010 (in class) Part.
Marcel Casado NCAR/RAP WEATHER WARNING TOOL NCAR.
Steps in simulation study 1. - Clearly understand problem - Reformulation of the problem 2. - Which questions should be answered? - Is simulation appropriate?
Linear Buckling Analysis
ANSYS Workbench: Mechanical Examples. Step 1. Opening ansys workbench Overview: – Start > ANSYS Workbench – Create Static Structural analysis system.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
CSCE 441: Computer Graphics Forward/Inverse kinematics Jinxiang Chai.
Chapter 3 Response Charts.
CNM 190 Advanced Digital Animation Lec 10 : Inverse Kinematics & Automating Animation Dan Garcia, EECS (co-instructor) Greg Niemeyer, Art (co-instructor)
Workshop 2 Steel Bracket Modified by (2008): Dr. Vijay K. Goyal Associate Professor, Department of Mechanical Engineering University of Puerto Rico at.
CSCE 441: Computer Graphics Forward/Inverse kinematics Jinxiang Chai.
Python: Building Geoprocessing Tools David Wynne, Ghislain Prince.
WS1-1 ADM , Workshop 1, August 2005 Copyright  2005 MSC.Software Corporation WORKSHOP 1 INTRODUCTION.
Advanced Taverna Aleksandra Pawlik University of Manchester materials by Katy Wolstencroft, Aleksandra Pawlik, Alan Williams
Application of Design Patterns to Geometric Decompositions V. Balaji, Thomas L. Clune, Robert W. Numrich and Brice T. Womack.
Theming in GNUstep ● What is it for? ● It seems there have been three groups calling for theming in GNUstep. ● Some don't like the standard NeXTstep look.
Appendix A 12.0 Workbench Environment
Product Training Program
Chapter 1 ANSYS Workbench
Announcements Please read Chapter 6
Chapter 3: I Need a Tour Guide (Introduction to Visual Basic 2012)
Sales presentation.
Speed, Power, Torque & DC Motors
Using the Cyton Viewer Intro to the viewer.
Java FX: Scene Builder.
CSCE 441: Computer Graphics Forward/Inverse kinematics
Essentials of UrbanCode Deploy v6.1 QQ147
Character Animation Forward and Inverse Kinematics
What’s new in FUSION? Bob McGaughey
SECTION 1 ADAMS/Solver subroutines overview
CCS Engineering Tools The tools are used help development and debugging of VLT SW control applications This presentation will provide a general view of.
How to connect your DG to EDGeS? Zoltán Farkas, MTA SZTAKI
Travelling to School.
“SPEEDBOAT” THE RETRO SPACE
What Is an Electric Motor? How Does a Rotation Sensor Work?
Extensions, System Outline and Correlation Modes and
MCTS Guide to Microsoft Windows 7
Bones Skeletal Unity-2D How & When
Effect of Reduced Focus Coil Current on Step IV and Step VI
Gephi Gephi is a tool for exploring and understanding graphs. Like Photoshop (but for graphs), the user interacts with the representation, manipulate the.
PreOpenSeesPost: a Generic Interface for OpenSees
Introduction to Computers
SharePoint-Hosted Apps and JavaScript
WEBINAR “Automation of document generation and document processing with AutoMerge” Atlanta, 10/21/2013 Clint Higley I would like to welcome everyone to.
Development Commitment Package
Special English for Industrial Robot
CSCE 441: Computer Graphics Forward/Inverse kinematics
Manipulator Dynamics 2 Instructor: Jacob Rosen
GENERAL VIEW OF KRATOS MULTIPHYSICS
Loops CIS 40 – Introduction to Programming in Python
Robotics kinematics: D-H Approach
ECEN 460 Power System Operation and Control
Office 365 Reporting Dashboard - Overview
Teaching slides Chapter 6.
Overview of the Lab 2 Assignment: Multicore Real-Time Tasks
The programming page of the Brick
Web AppBuilder for ArcGIS
PYTHON: BUILDING GEOPROCESSING TOOLS
Chapter 4 . Trajectory planning and Inverse kinematics
Kanban Task Manager SharePoint Editions ‒ Introduction
Presentation transcript:

RoboVis Alistair Wick

Background Designed a small robot arm 3 degrees of freedom 3D printable Controlled with a Python App

Background III Old control app shows where the arm can reach (workspace) Uses inverse kinematics based on the arm’s dimensions and other parameters

Background II The fact it’s 3D printed is interesting 3D printing is great for small runs of custom objects Why have a static design? Idea: Let users design their own arm for printing

The Idea Make a tool to help users design robot arms! Should guide towards useful solutions Tool produces ‘config’ files describing dimensions, motor power, constraints, etc. Config can be fed into an OpenSCAD script (or similar program) … generates 3D files for printing! Assume users have an idea of the load and reach requirements

Why not use the existing app? Painfully slow Can’t change config in-app: alter file and restart app 10+ seconds to calculate workspace for one arm Built as a middle-man control app, not for design No advanced GUI No load calculations So why can’t we use the existing control app? There are a couple of problems. It’s very slow – you want to quickly iterate the design in a trial and error style process, but to see the results for a new config requires you to reload the whole app. This loading also takes time: about 10 seconds to calculate the workspace. It’s also simply not designed for modifying the configuration, with limited interactive capabilities, and no support for load calculations.

Objectives Essentially a configuration space exploration tool Display workspace and load capabilities Tool which will guide towards a good solution User has some idea of what they need Help them find the configuration that achieves that Responsive – fast iteration Ability to output config files

RoboVis - Overview So, this is what I’ve come up with. There’s a few different elements here I’ll go over in detail, but essentially, you change the configuration using the options on the right, see the results in the center view, and inspect things in extra detail with hover interactions and the pane on the left.

Usage Application has a “current” configuration, and a particular parameter of interest The main view visualizes the results for this configuration Expected reach Expected load capabilities Current config adjusted using the sliders/value boxes on the right hand side Config can also be saved to/loaded from a YAML file

Workspace - Outline The space the end- effector can reach IK run across sample grid Contour-map around points with a valid solution

Load - Heatmap Shows the distribution of maximum load for the current configuration Max load calculated for static case with specified motor torques I needed a way to show how the arm’s performance varied over its workspace, and a heatmap seemed like the natural option. Essentially, brighter areas show a higher load capacity, and this is meant as a visual guide rather than a way of getting precise readings. The actual calculations are just static mechanics – I solved for the torques given a load, then flipped those equations around to get the load for given maximum motor torques.

Load Histogram/Slider Minimum load slider Coupled with histogram of load

Basic Interaction Shape and heatmap respond as the user alters parameters Visualization of the arm can be shown for a selected point Arm updates its dimensions and pose

Inspection Hover over the vis to see coordinates in mm + max load in newtons Click to select inspection point Bar chart shows how load at a point will change with the current parameter

Parameter space How will the results change with a particular parameter? Current config Parameters extend in all directions

Ghosts – Preview Outlines Extra outlines around the main one Show how the reachable area will change for different parameters Blue for -ve change Yellow for +ve change

Ghosts – Preview Outlines User can then ‘slide through’ the configurations in real time Ghosts are updated (recalculated) on the fly Opacity shows distance from current config

Ghosts – Preview Outlines Switches between parameters are instant! Ghosts for the other parameters are kept updated

Technical Lots of work making this responsive! NumPy is awesome Reformulated IK code into big matrix operations Improved IK solving performance by around 200x over naïve Python implementation Ghost outlines are an ‘embarrassingly parallel’ problem Calculations offloaded to pool of worker processes Spreads work across all CPU cores Results are presented as they become available

Thanks! Questions?

Asynchronous Calculations Interface Main Process Change config Change triggers calculations 1 solver per parameter and ghost (dozens total) Configuration Solver Poll Results Job Queue Results Configuration to solve, Priority, Creator Ref To actually achieve this, there’s a lot of work going on behind the scenes. When the configuration changes, these solvers, which are attached to the different ghost representations, get updated. There’s a set of solvers for every parameter (this is to keep the other ghosts updated), and they submit jobs to a queue. Worker Pool Worker Worker Worker Results of IK – grid of reachable cells, load distribution …