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 "%" LastModifiedBy "corkep" ModifiedDateFormat "%" LastModifiedDate "Sun Jan 27 11:27:27 2013" RTWModifiedTimeStamp 281186779 ModelVersionFormat "1.%" 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\nParameters::\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 \nInputs::\n \nv (1x1) velocity demand [m/s]\ngamma (1x1) steering angle [r" "ad]\n \nOutputs::\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 \nNotes::\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 \nInputs::\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 \nOutputs::\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 \nNotes::\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 \nParamet" "ers::\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 \nInputs::\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\nOutputs::\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 \nNotes::\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 \nParameters::\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 \nInputs::\n \nq (1xN) joint coordinat" "es\nqd (1xN) joint coordinate velocity\nqdd (1xN) joint coordinate acceleration\n\n \nOutputs::\n \nQ (1xN" ") the generalized joint force (torque or force) required to achieve\nthe motion state (q, qd, qdd).\n \nNotes:" ":\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 \nParameters::\n \nrobot (SerialLink) a dynamic model of an N-link serial link manipulator\nq0 (1xN)" " Initial joint coordinates\n \nInputs::\n \nQ (1xN) the generalized joint force (torque or force) require" "d to achieve\nthe motion state (q, qd, qdd).\n \nOutputs::\n\nq (1xN) joint coordinates\nqd (1xN) joint co" "ordinate velocity\nqdd (1xN) joint coordinate acceleration\n\n \nNotes::\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\nParameters::\n" " \nRobot (SerialLink class) The N-axis robot object for computing forward kinematics.\n \nInputs::\n \nq " "(1xN) joint coordinates\n \nOutputs::\n \nT (4x4) the pose of the end effector as a homogeneous transforma" "tion\n \nNotes::\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\nInputs::\n \nJ (6x6) the Jacobian matrix\n \nOutputs::\n \nJi (6x6) the inverse Jacobian matrix\n \nNotes::\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\nParameters::\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\nInputs:" ":\n \nT (4x4) the pose of the end effector as a homogeneous transformation\n\n \nOutputs::\n\nq (1xN) " "joint coordinates\n \nNotes::\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\nParameters::\n \nRobot (Seria" "lLink class) The N-axis robot object for computing forward kinematics.\nConfiguration Configuration " "string comprised of 'lrudnf'\n \nInputs::\n \nT (4x4) the pose of the end effector as a homogeneous transf" "ormation\n\n \nOutputs::\n\nq (1xN) joint coordinates\n \nNotes::\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\nParameters::\n \nRobot (SerialLink class) The N-axis robot object for which the Jacobian is\n" " computed.\n \nInputs::\n \nq (1xN) joint coordinates\n \nOutputs::\n \nJ " "(6xN) the Jacobian matrix\n \nNotes::\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\nParameters::\n \nRobot (SerialLink class) The N-axis robot object for which the Jacob" "ian is\n computed.\n \nInputs::\n \nq (1xN) joint coordinates\n \nOutputs::\n \nJ (6xN) the Jacobian matrix\n \nNotes::\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\nParamete" "rs::\n\nT0 (4x4) The initial pose\ndt (1x1) The sample interval [s]\n\nInputs::\n\nv (1x6) spatial v" "elocity (xd yd zd wx wy wz)\n\nOutputs::\n\nT (4x4) the integrated pose as a homogeneous transformation\n\n" "Notes::\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 \nInputs::\n \nT1 (4x4) initial pose as a homogeneous transformation \nT2 (4x4) final pose as a homog" "eneous transformation \n \nOutputs::\n \ndx (1x6) the differential motion (dx dy dz dwx dwy dwz)\n \nNo" "tes::\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\nParameters::\n\nradi" "us The radius of the circle [m]\nfreq The frequency of motion [rev/s]\n\nOutput::\n\nxy (1x2) a vect" "or of xy-coordinates at the current simulation time step.\n\nNotes::\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\nNot" "es::\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\nParameters::\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\nOutputs::\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\nNotes::\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\nParameters::\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\nOutputs::\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\nNotes::\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 \nInputs::\n \nT (4x4) Incoming homogeneous transfor" "m\n \nOutputs::\n \ninvT (4x4) Outgoing homogeneous transformation T^(-1)\n\nNotes::\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 \nParameters::\n \nTP (4x" "4) The transform to post-multiply by\n \nInputs::\n \nT1 (4x4) Incoming homogeneous transform\n \nOutp" "uts::\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 \nParameters::\n \nTP (4x4" ") The transform to pre-multiply by\n \nInputs::\n \nT2 (4x4) Incoming homogeneous transform\n \nOutput" "s::\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 \nInputs::\n \nT (4x4) the attitude as" " a homogeneous transformation\n\nOutputs::\n\nphi (1x1) first Euler angle [rad]\ntheta (1x1) second Euler " "angle [rad]\npsi (1x1) third Euler angle [rad]\n \nNotes::\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 \nInputs::\n\nT (4x4) the att" "itude as a homogeneous transformation\n\nOutputs::\n \nroll (1x1) roll angle [rad]\npitch (1x1) pitch angl" "e [rad]\nyaw (1x1) yaw angle [rad]\n \nNotes::\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\nInputs::\n\nT (4x4) a translation " "represented as a homogeneous transformation\n\nOutputs::\n\nx (1x1) x-coordinate\ny (1x1) y-coordinate\nz " "(1x1) z-coordinate\n\nNotes::\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 \nInputs::\n \nphi (1x1) first Euler a" "ngle [rad]\ntheta (1x1) second Euler angle [rad]\npsi (1x1) third Euler angle [rad]\n\n\nOutputs::\n \nT (" "4x4) the attitude as a homogeneous transformation\n \nNotes::\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 \nInputs::\n \nroll (1x1) rol" "l angle [rad]\npitch (1x1) pitch angle [rad]\nyaw (1x1) yaw angle [rad]\n\n\nOutputs::\n \nT (4x4) the att" "itude as a homogeneous transformation\n \nNotes::\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\nInputs::\n\nx (1x1) x-coordinate" "\ny (1x1) y-coordinate\nz (1x1) z-coordinate\n\n\nOutputs::\n\nT (4x4) a translation represented as a homo" "geneous transformation\n\nNotes::\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\nParameters::\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 \nInp" "uts::\n \nPoints (2xN) The 2D image-plane points, one per column, corresponding\n to the column" "s of Points.\n \nOutputs::\n \nT (4x4) the estimated object pose as a homogeneous transformation\n \nNo" "tes::\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\nParameters" "::\n \nCamera (Camera) The camera object, subclass of Camera class\nPoints (3xN) The 3D world points, on" "e per column\n \nInputs::\n \nT (4x4) the camera pose as a homogeneous transformation\n\n \nOutputs::\n \np (2xN) projection of world points, one per column, corresponding to columns\n of the parameter Poi" "nts.\n \nNotes::\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\nParameters" "::\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 \nInputs::\n \nT (4x4) t" "he camera pose as a homogeneous transformation\nTobj (4x4) the pose of the object coordinate frame\n \nOutputs" "::\n \np (2xN) projection of world points, one per column, corresponding to columns\n of the parameter" " Points.\n \nNotes::\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\nParameters::\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\nInputs::" "\n\nPoints (2xN) The 2D image-plane points, one per column\n\n \nOutputs::\n \nJ (2Nx6) the image Jaco" "bian matrix\n \nNotes::\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\nInputs::" "\n \nJ (6x6) the image Jacobian matrix\ne (6x1) the image plane error (du1, dv1, du2, dv2, ...)\n \nOutput" "s::\n \nvdot (1x6) the required camera spatial velocity\ncond (1x1) the condition of the image Jacobian\n \n<" "b>Notes::\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\nInputs::\n \nJ (2Nx6) the image Jacobian matrix\ne (2Nx1) the image plane error " "(du1, dv1, du2, dv2, ...)\n \nOutputs::\n \nvdot (1x6) the required camera spatial velocity\ncond (1x1) th" "e condition of the image Jacobian\n \nNotes::\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] } } }