You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

6672 lines
183 KiB

Library {
Name "roblocks"
Version 8.0
MdlSubVersion 0
SavedCharacterEncoding "ISO-8859-1"
LibraryType "BlockLibrary"
SaveDefaultBlockParams on
ScopeRefreshTime 0.035000
OverrideScopeRefreshTime on
DisableAllScopes off
FPTRunName "Run 1"
MaxMDLFileLineLength 120
Object {
$PropName "BdWindowsInfo"
$ObjectID 1
$ClassName "Simulink.BDWindowsInfo"
Object {
$PropName "WindowsInfo"
$ObjectID 2
$ClassName "Simulink.WindowInfo"
IsActive [1]
Location [618.0, 490.0, 563.0, 616.0]
Object {
$PropName "ModelBrowserInfo"
$ObjectID 3
$ClassName "Simulink.ModelBrowserInfo"
Visible [0]
DockPosition "Left"
Width [50]
Height [50]
Filter [9]
}
Object {
$PropName "ExplorerBarInfo"
$ObjectID 4
$ClassName "Simulink.ExplorerBarInfo"
Visible [1]
}
Object {
$PropName "EditorsInfo"
$ObjectID 5
$ClassName "Simulink.EditorInfo"
IsActive [1]
ViewObjType "SimulinkTopLevel"
LoadSaveID "0"
Extents [529.0, 454.0]
ZoomFactor [1.0]
Offset [0.0, -5.0]
}
}
}
Created "Mon Feb 06 11:30:26 2012"
Creator "n6334687"
UpdateHistory "UpdateHistoryNever"
ModifiedByFormat "%<Auto>"
LastModifiedBy "corkep"
ModifiedDateFormat "%<Auto>"
LastModifiedDate "Sun Jan 27 11:27:27 2013"
RTWModifiedTimeStamp 281186779
ModelVersionFormat "1.%<AutoIncrement:57>"
ConfigurationManager "None"
SampleTimeColors off
SampleTimeAnnotations off
LibraryLinkDisplay "none"
WideLines off
ShowLineDimensions off
ShowPortDataTypes off
ShowDesignRanges off
ShowLoopsOnError on
IgnoreBidirectionalLines off
ShowStorageClass off
ShowTestPointIcons on
ShowSignalResolutionIcons on
ShowViewerIcons on
SortedOrder off
ExecutionContextIcon off
ShowLinearizationAnnotations on
BlockNameDataTip off
BlockParametersDataTip off
BlockDescriptionStringDataTip off
ToolBar on
StatusBar on
BrowserShowLibraryLinks off
BrowserLookUnderMasks on
SimulationMode "normal"
LinearizationMsg "none"
Profile off
ParamWorkspaceSource "MATLABWorkspace"
RecordCoverage off
CovSaveName "covdata"
CovMetricSettings "dw"
CovNameIncrementing off
CovHtmlReporting on
CovForceBlockReductionOff on
covSaveCumulativeToWorkspaceVar on
CovSaveSingleToWorkspaceVar on
CovCumulativeReport off
CovReportOnPause on
CovModelRefEnable "Off"
CovExternalEMLEnable off
ExtModeBatchMode off
ExtModeEnableFloating on
ExtModeTrigType "manual"
ExtModeTrigMode "normal"
ExtModeTrigPort "1"
ExtModeTrigElement "any"
ExtModeTrigDuration 1000
ExtModeTrigDurationFloating "auto"
ExtModeTrigHoldOff 0
ExtModeTrigDelay 0
ExtModeTrigDirection "rising"
ExtModeTrigLevel 0
ExtModeArchiveMode "off"
ExtModeAutoIncOneShot off
ExtModeIncDirWhenArm off
ExtModeAddSuffixToVar off
ExtModeWriteAllDataToWs off
ExtModeArmWhenConnect on
ExtModeSkipDownloadWhenConnect off
ExtModeLogAll on
ExtModeAutoUpdateStatusClock on
ShowModelReferenceBlockVersion off
ShowModelReferenceBlockIO off
Array {
Type "Handle"
Dimension 1
Simulink.ConfigSet {
$ObjectID 6
Version "1.12.1"
Array {
Type "Handle"
Dimension 8
Simulink.SolverCC {
$ObjectID 7
Version "1.12.1"
StartTime "0.0"
StopTime "10.0"
AbsTol "auto"
FixedStep "auto"
InitialStep "auto"
MaxNumMinSteps "-1"
MaxOrder 5
ZcThreshold "auto"
ConsecutiveZCsStepRelTol "10*128*eps"
MaxConsecutiveZCs "1000"
ExtrapolationOrder 4
NumberNewtonIterations 1
MaxStep "auto"
MinStep "auto"
MaxConsecutiveMinStep "1"
RelTol "1e-3"
SolverMode "Auto"
EnableConcurrentExecution off
ConcurrentTasks off
Solver "ode45"
SolverName "ode45"
SolverJacobianMethodControl "auto"
ShapePreserveControl "DisableAll"
ZeroCrossControl "UseLocalSettings"
ZeroCrossAlgorithm "Nonadaptive"
AlgebraicLoopSolver "TrustRegion"
SolverResetMethod "Fast"
PositivePriorityOrder off
AutoInsertRateTranBlk off
SampleTimeConstraint "Unconstrained"
InsertRTBMode "Whenever possible"
}
Simulink.DataIOCC {
$ObjectID 8
Version "1.12.1"
Decimation "1"
ExternalInput "[t, u]"
FinalStateName "xFinal"
InitialState "xInitial"
LimitDataPoints on
MaxDataPoints "1000"
LoadExternalInput off
LoadInitialState off
SaveFinalState off
SaveCompleteFinalSimState off
SaveFormat "Array"
SignalLoggingSaveFormat "ModelDataLogs"
SaveOutput on
SaveState off
SignalLogging on
DSMLogging on
InspectSignalLogs off
SaveTime on
ReturnWorkspaceOutputs off
StateSaveName "xout"
TimeSaveName "tout"
OutputSaveName "yout"
SignalLoggingName "logsout"
DSMLoggingName "dsmout"
OutputOption "RefineOutputTimes"
OutputTimes "[]"
ReturnWorkspaceOutputsName "out"
Refine "1"
}
Simulink.OptimizationCC {
$ObjectID 9
Version "1.12.1"
Array {
Type "Cell"
Dimension 8
Cell "BooleansAsBitfields"
Cell "PassReuseOutputArgsAs"
Cell "PassReuseOutputArgsThreshold"
Cell "ZeroExternalMemoryAtStartup"
Cell "ZeroInternalMemoryAtStartup"
Cell "OptimizeModelRefInitCode"
Cell "NoFixptDivByZeroProtection"
Cell "UseSpecifiedMinMax"
PropName "DisabledProps"
}
BlockReduction on
BooleanDataType on
ConditionallyExecuteInputs on
InlineParams off
UseIntDivNetSlope off
UseFloatMulNetSlope off
UseSpecifiedMinMax off
InlineInvariantSignals off
OptimizeBlockIOStorage on
BufferReuse on
EnhancedBackFolding off
StrengthReduction off
ExpressionFolding on
BooleansAsBitfields off
BitfieldContainerType "uint_T"
EnableMemcpy on
MemcpyThreshold 64
PassReuseOutputArgsAs "Structure reference"
ExpressionDepthLimit 2147483647
FoldNonRolledExpr on
LocalBlockOutputs on
RollThreshold 5
SystemCodeInlineAuto off
StateBitsets off
DataBitsets off
UseTempVars off
ZeroExternalMemoryAtStartup on
ZeroInternalMemoryAtStartup on
InitFltsAndDblsToZero off
NoFixptDivByZeroProtection off
EfficientFloat2IntCast off
EfficientMapNaN2IntZero on
OptimizeModelRefInitCode off
LifeSpan "inf"
MaxStackSize "Inherit from target"
BufferReusableBoundary on
SimCompilerOptimization "Off"
AccelVerboseBuild off
ParallelExecutionInRapidAccelerator on
}
Simulink.DebuggingCC {
$ObjectID 10
Version "1.12.1"
RTPrefix "error"
ConsistencyChecking "none"
ArrayBoundsChecking "none"
SignalInfNanChecking "none"
SignalRangeChecking "none"
ReadBeforeWriteMsg "UseLocalSettings"
WriteAfterWriteMsg "UseLocalSettings"
WriteAfterReadMsg "UseLocalSettings"
AlgebraicLoopMsg "warning"
ArtificialAlgebraicLoopMsg "warning"
SaveWithDisabledLinksMsg "warning"
SaveWithParameterizedLinksMsg "warning"
CheckSSInitialOutputMsg on
UnderspecifiedInitializationDetection "Classic"
MergeDetectMultiDrivingBlocksExec "none"
CheckExecutionContextPreStartOutputMsg off
CheckExecutionContextRuntimeOutputMsg off
SignalResolutionControl "UseLocalSettings"
BlockPriorityViolationMsg "warning"
MinStepSizeMsg "warning"
TimeAdjustmentMsg "none"
MaxConsecutiveZCsMsg "error"
MaskedZcDiagnostic "warning"
IgnoredZcDiagnostic "warning"
SolverPrmCheckMsg "warning"
InheritedTsInSrcMsg "warning"
DiscreteInheritContinuousMsg "warning"
MultiTaskDSMMsg "error"
MultiTaskCondExecSysMsg "error"
MultiTaskRateTransMsg "error"
SingleTaskRateTransMsg "none"
TasksWithSamePriorityMsg "warning"
SigSpecEnsureSampleTimeMsg "warning"
CheckMatrixSingularityMsg "none"
IntegerOverflowMsg "warning"
Int32ToFloatConvMsg "warning"
ParameterDowncastMsg "error"
ParameterOverflowMsg "error"
ParameterUnderflowMsg "none"
ParameterPrecisionLossMsg "warning"
ParameterTunabilityLossMsg "warning"
FixptConstUnderflowMsg "none"
FixptConstOverflowMsg "none"
FixptConstPrecisionLossMsg "none"
UnderSpecifiedDataTypeMsg "none"
UnnecessaryDatatypeConvMsg "none"
VectorMatrixConversionMsg "none"
InvalidFcnCallConnMsg "error"
FcnCallInpInsideContextMsg "UseLocalSettings"
SignalLabelMismatchMsg "none"
UnconnectedInputMsg "warning"
UnconnectedOutputMsg "warning"
UnconnectedLineMsg "warning"
SFcnCompatibilityMsg "none"
FrameProcessingCompatibilityMsg "warning"
UniqueDataStoreMsg "none"
BusObjectLabelMismatch "warning"
RootOutportRequireBusObject "warning"
AssertControl "UseLocalSettings"
EnableOverflowDetection off
ModelReferenceIOMsg "none"
ModelReferenceMultiInstanceNormalModeStructChecksumCheck "error"
ModelReferenceVersionMismatchMessage "none"
ModelReferenceIOMismatchMessage "none"
ModelReferenceCSMismatchMessage "none"
UnknownTsInhSupMsg "warning"
ModelReferenceDataLoggingMessage "warning"
ModelReferenceSymbolNameMessage "warning"
ModelReferenceExtraNoncontSigs "error"
StateNameClashWarn "warning"
SimStateInterfaceChecksumMismatchMsg "warning"
SimStateOlderReleaseMsg "error"
InitInArrayFormatMsg "warning"
StrictBusMsg "ErrorLevel1"
BusNameAdapt "WarnAndRepair"
NonBusSignalsTreatedAsBus "none"
LoggingUnavailableSignals "error"
BlockIODiagnostic "none"
SFUnusedDataAndEventsDiag "warning"
SFUnexpectedBacktrackingDiag "warning"
SFInvalidInputDataAccessInChartInitDiag "warning"
SFNoUnconditionalDefaultTransitionDiag "warning"
SFTransitionOutsideNaturalParentDiag "warning"
SFUnconditionalTransitionShadowingDiag "warning"
SFUndirectedBroadcastEventsDiag "warning"
SFTransitionActionBeforeConditionDiag "warning"
}
Simulink.HardwareCC {
$ObjectID 11
Version "1.12.1"
ProdBitPerChar 8
ProdBitPerShort 16
ProdBitPerInt 32
ProdBitPerLong 32
ProdBitPerFloat 32
ProdBitPerDouble 64
ProdBitPerPointer 32
ProdLargestAtomicInteger "Char"
ProdLargestAtomicFloat "None"
ProdIntDivRoundTo "Undefined"
ProdEndianess "Unspecified"
ProdWordSize 32
ProdShiftRightIntArith on
ProdHWDeviceType "32-bit Generic"
TargetBitPerChar 8
TargetBitPerShort 16
TargetBitPerInt 32
TargetBitPerLong 32
TargetBitPerFloat 32
TargetBitPerDouble 64
TargetBitPerPointer 32
TargetLargestAtomicInteger "Char"
TargetLargestAtomicFloat "None"
TargetShiftRightIntArith on
TargetIntDivRoundTo "Undefined"
TargetEndianess "Unspecified"
TargetWordSize 32
TargetTypeEmulationWarnSuppressLevel 0
TargetPreprocMaxBitsSint 32
TargetPreprocMaxBitsUint 32
TargetHWDeviceType "Specified"
TargetUnknown off
ProdEqTarget on
}
Simulink.ModelReferenceCC {
$ObjectID 12
Version "1.12.1"
UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange"
CheckModelReferenceTargetMessage "error"
EnableParallelModelReferenceBuilds off
ParallelModelReferenceErrorOnInvalidPool on
ParallelModelReferenceMATLABWorkerInit "None"
ModelReferenceNumInstancesAllowed "Multi"
PropagateVarSize "Infer from blocks in model"
ModelReferencePassRootInputsByReference on
ModelReferenceMinAlgLoopOccurrences off
PropagateSignalLabelsOutOfModel off
SupportModelReferenceSimTargetCustomCode off
}
Simulink.SFSimCC {
$ObjectID 13
Version "1.12.1"
SFSimEnableDebug on
SFSimOverflowDetection on
SFSimEcho on
SimBlas on
SimCtrlC on
SimExtrinsic on
SimIntegrity on
SimUseLocalCustomCode off
SimParseCustomCode on
SimBuildMode "sf_incremental_build"
}
Simulink.RTWCC {
$BackupClass "Simulink.RTWCC"
$ObjectID 14
Version "1.12.1"
Array {
Type "Cell"
Dimension 7
Cell "IncludeHyperlinkInReport"
Cell "GenerateTraceInfo"
Cell "GenerateTraceReport"
Cell "GenerateTraceReportSl"
Cell "GenerateTraceReportSf"
Cell "GenerateTraceReportEml"
Cell "GenerateSLWebview"
PropName "DisabledProps"
}
SystemTargetFile "grt.tlc"
GenCodeOnly off
MakeCommand "make_rtw"
GenerateMakefile on
PackageGeneratedCodeAndArtifacts off
TemplateMakefile "grt_default_tmf"
GenerateReport off
SaveLog off
RTWVerbose on
RetainRTWFile off
ProfileTLC off
TLCDebug off
TLCCoverage off
TLCAssert off
ProcessScriptMode "Default"
ConfigurationMode "Optimized"
ConfigAtBuild off
RTWUseLocalCustomCode off
RTWUseSimCustomCode off
IncludeHyperlinkInReport off
LaunchReport off
PortableWordSizes off
GenerateErtSFunction off
CreateSILPILBlock "None"
CodeExecutionProfiling off
CodeExecutionProfileVariable "executionProfile"
CodeProfilingSaveOptions "SummaryOnly"
CodeProfilingInstrumentation off
TargetLang "C"
IncludeBusHierarchyInRTWFileBlockHierarchyMap off
IncludeERTFirstTime off
GenerateTraceInfo off
GenerateTraceReport off
GenerateTraceReportSl off
GenerateTraceReportSf off
GenerateTraceReportEml off
GenerateCodeInfo off
GenerateWebview off
GenerateCodeMetricsReport off
GenerateCodeReplacementReport off
RTWCompilerOptimization "Off"
CheckMdlBeforeBuild "Off"
CustomRebuildMode "OnUpdate"
Array {
Type "Handle"
Dimension 2
Simulink.CodeAppCC {
$ObjectID 15
Version "1.12.1"
Array {
Type "Cell"
Dimension 21
Cell "IgnoreCustomStorageClasses"
Cell "IgnoreTestpoints"
Cell "InsertBlockDesc"
Cell "InsertPolySpaceComments"
Cell "SFDataObjDesc"
Cell "MATLABFcnDesc"
Cell "SimulinkDataObjDesc"
Cell "DefineNamingRule"
Cell "SignalNamingRule"
Cell "ParamNamingRule"
Cell "InlinedPrmAccess"
Cell "CustomSymbolStr"
Cell "CustomSymbolStrGlobalVar"
Cell "CustomSymbolStrType"
Cell "CustomSymbolStrField"
Cell "CustomSymbolStrFcn"
Cell "CustomSymbolStrFcnArg"
Cell "CustomSymbolStrBlkIO"
Cell "CustomSymbolStrTmpVar"
Cell "CustomSymbolStrMacro"
Cell "ReqsInCode"
PropName "DisabledProps"
}
ForceParamTrailComments off
GenerateComments on
IgnoreCustomStorageClasses on
IgnoreTestpoints off
IncHierarchyInIds off
MaxIdLength 31
PreserveName off
PreserveNameWithParent off
ShowEliminatedStatement off
OperatorAnnotations off
IncAutoGenComments off
SimulinkDataObjDesc off
SFDataObjDesc off
MATLABFcnDesc off
IncDataTypeInIds off
MangleLength 1
CustomSymbolStrGlobalVar "$R$N$M"
CustomSymbolStrType "$N$R$M"
CustomSymbolStrField "$N$M"
CustomSymbolStrFcn "$R$N$M$F"
CustomSymbolStrFcnArg "rt$I$N$M"
CustomSymbolStrBlkIO "rtb_$N$M"
CustomSymbolStrTmpVar "$N$M"
CustomSymbolStrMacro "$R$N$M"
DefineNamingRule "None"
ParamNamingRule "None"
SignalNamingRule "None"
InsertBlockDesc off
InsertPolySpaceComments off
SimulinkBlockComments on
MATLABSourceComments off
EnableCustomComments off
InternalIdentifier "Classic"
InlinedPrmAccess "Literals"
ReqsInCode off
UseSimReservedNames off
}
Simulink.GRTTargetCC {
$BackupClass "Simulink.TargetCC"
$ObjectID 16
Version "1.12.1"
Array {
Type "Cell"
Dimension 16
Cell "GeneratePreprocessorConditionals"
Cell "IncludeMdlTerminateFcn"
Cell "CombineOutputUpdateFcns"
Cell "SuppressErrorStatus"
Cell "ERTCustomFileBanners"
Cell "GenerateSampleERTMain"
Cell "GenerateTestInterfaces"
Cell "ModelStepFunctionPrototypeControlCompliant"
Cell "CPPClassGenCompliant"
Cell "MultiInstanceERTCode"
Cell "PurelyIntegerCode"
Cell "SupportComplex"
Cell "SupportAbsoluteTime"
Cell "SupportContinuousTime"
Cell "SupportNonInlinedSFcns"
Cell "PortableWordSizes"
PropName "DisabledProps"
}
TargetFcnLib "ansi_tfl_table_tmw.mat"
TargetLibSuffix ""
TargetPreCompLibLocation ""
CodeReplacementLibrary "ANSI_C"
UtilityFuncGeneration "Auto"
ERTMultiwordTypeDef "System defined"
ERTMultiwordLength 256
MultiwordLength 2048
GenerateFullHeader on
GenerateSampleERTMain off
GenerateTestInterfaces off
IsPILTarget off
ModelReferenceCompliant on
ParMdlRefBuildCompliant on
CompOptLevelCompliant on
ConcurrentExecutionCompliant on
IncludeMdlTerminateFcn on
GeneratePreprocessorConditionals "Disable all"
CombineOutputUpdateFcns off
CombineSignalStateStructs off
SuppressErrorStatus off
ERTFirstTimeCompliant off
IncludeFileDelimiter "Auto"
ERTCustomFileBanners off
SupportAbsoluteTime on
LogVarNameModifier "rt_"
MatFileLogging on
MultiInstanceERTCode off
SupportNonFinite on
SupportComplex on
PurelyIntegerCode off
SupportContinuousTime on
SupportNonInlinedSFcns on
SupportVariableSizeSignals off
EnableShiftOperators on
ParenthesesLevel "Nominal"
ModelStepFunctionPrototypeControlCompliant off
CPPClassGenCompliant off
AutosarCompliant off
GRTInterface on
UseMalloc off
ExtMode off
ExtModeStaticAlloc off
ExtModeTesting off
ExtModeStaticAllocSize 1000000
ExtModeTransport 0
ExtModeMexFile "ext_comm"
ExtModeIntrfLevel "Level1"
RTWCAPISignals off
RTWCAPIParams off
RTWCAPIStates off
RTWCAPIRootIO off
GenerateASAP2 off
}
PropName "Components"
}
}
PropName "Components"
}
Name "Configuration"
CurrentDlgPage "Solver"
ConfigPrmDlgPosition [ 400, 210, 1280, 840 ]
}
PropName "ConfigurationSets"
}
ExplicitPartitioning off
BlockDefaults {
ForegroundColor "black"
BackgroundColor "white"
DropShadow off
NamePlacement "normal"
FontName "Helvetica"
FontSize 10
FontWeight "normal"
FontAngle "normal"
ShowName on
BlockRotation 0
BlockMirror off
}
AnnotationDefaults {
HorizontalAlignment "center"
VerticalAlignment "middle"
ForegroundColor "black"
BackgroundColor "white"
DropShadow off
FontName "Helvetica"
FontSize 10
FontWeight "normal"
FontAngle "normal"
UseDisplayTextAsClickCallback off
}
LineDefaults {
FontName "Helvetica"
FontSize 9
FontWeight "normal"
FontAngle "normal"
}
MaskDefaults {
SelfModifiable "off"
IconFrame "on"
IconOpaque "on"
RunInitForIconRedraw "off"
IconRotate "none"
PortRotate "default"
IconUnits "autoscale"
}
MaskParameterDefaults {
Evaluate "on"
Tunable "on"
NeverSave "off"
Internal "off"
ReadOnly "off"
Enabled "on"
Visible "on"
ToolTip "on"
}
BlockParameterDefaults {
Block {
BlockType BusCreator
Inputs "4"
DisplayOption "none"
OutDataTypeStr "Inherit: auto"
NonVirtualBus off
}
Block {
BlockType BusSelector
OutputSignals "signal1,signal2,signal3"
OutputAsBus off
}
Block {
BlockType Clock
DisplayTime off
Decimation "10"
}
Block {
BlockType Concatenate
NumInputs "2"
Mode "Vector"
ConcatenateDimension "1"
}
Block {
BlockType Constant
Value "1"
VectorParams1D on
SamplingMode "Sample based"
OutMin "[]"
OutMax "[]"
OutDataTypeStr "Inherit: Inherit from 'Constant value'"
LockScale off
SampleTime "inf"
FramePeriod "inf"
PreserveConstantTs off
}
Block {
BlockType Demux
Outputs "4"
DisplayOption "none"
BusSelectionMode off
}
Block {
BlockType Fcn
Expr "sin(u[1])"
SampleTime "-1"
}
Block {
BlockType Gain
Gain "1"
Multiplication "Element-wise(K.*u)"
ParamMin "[]"
ParamMax "[]"
ParamDataTypeStr "Inherit: Same as input"
OutMin "[]"
OutMax "[]"
OutDataTypeStr "Inherit: Same as input"
LockScale off
RndMeth "Floor"
SaturateOnIntegerOverflow on
SampleTime "-1"
}
Block {
BlockType Inport
Port "1"
OutputFunctionCall off
OutMin "[]"
OutMax "[]"
OutDataTypeStr "Inherit: auto"
LockScale off
BusOutputAsStruct off
PortDimensions "-1"
VarSizeSig "Inherit"
SampleTime "-1"
SignalType "auto"
SamplingMode "auto"
LatchByDelayingOutsideSignal off
LatchInputForFeedbackSignals off
Interpolate on
}
Block {
BlockType Integrator
ExternalReset "none"
InitialConditionSource "internal"
InitialCondition "0"
LimitOutput off
UpperSaturationLimit "inf"
LowerSaturationLimit "-inf"
ShowSaturationPort off
ShowStatePort off
AbsoluteTolerance "auto"
IgnoreLimit off
ZeroCross on
ContinuousStateAttributes "''"
}
Block {
BlockType MATLABFcn
MATLABFcn "sin"
OutputDimensions "-1"
OutputSignalType "auto"
Output1D on
SampleTime "-1"
}
Block {
BlockType Mux
Inputs "4"
DisplayOption "none"
UseBusObject off
BusObject "BusObject"
NonVirtualBus off
}
Block {
BlockType Outport
Port "1"
OutMin "[]"
OutMax "[]"
OutDataTypeStr "Inherit: auto"
LockScale off
BusOutputAsStruct off
PortDimensions "-1"
VarSizeSig "Inherit"
SampleTime "-1"
SignalType "auto"
SamplingMode "auto"
SourceOfInitialOutputValue "Dialog"
OutputWhenDisabled "held"
InitialOutput "[]"
}
Block {
BlockType Product
Inputs "2"
Multiplication "Element-wise(.*)"
CollapseMode "All dimensions"
CollapseDim "1"
InputSameDT on
OutMin "[]"
OutMax "[]"
OutDataTypeStr "Inherit: Same as first input"
LockScale off
RndMeth "Zero"
SaturateOnIntegerOverflow on
SampleTime "-1"
}
Block {
BlockType RateLimiter
RisingSlewLimit "1"
FallingSlewLimit "-1"
SampleTimeMode "continuous"
InitialCondition "0"
LinearizeAsGain on
}
Block {
BlockType Reshape
OutputDimensionality "1-D array"
OutputDimensions "[1,1]"
}
Block {
BlockType S-Function
FunctionName "system"
SFunctionModules "''"
PortCounts "[]"
SFunctionDeploymentMode off
}
Block {
BlockType Saturate
UpperLimitSource "Dialog"
UpperLimit "0.5"
LowerLimitSource "Dialog"
LowerLimit "-0.5"
LinearizeAsGain on
ZeroCross on
SampleTime "-1"
OutMin "[]"
OutMax "[]"
OutDataTypeStr "Inherit: Same as input"
LockScale off
RndMeth "Floor"
}
Block {
BlockType SubSystem
ShowPortLabels "FromPortIcon"
Permissions "ReadWrite"
PermitHierarchicalResolution "All"
TreatAsAtomicUnit off
CheckFcnCallInpInsideContextMsg off
SystemSampleTime "-1"
RTWFcnNameOpts "Auto"
RTWFileNameOpts "Auto"
RTWMemSecFuncInitTerm "Inherit from model"
RTWMemSecFuncExecute "Inherit from model"
RTWMemSecDataConstants "Inherit from model"
RTWMemSecDataInternal "Inherit from model"
RTWMemSecDataParameters "Inherit from model"
SimViewingDevice off
DataTypeOverride "UseLocalSettings"
DataTypeOverrideAppliesTo "AllNumericTypes"
MinMaxOverflowLogging "UseLocalSettings"
SFBlockType "NONE"
Variant off
GeneratePreprocessorConditionals off
}
Block {
BlockType Sum
IconShape "rectangular"
Inputs "++"
CollapseMode "All dimensions"
CollapseDim "1"
InputSameDT on
AccumDataTypeStr "Inherit: Inherit via internal rule"
OutMin "[]"
OutMax "[]"
OutDataTypeStr "Inherit: Same as first input"
LockScale off
RndMeth "Floor"
SaturateOnIntegerOverflow on
SampleTime "-1"
}
Block {
BlockType Trigonometry
Operator "sin"
ApproximationMethod "None"
NumberOfIterations "11"
OutputSignalType "auto"
SampleTime "-1"
}
Block {
BlockType UnitDelay
InitialCondition "0"
InputProcessing "Inherited"
SampleTime "1"
StateMustResolveToSignalObject off
CodeGenStateStorageClass "Auto"
HasFrameUpgradeWarning on
}
}
System {
Name "roblocks"
Location [618, 490, 1181, 1106]
Open on
ModelBrowserVisibility off
ModelBrowserWidth 212
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
ReportName "simulink-default.rpt"
SIDHighWatermark "648"
Block {
BlockType SubSystem
Name "Dynamics"
SID "5"
Ports []
Position [152, 199, 260, 241]
ZOrder -1
BackgroundColor "darkGreen"
ShowName off
LibraryVersion "1.225"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 17
$ClassName "Simulink.Mask"
Display "color('darkBlue')\ndisp('Dynamics')"
IconUnits "pixels"
}
System {
Name "Dynamics"
Location [1072, 55, 1491, 783]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
Block {
BlockType SubSystem
Name "Bicycle"
SID "51"
Ports [2, 3]
Position [115, 207, 175, 283]
ZOrder -1
DropShadow on
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 18
$ClassName "Simulink.Mask"
Description "Kino-dynamic model of bicycle vehicle"
Help "Kino-dynamic model of bicycle vehicle, also known as Ackermann vehicle\nmodel.\n\n<b>Parameters::</b>\n"
" \nAcceleration (1x1) Vehicle acceleration limit [m/s2]\nVelocity limit (1x1) Vehicle speed limit [m/s]\nSteer"
"ing limits (1x1) Steering angle limit [rad]\nInitial state (1x3) Initial state (x, y, theta)\nHandbrake (1x1) Veh"
"icle cannot move if non-zero\n \n<b>Inputs::</b>\n \nv (1x1) velocity demand [m/s]\ngamma (1x1) steering angle [r"
"ad]\n \n<b>Outputs::</b>\n \nx (1x1) x-coordinate in world frame [m]\ny (1x1) x-coordinate in world frame [m]\nth"
"eta (1x1) heading angle in world frame [rad]\n\n \n<b>Notes::</b>\n \n- Steering limit is symmetric between -limi"
"t and +limit\n- Same dynamic model as the Toolbox class Vehicle.\n\n"
Array {
Type "Simulink.MaskParameter"
Dimension 6
Object {
$ObjectID 19
Type "edit"
Name "accel"
Prompt "Acceleration"
Value "1"
}
Object {
$ObjectID 20
Type "edit"
Name "vlim"
Prompt "Velocity limit"
Value "1"
}
Object {
$ObjectID 21
Type "edit"
Name "alim"
Prompt "Steering limits"
Value "2"
}
Object {
$ObjectID 22
Type "edit"
Name "L"
Prompt "Wheel base"
Value "0"
}
Object {
$ObjectID 23
Type "edit"
Name "x0"
Prompt "Initial state (x, y, theta)"
Value "[0, 0, 0]"
}
Object {
$ObjectID 24
Type "edit"
Name "handbrake"
Prompt "Handbrake"
Value "0"
}
PropName "Parameters"
}
}
System {
Name "Bicycle"
Location [63, 384, 735, 831]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "243"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "v"
SID "51:2"
Position [25, 43, 55, 57]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "gamma"
SID "51:3"
Position [25, 158, 55, 172]
ZOrder -2
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Constant
Name "Constant"
SID "51:222"
Position [320, 210, 395, 240]
ZOrder -3
ShowName off
Value "handbrake"
}
Block {
BlockType Demux
Name "Demux"
SID "51:4"
Ports [1, 3]
Position [525, 104, 530, 166]
ZOrder -4
ShowName off
Outputs "3"
DisplayOption "bar"
}
Block {
BlockType Fcn
Name "Fcn"
SID "51:226"
Position [135, 150, 195, 180]
ZOrder -5
ShowName off
Expr "tan(u)/L"
}
Block {
BlockType Integrator
Name "Integrator"
SID "51:227"
Ports [2, 1]
Position [440, 113, 470, 157]
ZOrder -6
ExternalReset "level"
InitialCondition "x0"
}
Block {
BlockType Mux
Name "Mux"
SID "51:6"
Ports [3, 1]
Position [310, 81, 315, 149]
ZOrder -7
ShowName off
Inputs "3"
DisplayOption "bar"
}
Block {
BlockType Product
Name "Product"
SID "51:7"
Ports [2, 1]
Position [365, 107, 395, 138]
ZOrder -8
InputSameDT off
OutDataTypeStr "Inherit: Inherit via internal rule"
SaturateOnIntegerOverflow off
}
Block {
BlockType Trigonometry
Name "Trigonometric\nFunction"
SID "51:8"
Ports [1, 1]
Position [240, 80, 270, 110]
ZOrder -9
ShowName off
Operator "cos"
}
Block {
BlockType Trigonometry
Name "Trigonometric\nFunction2"
SID "51:9"
Ports [1, 1]
Position [240, 125, 270, 155]
ZOrder -10
ShowName off
}
Block {
BlockType RateLimiter
Name "acceleration\nlimit"
SID "51:10"
Position [150, 35, 180, 65]
ZOrder -11
RisingSlewLimit "accel"
FallingSlewLimit "-accel"
SampleTimeMode "inherited"
}
Block {
BlockType Saturate
Name "steering\nangle\nlimit"
SID "51:11"
Ports [1, 1]
Position [80, 150, 110, 180]
ZOrder -12
InputPortMap "u0"
UpperLimit "alim"
LowerLimit "-alim"
}
Block {
BlockType Saturate
Name "vel\nlimit"
SID "51:12"
Ports [1, 1]
Position [90, 35, 120, 65]
ZOrder -13
InputPortMap "u0"
UpperLimit "vlim"
LowerLimit "-vlim"
}
Block {
BlockType Outport
Name "x"
SID "51:13"
Position [570, 108, 600, 122]
ZOrder -14
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "y"
SID "51:14"
Position [570, 148, 600, 162]
ZOrder -15
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "theta"
SID "51:15"
Position [570, 193, 600, 207]
ZOrder -16
Port "3"
IconDisplay "Port number"
}
Line {
SrcBlock "Constant"
SrcPort 1
Points [5, 0; 0, -80]
DstBlock "Integrator"
DstPort 2
}
Line {
SrcBlock "steering\nangle\nlimit"
SrcPort 1
DstBlock "Fcn"
DstPort 1
}
Line {
SrcBlock "Trigonometric\nFunction2"
SrcPort 1
Points [5, 0; 0, -25]
DstBlock "Mux"
DstPort 2
}
Line {
SrcBlock "vel\nlimit"
SrcPort 1
DstBlock "acceleration\nlimit"
DstPort 1
}
Line {
SrcBlock "Mux"
SrcPort 1
DstBlock "Product"
DstPort 1
}
Line {
SrcBlock "v"
SrcPort 1
DstBlock "vel\nlimit"
DstPort 1
}
Line {
SrcBlock "gamma"
SrcPort 1
DstBlock "steering\nangle\nlimit"
DstPort 1
}
Line {
SrcBlock "Demux"
SrcPort 2
Points [20, 0]
DstBlock "y"
DstPort 1
}
Line {
SrcBlock "Demux"
SrcPort 1
DstBlock "x"
DstPort 1
}
Line {
SrcBlock "Demux"
SrcPort 3
Points [5, 0; 0, 45]
Branch {
DstBlock "theta"
DstPort 1
}
Branch {
Points [-325, 0; 0, -60]
Branch {
DstBlock "Trigonometric\nFunction2"
DstPort 1
}
Branch {
Points [0, -45]
DstBlock "Trigonometric\nFunction"
DstPort 1
}
}
}
Line {
SrcBlock "Integrator"
SrcPort 1
DstBlock "Demux"
DstPort 1
}
Line {
SrcBlock "Product"
SrcPort 1
DstBlock "Integrator"
DstPort 1
}
Line {
SrcBlock "acceleration\nlimit"
SrcPort 1
Points [155, 0; 0, 80]
DstBlock "Product"
DstPort 2
}
Line {
SrcBlock "Trigonometric\nFunction"
SrcPort 1
DstBlock "Mux"
DstPort 1
}
Line {
SrcBlock "Fcn"
SrcPort 1
Points [95, 0]
DstBlock "Mux"
DstPort 3
}
Annotation {
SID "51:228"
Name "Bicycle kinematic model for mobile robot"
Position [368, 29]
}
}
}
Block {
BlockType SubSystem
Name "Control Mixer"
SID "52"
Ports [4, 5]
Position [115, 330, 175, 470]
ZOrder -2
DropShadow on
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 25
$ClassName "Simulink.Mask"
Description "Quadrotor control mixer"
Help "Determine rotor speeds based on desired torques and thrust.\n \n<b>Inputs::</b>\n \ntau pitch (1x1) d"
"esired pitching torque [Nm]\ntau roll (1x1) desired rolling torque [Nm]\ntau yaw (1x1) desired yawing torque"
" [Nm]\nT (1x1) desired thrust [N]\n \n<b>Outputs::</b>\n \nw1 (1x1) angular velocity of rotor 1 [rad]\nw"
"2 (1x1) angular velocity of rotor 2 [rad]\nw3 (1x1) angular velocity of rotor 3 [rad]\nw4 (1x1) angular velocity "
"of rotor 4 [rad]\n \n<b>Notes::</b>\n \n- Assumes the rotor labelling convention of RVC Fig 4.16.\n- The quadroto"
"r is underactuated and has only 4 inputs.\n"
}
System {
Name "Control Mixer"
Location [397, 175, 1302, 734]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "249"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "tau pitch"
SID "52:156"
Position [15, 78, 45, 92]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "tau roll"
SID "52:157"
Position [15, 123, 45, 137]
ZOrder -2
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "tau yaw"
SID "52:158"
Position [15, 243, 45, 257]
ZOrder -3
Port "3"
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "T"
SID "52:159"
Position [15, 283, 45, 297]
ZOrder -4
Port "4"
IconDisplay "Port number"
}
Block {
BlockType Gain
Name "Gain1"
SID "52:160"
Position [595, 205, 625, 235]
ZOrder -5
ShowName off
Gain "-1"
ParamDataTypeStr "Inherit: Inherit via internal rule"
OutDataTypeStr "Inherit: Inherit via internal rule"
SaturateOnIntegerOverflow off
}
Block {
BlockType Gain
Name "Gain2"
SID "52:161"
Position [595, 115, 625, 145]
ZOrder -6
ShowName off
Gain "-1"
ParamDataTypeStr "Inherit: Inherit via internal rule"
OutDataTypeStr "Inherit: Inherit via internal rule"
SaturateOnIntegerOverflow off
}
Block {
BlockType Mux
Name "Mux"
SID "52:162"
Ports [4, 1]
Position [480, 276, 485, 314]
ZOrder -7
ShowName off
DisplayOption "bar"
}
Block {
BlockType Saturate
Name "Saturation1"
SID "52:163"
Ports [1, 1]
Position [520, 115, 550, 145]
ZOrder -8
ShowName off
InputPortMap "u0"
UpperLimit "1000"
LowerLimit "700"
}
Block {
BlockType Saturate
Name "Saturation2"
SID "52:164"
Ports [1, 1]
Position [520, 70, 550, 100]
ZOrder -9
ShowName off
InputPortMap "u0"
UpperLimit "1000"
LowerLimit "700"
}
Block {
BlockType Saturate
Name "Saturation3"
SID "52:165"
Ports [1, 1]
Position [520, 160, 550, 190]
ZOrder -10
ShowName off
InputPortMap "u0"
UpperLimit "1000"
LowerLimit "700"
}
Block {
BlockType Saturate
Name "Saturation4"
SID "52:166"
Ports [1, 1]
Position [520, 205, 550, 235]
ZOrder -11
ShowName off
InputPortMap "u0"
UpperLimit "1000"
LowerLimit "700"
}
Block {
BlockType Sum
Name "Sum1"
SID "52:167"
Ports [2, 1]
Position [240, 75, 260, 95]
ZOrder -12
ShowName off
IconShape "round"
Inputs "|++"
}
Block {
BlockType Sum
Name "Sum10"
SID "52:168"
Ports [2, 1]
Position [320, 120, 340, 140]
ZOrder -13
ShowName off
IconShape "round"
Inputs "|++"
}
Block {
BlockType Sum
Name "Sum11"
SID "52:169"
Ports [2, 1]
Position [345, 165, 365, 185]
ZOrder -14
ShowName off
IconShape "round"
Inputs "|++"
}
Block {
BlockType Sum
Name "Sum12"
SID "52:170"
Ports [2, 1]
Position [370, 210, 390, 230]
ZOrder -15
ShowName off
IconShape "round"
Inputs "|++"
}
Block {
BlockType Sum
Name "Sum3"
SID "52:171"
Ports [2, 1]
Position [215, 120, 235, 140]
ZOrder -16
ShowName off
IconShape "round"
Inputs "|--"
}
Block {
BlockType Sum
Name "Sum5"
SID "52:172"
Ports [2, 1]
Position [190, 165, 210, 185]
ZOrder -17
ShowName off
IconShape "round"
Inputs "|-+"
}
Block {
BlockType Sum
Name "Sum7"
SID "52:173"
Ports [2, 1]
Position [165, 210, 185, 230]
ZOrder -18
ShowName off
IconShape "round"
Inputs "|+-"
}
Block {
BlockType Sum
Name "Sum9"
SID "52:174"
Ports [2, 1]
Position [290, 75, 310, 95]
ZOrder -19
ShowName off
IconShape "round"
Inputs "|++"
}
Block {
BlockType Outport
Name "w1"
SID "52:175"
Position [650, 78, 680, 92]
ZOrder -20
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "w2"
SID "52:176"
Position [650, 123, 680, 137]
ZOrder -21
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "w3"
SID "52:177"
Position [650, 168, 680, 182]
ZOrder -22
Port "3"
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "w4"
SID "52:178"
Position [650, 213, 680, 227]
ZOrder -23
Port "4"
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "all"
SID "52:179"
Position [535, 288, 565, 302]
ZOrder -24
Port "5"
IconDisplay "Port number"
}
Line {
SrcBlock "Gain1"
SrcPort 1
DstBlock "w4"
DstPort 1
}
Line {
SrcBlock "Gain2"
SrcPort 1
DstBlock "w2"
DstPort 1
}
Line {
SrcBlock "Mux"
SrcPort 1
DstBlock "all"
DstPort 1
}
Line {
SrcBlock "tau roll"
SrcPort 1
Points [35, 0]
Branch {
Points [0, 90]
DstBlock "Sum7"
DstPort 1
}
Branch {
DstBlock "Sum3"
DstPort 1
}
}
Line {
SrcBlock "T"
SrcPort 1
Points [250, 0]
Branch {
DstBlock "Sum9"
DstPort 2
}
Branch {
Points [30, 0]
Branch {
DstBlock "Sum10"
DstPort 2
}
Branch {
Points [35, 0]
Branch {
Points [-10, 0]
DstBlock "Sum11"
DstPort 2
}
Branch {
Points [15, 0]
DstBlock "Sum12"
DstPort 2
}
}
}
}
Line {
SrcBlock "Sum12"
SrcPort 1
Points [10, 0]
Branch {
Points [0, 90]
DstBlock "Mux"
DstPort 4
}
Branch {
DstBlock "Saturation4"
DstPort 1
}
}
Line {
SrcBlock "Sum11"
SrcPort 1
Points [45, 0]
Branch {
Points [0, 125]
DstBlock "Mux"
DstPort 3
}
Branch {
DstBlock "Saturation3"
DstPort 1
}
}
Line {
SrcBlock "Sum10"
SrcPort 1
Points [85, 0]
Branch {
Points [0, 160]
DstBlock "Mux"
DstPort 2
}
Branch {
DstBlock "Saturation1"
DstPort 1
}
}
Line {
SrcBlock "Sum9"
SrcPort 1
Points [130, 0]
Branch {
Points [0, 195]
DstBlock "Mux"
DstPort 1
}
Branch {
DstBlock "Saturation2"
DstPort 1
}
}
Line {
SrcBlock "Sum7"
SrcPort 1
DstBlock "Sum12"
DstPort 1
}
Line {
SrcBlock "Sum5"
SrcPort 1
DstBlock "Sum11"
DstPort 1
}
Line {
SrcBlock "Sum3"
SrcPort 1
DstBlock "Sum10"
DstPort 1
}
Line {
SrcBlock "Sum1"
SrcPort 1
DstBlock "Sum9"
DstPort 1
}
Line {
SrcBlock "tau pitch"
SrcPort 1
Points [50, 0]
Branch {
Points [0, 90]
DstBlock "Sum5"
DstPort 1
}
Branch {
DstBlock "Sum1"
DstPort 1
}
}
Line {
SrcBlock "Saturation4"
SrcPort 1
DstBlock "Gain1"
DstPort 1
}
Line {
SrcBlock "Saturation3"
SrcPort 1
DstBlock "w3"
DstPort 1
}
Line {
SrcBlock "Saturation1"
SrcPort 1
DstBlock "Gain2"
DstPort 1
}
Line {
SrcBlock "Saturation2"
SrcPort 1
DstBlock "w1"
DstPort 1
}
Line {
SrcBlock "tau yaw"
SrcPort 1
Points [125, 0]
Branch {
Points [25, 0]
Branch {
Points [25, 0]
Branch {
Points [25, 0]
DstBlock "Sum1"
DstPort 2
}
Branch {
DstBlock "Sum3"
DstPort 2
}
}
Branch {
DstBlock "Sum5"
DstPort 2
}
}
Branch {
DstBlock "Sum7"
DstPort 2
}
}
}
}
Block {
BlockType SubSystem
Name "Quadrotor"
SID "53"
Ports [4, 1]
Position [230, 332, 290, 443]
ZOrder -3
DropShadow on
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 26
$ClassName "Simulink.Mask"
Description "Quadrotor dynamics"
Help "Integrate spatial velocity to update pose represented as a homogeneous\ntransformation.\n \n<b>Paramet"
"ers::</b>\n \nq (struct) A structure containing quadrotor dynamics\n\nThe elements of q are:\n\n J Flyer"
" rotational inertia matrix (3x3)\n h Height of rotors above CoG (1x1)\n d Length of flyer arms (1"
"x1)\n nb Number of blades per rotor (1x1)\n r Rotor radius (1x1)\n c Blade chord (1x1)\n e"
" Flapping hinge offset (1x1)\n Mb Rotor blade mass (1x1)\n Mc Estimated hub clamp mass (1x1"
")\n ec Blade root clamp displacement (1x1)\n Ib Rotor blade rotational inertia (1x1)\n Ic Es"
"timated root clamp inertia (1x1)\n mb Static blade moment (1x1)\n Ir Total rotor inertia (1x1)\n Ct"
" Non-dim. thrust coefficient (1x1)\n Cq Non-dim. torque coefficient (1x1)\n sigma Rotor solidit"
"y ratio (1x1)\n thetat Blade tip angle (1x1)\n theta0 Blade root angle (1x1)\n theta1 Blade twist angle "
"(1x1)\n theta75 3/4 blade angle (1x1)\n thetai Blade ideal root approximation (1x1)\n a Lift slope g"
"radient (1x1)\n A Rotor disc area (1x1)\n gamma Lock number (1x1)\n\n \n<b>Inputs::</b>\n \nw1 (1x1) "
"angular velocity of rotor 1 [rad]\nw2 (1x1) angular velocity of rotor 2 [rad]\nw3 (1x1) angular velocity of rotor"
" 3 [rad]\nw4 (1x1) angular velocity of rotor 4 [rad]\n\n<b>Outputs::</b>\n \nX (1x12) state vector (x, y, z, thr,"
" thp, thy, xd, yd, zd, thrd, thpd, thyd)\n\n(x,y,z) is the position in the world frame [m]\n(thr, thp, thy) the r"
"oll/pitch/yaw orientation in the world frame [rad]\n(xd,yd,zd) is the velocity in the body frame [m]\n(thrd,thpd,"
"thyd) is the roll/pitch/yaw rates in the body frame [rad/s]\n \n<b>Notes::</b>\n \n- See also mdl_quadrotor which"
" defines parameters for the ANU X4 flyer.\n"
Object {
$PropName "Parameters"
$ObjectID 27
$ClassName "Simulink.MaskParameter"
Type "edit"
Name "quad"
Prompt "Quadrotor params"
Value "0"
}
}
System {
Name "Quadrotor"
Location [26, 172, 508, 726]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "234"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "w 1"
SID "53:181"
Position [25, 128, 55, 142]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "w 2"
SID "53:182"
Position [25, 158, 55, 172]
ZOrder -2
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "w 3"
SID "53:183"
Position [25, 188, 55, 202]
ZOrder -3
Port "3"
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "w 4"
SID "53:184"
Position [25, 218, 55, 232]
ZOrder -4
Port "4"
IconDisplay "Port number"
}
Block {
BlockType BusCreator
Name "Bus\nCreator"
SID "53:185"
Ports [12, 1]
Position [305, 17, 310, 338]
ZOrder -5
ShowName off
Inputs "'X','Y','Z','yaw','pitch','roll','dx','dy','dz','dyaw','dpitch','droll'"
DisplayOption "bar"
}
Block {
BlockType Demux
Name "Demux"
SID "53:186"
Ports [1, 12]
Position [230, 37, 235, 318]
ZOrder -6
BackgroundColor "black"
ShowName off
Outputs "12"
Port {
PortNumber 1
Name "X"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
Port {
PortNumber 2
Name "Y"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
Port {
PortNumber 3
Name "Z"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
Port {
PortNumber 4
Name "yaw"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
Port {
PortNumber 5
Name "pitch"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
Port {
PortNumber 6
Name "roll"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
Port {
PortNumber 7
Name "dx"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
Port {
PortNumber 8
Name "dy"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
Port {
PortNumber 9
Name "dz"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
Port {
PortNumber 10
Name "dyaw"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
Port {
PortNumber 11
Name "dpitch"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
Port {
PortNumber 12
Name "droll"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
}
Block {
BlockType S-Function
Name "Dynamics"
SID "53:187"
Ports [1, 1]
Position [110, 165, 195, 195]
ZOrder -7
FunctionName "quadrotor_dynamics"
Parameters "quad"
EnableBusSupport off
}
Block {
BlockType Mux
Name "Mux"
SID "53:188"
Ports [4, 1]
Position [80, 119, 85, 241]
ZOrder -8
ShowName off
DisplayOption "bar"
}
Block {
BlockType Outport
Name "X"
SID "53:189"
Position [345, 173, 375, 187]
ZOrder -9
IconDisplay "Port number"
}
Line {
Name "droll"
Labels [0, 0]
SrcBlock "Demux"
SrcPort 12
DstBlock "Bus\nCreator"
DstPort 12
}
Line {
Name "dpitch"
Labels [0, 0]
SrcBlock "Demux"
SrcPort 11
DstBlock "Bus\nCreator"
DstPort 11
}
Line {
Name "dyaw"
Labels [0, 0]
SrcBlock "Demux"
SrcPort 10
DstBlock "Bus\nCreator"
DstPort 10
}
Line {
SrcBlock "Dynamics"
SrcPort 1
DstBlock "Demux"
DstPort 1
}
Line {
SrcBlock "Bus\nCreator"
SrcPort 1
DstBlock "X"
DstPort 1
}
Line {
Name "dy"
Labels [0, 0]
SrcBlock "Demux"
SrcPort 8
DstBlock "Bus\nCreator"
DstPort 8
}
Line {
Name "roll"
Labels [0, 0]
SrcBlock "Demux"
SrcPort 6
DstBlock "Bus\nCreator"
DstPort 6
}
Line {
Name "Y"
Labels [0, 0]
SrcBlock "Demux"
SrcPort 2
DstBlock "Bus\nCreator"
DstPort 2
}
Line {
Name "dz"
Labels [0, 0]
SrcBlock "Demux"
SrcPort 9
DstBlock "Bus\nCreator"
DstPort 9
}
Line {
Name "dx"
Labels [0, 0]
SrcBlock "Demux"
SrcPort 7
DstBlock "Bus\nCreator"
DstPort 7
}
Line {
SrcBlock "w 4"
SrcPort 1
DstBlock "Mux"
DstPort 4
}
Line {
SrcBlock "w 3"
SrcPort 1
DstBlock "Mux"
DstPort 3
}
Line {
SrcBlock "w 2"
SrcPort 1
DstBlock "Mux"
DstPort 2
}
Line {
SrcBlock "w 1"
SrcPort 1
DstBlock "Mux"
DstPort 1
}
Line {
Name "pitch"
Labels [0, 0]
SrcBlock "Demux"
SrcPort 5
DstBlock "Bus\nCreator"
DstPort 5
}
Line {
Name "yaw"
Labels [0, 0]
SrcBlock "Demux"
SrcPort 4
DstBlock "Bus\nCreator"
DstPort 4
}
Line {
Name "Z"
Labels [0, 0]
SrcBlock "Demux"
SrcPort 3
DstBlock "Bus\nCreator"
DstPort 3
}
Line {
Name "X"
Labels [0, 0]
SrcBlock "Demux"
SrcPort 1
DstBlock "Bus\nCreator"
DstPort 1
}
Line {
SrcBlock "Mux"
SrcPort 1
DstBlock "Dynamics"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "RNE"
SID "54"
Ports [3, 1]
Position [230, 91, 290, 169]
ZOrder -4
BackgroundColor "red"
LibraryVersion "*1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 28
$ClassName "Simulink.Mask"
Description "Rigid-body inverse dynamics."
Help "Given a robot dynamic model and joint angle, rate and acceleration \ndetermine the required joint torq"
"ue. \n \n<b>Parameters::</b>\n \nrobot (SerialLink) a dynamic model of an N-link serial link manipulator\ngravit"
"y (1x3) IGNORED Gravitational acceleration in world frame [m/s2]\n \n<b>Inputs::</b>\n \nq (1xN) joint coordinat"
"es\nqd (1xN) joint coordinate velocity\nqdd (1xN) joint coordinate acceleration\n\n \n<b>Outputs::</b>\n \nQ (1xN"
") the generalized joint force (torque or force) required to achieve\nthe motion state (q, qd, qdd).\n \n<b>Notes:"
":</b>\n \n- Required for computed and inverse torque control schemes.\n- The gravity parameter is ignored.\n- Imp"
"lemented using the recursive Newton-Euler scheme (RNE).\n- A wrapper for the Toolbox method rne().\n\n"
Initialization "if isa(robot, 'SerialLink')\n n = robot.n\n rname = robot.name;\nelse\n n = 0;\n "
"rname = '';\nend"
Display "port_label('output', 1, 'Q')\nport_label('input', 1, 'q')\nport_label('input', 2, 'qd')\nport_label"
"('input', 3, 'qdd')\ntext(0.9, 0.9, rname, 'horizontalAlignment', 'right')\n"
IconUnits "normalized"
Array {
Type "Simulink.MaskParameter"
Dimension 2
Object {
$ObjectID 29
Type "edit"
Name "robot"
Prompt "Robot object"
Value "robot"
}
Object {
$ObjectID 30
Type "edit"
Name "grav"
Prompt "Gravity"
Value "[0 0 9.81]"
}
PropName "Parameters"
}
}
System {
Name "RNE"
Location [1276, 176, 1808, 505]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "245"
SIDPrevWatermark "245"
Block {
BlockType Inport
Name "q"
SID "54:240"
Position [20, 33, 50, 47]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "qd"
SID "54:241"
Position [20, 73, 50, 87]
ZOrder -2
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "qdd"
SID "54:242"
Position [15, 113, 45, 127]
ZOrder -3
Port "3"
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "54:243"
Ports [1, 1]
Position [120, 66, 295, 94]
ZOrder -4
MATLABFcn "rne(robot, u(1:n)', u(n+1:2*n)', u(2*n+1:3*n)')"
OutputDimensions "robot.n"
}
Block {
BlockType Mux
Name "Mux"
SID "54:244"
Ports [3, 1]
Position [85, 21, 90, 139]
ZOrder -5
ShowName off
Inputs "3"
DisplayOption "bar"
}
Block {
BlockType Outport
Name "Q"
SID "54:245"
Position [370, 73, 400, 87]
ZOrder -6
IconDisplay "Port number"
}
Line {
SrcBlock "Mux"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
Line {
SrcBlock "q"
SrcPort 1
DstBlock "Mux"
DstPort 1
}
Line {
SrcBlock "qd"
SrcPort 1
DstBlock "Mux"
DstPort 2
}
Line {
SrcBlock "qdd"
SrcPort 1
DstBlock "Mux"
DstPort 3
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "Q"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "Robot"
SID "55"
Ports [1, 3]
Position [105, 92, 180, 168]
ZOrder -5
BackgroundColor "red"
DropShadow on
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 31
$ClassName "Simulink.Mask"
Description "Rigid-body dynamic model of robot."
Help "Simulates the forward (direct) rigid-body dynamics of the robot described \nby the given robot object."
" For given applied joint torque/force it computes\nthe instaneous joint coordinates, velocities and acclerations"
".\n\n \n<b>Parameters::</b>\n \nrobot (SerialLink) a dynamic model of an N-link serial link manipulator\nq0 (1xN)"
" Initial joint coordinates\n \n<b>Inputs::</b>\n \nQ (1xN) the generalized joint force (torque or force) require"
"d to achieve\nthe motion state (q, qd, qdd).\n \n<b>Outputs::</b>\n\nq (1xN) joint coordinates\nqd (1xN) joint co"
"ordinate velocity\nqdd (1xN) joint coordinate acceleration\n\n \n<b>Notes::</b>\n \n- Required to simulate robot "
"rigid body motion.\n- Implemented using the recursive Newton-Euler scheme (RNE).\n- A wrapper for the Toolbox met"
"hod accel() which in turn depends on the\n method rne().\n\n"
Initialization "if isa(robot, 'SerialLink')\n rname = robot.name;\n %fprintf('**robot name is %s\\n', r"
"name);\nelse\n rname = '';\n n = 0\nend\n"
Display "port_label('input', 1, 'Q')\nport_label('output', 1, 'q')\nport_label('output', 2, 'qd')\nport_labe"
"l('output', 3, 'qdd')\ntext(0.1, 0.9, rname, 'horizontalAlignment', 'left')\n"
IconUnits "normalized"
Array {
Type "Simulink.MaskParameter"
Dimension 2
Object {
$ObjectID 32
Type "edit"
Name "robot"
Prompt "Robot object"
Value "robot"
}
Object {
$ObjectID 33
Type "edit"
Name "q0"
Prompt "Initial state"
Value "[0 0 0 0 0 0]"
}
PropName "Parameters"
}
}
System {
Name "Robot"
Location [242, 300, 814, 706]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "248"
SIDPrevWatermark "232"
Block {
BlockType Inport
Name "Q"
SID "55:225"
Position [20, 98, 50, 112]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Integrator
Name "Integrator"
SID "55:246"
Ports [1, 1]
Position [265, 65, 295, 95]
ZOrder -2
ShowName off
Port {
PortNumber 1
Name "qd"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
}
Block {
BlockType Integrator
Name "Integrator1"
SID "55:247"
Ports [1, 1]
Position [345, 65, 375, 95]
ZOrder -3
ShowName off
InitialCondition "q0"
}
Block {
BlockType Mux
Name "Mux"
SID "55:248"
Ports [3, 1]
Position [105, 44, 115, 116]
ZOrder -4
ShowName off
Inputs "3"
DisplayOption "bar"
}
Block {
BlockType S-Function
Name "S-Function"
SID "55:229"
Ports [1, 1]
Position [150, 65, 210, 95]
ZOrder -5
FunctionName "slaccel"
Parameters "robot"
EnableBusSupport off
Port {
PortNumber 1
Name "qdd"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
}
Block {
BlockType Outport
Name "q"
SID "55:230"
Position [440, 73, 470, 87]
ZOrder -6
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "qd"
SID "55:231"
Position [440, 128, 470, 142]
ZOrder -7
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "qdd"
SID "55:232"
Position [440, 173, 470, 187]
ZOrder -8
Port "3"
IconDisplay "Port number"
}
Line {
SrcBlock "Integrator1"
SrcPort 1
Points [25, 0]
Branch {
Points [0, -60; -325, 0; 0, 35]
DstBlock "Mux"
DstPort 1
}
Branch {
DstBlock "q"
DstPort 1
}
}
Line {
SrcBlock "Q"
SrcPort 1
DstBlock "Mux"
DstPort 3
}
Line {
Name "qd"
Labels [0, 0]
SrcBlock "Integrator"
SrcPort 1
Points [30, 0]
Branch {
Points [0, -50; -285, 0; 0, 50]
DstBlock "Mux"
DstPort 2
}
Branch {
DstBlock "Integrator1"
DstPort 1
}
Branch {
Points [0, 55]
DstBlock "qd"
DstPort 1
}
}
Line {
SrcBlock "Mux"
SrcPort 1
DstBlock "S-Function"
DstPort 1
}
Line {
Name "qdd"
Labels [0, 0]
SrcBlock "S-Function"
SrcPort 1
Points [35, 0]
Branch {
DstBlock "Integrator"
DstPort 1
}
Branch {
Points [0, 100]
DstBlock "qdd"
DstPort 1
}
}
}
}
Annotation {
SID "145"
Name "\nDynamics \n "
Position [47, 27]
BackgroundColor "cyan"
FontSize 18
}
Annotation {
SID "146"
Name "Arm-type robot"
Position [55, 100]
ForegroundColor "orange"
}
Annotation {
SID "147"
Name "Quadrotor"
Position [41, 336]
ForegroundColor "orange"
}
Annotation {
SID "148"
Name "Mobile robot"
Position [49, 214]
ForegroundColor "orange"
}
Annotation {
SID "149"
Name "Robotics Toolbox for MATLAB"
Position [116, 17]
HorizontalAlignment "left"
FontSize 12
FontWeight "bold"
}
}
}
Block {
BlockType SubSystem
Name "Kinematics"
SID "249"
Ports []
Position [154, 128, 260, 170]
ZOrder -2
BackgroundColor "darkGreen"
ShowName off
LibraryVersion "*1.3"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 34
$ClassName "Simulink.Mask"
Display "color('darkBlue')\ndisp('Kinematics')"
IconUnits "pixels"
}
System {
Name "Kinematics"
Location [618, 490, 1181, 1106]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "654"
SIDPrevWatermark "14"
Block {
BlockType SubSystem
Name "fkine"
SID "249:22"
Ports [1, 1]
Position [80, 84, 145, 146]
ZOrder -1
BackgroundColor "red"
LibraryVersion "*1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 35
$ClassName "Simulink.Mask"
Description "Robot forward kinematics."
Help "Compute homogeneous transform for robot end-effector given joint coordinates\n\n\n<b>Parameters::</b>\n"
" \nRobot (SerialLink class) The N-axis robot object for computing forward kinematics.\n \n<b>Inputs::</b>\n \nq "
"(1xN) joint coordinates\n \n<b>Outputs::</b>\n \nT (4x4) the pose of the end effector as a homogeneous transforma"
"tion\n \n<b>Notes::</b>\n \n- A wrapper for the Toolbox method fkine().\n"
Display "port_label('input', 1, 'q')\nport_label('output', 1, 'T')\nif ~isempty(robot)\n text(0.5, 0.2, r"
"obot.name, 'horizontalAlignment', 'center')\nend\n"
IconUnits "normalized"
Object {
$PropName "Parameters"
$ObjectID 36
$ClassName "Simulink.MaskParameter"
Type "edit"
Name "robot"
Prompt "Robot object"
Value "robot"
}
}
System {
Name "fkine"
Location [495, 403, 899, 730]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "225"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "q"
SID "249:22:69"
Position [55, 68, 85, 82]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "249:22:70"
Ports [1, 1]
Position [120, 60, 180, 90]
ZOrder -2
MATLABFcn "fkine(robot,u)"
OutputDimensions "[4 4]"
Output1D off
}
Block {
BlockType Outport
Name "T"
SID "249:22:71"
Position [225, 68, 255, 82]
ZOrder -3
IconDisplay "Port number"
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "T"
DstPort 1
}
Line {
SrcBlock "q"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "ijacob"
SID "249:23"
Ports [1, 1]
Position [285, 185, 340, 255]
ZOrder -2
BackgroundColor "red"
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 37
$ClassName "Simulink.Mask"
Description "Inverse Jacobian\n"
Help "Inverse of Jacobian matrix which maps spatial velocity to joint coordinate\nrates.\n\n\n<b>Inputs::</b"
">\n \nJ (6x6) the Jacobian matrix\n \n<b>Outputs::</b>\n \nJi (6x6) the inverse Jacobian matrix\n \n<b>Notes::</b"
">\n \n- A wrapper for the MATLAB function inv().\n- Only valid for square Jacobians (6-axis robots)\n"
Display "text(0.4, 0.7, '\\bf\\fontsize{16}J', 'texmode', 'on', 'verticalAlignment', 'top', 'horizontalAlign"
"ment', 'left')\ntext(0.6, 0.65, '\\fontsize{10}-1', 'texmode', 'on','verticalAlignment', 'bottom', 'horizontalAli"
"gnment', 'left')\nport_label('input', 1, 'J');\nport_label('output', 1, 'Ji')\n"
IconUnits "normalized"
}
System {
Name "ijacob"
Location [198, 365, 602, 692]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "225"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "J"
SID "249:23:73"
Position [20, 33, 50, 47]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "inverse\njacobian"
SID "249:23:74"
Ports [1, 1]
Position [110, 25, 170, 55]
ZOrder -2
MATLABFcn "inv(u)"
Output1D off
}
Block {
BlockType Outport
Name "Ji"
SID "249:23:75"
Position [220, 33, 250, 47]
ZOrder -3
IconDisplay "Port number"
}
Line {
SrcBlock "J"
SrcPort 1
DstBlock "inverse\njacobian"
DstPort 1
}
Line {
SrcBlock "inverse\njacobian"
SrcPort 1
DstBlock "Ji"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "ikine"
SID "249:250"
Ports [1, 1]
Position [290, 83, 340, 147]
ZOrder 3
BackgroundColor "red"
LibraryVersion "1.56"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 38
$ClassName "Simulink.Mask"
Description "Generalized numerical inverse kinematics"
Help "Compute joint coordinates for robot given end-effector pose.\n\n\n<b>Parameters::</b>\n \nRobot (Seria"
"lLink class) The N-axis robot object for computing forward kinematics.\nInitial q (1xN) Initial joint "
"coordinates for solution\nMask vector (1x6) Mask vector for underactuated manipulators.\nPseudo inverse ("
"logical) Enable option 'pinv'\nOptions Option value list to be passed to ikine()\n\n<b>Inputs:"
":</b>\n \nT (4x4) the pose of the end effector as a homogeneous transformation\n\n \n<b>Outputs::</b>\n\nq (1xN) "
"joint coordinates\n \n<b>Notes::</b>\n \n- A wrapper for the Toolbox method ikine().\n"
Initialization "opt = options;\nif pinv\n opt = [opt 'pinv'];\nend\ndisp(opt)\n"
Array {
Type "Simulink.MaskParameter"
Dimension 5
Object {
$ObjectID 39
Type "edit"
Name "robot"
Prompt "Robot object"
Value "p560"
}
Object {
$ObjectID 40
Type "edit"
Name "q0"
Prompt "Initial q"
Value "qz"
}
Object {
$ObjectID 41
Type "edit"
Name "M"
Prompt "Mask vector"
Value "[1 1 1 1 1 1]"
}
Object {
$ObjectID 42
Type "checkbox"
Name "pinv"
Prompt "Pseudo-inverse (pinv)"
Value "off"
Callback "\n"
}
Object {
$ObjectID 43
Type "edit"
Name "options"
Prompt "Options (cell array)"
Value "{}"
Tunable "off"
}
PropName "Parameters"
}
}
System {
Name "ikine"
Location [885, 595, 1448, 1211]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
Block {
BlockType Inport
Name "T"
SID "249:72"
Position [25, 33, 55, 47]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "ikine"
SID "249:251"
Ports [1, 1]
Position [80, 25, 150, 55]
ZOrder -2
MATLABFcn "robot.ikine(u, q0, M, opt{:})"
}
Block {
BlockType Outport
Name "q"
SID "249:252"
Position [175, 33, 205, 47]
ZOrder -3
IconDisplay "Port number"
}
Line {
SrcBlock "T"
SrcPort 1
DstBlock "ikine"
DstPort 1
}
Line {
SrcBlock "ikine"
SrcPort 1
DstBlock "q"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "ikine6s"
SID "249:66"
Ports [1, 1]
Position [190, 84, 240, 146]
ZOrder -4
BackgroundColor "red"
LibraryVersion "1.51"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 44
$ClassName "Simulink.Mask"
Description "Inverse kinematics for 6-axis spherical robot"
Help "Compute joint coordinates for robot given end-effector pose.\n\n\n<b>Parameters::</b>\n \nRobot (Seria"
"lLink class) The N-axis robot object for computing forward kinematics.\nConfiguration Configuration "
"string comprised of 'lrudnf'\n \n<b>Inputs::</b>\n \nT (4x4) the pose of the end effector as a homogeneous transf"
"ormation\n\n \n<b>Outputs::</b>\n\nq (1xN) joint coordinates\n \n<b>Notes::</b>\n \n- A wrapper for the Toolbox m"
"ethod ikine6s().\n"
Array {
Type "Simulink.MaskParameter"
Dimension 2
Object {
$ObjectID 45
Type "edit"
Name "robot"
Prompt "Robot object"
Value "p560"
}
Object {
$ObjectID 46
Type "edit"
Name "conf"
Prompt "Configuration string"
Value "'luf'"
}
PropName "Parameters"
}
}
System {
Name "ikine6s"
Location [1429, 718, 1699, 978]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "inches"
TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
Block {
BlockType Inport
Name "T"
SID "249:67"
Position [25, 33, 55, 47]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "ikine6s"
SID "249:65"
Ports [1, 1]
Position [80, 25, 150, 55]
ZOrder -2
MATLABFcn "robot.ikine6s(u,conf)"
}
Block {
BlockType Outport
Name "q"
SID "249:68"
Position [175, 33, 205, 47]
ZOrder -3
IconDisplay "Port number"
}
Line {
SrcBlock "T"
SrcPort 1
DstBlock "ikine6s"
DstPort 1
}
Line {
SrcBlock "ikine6s"
SrcPort 1
DstBlock "q"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "jacob0\n"
SID "249:24"
Ports [1, 1]
Position [80, 186, 140, 254]
ZOrder -5
BackgroundColor "red"
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 47
$ClassName "Simulink.Mask"
Description "Robot Jacobian in world coordinates"
Help "Jacobian matrix relating joint coordinate rates to end-effector spatial\nvelocity expressed in the wor"
"ld frame.\n\n<b>Parameters::</b>\n \nRobot (SerialLink class) The N-axis robot object for which the Jacobian is\n"
" computed.\n \n<b>Inputs::</b>\n \nq (1xN) joint coordinates\n \n<b>Outputs::</b>\n \nJ "
"(6xN) the Jacobian matrix\n \n<b>Notes::</b>\n \n- A wrapper for the Toolbox method jacob0().\n"
Initialization "n=robot.n;\n"
Display "text(0.4, 0.7, '\\bf\\fontsize{16}J', 'texmode', 'on', 'verticalAlignment', 'top', 'horizontalAlign"
"ment', 'left')\ntext(0.45, 0.65, '\\fontsize{10}0', 'texmode', 'on','verticalAlignment', 'bottom', 'horizontalAli"
"gnment', 'right')\nif ~isempty(robot)\n text(0.5, 0.2, robot.name, 'horizontalAlignment', 'center')\nend\npor"
"t_label('input', 1, 'q')\nport_label('output', 1, 'J')"
IconUnits "normalized"
Object {
$PropName "Parameters"
$ObjectID 48
$ClassName "Simulink.MaskParameter"
Type "edit"
Name "robot"
Prompt "Robot object"
Value "robot"
}
}
System {
Name "jacob0\n"
Location [542, 430, 946, 757]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "225"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "q"
SID "249:24:77"
Position [20, 33, 50, 47]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "249:24:78"
Ports [1, 1]
Position [100, 25, 160, 55]
ZOrder -2
MATLABFcn "jacob0(robot,u)"
OutputDimensions "[6 n]"
Output1D off
}
Block {
BlockType Outport
Name "J"
SID "249:24:79"
Position [220, 33, 250, 47]
ZOrder -3
IconDisplay "Port number"
}
Line {
SrcBlock "q"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "J"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "jacobn"
SID "249:25"
Ports [1, 1]
Position [180, 186, 235, 254]
ZOrder -6
BackgroundColor "red"
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 49
$ClassName "Simulink.Mask"
Description "Robot Jacobian in end-effector coordinates"
Help "Jacobian matrix relating joint coordinate rates to end-effector spatial\nvelocity expressed in the end"
"-effector frame.\n\n<b>Parameters::</b>\n \nRobot (SerialLink class) The N-axis robot object for which the Jacob"
"ian is\n computed.\n \n<b>Inputs::</b>\n \nq (1xN) joint coordinates\n \n<b>Outputs::</b"
">\n \nJ (6xN) the Jacobian matrix\n \n<b>Notes::</b>\n \n- A wrapper for the Toolbox method jacobn().\n"
Initialization "n=robot.n;"
Display "text(0.4, 0.7, '\\bf\\fontsize{16}J', 'texmode', 'on', 'verticalAlignment', 'top', 'horizontalAlign"
"ment', 'left')\ntext(0.45, 0.65, '\\fontsize{10}N', 'texmode', 'on','verticalAlignment', 'bottom', 'horizontalAli"
"gnment', 'right')\nif ~isempty(robot)\n text(0.5, 0.2, robot.name, 'horizontalAlignment', 'center')\nend\npor"
"t_label('input', 1, 'q')\nport_label('output', 1, 'J')"
IconUnits "normalized"
Object {
$PropName "Parameters"
$ObjectID 50
$ClassName "Simulink.MaskParameter"
Type "edit"
Name "robot"
Prompt "Robot object"
Value "robot"
}
}
System {
Name "jacobn"
Location [129, 393, 533, 720]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "225"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "q"
SID "249:25:81"
Position [20, 33, 50, 47]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "249:25:82"
Ports [1, 1]
Position [100, 25, 160, 55]
ZOrder -2
MATLABFcn "jacobn(robot,u)"
OutputDimensions "[6 n]"
Output1D off
}
Block {
BlockType Outport
Name "J"
SID "249:25:83"
Position [220, 33, 250, 47]
ZOrder -3
IconDisplay "Port number"
}
Line {
SrcBlock "q"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "J"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "pose integral"
SID "249:58"
Ports [1, 1]
Position [180, 293, 250, 347]
ZOrder -16
BackgroundColor "red"
DropShadow on
LibraryVersion "1.55"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 51
$ClassName "Simulink.Mask"
Description "Integrate spatial velocity"
Help "Integrate spatial velocity to update pose represented as a homogeneous\ntransformation.\n\n<b>Paramete"
"rs::</b>\n\nT0 (4x4) The initial pose\ndt (1x1) The sample interval [s]\n\n<b>Inputs::</b>\n\nv (1x6) spatial v"
"elocity (xd yd zd wx wy wz)\n\n<b>Outputs::</b>\n\nT (4x4) the integrated pose as a homogeneous transformation\n\n"
"<b>Notes::</b>\n\n- Contains a unit delay of dt\n- The transform is kept normalized using trnorm().\n"
Array {
Type "Simulink.MaskParameter"
Dimension 2
Object {
$ObjectID 52
Type "edit"
Name "T0"
Prompt "Initial pose (hom transform)"
Value "transl(0,0,1)*trotz(1.5)"
}
Object {
$ObjectID 53
Type "edit"
Name "dt"
Prompt "Sample interval (s)"
Value "0.02"
}
PropName "Parameters"
}
}
System {
Name "pose integral"
Location [877, 322, 1440, 938]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
Block {
BlockType Inport
Name "v"
SID "249:59"
Position [25, 33, 55, 47]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn3"
SID "249:60"
Ports [1, 1]
Position [80, 25, 140, 55]
ZOrder -2
MATLABFcn "delta2tr(u*dt)"
Output1D off
}
Block {
BlockType Product
Name "Product"
SID "249:61"
Ports [2, 1]
Position [195, 29, 225, 76]
ZOrder -3
Multiplication "Matrix(*)"
InputSameDT off
OutDataTypeStr "Inherit: Inherit via internal rule"
SaturateOnIntegerOverflow off
}
Block {
BlockType UnitDelay
Name "Unit Delay"
SID "249:62"
Position [345, 33, 380, 67]
ZOrder -4
InitialCondition "T0"
SampleTime "dt"
}
Block {
BlockType MATLABFcn
Name "trnorm"
SID "249:63"
Ports [1, 1]
Position [250, 35, 310, 65]
ZOrder -5
MATLABFcn "trnorm(u)"
Output1D off
}
Block {
BlockType Outport
Name "T"
SID "249:64"
Position [435, 43, 465, 57]
ZOrder -6
IconDisplay "Port number"
}
Line {
SrcBlock "v"
SrcPort 1
DstBlock "MATLAB Fcn3"
DstPort 1
}
Line {
SrcBlock "trnorm"
SrcPort 1
DstBlock "Unit Delay"
DstPort 1
}
Line {
SrcBlock "MATLAB Fcn3"
SrcPort 1
DstBlock "Product"
DstPort 1
}
Line {
SrcBlock "Unit Delay"
SrcPort 1
Points [30, 0]
Branch {
DstBlock "T"
DstPort 1
}
Branch {
Points [0, 50; -245, 0; 0, -35]
DstBlock "Product"
DstPort 2
}
}
Line {
SrcBlock "Product"
SrcPort 1
Points [0, -5]
DstBlock "trnorm"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "tr2diff"
SID "249:26"
Ports [2, 1]
Position [80, 290, 125, 345]
ZOrder -8
BackgroundColor "red"
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 54
$ClassName "Simulink.Mask"
Description "Compute differential motion "
Help "Compute the differential motion (as a 6-vector) between two poses given as\nhomogeneous transformation"
"s.\n \n<b>Inputs::</b>\n \nT1 (4x4) initial pose as a homogeneous transformation \nT2 (4x4) final pose as a homog"
"eneous transformation \n \n<b>Outputs::</b>\n \ndx (1x6) the differential motion (dx dy dz dwx dwy dwz)\n \n<b>No"
"tes::</b>\n\n- Only valid for infinitessimal displacements.\n- dx is the integral of a spatial velocity over time"
".\n- A wrapper for the Toolbox function tr2delta()."
Display "port_label('input', 1, 'T1')\nport_label('input', 2, 'T2')\nport_label('output', 1, 'dx')\n\n"
IconUnits "normalized"
Object {
$PropName "Parameters"
$ObjectID 55
$ClassName "Simulink.MaskParameter"
Type "edit"
Name "robot"
Prompt "Robot object"
Value "robot"
}
}
System {
Name "tr2diff"
Location [160, 386, 564, 713]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "225"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "T1"
SID "249:26:111"
Position [45, 38, 75, 52]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "T2"
SID "249:26:112"
Position [45, 93, 75, 107]
ZOrder -2
Port "2"
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "249:26:113"
Ports [1, 1]
Position [215, 40, 275, 70]
ZOrder -3
MATLABFcn "tr2delta(reshape(u(1:16),4,4), reshape(u(17:32),4,4))"
OutputDimensions "6"
}
Block {
BlockType Mux
Name "Mux"
SID "249:26:114"
Ports [2, 1]
Position [185, 36, 190, 74]
ZOrder -4
ShowName off
Inputs "2"
DisplayOption "bar"
}
Block {
BlockType Reshape
Name "Reshape"
SID "249:26:115"
Ports [1, 1]
Position [115, 33, 145, 57]
ZOrder -5
}
Block {
BlockType Reshape
Name "Reshape1"
SID "249:26:116"
Ports [1, 1]
Position [125, 88, 155, 112]
ZOrder -6
}
Block {
BlockType Outport
Name "dx"
SID "249:26:117"
Position [300, 48, 330, 62]
ZOrder -7
IconDisplay "Port number"
}
Line {
SrcBlock "Reshape1"
SrcPort 1
Points [10, 0]
DstBlock "Mux"
DstPort 2
}
Line {
SrcBlock "Reshape"
SrcPort 1
DstBlock "Mux"
DstPort 1
}
Line {
SrcBlock "Mux"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
Line {
SrcBlock "T2"
SrcPort 1
DstBlock "Reshape1"
DstPort 1
}
Line {
SrcBlock "T1"
SrcPort 1
DstBlock "Reshape"
DstPort 1
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "dx"
DstPort 1
}
}
}
Annotation {
SID "249:256"
Name "\nKinematics \n "
Position [52, 22]
BackgroundColor "cyan"
FontSize 18
}
Annotation {
SID "249:255"
Name "Robotics Toolbox for MATLAB"
Position [116, 17]
HorizontalAlignment "left"
FontSize 12
FontWeight "bold"
}
Annotation {
SID "249:76"
Name "Forward\nkinematics"
Position [8, 96]
HorizontalAlignment "left"
ForegroundColor "orange"
}
Annotation {
SID "249:254"
Name "Jacobian"
Position [31, 191]
ForegroundColor "orange"
}
Annotation {
SID "249:253"
Name "Spatial\nvelocity"
Position [14, 306]
HorizontalAlignment "left"
ForegroundColor "orange"
}
}
}
Block {
BlockType SubSystem
Name "Robot Graphics"
SID "16"
Ports []
Position [15, 60, 122, 103]
ZOrder -3
BackgroundColor "darkGreen"
ShowName off
LibraryVersion "*1.3"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 56
$ClassName "Simulink.Mask"
Display "color('darkBlue')\ndisp('Robot Graphics')"
IconUnits "pixels"
}
System {
Name "Robot Graphics"
Location [25, 44, 441, 456]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "193"
SIDPrevWatermark "16"
Block {
BlockType SubSystem
Name "Quadrotor plot"
SID "16:18"
Ports [1]
Position [195, 102, 225, 148]
ZOrder -1
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 57
$ClassName "Simulink.Mask"
Description "Animate quadrotor."
Help "This block graphically displays a quadrotor (flying robot).\n\nA new figure is created and A graphical"
" model of a quadrotor is animated \nto a pose specified by the state vector input to the block. \n\nThe state ve"
"ctor is [x y z roll pitch yaw] in world coordinates and the\nangles are in radians.\n\nNotes:\n- The dimensions o"
"f the model are currently fixed in the code and cannot\n be set via a parameter."
Object {
$PropName "Parameters"
$ObjectID 58
$ClassName "Simulink.MaskParameter"
Type "edit"
Name "x"
Prompt "State vector"
Value "0"
}
}
System {
Name "Quadrotor plot"
Location [502, 208, 901, 651]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "233"
SIDPrevWatermark "230"
Block {
BlockType Inport
Name "X"
SID "16:18:191"
Position [50, 113, 80, 127]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType BusSelector
Name "Bus\nSelector1"
SID "16:18:192"
Ports [1, 1]
Position [110, 101, 115, 139]
ZOrder -2
ShowName off
OutputSignals "X,Y,Z,yaw,pitch,roll"
OutputAsBus on
}
Block {
BlockType S-Function
Name "Plotter"
SID "16:18:193"
Ports [1]
Position [155, 105, 215, 135]
ZOrder -3
FunctionName "quadrotor_plot"
Parameters "[2,10], 1, 1"
EnableBusSupport off
}
Line {
SrcBlock "Bus\nSelector1"
SrcPort 1
DstBlock "Plotter"
DstPort 1
}
Line {
SrcBlock "X"
SrcPort 1
DstBlock "Bus\nSelector1"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "plot"
SID "16:17"
Ports [1]
Position [55, 97, 135, 153]
ZOrder -2
BackgroundColor "red"
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 59
$ClassName "Simulink.Mask"
Description "Graphical robot display."
Help "This block graphically displays the passed SerialLink class object.\n\nA new figure is created and the"
" robot is animated (using SerialLink.plot)\nto a pose specified by the joint coordinate vector input to the block"
" whose\nwidth must match the number of robot joints.\n\nIf the Hold checkbox is ticked then a \"hold\" command is"
" issued at initialization\ntime allowing multiple robots to be displayed in the one plot."
SelfModifiable "on"
Display "port_label('input', 1, 'q')\nif ~isempty(robot)\n text(0.5, 0.2, robot.name, 'horizontalAlignme"
"nt', 'center')\nend\n"
IconUnits "normalized"
Array {
Type "Simulink.MaskParameter"
Dimension 3
Object {
$ObjectID 60
Type "edit"
Name "robot"
Prompt "Robot object"
Value "robot"
Tunable "off"
Callback "\n"
}
Object {
$ObjectID 61
Type "edit"
Name "fps"
Prompt "Update rate (fps)"
Value "25"
}
Object {
$ObjectID 62
Type "checkbox"
Name "holdplot"
Prompt "Hold"
Value "on"
}
PropName "Parameters"
}
}
System {
Name "plot"
Location [795, 127, 1100, 387]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "230"
SIDPrevWatermark "230"
Block {
BlockType Inport
Name "q"
SID "16:17:94"
Position [25, 33, 55, 47]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType S-Function
Name "S-Function"
SID "16:17:95"
Ports [1]
Position [120, 25, 180, 55]
ZOrder -2
FunctionName "slplotbot"
Parameters "robot,fps,holdplot"
EnableBusSupport off
}
Line {
SrcBlock "q"
SrcPort 1
DstBlock "S-Function"
DstPort 1
}
}
}
Annotation {
SID "16:19"
Name "\nRobot\nGraphics \n "
Position [1, 32]
HorizontalAlignment "left"
BackgroundColor "cyan"
FontSize 18
}
Annotation {
SID "16:20"
Name "Robotics Toolbox for MATLAB"
Position [96, 17]
HorizontalAlignment "left"
FontSize 12
FontWeight "bold"
}
}
}
Block {
BlockType SubSystem
Name "Trajectory"
SID "257"
Ports []
Position [153, 60, 260, 102]
ZOrder -4
BackgroundColor "darkGreen"
ShowName off
LibraryVersion "1.225"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 63
$ClassName "Simulink.Mask"
Display "color('darkBlue')\ndisp('Trajectory')"
}
System {
Name "Trajectory"
Location [1070, 44, 1487, 522]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
Block {
BlockType SubSystem
Name "Circle"
SID "56"
Ports [0, 1]
Position [220, 85, 260, 145]
ZOrder -1
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 64
$ClassName "Simulink.Mask"
Description "Generate circular trajectory"
Help "Generate circular trajectory in the xy-plane and centred at the origin.\n\n<b>Parameters::</b>\n\nradi"
"us The radius of the circle [m]\nfreq The frequency of motion [rev/s]\n\n<b>Output::</b>\n\nxy (1x2) a vect"
"or of xy-coordinates at the current simulation time step.\n\n<b>Notes::</b>\n- Motion is at constant velocity aro"
"und the circle, there is an infinite\n initial acceleration.\n- The motion continues for the whole simulation."
Array {
Type "Simulink.MaskParameter"
Dimension 2
Object {
$ObjectID 65
Type "edit"
Name "radius"
Prompt "Radius"
Value "1"
}
Object {
$ObjectID 66
Type "edit"
Name "freq"
Prompt "Frequency (rev/s)"
Value "0.2"
}
PropName "Parameters"
}
}
System {
Name "Circle"
Location [8, 129, 540, 556]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "264"
SIDPrevWatermark "225"
Block {
BlockType Clock
Name "Clock"
SID "56:258"
Position [25, 35, 45, 55]
ZOrder -1
}
Block {
BlockType Mux
Name "Mux"
SID "56:259"
Ports [2, 1]
Position [230, 29, 240, 91]
ZOrder -2
ShowName off
Inputs "2"
DisplayOption "bar"
}
Block {
BlockType Product
Name "Product1"
SID "56:260"
Ports [2, 1]
Position [280, 52, 310, 83]
ZOrder -3
ShowName off
InputSameDT off
OutDataTypeStr "Inherit: Inherit via internal rule"
SaturateOnIntegerOverflow off
}
Block {
BlockType Trigonometry
Name "Trigonometric\nFunction1"
SID "56:261"
Ports [1, 1]
Position [155, 30, 185, 60]
ZOrder -4
ShowName off
Operator "cos"
}
Block {
BlockType Trigonometry
Name "Trigonometric\nFunction3"
SID "56:21"
Ports [1, 1]
Position [155, 90, 185, 120]
ZOrder -5
ShowName off
}
Block {
BlockType Gain
Name "freq"
SID "56:262"
Position [70, 30, 95, 60]
ZOrder -6
Gain "freq*2*pi"
ParamDataTypeStr "Inherit: Inherit via internal rule"
OutDataTypeStr "Inherit: Inherit via internal rule"
SaturateOnIntegerOverflow off
}
Block {
BlockType Constant
Name "radius"
SID "56:263"
Position [185, 185, 215, 215]
ZOrder -7
Value "radius"
}
Block {
BlockType Outport
Name "xy"
SID "56:264"
Position [335, 63, 365, 77]
ZOrder -8
IconDisplay "Port number"
}
Line {
SrcBlock "Trigonometric\nFunction3"
SrcPort 1
Points [25, 0]
DstBlock "Mux"
DstPort 2
}
Line {
SrcBlock "Trigonometric\nFunction1"
SrcPort 1
DstBlock "Mux"
DstPort 1
}
Line {
SrcBlock "Mux"
SrcPort 1
DstBlock "Product1"
DstPort 1
}
Line {
SrcBlock "radius"
SrcPort 1
Points [45, 0]
DstBlock "Product1"
DstPort 2
}
Line {
SrcBlock "Clock"
SrcPort 1
DstBlock "freq"
DstPort 1
}
Line {
SrcBlock "Product1"
SrcPort 1
DstBlock "xy"
DstPort 1
}
Line {
SrcBlock "freq"
SrcPort 1
Points [25, 0]
Branch {
DstBlock "Trigonometric\nFunction1"
DstPort 1
}
Branch {
Points [0, 60]
DstBlock "Trigonometric\nFunction3"
DstPort 1
}
}
}
}
Block {
BlockType SubSystem
Name "angdiff"
SID "57"
Ports [2, 1]
Position [55, 222, 75, 273]
ZOrder -2
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 67
$ClassName "Simulink.Mask"
Description "Difference of angles"
Help "A difference block for angles and the result is guaranteed to be in the\ninterval [-pi +pi).\n\n<b>Not"
"es::</b>\n- Is a wrapper for the Toolbox function angdiff."
}
System {
Name "angdiff"
Location [57, 112, 447, 485]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "269"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "+"
SID "57:265"
Position [35, 73, 65, 87]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "-"
SID "57:266"
Position [35, 113, 65, 127]
ZOrder -2
Port "2"
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "57:267"
Ports [1, 1]
Position [175, 75, 235, 105]
ZOrder -3
MATLABFcn "angdiff(u(1), u(2))"
}
Block {
BlockType Mux
Name "Mux"
SID "57:268"
Ports [2, 1]
Position [125, 71, 130, 109]
ZOrder -4
ShowName off
Inputs "2"
DisplayOption "bar"
}
Block {
BlockType Outport
Name "d"
SID "57:269"
Position [275, 83, 305, 97]
ZOrder -5
IconDisplay "Port number"
}
Line {
SrcBlock "-"
SrcPort 1
Points [40, 0]
DstBlock "Mux"
DstPort 2
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "d"
DstPort 1
}
Line {
SrcBlock "Mux"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
Line {
SrcBlock "+"
SrcPort 1
DstBlock "Mux"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "jtraj"
SID "270"
Ports [0, 3]
Position [45, 84, 80, 156]
ZOrder -3
BackgroundColor "red"
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 68
$ClassName "Simulink.Mask"
Description "Joint interpolated trajectory."
Help "Generate quintic polynomial to move from initial to final joint angles as specified. Initial and fina"
"l velocity are assumed to be zero.\n\n<b>Parameters::</b>\n\nq0 (1xN) initial joint coordinates\nqf (1xN) final j"
"oint coordinates\ntmax (1x1) the time for the trajectory to complete\n\nInitial and final velocity are assumed to"
" be zero.\n\n<b>Outputs::</b>\n\nq (1xN) vector of joint coordinates at current simulation time\nqd (1xN) vector "
"of joint coordinate velocity at current simulation time\nqdd (1xN) vector of joint coordinate acceleration at cur"
"rent simulation time\n\n<b>Notes::</b>\n\n- If simulation time exceeds tmax then q is clipped to qf.\n- A wrapper"
" on the Toolbox function jtraj.\n- The piecewise constant output of jtraj is interpolated to the current\n simul"
"ation time.\n\n"
Initialization "n = length(q0);\nif length(q0) ~= length(qf) ,\n error('q0 and qf must be same length')\nend\n"
"t=[0:100]'/100*tmax;\n[q,qd,qdd] = jtraj(q0, qf, t);"
Display "port_label('output', 1, 'q')\nport_label('output', 2, 'qd')\nport_label('output', 3, 'qdd')"
IconUnits "normalized"
Array {
Type "Simulink.MaskParameter"
Dimension 4
Object {
$ObjectID 69
Type "edit"
Name "q0"
Prompt "q0"
Value "[0 0 0 0 0 0]"
}
Object {
$ObjectID 70
Type "edit"
Name "qf"
Prompt "qf"
Value "[pi/4 pi/2 -pi/2 0 0 0]"
}
Object {
$ObjectID 71
Type "edit"
Name "tmax"
Prompt "tmax (s)"
Value "10"
}
Object {
$ObjectID 72
Type "edit"
Name "ts"
Prompt "ts (s)"
Value "0.02"
}
PropName "Parameters"
}
}
System {
Name "jtraj"
Location [779, 370, 1183, 739]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "225"
SIDPrevWatermark "225"
Block {
BlockType Clock
Name "Clock"
SID "270:85"
Position [20, 30, 40, 50]
ZOrder -1
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "270:86"
Ports [1, 1]
Position [105, 25, 165, 55]
ZOrder -2
MATLABFcn "interp1(t,q,u)"
OutputDimensions "n"
SampleTime "ts"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn1"
SID "270:87"
Ports [1, 1]
Position [110, 75, 170, 105]
ZOrder -3
MATLABFcn "interp1(t,qd,u)"
OutputDimensions "n"
SampleTime "ts"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn2"
SID "270:88"
Ports [1, 1]
Position [110, 125, 170, 155]
ZOrder -4
MATLABFcn "interp1(t,qdd,u)"
OutputDimensions "n"
SampleTime "ts"
}
Block {
BlockType Outport
Name "q"
SID "270:89"
Position [220, 33, 250, 47]
ZOrder -5
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "qd"
SID "270:90"
Position [220, 83, 250, 97]
ZOrder -6
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "qdd"
SID "270:91"
Position [220, 133, 250, 147]
ZOrder -7
Port "3"
IconDisplay "Port number"
}
Line {
SrcBlock "MATLAB Fcn2"
SrcPort 1
DstBlock "qdd"
DstPort 1
}
Line {
SrcBlock "Clock"
SrcPort 1
Points [30, 0]
Branch {
Points [0, 50]
Branch {
Points [0, 50]
DstBlock "MATLAB Fcn2"
DstPort 1
}
Branch {
DstBlock "MATLAB Fcn1"
DstPort 1
}
}
Branch {
DstBlock "MATLAB Fcn"
DstPort 1
}
}
Line {
SrcBlock "MATLAB Fcn1"
SrcPort 1
DstBlock "qd"
DstPort 1
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "q"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "lspb"
SID "271"
Ports [0, 3]
Position [130, 84, 165, 156]
ZOrder -4
BackgroundColor "red"
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 73
$ClassName "Simulink.Mask"
Description "Scalar trajectory."
Help "Generate linear segment with polynomial blend to move from initial to final\n joint angles as specifie"
"d.\n\n<b>Parameters::</b>\n\nq0 (1x1) initial joint coordinate\nqf (1x1) final joint coordinate\ntmax (1x1) the t"
"ime for the trajectory to complete\n\nInitial and final velocity are assumed to be zero.\n\n<b>Outputs::</b>\n\nq"
" (1x1) joint coordinates at current simulation time\nqd (1x1) joint coordinate velocity at current simulation tim"
"e\nqdd (1xN) joint coordinate acceleration at current simulation time\n\n<b>Notes::</b>\n\n- If simulation time e"
"xceeds tmax then q is clipped to qf.\n- A wrapper on the Toolbox function lspb.\n- The piecewise constant output "
"of jtraj is interpolated to the current simulation time."
Initialization "n = length(q0);\nif length(q0) ~= length(qf) ,\n error('q0 and qf must be same length')\nend\n"
"t=[0:1000]'/1000*tmax;\n[q,qd,qdd] = lspb(q0, qf, t);"
Array {
Type "Simulink.MaskParameter"
Dimension 3
Object {
$ObjectID 74
Type "edit"
Name "q0"
Prompt "q0"
Value "0"
}
Object {
$ObjectID 75
Type "edit"
Name "qf"
Prompt "qf"
Value "0"
}
Object {
$ObjectID 76
Type "edit"
Name "tmax"
Prompt "tmax"
Value "0"
}
PropName "Parameters"
}
}
System {
Name "lspb"
Location [567, 540, 831, 863]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "80"
SIDHighWatermark "595"
SIDPrevWatermark "595"
Block {
BlockType Clock
Name "Clock"
SID "271:585"
Position [25, 30, 45, 50]
ZOrder -1
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "271:586"
Ports [1, 1]
Position [110, 25, 170, 55]
ZOrder -2
MATLABFcn "interp1(t,q,u)"
OutputDimensions "n"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn1"
SID "271:587"
Ports [1, 1]
Position [115, 75, 175, 105]
ZOrder -3
MATLABFcn "interp1(t,qd,u)"
OutputDimensions "n"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn2"
SID "271:588"
Ports [1, 1]
Position [115, 125, 175, 155]
ZOrder -4
MATLABFcn "interp1(t,qdd,u)"
OutputDimensions "n"
}
Block {
BlockType Outport
Name "q"
SID "271:593"
Position [225, 33, 255, 47]
ZOrder -5
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "qd"
SID "271:594"
Position [225, 83, 255, 97]
ZOrder -6
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "qdd"
SID "271:595"
Position [225, 133, 255, 147]
ZOrder -7
Port "3"
IconDisplay "Port number"
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "q"
DstPort 1
}
Line {
SrcBlock "MATLAB Fcn1"
SrcPort 1
DstBlock "qd"
DstPort 1
}
Line {
SrcBlock "Clock"
SrcPort 1
Points [30, 0]
Branch {
DstBlock "MATLAB Fcn"
DstPort 1
}
Branch {
Points [0, 50]
Branch {
DstBlock "MATLAB Fcn1"
DstPort 1
}
Branch {
Points [0, 50]
DstBlock "MATLAB Fcn2"
DstPort 1
}
}
}
Line {
SrcBlock "MATLAB Fcn2"
SrcPort 1
DstBlock "qdd"
DstPort 1
}
}
}
Annotation {
SID "150"
Name "\nTrajectory \n "
Position [52, 22]
BackgroundColor "cyan"
FontSize 18
}
Annotation {
SID "151"
Name "Robotics Toolbox for MATLAB"
Position [111, 12]
HorizontalAlignment "left"
FontSize 12
FontWeight "bold"
}
}
}
Block {
BlockType SubSystem
Name "Transform"
SID "35"
Ports []
Position [15, 199, 123, 242]
ZOrder -5
BackgroundColor "darkGreen"
ShowName off
LibraryVersion "1.225"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 77
$ClassName "Simulink.Mask"
Display "color('darkBlue')\ndisp('Transform')"
}
System {
Name "Transform"
Location [1828, 909, 2246, 1363]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
Block {
BlockType SubSystem
Name "Inverse"
SID "596"
Ports [1, 1]
Position [230, 90, 270, 150]
ZOrder -1
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 78
$ClassName "Simulink.Mask"
Description "Inverse of homogeneous transformation"
Help "Inverse of homogeneous transformation\n \n \n<b>Inputs::</b>\n \nT (4x4) Incoming homogeneous transfor"
"m\n \n<b>Outputs::</b>\n \ninvT (4x4) Outgoing homogeneous transformation T^(-1)\n\n<b>Notes::</b>\n- Efficient i"
"mplementation that uses transpose of rotation submatrix.\n"
}
System {
Name "Inverse"
Location [1212, 444, 1472, 704]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "225"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "T"
SID "596:219"
Position [25, 33, 55, 47]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "596:217"
Ports [1, 1]
Position [80, 25, 140, 55]
ZOrder -2
MATLABFcn "inv(u)"
OutputDimensions "[4,4]"
Output1D off
}
Block {
BlockType Outport
Name "invT"
SID "596:220"
Position [165, 33, 195, 47]
ZOrder -3
IconDisplay "Port number"
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "invT"
DstPort 1
}
Line {
SrcBlock "T"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "Post multiply"
SID "597"
Ports [1, 1]
Position [130, 90, 170, 150]
ZOrder -2
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 79
$ClassName "Simulink.Mask"
Description "Post-multiply incoming transform by a constant transformation"
Help "Post-multiply homogeneous transform signal by a constant transform.\n \n<b>Parameters::</b>\n \nTP (4x"
"4) The transform to post-multiply by\n \n<b>Inputs::</b>\n \nT1 (4x4) Incoming homogeneous transform\n \n<b>Outp"
"uts::</b>\n \nT (4x4) Outgoing homogeneous transformation is T1*TP\n\n\n"
Object {
$PropName "Parameters"
$ObjectID 80
$ClassName "Simulink.MaskParameter"
Type "edit"
Name "T2"
Prompt "TP"
Value "0"
}
}
System {
Name "Post multiply"
Location [824, 420, 1160, 748]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "225"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "T1"
SID "597:215"
Position [25, 38, 55, 52]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Constant
Name "Constant"
SID "597:221"
Position [25, 85, 55, 115]
ZOrder -2
Value "T2"
}
Block {
BlockType Product
Name "Product"
SID "597:212"
Ports [2, 1]
Position [85, 29, 115, 96]
ZOrder -3
Multiplication "Matrix(*)"
InputSameDT off
OutDataTypeStr "Inherit: Inherit via internal rule"
SaturateOnIntegerOverflow off
}
Block {
BlockType Outport
Name "T"
SID "597:216"
Position [160, 58, 190, 72]
ZOrder -4
IconDisplay "Port number"
}
Line {
SrcBlock "T1"
SrcPort 1
DstBlock "Product"
DstPort 1
}
Line {
SrcBlock "Constant"
SrcPort 1
Points [0, -20]
DstBlock "Product"
DstPort 2
}
Line {
SrcBlock "Product"
SrcPort 1
DstBlock "T"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "Pre multiply"
SID "598"
Ports [1, 1]
Position [30, 90, 70, 150]
ZOrder -3
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 81
$ClassName "Simulink.Mask"
Description "Pre-multiply homogeneous transform by constant transform."
Help "Pre-multiply homogeneous transform signal by a constant transform.\n \n<b>Parameters::</b>\n \nTP (4x4"
") The transform to pre-multiply by\n \n<b>Inputs::</b>\n \nT2 (4x4) Incoming homogeneous transform\n \n<b>Output"
"s::</b>\n \nT (4x4) Outgoing homogeneous transformation is TP*T2\n\n\n"
Object {
$PropName "Parameters"
$ObjectID 82
$ClassName "Simulink.MaskParameter"
Type "edit"
Name "T"
Prompt "T1"
Value "0"
}
}
System {
Name "Pre multiply"
Location [42, 44, 399, 405]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "225"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "T2"
SID "598:208"
Position [25, 83, 55, 97]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Constant
Name "Constant"
SID "598:202"
Position [25, 30, 55, 60]
ZOrder -2
Value "T"
VectorParams1D off
}
Block {
BlockType Product
Name "Product"
SID "598:203"
Ports [2, 1]
Position [85, 29, 115, 96]
ZOrder -3
Multiplication "Matrix(*)"
InputSameDT off
OutDataTypeStr "Inherit: Inherit via internal rule"
SaturateOnIntegerOverflow off
}
Block {
BlockType Outport
Name "T"
SID "598:207"
Position [160, 58, 190, 72]
ZOrder -4
IconDisplay "Port number"
}
Line {
SrcBlock "T2"
SrcPort 1
Points [0, -10]
DstBlock "Product"
DstPort 2
}
Line {
SrcBlock "Product"
SrcPort 1
DstBlock "T"
DstPort 1
}
Line {
SrcBlock "Constant"
SrcPort 1
DstBlock "Product"
DstPort 1
}
}
}
Annotation {
SID "152"
Name "\nTransform \n "
Position [52, 32]
BackgroundColor "cyan"
FontSize 18
}
Annotation {
SID "153"
Name "Robotics Toolbox for MATLAB"
Position [121, 17]
HorizontalAlignment "left"
FontSize 12
FontWeight "bold"
}
}
}
Block {
BlockType SubSystem
Name "Transform Conversion"
SID "599"
Ports []
Position [15, 129, 123, 172]
ZOrder -6
BackgroundColor "darkGreen"
ShowName off
LibraryVersion "1.225"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 83
$ClassName "Simulink.Mask"
Display "color('darkBlue')\ndisp('Transform Conversion')"
}
System {
Name "Transform Conversion"
Location [1827, 485, 2246, 1035]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
Block {
BlockType SubSystem
Name "T2eul"
SID "600"
Ports [1, 3]
Position [265, 242, 300, 298]
ZOrder -1
BackgroundColor "red"
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 84
$ClassName "Simulink.Mask"
Description "Convert transform to Euler angles."
Help "Convert homogeneous transformation to Euler angles.\n \n \n<b>Inputs::</b>\n \nT (4x4) the attitude as"
" a homogeneous transformation\n\n<b>Outputs::</b>\n\nphi (1x1) first Euler angle [rad]\ntheta (1x1) second Euler "
"angle [rad]\npsi (1x1) third Euler angle [rad]\n \n<b>Notes::</b>\n \n- Axis rotation order is z-y-z (aerospace c"
"onvention).\n- Wrapper for the Toolbox function tr2eul().\n\n"
IconUnits "normalized"
}
System {
Name "T2eul"
Location [129, 393, 533, 720]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "601"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "T"
SID "600:601"
Position [30, 63, 60, 77]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Demux
Name "Demux"
SID "600:36"
Ports [1, 3]
Position [225, 13, 230, 127]
ZOrder -2
BackgroundColor "black"
ShowName off
Outputs "3"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "600:37"
Ports [1, 1]
Position [105, 55, 165, 85]
ZOrder -3
MATLABFcn "tr2eul(u)"
OutputDimensions "3"
}
Block {
BlockType Outport
Name "a"
SID "600:38"
Position [265, 23, 295, 37]
ZOrder -4
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "b"
SID "600:39"
Position [255, 63, 285, 77]
ZOrder -5
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "c"
SID "600:40"
Position [255, 103, 285, 117]
ZOrder -6
Port "3"
IconDisplay "Port number"
}
Line {
SrcBlock "T"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "Demux"
DstPort 1
}
Line {
SrcBlock "Demux"
SrcPort 1
DstBlock "a"
DstPort 1
}
Line {
SrcBlock "Demux"
SrcPort 2
DstBlock "b"
DstPort 1
}
Line {
SrcBlock "Demux"
SrcPort 3
DstBlock "c"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "T2rpy"
SID "602"
Ports [1, 3]
Position [155, 243, 195, 297]
ZOrder -2
BackgroundColor "red"
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 85
$ClassName "Simulink.Mask"
Description "Convert transform to roll/pitch/yaw angles."
Help "Convert homogeneous transformation to roll/pitch/yaw angles.\n \n \n<b>Inputs::</b>\n\nT (4x4) the att"
"itude as a homogeneous transformation\n\n<b>Outputs::</b>\n \nroll (1x1) roll angle [rad]\npitch (1x1) pitch angl"
"e [rad]\nyaw (1x1) yaw angle [rad]\n \n<b>Notes::</b>\n \n- Axis rotation order is x-y-z (aerospace convention).\n"
"- Wrapper for the Toolbox function tr2rpy().\n\n"
IconUnits "normalized"
}
System {
Name "T2rpy"
Location [129, 393, 533, 720]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "225"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "T"
SID "602:42"
Position [30, 63, 60, 77]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Demux
Name "Demux"
SID "602:43"
Ports [1, 3]
Position [225, 13, 230, 127]
ZOrder -2
BackgroundColor "black"
ShowName off
Outputs "3"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "602:44"
Ports [1, 1]
Position [105, 55, 165, 85]
ZOrder -3
MATLABFcn "tr2rpy(u)"
OutputDimensions "3"
}
Block {
BlockType Outport
Name "roll"
SID "602:45"
Position [265, 23, 295, 37]
ZOrder -4
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "pitch"
SID "602:46"
Position [255, 63, 285, 77]
ZOrder -5
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "yaw"
SID "602:47"
Position [255, 103, 285, 117]
ZOrder -6
Port "3"
IconDisplay "Port number"
}
Line {
SrcBlock "T"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "Demux"
DstPort 1
}
Line {
SrcBlock "Demux"
SrcPort 1
DstBlock "roll"
DstPort 1
}
Line {
SrcBlock "Demux"
SrcPort 2
DstBlock "pitch"
DstPort 1
}
Line {
SrcBlock "Demux"
SrcPort 3
DstBlock "yaw"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "T2xyz"
SID "603"
Ports [1, 3]
Position [55, 242, 90, 298]
ZOrder -3
BackgroundColor "red"
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 86
$ClassName "Simulink.Mask"
Description "Convert transform to xyz scalars"
Help "Convert homogeneous transformation to position scalars.\n\n\n<b>Inputs::</b>\n\nT (4x4) a translation "
"represented as a homogeneous transformation\n\n<b>Outputs::</b>\n\nx (1x1) x-coordinate\ny (1x1) y-coordinate\nz "
"(1x1) z-coordinate\n\n<b>Notes::</b>\n\n- A wrapper for the Toolbox function transl().\n"
IconUnits "normalized"
}
System {
Name "T2xyz"
Location [129, 393, 533, 720]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "607"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "T"
SID "603:49"
Position [30, 63, 60, 77]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Demux
Name "Demux"
SID "603:50"
Ports [1, 3]
Position [225, 13, 230, 127]
ZOrder -2
BackgroundColor "black"
ShowName off
Outputs "3"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "603:604"
Ports [1, 1]
Position [105, 55, 165, 85]
ZOrder -3
MATLABFcn "transl(u)"
OutputDimensions "3"
}
Block {
BlockType Outport
Name "x"
SID "603:605"
Position [265, 23, 295, 37]
ZOrder -4
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "y"
SID "603:606"
Position [255, 63, 285, 77]
ZOrder -5
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "z"
SID "603:607"
Position [255, 103, 285, 117]
ZOrder -6
Port "3"
IconDisplay "Port number"
}
Line {
SrcBlock "Demux"
SrcPort 3
DstBlock "z"
DstPort 1
}
Line {
SrcBlock "Demux"
SrcPort 2
DstBlock "y"
DstPort 1
}
Line {
SrcBlock "Demux"
SrcPort 1
DstBlock "x"
DstPort 1
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "Demux"
DstPort 1
}
Line {
SrcBlock "T"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "eul2T"
SID "608"
Ports [3, 1]
Position [265, 122, 300, 178]
ZOrder -4
BackgroundColor "red"
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 87
$ClassName "Simulink.Mask"
Description "Convert Euler angles to transform."
Help "Convert Euler angles to homogeneous transformation.\n \n \n<b>Inputs::</b>\n \nphi (1x1) first Euler a"
"ngle [rad]\ntheta (1x1) second Euler angle [rad]\npsi (1x1) third Euler angle [rad]\n\n\n<b>Outputs::</b>\n \nT ("
"4x4) the attitude as a homogeneous transformation\n \n<b>Notes::</b>\n \n- Axis rotation order is z-y-z (aerospac"
"e convention).\n- Wrapper for the Toolbox function eul2tr().\n\n"
IconUnits "normalized"
}
System {
Name "eul2T"
Location [129, 393, 533, 720]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "614"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "a"
SID "608:609"
Position [25, 33, 55, 47]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "b"
SID "608:610"
Position [25, 68, 55, 82]
ZOrder -2
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "c"
SID "608:611"
Position [25, 103, 55, 117]
ZOrder -3
Port "3"
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "608:612"
Ports [1, 1]
Position [120, 60, 180, 90]
ZOrder -4
MATLABFcn "eul2tr(u)"
OutputDimensions "[4 4]"
Output1D off
}
Block {
BlockType Mux
Name "Mux"
SID "608:613"
Ports [3, 1]
Position [85, 20, 90, 130]
ZOrder -5
ShowName off
Inputs "3"
DisplayOption "bar"
}
Block {
BlockType Outport
Name "T"
SID "608:614"
Position [225, 68, 255, 82]
ZOrder -6
IconDisplay "Port number"
}
Line {
SrcBlock "b"
SrcPort 1
DstBlock "Mux"
DstPort 2
}
Line {
SrcBlock "a"
SrcPort 1
DstBlock "Mux"
DstPort 1
}
Line {
SrcBlock "Mux"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "T"
DstPort 1
}
Line {
SrcBlock "c"
SrcPort 1
DstBlock "Mux"
DstPort 3
}
}
}
Block {
BlockType SubSystem
Name "rpy2T"
SID "615"
Ports [3, 1]
Position [155, 122, 195, 178]
ZOrder -5
BackgroundColor "red"
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 88
$ClassName "Simulink.Mask"
Description "Convert roll/pitch/yaw angles to transform."
Help "Convert roll/pitch/yaw angles to homogeneous transformation.\n \n \n<b>Inputs::</b>\n \nroll (1x1) rol"
"l angle [rad]\npitch (1x1) pitch angle [rad]\nyaw (1x1) yaw angle [rad]\n\n\n<b>Outputs::</b>\n \nT (4x4) the att"
"itude as a homogeneous transformation\n \n<b>Notes::</b>\n \n- Axis rotation order is x-y-z (aerospace convention"
").\n- Wrapper for the Toolbox function rpy2tr().\n\n"
IconUnits "normalized"
}
System {
Name "rpy2T"
Location [129, 393, 533, 720]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "225"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "roll"
SID "615:104"
Position [25, 33, 55, 47]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "pitch"
SID "615:105"
Position [25, 68, 55, 82]
ZOrder -2
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "yaw"
SID "615:106"
Position [25, 103, 55, 117]
ZOrder -3
Port "3"
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "615:107"
Ports [1, 1]
Position [120, 60, 180, 90]
ZOrder -4
MATLABFcn "rpy2tr(u)"
OutputDimensions "[4 4]"
Output1D off
}
Block {
BlockType Mux
Name "Mux"
SID "615:108"
Ports [3, 1]
Position [85, 20, 90, 130]
ZOrder -5
ShowName off
Inputs "3"
DisplayOption "bar"
}
Block {
BlockType Outport
Name "T"
SID "615:109"
Position [225, 68, 255, 82]
ZOrder -6
IconDisplay "Port number"
}
Line {
SrcBlock "pitch"
SrcPort 1
DstBlock "Mux"
DstPort 2
}
Line {
SrcBlock "roll"
SrcPort 1
DstBlock "Mux"
DstPort 1
}
Line {
SrcBlock "Mux"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "T"
DstPort 1
}
Line {
SrcBlock "yaw"
SrcPort 1
DstBlock "Mux"
DstPort 3
}
}
}
Block {
BlockType SubSystem
Name "xyz2T"
SID "616"
Ports [3, 1]
Position [55, 121, 90, 179]
ZOrder -6
BackgroundColor "red"
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 89
$ClassName "Simulink.Mask"
Description "Convert xyz scalars to transform."
Help "Convert position scalars to a homogeneous transformation.\n\n\n<b>Inputs::</b>\n\nx (1x1) x-coordinate"
"\ny (1x1) y-coordinate\nz (1x1) z-coordinate\n\n\n<b>Outputs::</b>\n\nT (4x4) a translation represented as a homo"
"geneous transformation\n\n<b>Notes::</b>\n\n- A wrapper for the Toolbox function transl().\n"
SelfModifiable "on"
IconUnits "normalized"
}
System {
Name "xyz2T"
Location [129, 393, 533, 720]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "225"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "x"
SID "616:119"
Position [25, 33, 55, 47]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "y"
SID "616:120"
Position [25, 68, 55, 82]
ZOrder -2
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "z"
SID "616:121"
Position [25, 103, 55, 117]
ZOrder -3
Port "3"
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "616:122"
Ports [1, 1]
Position [120, 60, 180, 90]
ZOrder -4
MATLABFcn "transl(u)"
OutputDimensions "[4 4]"
Output1D off
}
Block {
BlockType Mux
Name "Mux"
SID "616:123"
Ports [3, 1]
Position [85, 20, 90, 130]
ZOrder -5
ShowName off
Inputs "3"
DisplayOption "bar"
}
Block {
BlockType Outport
Name "T"
SID "616:124"
Position [225, 68, 255, 82]
ZOrder -6
IconDisplay "Port number"
}
Line {
SrcBlock "z"
SrcPort 1
DstBlock "Mux"
DstPort 3
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "T"
DstPort 1
}
Line {
SrcBlock "Mux"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
Line {
SrcBlock "x"
SrcPort 1
DstBlock "Mux"
DstPort 1
}
Line {
SrcBlock "y"
SrcPort 1
DstBlock "Mux"
DstPort 2
}
}
}
Annotation {
SID "154"
Name "\nTransform\nconversion \n "
Position [2, 32]
HorizontalAlignment "left"
BackgroundColor "cyan"
FontSize 18
}
Annotation {
SID "155"
Name "Robotics Toolbox for MATLAB"
Position [121, 17]
HorizontalAlignment "left"
FontSize 12
FontWeight "bold"
}
Annotation {
SID "619"
Name "Translation"
Position [76, 91]
ForegroundColor "orange"
}
Annotation {
SID "618"
Name "roll/pitch/yaw\nangles"
Position [181, 96]
ForegroundColor "orange"
}
Annotation {
SID "617"
Name "Euler angles"
Position [286, 91]
ForegroundColor "orange"
}
}
}
Block {
BlockType SubSystem
Name "Vision"
SID "41"
Ports []
Position [15, 318, 122, 361]
ZOrder -7
BackgroundColor "lightBlue"
ShowName off
LibraryVersion "1.225"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 90
$ClassName "Simulink.Mask"
Display "color('Black')\ndisp('Vision')"
}
System {
Name "Vision"
Location [1736, 168, 2155, 937]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
Block {
BlockType SubSystem
Name "Pose estimation"
SID "620"
Ports [1, 1]
Position [90, 462, 160, 518]
ZOrder -1
DropShadow on
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 91
$ClassName "Simulink.Mask"
Description "Pose estimation"
Help "Estimate pose of an object based on known 3D points with respect to object\ncoordinate frame, a camera"
" model, and observed object point projections.\n\n<b>Parameters::</b>\n \nCamera (Camera) The camera object, sub"
"class of Camera class\nPoints (3xN) The 3D world points in object coordinate frame, one per column\n \n<b>Inp"
"uts::</b>\n \nPoints (2xN) The 2D image-plane points, one per column, corresponding\n to the column"
"s of Points.\n \n<b>Outputs::</b>\n \nT (4x4) the estimated object pose as a homogeneous transformation\n \n<b>No"
"tes::</b>\n \n- A wrapper for the Toolbox method estpose()."
Array {
Type "Simulink.MaskParameter"
Dimension 2
Object {
$ObjectID 92
Type "edit"
Name "cam"
Prompt "Camera"
Value "0"
}
Object {
$ObjectID 93
Type "edit"
Name "P"
Prompt "Points (3xN)"
Value "0"
}
PropName "Parameters"
}
}
System {
Name "Pose estimation"
Location [891, 566, 1200, 884]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "225"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "p"
SID "620:200"
Position [25, 33, 55, 47]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "620:198"
Ports [1, 1]
Position [80, 25, 140, 55]
ZOrder -2
MATLABFcn "cam.estpose(P, u)"
OutputDimensions "[4,4]"
Output1D off
}
Block {
BlockType Outport
Name "T"
SID "620:201"
Position [165, 33, 195, 47]
ZOrder -3
IconDisplay "Port number"
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "T"
DstPort 1
}
Line {
SrcBlock "p"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "camera"
SID "621"
Ports [1, 1]
Position [95, 106, 175, 184]
ZOrder -2
BackgroundColor "lightBlue"
DropShadow on
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 94
$ClassName "Simulink.Mask"
Description "Camera model"
Help "A generalized camera model that projects a set of world points to the image\nplane.\n\n\n<b>Parameters"
"::</b>\n \nCamera (Camera) The camera object, subclass of Camera class\nPoints (3xN) The 3D world points, on"
"e per column\n \n<b>Inputs::</b>\n \nT (4x4) the camera pose as a homogeneous transformation\n\n \n<b>Outputs::</"
"b>\n \np (2xN) projection of world points, one per column, corresponding to columns\n of the parameter Poi"
"nts.\n \n<b>Notes::</b>\n \n- Accepts any camera object derived from the abstract Camera superclass."
Array {
Type "Simulink.MaskParameter"
Dimension 2
Object {
$ObjectID 95
Type "edit"
Name "cam"
Prompt "Camera"
Value ""
}
Object {
$ObjectID 96
Type "edit"
Name "points"
Prompt "Points (3xN)"
Value ""
}
PropName "Parameters"
}
}
System {
Name "camera"
Location [1795, 1139, 2142, 1423]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "225"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "T"
SID "621:133"
Position [25, 33, 55, 47]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "621:134"
Ports [1, 1]
Position [110, 25, 170, 55]
ZOrder -2
MATLABFcn "cam.plot(points, 'Tcam', u)"
OutputSignalType "real"
Output1D off
}
Block {
BlockType Outport
Name "p"
SID "621:135"
Position [230, 33, 260, 47]
ZOrder -3
IconDisplay "Port number"
}
Line {
SrcBlock "T"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "p"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "camera2"
SID "622"
Ports [2, 1]
Position [245, 105, 330, 185]
ZOrder -3
BackgroundColor "lightBlue"
DropShadow on
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 97
$ClassName "Simulink.Mask"
Description "Camera model for moving object"
Help "A generalized camera model that projects a set of world points to the image\nplane.\n\n\n<b>Parameters"
"::</b>\n \nCamera (Camera) The camera object, subclass of Camera class\nPoints (3xN) The 3D world points, on"
"e per column, with respect to the\n object coordinate frame.\n \n<b>Inputs::</b>\n \nT (4x4) t"
"he camera pose as a homogeneous transformation\nTobj (4x4) the pose of the object coordinate frame\n \n<b>Outputs"
"::</b>\n \np (2xN) projection of world points, one per column, corresponding to columns\n of the parameter"
" Points.\n \n<b>Notes::</b>\n\n- This block allows for the object to move, as well as the camera.\n- Accepts any "
"camera object derived from the abstract Camera superclass."
Array {
Type "Simulink.MaskParameter"
Dimension 2
Object {
$ObjectID 98
Type "edit"
Name "cam"
Prompt "Camera"
Value "0"
}
Object {
$ObjectID 99
Type "edit"
Name "points"
Prompt "Points (3xN)"
Value "0"
}
PropName "Parameters"
}
}
System {
Name "camera2"
Location [481, 649, 911, 1026]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "627"
SIDPrevWatermark "257"
Block {
BlockType Inport
Name "T"
SID "622:623"
Position [15, 53, 45, 67]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "Tobj"
SID "622:624"
Position [15, 103, 45, 117]
ZOrder -2
Port "2"
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "622:625"
Ports [1, 1]
Position [230, 55, 290, 85]
ZOrder -3
MATLABFcn "cam.plot(points, 'Tcam', u(:,:,1), 'Tobj', u(:,:,2), 'drawnow')"
OutputDimensions "[2,numcols(points)]"
OutputSignalType "real"
Output1D off
}
Block {
BlockType Concatenate
Name "Matrix\nConcatenate"
SID "622:626"
Ports [2, 1]
Position [135, 49, 190, 91]
ZOrder -4
Mode "Multidimensional array"
ConcatenateDimension "3"
}
Block {
BlockType Outport
Name "p"
SID "622:627"
Position [325, 63, 355, 77]
ZOrder -5
IconDisplay "Port number"
}
Line {
SrcBlock "T"
SrcPort 1
DstBlock "Matrix\nConcatenate"
DstPort 1
}
Line {
SrcBlock "Tobj"
SrcPort 1
Points [70, 0]
DstBlock "Matrix\nConcatenate"
DstPort 2
}
Line {
SrcBlock "Matrix\nConcatenate"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "p"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "image\nJacobian"
SID "628"
Ports [1, 1]
Position [95, 249, 165, 301]
ZOrder -4
BackgroundColor "lightBlue"
DropShadow on
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 100
$ClassName "Simulink.Mask"
Description "Image Jacobian"
Help "Jacobian matrix relating image plane point velocity to camera spatial\nvelocity expressed in the world"
" frame.\n\n<b>Parameters::</b>\n \nCamera (Camera) The camera object, subclass of Camera class\nz (1x1) "
" Point depth, assumed same for all points\nz (1xN) Point depth, unique for each point\n\n<b>Inputs::</b>"
"\n\nPoints (2xN) The 2D image-plane points, one per column\n\n \n<b>Outputs::</b>\n \nJ (2Nx6) the image Jaco"
"bian matrix\n \n<b>Notes::</b>\n\n- For multiple points the Jacobian is the \"stack\" of the 2x6 point feature\n "
" Jacobians.\n- A wrapper for the Toolbox method visjac_p().\n"
Array {
Type "Simulink.MaskParameter"
Dimension 2
Object {
$ObjectID 101
Type "edit"
Name "cam"
Prompt "Camera"
Value ""
}
Object {
$ObjectID 102
Type "edit"
Name "z"
Prompt "Assumed depth (m)"
Value ""
}
PropName "Parameters"
}
}
System {
Name "image\nJacobian"
Location [97, 117, 446, 421]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "225"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "p"
SID "628:137"
Position [25, 33, 55, 47]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn"
SID "628:138"
Ports [1, 1]
Position [105, 25, 165, 55]
ZOrder -2
MATLABFcn "cam.visjac_p(u, z)"
Output1D off
}
Block {
BlockType Outport
Name "J"
SID "628:139"
Position [210, 33, 240, 47]
ZOrder -3
IconDisplay "Port number"
}
Line {
SrcBlock "p"
SrcPort 1
DstBlock "MATLAB Fcn"
DstPort 1
}
Line {
SrcBlock "MATLAB Fcn"
SrcPort 1
DstBlock "J"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "invJac"
SID "629"
Ports [2, 2]
Position [95, 360, 135, 420]
ZOrder -5
BackgroundColor "red"
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 103
$ClassName "Simulink.Mask"
Description "Inverse image Jacobian"
Help "Computes camera velocity based on the inverse image Jacobian and image \nplane error.\n\n\n<b>Inputs::"
"</b>\n \nJ (6x6) the image Jacobian matrix\ne (6x1) the image plane error (du1, dv1, du2, dv2, ...)\n \n<b>Output"
"s::</b>\n \nvdot (1x6) the required camera spatial velocity\ncond (1x1) the condition of the image Jacobian\n \n<"
"b>Notes::</b>\n \n- A wrapper for the MATLAB function inv().\n- Only valid for square Jacobians (3 image points)\n"
}
System {
Name "invJac"
Location [1215, 581, 1799, 1020]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "636"
SIDPrevWatermark "271"
Block {
BlockType Inport
Name "J"
SID "629:630"
Position [25, 103, 55, 117]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "e"
SID "629:631"
Position [25, 163, 55, 177]
ZOrder -2
Port "2"
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn2"
SID "629:632"
Ports [1, 1]
Position [185, 25, 245, 55]
ZOrder -3
ShowName off
MATLABFcn "cond(u)"
Output1D off
}
Block {
BlockType Product
Name "Product1"
SID "629:633"
Ports [2, 1]
Position [240, 95, 275, 155]
ZOrder -4
BackgroundColor "lightBlue"
ShowName off
Multiplication "Matrix(*)"
}
Block {
BlockType MATLABFcn
Name "inv"
SID "629:634"
Ports [1, 1]
Position [120, 95, 180, 125]
ZOrder -5
BackgroundColor "lightBlue"
MATLABFcn "pinv(u)"
Output1D off
}
Block {
BlockType Outport
Name "vdot"
SID "629:635"
Position [315, 118, 345, 132]
ZOrder -6
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "cond"
SID "629:636"
Position [315, 33, 345, 47]
ZOrder -7
Port "2"
IconDisplay "Port number"
}
Line {
SrcBlock "Product1"
SrcPort 1
DstBlock "vdot"
DstPort 1
}
Line {
SrcBlock "MATLAB Fcn2"
SrcPort 1
DstBlock "cond"
DstPort 1
}
Line {
SrcBlock "e"
SrcPort 1
Points [140, 0; 0, -30]
DstBlock "Product1"
DstPort 2
}
Line {
SrcBlock "inv"
SrcPort 1
DstBlock "Product1"
DstPort 1
}
Line {
SrcBlock "J"
SrcPort 1
Points [15, 0]
Branch {
DstBlock "inv"
DstPort 1
}
Branch {
Points [0, -70]
DstBlock "MATLAB Fcn2"
DstPort 1
}
}
}
}
Block {
BlockType SubSystem
Name "pinvJac"
SID "637"
Ports [2, 2]
Position [175, 360, 215, 420]
ZOrder -6
BackgroundColor "red"
DropShadow on
LibraryVersion "1.61"
MinAlgLoopOccurrences off
PropExecContextOutsideSubsystem off
RTWSystemCode "Auto"
FunctionWithSeparateData off
Opaque off
RequestExecContextInheritance off
MaskHideContents off
Object {
$PropName "MaskObject"
$ObjectID 104
$ClassName "Simulink.Mask"
Description "Inverse image Jacobian"
Help "Computes camera velocity based on the pseudo-inverse of the image Jacobian \nand image plane error for"
" more than 3 points.\n\n\n<b>Inputs::</b>\n \nJ (2Nx6) the image Jacobian matrix\ne (2Nx1) the image plane error "
"(du1, dv1, du2, dv2, ...)\n \n<b>Outputs::</b>\n \nvdot (1x6) the required camera spatial velocity\ncond (1x1) th"
"e condition of the image Jacobian\n \n<b>Notes::</b>\n \n- A wrapper for the MATLAB function pinv().\n- Valid for"
" non-square Jacobians (>=3 image points)\n"
}
System {
Name "pinvJac"
Location [391, 253, 848, 623]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
SIDHighWatermark "640"
SIDPrevWatermark "225"
Block {
BlockType Inport
Name "J"
SID "637:141"
Position [25, 103, 55, 117]
ZOrder -1
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "e"
SID "637:142"
Position [25, 163, 55, 177]
ZOrder -2
Port "2"
IconDisplay "Port number"
}
Block {
BlockType MATLABFcn
Name "MATLAB Fcn2"
SID "637:143"
Ports [1, 1]
Position [185, 25, 245, 55]
ZOrder -3
ShowName off
MATLABFcn "cond(u)"
Output1D off
}
Block {
BlockType Product
Name "Product1"
SID "637:144"
Ports [2, 1]
Position [240, 95, 275, 155]
ZOrder -4
BackgroundColor "lightBlue"
ShowName off
Multiplication "Matrix(*)"
}
Block {
BlockType MATLABFcn
Name "pinv"
SID "637:638"
Ports [1, 1]
Position [120, 95, 180, 125]
ZOrder -5
BackgroundColor "lightBlue"
MATLABFcn "pinv(u)"
Output1D off
}
Block {
BlockType Outport
Name "vdot"
SID "637:639"
Position [315, 118, 345, 132]
ZOrder -6
IconDisplay "Port number"
}
Block {
BlockType Outport
Name "cond"
SID "637:640"
Position [315, 33, 345, 47]
ZOrder -7
Port "2"
IconDisplay "Port number"
}
Line {
SrcBlock "Product1"
SrcPort 1
DstBlock "vdot"
DstPort 1
}
Line {
SrcBlock "MATLAB Fcn2"
SrcPort 1
DstBlock "cond"
DstPort 1
}
Line {
SrcBlock "e"
SrcPort 1
Points [140, 0; 0, -30]
DstBlock "Product1"
DstPort 2
}
Line {
SrcBlock "pinv"
SrcPort 1
DstBlock "Product1"
DstPort 1
}
Line {
SrcBlock "J"
SrcPort 1
Points [15, 0]
Branch {
DstBlock "pinv"
DstPort 1
}
Branch {
Points [0, -70]
DstBlock "MATLAB Fcn2"
DstPort 1
}
}
}
}
Annotation {
SID "645"
Name "\nMachine Vision \n "
Position [72, 32]
BackgroundColor "cyan"
FontSize 18
}
Annotation {
SID "644"
Name "Cameras"
Position [17, 111]
HorizontalAlignment "left"
ForegroundColor "orange"
}
Annotation {
SID "643"
Name "Image\nJacobian"
Position [12, 266]
HorizontalAlignment "left"
ForegroundColor "orange"
}
Annotation {
SID "642"
Name "Pose\nestimation"
Position [12, 476]
HorizontalAlignment "left"
ForegroundColor "orange"
}
Annotation {
SID "641"
Name "Machine Vision Toolbox for MATLAB"
Position [151, 17]
HorizontalAlignment "left"
FontSize 12
FontWeight "bold"
}
}
}
Annotation {
SID "648"
Name "Robotics Toolbox for MATLAB\n(release 9)"
Position [21, 22]
HorizontalAlignment "left"
FontSize 12
FontWeight "bold"
}
Annotation {
SID "647"
Name "Machine Vision Toolbox for Matlab\n(release 3)"
Position [21, 277]
HorizontalAlignment "left"
FontSize 12
FontWeight "bold"
}
Annotation {
SID "646"
Name "Copyright (c) 2002-2011 Peter Corke"
Position [190, 395]
}
}
}