--- a +++ b/Application/Examples/WheelChairRancho/Model/Environment.any @@ -0,0 +1,186 @@ + +AnyFolder EnvironmentModel = { + + /* ********************************************************** + This folder contains the definition of the Environment + - GlobalRefFrame + + ********************************************************** */ + + AnyFixedRefFrame GlobalRef = { + //Origin = {2.765751, 1.287964, 0.8484217}; + #include "drawcoorsystem.any" + + + AnyRefNode Seat = { + ARel= {{1,0,0},{0,0,-1},{0,1,0}}; + + sRel = {2.965751, 1.287964, 0.6484217 }; + AnyDrawSurf seat = { + FileName = "../Input/CAD/seat"; + ScaleXYZ = {0.5, 1, 0.4}; + RGB = {0.1,0.1,0.1}; + }; + AnyDrawSurf back = { + FileName = "../Input/CAD/backrest"; + ScaleXYZ = {0.4, 0.5, 0.3}; + RGB = {0.1,0.1,0.1}; + + }; + AnyRefNode BackrestSupportNode ={ + sRel={-0.35,0.4,0}; + + }; + + + // These points define the hubs of the wheels + AnyRefNode HubRight = { + sRel = { + 0.015, + -0.1, + Main.ChairParameters.AxleZ + }; + }; + + AnyRefNode HubLeft = { + sRel = { + -0.015, + -0.1, + -Main.ChairParameters.AxleZ + }; + }; + + + + }; + // AnyDrawRefFrame drw = {}; + };//GlobalRef + + AnySeg WheelRight = { + Mass = 2.5; + Jii = {1,1,2}*0.1; + AnyRefNode PushRim = { + sRel = {0,Main.ChairParameters.PushRimRad,Main.ChairParameters.PushRimDist}; + }; + Axes0=.GlobalRef.Seat.ARel; + r0 ={.GlobalRef.Seat.sRel[0], + .GlobalRef.Seat.sRel[1]+ Main.ChairParameters.AxleZ, + .GlobalRef.Seat.sRel[2] + }; + AnyDrawSurf Wheel = { + FileName = "../Input/CAD/wheel"; + RGB = {0.5, 0.5, 0.5}; + ScaleXYZ = {1,1,1}*Main.ChairParameters.WheelRad; + };// AnyDrawSeg drw = {}; + AnyRefNode PushRimHub = { + sRel = { + 0, + 0, + Main.ChairParameters.PushRimDist + }; + AnyDrawSurf Wheel = { + FileName = "../Input/CAD/wheel"; + RGB = {0,0,1}; + ScaleXYZ = {1,1,1}*Main.ChairParameters.PushRimRad; + }; + }; + }; + + AnySeg WheelLeft = { + Mass = 2.5; + Jii = {1,1,2}*0.1; + AnyRefNode PushRim = { + sRel = {0,Main.ChairParameters.PushRimRad,-Main.ChairParameters.PushRimDist}; + }; + Axes0=.GlobalRef.Seat.ARel; + r0 ={.GlobalRef.Seat.sRel[0], + .GlobalRef.Seat.sRel[1]- Main.ChairParameters.AxleZ, + .GlobalRef.Seat.sRel[2] + }; + AnyDrawSurf Wheel = { + FileName = "../Input/CAD/wheel"; + RGB = {0.5, 0.5, 0.5}; + ScaleXYZ = {1,1,-1}*Main.ChairParameters.WheelRad; + };// AnyDrawSeg drw = {}; + AnyRefNode PushRimHub = { + sRel = { + 0, + 0, + -Main.ChairParameters.PushRimDist + }; + AnyDrawSurf Wheel = { + FileName = "../Input/CAD/wheel"; + RGB = {0,0,1}; + ScaleXYZ = {1,1,-1}*Main.ChairParameters.PushRimRad; + }; + }; + }; + + // Join the wheels to the chair (ground, actually) + AnyRevoluteJoint HubRight = { + AnyRefNode &Chair = .GlobalRef.Seat.HubRight; + AnySeg &Wheel = .WheelRight; + Axis = z; + }; + AnyRevoluteJoint HubLeft = { + AnyRefNode &Chair = .GlobalRef.Seat.HubLeft; + AnySeg &Wheel = .WheelLeft; + Axis = z; + }; + + // Drive the wheels. This in turn determines the hand movement + AnyKinEqSimpleDriver WheelRightDr = { + AnyRevoluteJoint &Joint = .HubRight; + DriverPos = {0}; + DriverVel = {0}; + Reaction.Type = {On}; + }; + AnyKinEqSimpleDriver WheelLeftDr = { + AnyRevoluteJoint &Joint = .HubLeft; + DriverPos = {0}; + DriverVel = {0}; + Reaction.Type = {On}; + }; + + + + + + +AnyForce3D ForceOnHand ={ + + + AnyFunInterpol force={ + //Type=PiecewiseLinear; + //Type=Bezier; + T=Main.C3DFileData.ANALOG.TimingChann.Frames/Main.C3DFileData.HeaderInformation.VideoFrameRate; + Data={ + -Main.C3DFileData.ANALOG.WHLCHRFX.Frame1, + Main.C3DFileData.ANALOG.WHLCHRFY.Frame1, + -Main.C3DFileData.ANALOG.WHLCHRFZ.Frame1}; + Type=Bspline; + BsplineOrder = 8; + + }; + AnyRefNode &ref1=Main.Model.BodyModel.Right.ShoulderArm.Seg.Hand.Ref.Hand; + F=force(t); + +}; + + +AnyDrawVector DrawSupport1 = { + AnyRefFrame &ref = Main.Model.BodyModel.Right.ShoulderArm.Seg.Hand.Ref.Hand; + Vec = 0.005*.ForceOnHand.F; + + PointAway = Off; + DrawCoord = Off; + + Line.RGB = {0,0,1}; + Line.Thickness =0.0075; + Line.End.Thickness = 2*0.0075; + Line.End.Length = 4*0.0075; +}; + + + +}; \ No newline at end of file