Skip to content
Snippets Groups Projects
Commit c4a9e24c authored by mehtank's avatar mehtank
Browse files

Fixed link length; added horn mount

parent 6ab0233a
No related merge requests found
......@@ -4,16 +4,17 @@ from rocolib.api.Function import Function
c = newComponent("PoweredFlipper")
c.addParameter("angle", 0, paramType="angle")
c.addParameter("angle", 180, paramType="angle")
c.addSubcomponent("flipper","Flipper", inherit=True, prefix=None)
c.addSubcomponent("panel","Rectangle")
c.addSubcomponent("drive","MountedServo", inherit="servo", prefix=None)
c.addSubcomponent("link","Rectangle")
c.delParameter("handlelength")
c.delParameter("pitch")
c.delParameter("yaw")
c.addSubcomponent("panel","Rectangle")
c.addSubcomponent("drive","MountedServo", inherit="servo", prefix=None)
c.addSubcomponent("link","Rectangle")
h = lambda servo : f"({servo}.get('motorheight') + {servo}.get('hornheight') + {servo}.get('horndepth'))"
r = lambda servo : f"({servo}.get('hornlength'))"
yaw = lambda servo, angle : f"np.rad2deg(np.arctan2({r(servo)} * np.cos(np.deg2rad({angle})), {h(servo)}))"
......@@ -34,12 +35,15 @@ c.addConstraint(("panel", "w"), "servo", "x.get('motorwidth')")
c.addConstraint(("drive", "length"), "servo", servolength('x'))
c.addConstConstraint(("drive", "offset"), (0,0))
c.addConstConstraint(("drive", "hornmount"), True)
c.addConstConstraint(("drive", "centermount"), True)
c.addConstraint(("link", "l"), "servo", f"{servolength('x')}/2 + {r('x')} + {gap('x')} + 5")
c.addConstraint(("link", "l"), "servo", f"2*x.get('shoulderlength') + x.get('hornoffset') + {gap('x')} + 5")
c.addConstraint(("link", "w"), "servo", "x.get('motorwidth')")
c.addConnection(("flipper", "mountedge"), ("panel", "t"))
c.addConnection(("panel", "l"), ("drive", "botedge3"))
c.addConnection(("flipper", "handleedge"), ("link", "l"), angle=Function(("servo", "angle"), "-90-" + yaw("x[0]", "x[1]")))
c.addConnection(("drive", "horn"), ("link", "face"), transform=False, copyDecorations=True)
save(c, "seacreatures")
......@@ -22,10 +22,17 @@ connections:
parameter: &id001
- servo
- angle
connection3:
- - drive
- horn
- - link
- face
- copyDecorations: true
transform: false
interfaces: {}
parameters:
angle:
defaultValue: 0
defaultValue: 180
spec:
maxValue: 360
minValue: 0
......@@ -101,6 +108,8 @@ subcomponents:
classname: MountedServo
kwargs: {}
parameters:
centermount: true
hornmount: true
length:
function: (x.get('motorlength') + 4*x.get('shoulderlength'))
parameter: servo
......@@ -143,9 +152,9 @@ subcomponents:
kwargs: {}
parameters:
l:
function: (x.get('motorlength') + 4*x.get('shoulderlength'))/2 + (x.get('hornlength'))
+ (x.get('motorheight') * (x.get('hornlength')) / (x.get('motorheight')
+ x.get('hornheight') + x.get('horndepth'))) + 5
function: 2*x.get('shoulderlength') + x.get('hornoffset') + (x.get('motorheight')
* (x.get('hornlength')) / (x.get('motorheight') + x.get('hornheight') +
x.get('horndepth'))) + 5
parameter: servo
w:
function: x.get('motorwidth')
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment