Drake
Visualizer Class Reference

An interface class which draws (e.g., produces a plot) the output of another dynamical system. More...

Inheritance diagram for Visualizer:
Collaboration diagram for Visualizer:

## Public Member Functions

virtual function draw (obj, t, y)

function Visualizer (input_frame)

function getInitialState (obj)

function dynamics (obj, t, x, u)

function update (obj, t, x, u)

function output (obj, t, x, u)

function getSampleTime (obj)

function drawWrapper (obj, t, y)

function ode_draw (obj, t, x, flag)

function playback (obj, xtraj, options)
Animates the trajectory in quasi- correct time using a matlab timer optional controlobj will playback the corresponding control scopes. More...

function inspector (obj, x0, state_dims, minrange, maxrange, visualized_system)
brings up a simple slider gui that displays the robot in the specified state when possible. More...

function playbackMovie (obj, xtraj, filename)

function playbackAVI (obj, xtraj, filename)
Plays back a trajectory and creates an avi file. More...

function playbackSWF (obj, xtraj, swf, options)
Creates a SWF (Flash) movie of the trajectory. More...

Public Member Functions inherited from DrakeSystem
function DrakeSystem (num_xc, num_xd, num_u, num_y, direct_feedthrough_flag, time_invariant_flag)
Construct a DrakeSystem. More...

function zeroCrossings (obj, t, x, u)
Placeholder for the zeroCrossings method: a method phi = zeroCrossings(t,x,u) which triggers a zero crossing event when phi transitions from positive to negative. More...

function getNumContStates (obj)
Returns the number of continuous states. More...

function getNumDiscStates (obj)
Returns the number of discrete states. More...

function getNumInputs (obj)
Returns the number of inputs to the system. More...

function getNumOutputs (obj)
Returns the number of outputs from the system. More...

function getInitialStateWInput (obj, t, x, u)
Hook in case a system needs to initial state based on current time and/or input. More...

function getInputSampleTimes (obj)
Returns getSampleTime - a DrakeSystem can only have a single same time associated with it. More...

function getOutputSampleTimes (obj)
Returns getSampleTime - a DrakeSystem can only have a single same time associated with it. More...

function setSampleTime (obj, ts)
robust method for setting default sample time More...

function isDirectFeedthrough (obj)
Check if the system is direct feedthrough (e.g., if the output depends on the immediate input) More...

function setDirectFeedthrough (obj, tf)
Set the direct feedthrough flag. More...

function getModel (obj)
Constructs a simulink system block for this system to be used by the simulink engine. More...

function findFixedPoint (obj, x0, u0)
attempts to find a fixed point (xstar,ustar) which also satisfies the constraints, using (x0,u0) as the initial guess. More...

function getDefaultInput (obj)
Define the default initial input so that behavior is well-defined if no controller is specified or if no control messages have been received yet. More...

function setNumContStates (obj, num_xc)
Guards the num_states variable. More...

function setNumDiscStates (obj, num_xd)
Guards the num_states variable. More...

function setNumInputs (obj, num_u)
Guards the num_u variable. More...

function setInputLimits (obj, umin, umax)
Guards the input limits to make sure it stay consistent. More...

function setNumOutputs (obj, num_y)
Guards the number of outputs to make sure it's consistent. More...

function getNumZeroCrossings (obj)
Returns the number of zero crossings. More...

function setNumZeroCrossings (obj, num_zcs)
Guards the number of zero crossings to make sure it's valid. More...

function getNumStateConstraints (obj)

function getNumUnilateralConstraints (obj)

function updateStateConstraint (obj, id, con, xind)

function displayStateConstraints (obj)

function removeAllStateConstraints (obj)

adds state constraints and unilateral constraints to the program on the specified indices. More...

add bounding box constraint todo: consider whether it makes sense to a list of constraints objects instead of just input limits. More...

function stateConstraints (obj, x)
Provides the old interface of a single constraint function which evaluates all of the equality constraints on the state (which should be == 0) More...

function linearize (obj, t0, x0, u0)
Uses the geval engine to linearize the model around the nominal point, at least for the simple case. More...

function simulate (obj, varargin)

function simulateODE (obj, tspan, x0, options)
Simulates the system using the ODE45 suite of solvers instead of the simulink solvers. More...

function feedback (sys1, sys2)
Constructs a feedback combination of sys1 and sys2. More...

Constructs a cascade combination of sys1 and sys2. More...

function extractPolynomialSystem (obj)
Attempts to symbolically extract the extra structure of a polynomial system from the Drake system Will throw an error if the system is not truly polynomial. More...

function extractAffineSystem (obj)
Attempts to symbolically extract the extra structure of an affine system from the Drake system Will throw an error if the system is not truly affine. More...

function extractLinearSystem (obj)
Attempts to symbolically extract the extra structure of a linear system from the Drake system Will throw an error if the system is not truly linear. More...

function makeTrigPolySystem (obj, options)

function systemGradTest (obj, t, x, u, options)
Compare numerical and analytical derivatives of dynamics,update,and output. More...

function extractAffineSystem (obj)

function extractTrigPolySystem (sys, options)
tries to convert the current system into a trig-poly system More...

function taylorApprox (sys, varargin)
performs a taylorApproximation around a point or trajectory usage: taylorApprox(sys,t0,x0,u0,order[,ignores]) or taylorApprox(sys,x0traj,u0traj,order[,ignores]) it returns a polynomial system (or polynomial trajectory system) More...

function transverseLQR (obj, xtraj, utraj, Q, R, Qf, transSurf)
Compute LQR control for transversal system. More...

function transverseLQRClosedLoop (obj, xtraj, utraj, Q, R, Vf, transSurf)

function tvlqr (obj, xtraj, utraj, Q, R, Qf, options)
implements the time-varying linear (or affine) quadratic regulator More...

Public Member Functions inherited from DynamicalSystem
function DynamicalSystem ()

function inInputFrame (sys, frame)
Ensures that sys has the specified input frame, by searching for and cascading a coordinate transformation to the existing input if necessary. More...

function inStateFrame (sys, frame)
Ensures that sys has the specified state frame. More...

function inOutputFrame (sys, frame)
Ensures that sys has the specified output frame, by searching for and cascading a coordinate transformation to the existing output if necessary. More...

Creates a new system with the output of system 1 connected to the input of system 2. More...

function feedback (sys1, sys2)
Creates a new systems with sys1 and sys2 in a feedback interconnect (with sys1 on the forward path, and sys2 on the return path). More...

function parallel (sys1, sys2)
Creates a new system that takes the inputs to both sys1 and sys2 as a single input (which is "demux"ed and passed independently to the two systems), and outputs the "mux"ed output of the two systems. More...

function sampledData (sys, tsin, tsout)
Creates a new system which is a sampled data (e.g. More...

function resolveConstraints (obj, x0, v, constraints)
attempts to find a x which satisfies the constraints, using x0 as the initial guess. More...

adds state constraints and unilateral constriants to the program on the specified indices. More...

function getNumStates (obj)
Returns the total number of states (discrete + continuous) in the system. More...

function getInputSampleTimes (obj)
Returns the sample time of the input See getSampleTime for more details about sample times. More...

function getOutputSampleTimes (obj)
Returns the sample time of the output See getSampleTime for more details about sample times. More...

function isDT (obj)
Returns true if the system has no states, or has states and only one sample time [a b], with a>0. More...

function isCT (obj)
Returns true if the system has only one sample time [a b], with a==0. More...

function isInheritedTime (obj)
Returns true if the system has only one sample time [a b], with b==-1. More...

function isTI (obj)
Returns true if the system is time-invariant. More...

function setTIFlag (obj, bval)
Sets the time invariant flag. More...

function getInputFrame (obj)
Access the CoordinateFrame object that defines the input to this system. More...

function setInputFrame (obj, fr)
Set the CoordinateFrame object that defines the input of this system. More...

function getStateFrame (obj)
Access the CoordinateFrame object that defines the state of this system. More...

function setStateFrame (obj, fr)
Set the CoordinateFrame object that defines the state of this system. More...

function getOutputFrame (obj)
Access the CoordinateFrame object that defines the output to this system. More...

function setOutputFrame (obj, fr)
Set the CoordinateFrame object that defines the output of this system. More...

function getNumStateConstraints (obj)
Returns the scalar number of state constraints (of the form phi(x)=0) More...

function stateConstraints (obj, x)
defines state equality constraints in the form phi(x)=0 More...

function unilateralConstraints (obj, x)
defines state unilateral constraints in the form phi(x)>=0 More...

function getNumUnilateralConstraints (obj)
Returns the scalar number of state constraints (of the form phi(x)>=0) More...

function linearize (obj, t0, x0, u0)
Linearize the system about an operating point (continuous time) More...

function dlinearize (obj, ts, t0, x0, u0)
Linearize the system about an operating point (discrete time) More...

function setParams (obj, p)
This default setParams method attempts to set class properties of the system according to the coordinate names in the parameter frame. More...

function getParams (obj)
This default getParams method attempts to get class properties of the system according to the coordinate names in the parameter frame. More...

function getNumParams (obj)

function setParamFrame (obj, fr)
Set the CoordinateFrame object which describes any system parameters. More...

function getParamFrame (obj)
Returns the CoordinateFrame object which describes any system parameters. More...

function setParamLimits (obj, pmin, pmax)
Set lower and upper bounds on the system parameters. More...

function getParamLimits (obj)
Returns the current lower and upper bounds on the system parameters. More...

function parameterEstimation (obj, data, options)
Estimate parameter values from input-output data. More...

function runLCM (obj, x0, options)
Runs the system as an lcm node. More...

function simulate (obj, tspan, x0, options)
Simulates the dynamical system (using the simulink solvers) More...

function tiHinf (obj, x0, u0, Q, R, Bw, gamma)
Suboptimal state-feedback H-infinity controller for LTI system with bound gamma. More...

function tilqr (obj, x0, u0, Q, R, options)
Computes an LQR controller to stabilize the system around (x0,u0) More...

function tilyap (obj, x0, Q)
Linearizes the system about the state x0 and returns a candidate LyapunovFunction generated by solving the quadratic Lyapunov equation. More...

function tvlyap (obj, xtraj, Q, Qf)
Linearizes the system about the state trajectory xtraj and returns a candidate LyapunovFunction generated by integrating backwards the quadratic differential Lyapunov equation. More...

## Public Attributes

Property display_dt
0.05; % requested time between display frames (use 0 for drawing as fast as possible) More...

Property playback_speed
1=realtime More...

Property draw_axes
when making movies true=gcf,false=gca More...

Property display_time
when true, time is written to figure title More...

Property preserve_view
when true, drawWrapper gets the view, calls draw, then restores the view More...

Property axis

Property fignum

Public Attributes inherited from DynamicalSystem
Property warning_manager

Protected Member Functions inherited from DynamicalSystem
function stateIndicesForCombination (sys1, sys2)
Helper method to figure out the indices of the discrete and continuous states after sys1 and sys2 have been combined into a single system. More...

function stateVectorToStructure (obj, xv, mdl)
Converts the vector state xv to the structure xs for simulink state. More...

function stateStructureToVector (obj, xs)
Converts the simulink state structure representation back to the vector state. More...

## Detailed Description

An interface class which draws (e.g., produces a plot) the output of another dynamical system.

An example might be a set of plotting commands to draw a pendulum given the position of the pendulum. Visualizers can be cascaded onto the output of a DynamicalSystem so that the visualization occurs at the time of simulation, or can 'playback' the trajectory that is the result of a simulation.

## Constructor & Destructor Documentation

 function Visualizer ( input_frame )
Return values
 obj

## Member Function Documentation

 virtual function draw ( obj , t , y )
virtual
 function drawWrapper ( obj , t , y )
 function dynamics ( obj , t , x , u )
virtual
Return values
 xcdot

Reimplemented from DrakeSystem.

 function getInitialState ( obj )
virtual
Return values
 x0

Reimplemented from DrakeSystem.

 function getSampleTime ( obj )
virtual
Return values
 ts

Reimplemented from DrakeSystem.

 function inspector ( obj , x0 , state_dims , minrange , maxrange , visualized_system )

brings up a simple slider gui that displays the robot in the specified state when possible.

Parameters
 x0 the initial state to display the robot in state_dims are the indices of the states to show on the slider. Including velocity states will display the forces and torques. minrange is the lower bound for the sliders maxrange is the upper bound for the sliders visualized_system is the system to be displayed

Example, for drawing forces on a 12-state floating base system:

  v.inspector(zeros(12,1), 1:12)

 function ode_draw ( obj , t , x , flag )
Return values
 status
 function output ( obj , t , x , u )
virtual
Return values
 y

Reimplemented from DrakeSystem.

 function playback ( obj , xtraj , options )

Animates the trajectory in quasi- correct time using a matlab timer optional controlobj will playback the corresponding control scopes.

Parameters
xtrajtrajectory to visualize
Options:
 slider set to true to create playback slider to control time and speed lcmlog plays back an lcmlog while calling the draw methods. (useful for, e.g., lcmgl debugging)
 function playbackAVI ( obj , xtraj , filename )

Plays back a trajectory and creates an avi file.

The filename argument is optional; if not specified, a gui will prompt for one.

Parameters
 xtraj trajectory to visulalize filename file to produce (optional, if not given a GUI will pop up and ask for it)
 function playbackMovie ( obj , xtraj , filename )
 function playbackSWF ( obj , xtraj , swf , options )

Creates a SWF (Flash) movie of the trajectory.

This is often useful for presentations because the movie is all vector graphics, so will scale losslessly.

Parameters
 xtraj a Trajectory object that will be played back swf either the filename of the swf file to write, or an instance of the SWFWriter class. If swf is empty, then you will be prompted for a filename (with the gui).
Options:
 poster set to true to export a pdf of the first frame. Default: false

Note: You must have pdftk and swftools installed for this to work.

If you want to print axes, you'll want to set your visualizer to draw axes: my_visualizer.draw_axes = true

This scales the output file to look the same as the onscreen figure, so if you want to change the dimensions, change the onscreen figure's size and then run playbackSWF.

Note that you can control the length/speed of your video by changing your visualizer's display_dt property.

 function update ( obj , t , x , u )
virtual
Return values
 xdn

Reimplemented from DrakeSystem.

## Member Data Documentation

 Property axis
 Property display_dt

0.05; % requested time between display frames (use 0 for drawing as fast as possible)

 Property display_time

when true, time is written to figure title

 Property draw_axes

when making movies true=gcf,false=gca

 Property fignum
 Property playback_speed

1=realtime

 Property preserve_view

when true, drawWrapper gets the view, calls draw, then restores the view

The documentation for this class was generated from the following file:
• /home/ubuntu/workspace/linux-gcc-continuous-matlab-documentation/drake/matlab/systems/visualizers/Visualizer.m