Skip to content

Commit

Permalink
Refined shoulder motor calculations
Browse files Browse the repository at this point in the history
  • Loading branch information
emoshou committed Sep 12, 2024
1 parent 3601fdc commit bcb0632
Show file tree
Hide file tree
Showing 14 changed files with 2,891 additions and 166 deletions.
Binary file not shown.
Binary file modified CAD/delta-00/delta-00.FCStd
Binary file not shown.
250 changes: 250 additions & 0 deletions CAD/delta-00/stepTest.step
Original file line number Diff line number Diff line change
@@ -0,0 +1,250 @@
ISO-10303-21;
HEADER;

/* File generated by Shapr3D Version 3.0 */

FILE_DESCRIPTION(('HOOPS Exchange Step'),'2;1');

FILE_NAME('/Users/e/Library/Containers/com.shapr3d.shapr/Data/tmp/export/temp_export',
'2024-08-08T18:21:27+17:00',
('e'),
('Shapr3D Limited'),
'HOOPS Exchange 2024.2',
'Shapr3D',
'Authorized');

FILE_SCHEMA( ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF {1 0 10303 442 1 1 4 }') );

ENDSEC;

DATA;
#3=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#4=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925),#3);
#5=(CONVERSION_BASED_UNIT('DEGREE',#4)NAMED_UNIT(#6)PLANE_ANGLE_UNIT());
#6=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#7=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#8=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
#9=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.000000E-03),#8,'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model');
#10=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9))GLOBAL_UNIT_ASSIGNED_CONTEXT((#8,#5,#7))REPRESENTATION_CONTEXT('','root'));
#12=CARTESIAN_POINT('',(0.,0.,0.));
#13=DIRECTION('',(0.,0.,1.));
#14=DIRECTION('',(1.,0.,0.));
#15=AXIS2_PLACEMENT_3D('',#12,#13,#14);
#26=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#27=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925),#26);
#28=(CONVERSION_BASED_UNIT('DEGREE',#27)NAMED_UNIT(#29)PLANE_ANGLE_UNIT());
#29=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#30=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#31=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
#32=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.000000E-05),#31,'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model');
#33=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#32))GLOBAL_UNIT_ASSIGNED_CONTEXT((#31,#28,#30))REPRESENTATION_CONTEXT('','stepTest.step'));
#45=CARTESIAN_POINT('',(0.,0.,0.));
#46=DIRECTION('',(0.,0.,1.));
#47=DIRECTION('',(1.,0.,-0.));
#48=AXIS2_PLACEMENT_3D('',#45,#46,#47);
#49=ITEM_DEFINED_TRANSFORMATION('','',#48,#15);
#50=(REPRESENTATION_RELATIONSHIP('','',#35,#16)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#49)SHAPE_REPRESENTATION_RELATIONSHIP());
#51=NEXT_ASSEMBLY_USAGE_OCCURRENCE('stepTest.step_1','stepTest.step','stepTest.step',#25,#44,$);
#52=PRODUCT_DEFINITION_SHAPE('','',#51);
#53=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#50,#52);
#55=CARTESIAN_POINT('',(-500.,0.,387.5));
#56=DIRECTION('',(0.,0.,-1.));
#57=DIRECTION('',(-1.,0.,0.));
#58=AXIS2_PLACEMENT_3D('',#55,#56,#57);
#59=PLANE('',#58);
#60=CARTESIAN_POINT('',(-363.,-62.5,387.5));
#61=VERTEX_POINT('',#60);
#62=CARTESIAN_POINT('',(-363.,62.5,387.5));
#63=VERTEX_POINT('',#62);
#64=CARTESIAN_POINT('',(-363.,-62.5,387.5));
#65=DIRECTION('',(0.,1.,0.));
#66=VECTOR('',#65,125.);
#67=LINE('',#64,#66);
#68=EDGE_CURVE('',#61,#63,#67,.T.);
#69=ORIENTED_EDGE('',*,*,#68,.T.);
#70=CARTESIAN_POINT('',(-500.,62.5,387.5));
#71=VERTEX_POINT('',#70);
#72=CARTESIAN_POINT('',(-500.,62.5,387.5));
#73=DIRECTION('',(1.,0.,-0.));
#74=VECTOR('',#73,137.);
#75=LINE('',#72,#74);
#76=EDGE_CURVE('',#71,#63,#75,.T.);
#77=ORIENTED_EDGE('',*,*,#76,.F.);
#78=CARTESIAN_POINT('',(-500.,-62.5,387.5));
#79=VERTEX_POINT('',#78);
#80=CARTESIAN_POINT('',(-500.,-62.5,387.5));
#81=DIRECTION('',(0.,1.,0.));
#82=VECTOR('',#81,125.);
#83=LINE('',#80,#82);
#84=EDGE_CURVE('',#79,#71,#83,.T.);
#85=ORIENTED_EDGE('',*,*,#84,.F.);
#86=CARTESIAN_POINT('',(-500.,-62.5,387.5));
#87=DIRECTION('',(1.,-0.,-0.));
#88=VECTOR('',#87,137.);
#89=LINE('',#86,#88);
#90=EDGE_CURVE('',#79,#61,#89,.T.);
#91=ORIENTED_EDGE('',*,*,#90,.T.);
#92=EDGE_LOOP('',(#69,#77,#85,#91));
#93=FACE_BOUND('',#92,.T.);
#94=ADVANCED_FACE('',(#93),#59,.F.);
#95=CARTESIAN_POINT('',(-500.,62.5,325.));
#96=DIRECTION('',(0.,-1.,0.));
#97=DIRECTION('',(1.,0.,0.));
#98=AXIS2_PLACEMENT_3D('',#95,#96,#97);
#99=PLANE('',#98);
#100=CARTESIAN_POINT('',(-363.,62.5,262.5));
#101=VERTEX_POINT('',#100);
#102=CARTESIAN_POINT('',(-363.,62.5,387.5));
#103=DIRECTION('',(0.,0.,-1.));
#104=VECTOR('',#103,125.);
#105=LINE('',#102,#104);
#106=EDGE_CURVE('',#63,#101,#105,.T.);
#107=ORIENTED_EDGE('',*,*,#106,.T.);
#108=CARTESIAN_POINT('',(-500.,62.5,262.5));
#109=VERTEX_POINT('',#108);
#110=CARTESIAN_POINT('',(-500.,62.5,262.5));
#111=DIRECTION('',(1.,0.,-0.));
#112=VECTOR('',#111,137.);
#113=LINE('',#110,#112);
#114=EDGE_CURVE('',#109,#101,#113,.T.);
#115=ORIENTED_EDGE('',*,*,#114,.F.);
#116=CARTESIAN_POINT('',(-500.,62.5,387.5));
#117=DIRECTION('',(-0.,-0.,-1.));
#118=VECTOR('',#117,125.);
#119=LINE('',#116,#118);
#120=EDGE_CURVE('',#71,#109,#119,.T.);
#121=ORIENTED_EDGE('',*,*,#120,.F.);
#122=ORIENTED_EDGE('',*,*,#76,.T.);
#123=EDGE_LOOP('',(#107,#115,#121,#122));
#124=FACE_BOUND('',#123,.T.);
#125=ADVANCED_FACE('',(#124),#99,.F.);
#126=CARTESIAN_POINT('',(-500.,0.,262.5));
#127=DIRECTION('',(0.,0.,1.));
#128=DIRECTION('',(1.,0.,0.));
#129=AXIS2_PLACEMENT_3D('',#126,#127,#128);
#130=PLANE('',#129);
#131=CARTESIAN_POINT('',(-363.,-62.5,262.5));
#132=VERTEX_POINT('',#131);
#133=CARTESIAN_POINT('',(-363.,62.5,262.5));
#134=DIRECTION('',(0.,-1.,0.));
#135=VECTOR('',#134,125.);
#136=LINE('',#133,#135);
#137=EDGE_CURVE('',#101,#132,#136,.T.);
#138=ORIENTED_EDGE('',*,*,#137,.T.);
#139=CARTESIAN_POINT('',(-500.,-62.5,262.5));
#140=VERTEX_POINT('',#139);
#141=CARTESIAN_POINT('',(-500.,-62.5,262.5));
#142=DIRECTION('',(1.,-0.,-0.));
#143=VECTOR('',#142,137.);
#144=LINE('',#141,#143);
#145=EDGE_CURVE('',#140,#132,#144,.T.);
#146=ORIENTED_EDGE('',*,*,#145,.F.);
#147=CARTESIAN_POINT('',(-500.,62.5,262.5));
#148=DIRECTION('',(-0.,-1.,-0.));
#149=VECTOR('',#148,125.);
#150=LINE('',#147,#149);
#151=EDGE_CURVE('',#109,#140,#150,.T.);
#152=ORIENTED_EDGE('',*,*,#151,.F.);
#153=ORIENTED_EDGE('',*,*,#114,.T.);
#154=EDGE_LOOP('',(#138,#146,#152,#153));
#155=FACE_BOUND('',#154,.T.);
#156=ADVANCED_FACE('',(#155),#130,.F.);
#157=CARTESIAN_POINT('',(-500.,-62.5,325.));
#158=DIRECTION('',(0.,1.,0.));
#159=DIRECTION('',(-1.,0.,0.));
#160=AXIS2_PLACEMENT_3D('',#157,#158,#159);
#161=PLANE('',#160);
#162=CARTESIAN_POINT('',(-363.,-62.5,262.5));
#163=DIRECTION('',(0.,0.,1.));
#164=VECTOR('',#163,125.);
#165=LINE('',#162,#164);
#166=EDGE_CURVE('',#132,#61,#165,.T.);
#167=ORIENTED_EDGE('',*,*,#166,.T.);
#168=ORIENTED_EDGE('',*,*,#90,.F.);
#169=CARTESIAN_POINT('',(-500.,-62.5,262.5));
#170=DIRECTION('',(0.,0.,1.));
#171=VECTOR('',#170,125.);
#172=LINE('',#169,#171);
#173=EDGE_CURVE('',#140,#79,#172,.T.);
#174=ORIENTED_EDGE('',*,*,#173,.F.);
#175=ORIENTED_EDGE('',*,*,#145,.T.);
#176=EDGE_LOOP('',(#167,#168,#174,#175));
#177=FACE_BOUND('',#176,.T.);
#178=ADVANCED_FACE('',(#177),#161,.F.);
#179=CARTESIAN_POINT('',(-500.,0.,325.));
#180=DIRECTION('',(-1.,0.,0.));
#181=DIRECTION('',(0.,0.,1.));
#182=AXIS2_PLACEMENT_3D('',#179,#180,#181);
#183=PLANE('',#182);
#184=ORIENTED_EDGE('',*,*,#84,.T.);
#185=ORIENTED_EDGE('',*,*,#120,.T.);
#186=ORIENTED_EDGE('',*,*,#151,.T.);
#187=ORIENTED_EDGE('',*,*,#173,.T.);
#188=EDGE_LOOP('',(#184,#185,#186,#187));
#189=FACE_BOUND('',#188,.T.);
#190=ADVANCED_FACE('',(#189),#183,.T.);
#191=CARTESIAN_POINT('',(-363.,0.,325.));
#192=DIRECTION('',(-1.,0.,0.));
#193=DIRECTION('',(0.,0.,1.));
#194=AXIS2_PLACEMENT_3D('',#191,#192,#193);
#195=PLANE('',#194);
#196=ORIENTED_EDGE('',*,*,#68,.F.);
#197=ORIENTED_EDGE('',*,*,#166,.F.);
#198=ORIENTED_EDGE('',*,*,#137,.F.);
#199=ORIENTED_EDGE('',*,*,#106,.F.);
#200=EDGE_LOOP('',(#196,#197,#198,#199));
#201=FACE_BOUND('',#200,.T.);
#202=ADVANCED_FACE('',(#201),#195,.F.);
#203=CLOSED_SHELL('',(#94,#125,#156,#178,#190,#202));
#204=MANIFOLD_SOLID_BREP('C1_',#203);
#205=COLOUR_RGB('',0.447058827,0.474509805,0.501960814);
#206=FILL_AREA_STYLE_COLOUR('',#205);
#207=FILL_AREA_STYLE('',(#206));
#208=SURFACE_STYLE_FILL_AREA(#207);
#209=SURFACE_SIDE_STYLE('',(#208));
#210=SURFACE_STYLE_USAGE(.BOTH.,#209);
#211=PRESENTATION_STYLE_ASSIGNMENT((#210));
#54=STYLED_ITEM('',(#211),#204);
#35=SHAPE_REPRESENTATION('stepTest.step',(#15),#33);
#36=ADVANCED_BREP_SHAPE_REPRESENTATION('stepTest.step',(#204),#33);
#219=SHAPE_REPRESENTATION_RELATIONSHIP('','',#35,#36);
#220=CARTESIAN_POINT('',(0.,0.,0.));
#221=DIRECTION('',(0.,0.,1.));
#222=DIRECTION('',(1.,0.,0.));
#223=AXIS2_PLACEMENT_3D('',#220,#221,#222);
#225=MAPPED_ITEM('',#224,#223);
#224=REPRESENTATION_MAP(#223,#35);
#226=APPLICATION_CONTEXT('Managed model based 3d engineering');
#227=APPLICATION_PROTOCOL_DEFINITION('international standard','ap242_managed_model_based_3d_engineering',2013,#226);
#228=PRODUCT_CONTEXT('',#226,'mechanical');
#229=PRODUCT_DEFINITION_CONTEXT('part definition',#226,'design');
#43=PRODUCT('stepTest.step','stepTest.step','',(#228));
#230=PRODUCT_RELATED_PRODUCT_CATEGORY('part','',(#43));
#231=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#43,.NOT_KNOWN.);
#44=PRODUCT_DEFINITION('design','',#231,#229);
#42=PRODUCT_DEFINITION_SHAPE('','',#44);
#232=SHAPE_DEFINITION_REPRESENTATION(#42,#35);
#34=DRAUGHTING_MODEL('',(#225),#33);
#16=SHAPE_REPRESENTATION('root',(#15,#48),#10);
#233=CARTESIAN_POINT('',(0.,0.,0.));
#234=DIRECTION('',(0.,0.,1.));
#235=DIRECTION('',(1.,0.,0.));
#236=AXIS2_PLACEMENT_3D('',#233,#234,#235);
#238=MAPPED_ITEM('',#237,#236);
#237=REPRESENTATION_MAP(#236,#16);
#24=PRODUCT('root','root','',(#228));
#239=PRODUCT_RELATED_PRODUCT_CATEGORY('part','',(#24));
#240=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#24,.NOT_KNOWN.);
#25=PRODUCT_DEFINITION('design','',#240,#229);
#23=PRODUCT_DEFINITION_SHAPE('','',#25);
#241=SHAPE_DEFINITION_REPRESENTATION(#23,#16);
#11=DRAUGHTING_MODEL('',(#238),#10);
#242=DESCRIPTIVE_REPRESENTATION_ITEM('KEY','/Users/e/Library/Containers/com.shapr3d.shapr/Data/tmp/FF933865-4961-4A11-A19A-1916B6CEAA61.tmp');
#243=PROPERTY_DEFINITION('KEY','',#25);
#244=REPRESENTATION('',(#242),#10);
#245=PROPERTY_DEFINITION_REPRESENTATION(#243,#244);
#246=GENERAL_PROPERTY('','KEY','');
#247=GENERAL_PROPERTY_ASSOCIATION('','',#246,#243);
#1=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#54),#10);
ENDSEC;
END-ISO-10303-21;
Binary file removed docs/analysis/FBDs/rightArmFBD1.png
Binary file not shown.
Binary file removed docs/analysis/FBDs/rightArmFBD2.png
Binary file not shown.
Binary file removed docs/analysis/FBDs/rightArmFBD3.png
Binary file not shown.
Binary file removed docs/analysis/FBDs/rightArmFBD4.png
Binary file not shown.
1 change: 0 additions & 1 deletion docs/analysis/arms/arm, L/index.md

This file was deleted.

161 changes: 0 additions & 161 deletions docs/analysis/arms/arm, L/notebook.ipynb

This file was deleted.

2 changes: 1 addition & 1 deletion docs/analysis/arms/index.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
# Arms Analysis
# Arm, L Analysis
65 changes: 65 additions & 0 deletions docs/analysis/arms/notebook.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 15,
"id": "4beb8d1e",
"metadata": {},
"outputs": [],
"source": [
"# Base Libraries for all Ondroid projects\n",
"import matplotlib, numpy, yaml"
]
},
{
"cell_type": "markdown",
"id": "7491e1c4",
"metadata": {},
"source": [
"# Purpose\n",
"This analysis generates the peak torque acting at the shoulder joint of the robot.\n",
"\n",
"# FBD\n",
"1. Draw the FBD representing torques acting on the shoulder joint\n",
"![Right Arm Free Body Diagram](rightArmFBD1.png)\n",
"\n",
"\n",
"# Analysis\n",
"2. Sum all torques generated from point masses under gravity in addition to motor torques\n",
"\n",
"$$\n",
"\\sum T_A = 0 = T_{motor} -T_{a_{p}} - T_{a_{3}} - T_{a_{2}} - T_{a_{1}} - T_{mp} - T_{m3} - T_{m2} - T_{m1}\n",
"$$\n",
"\n",
"*Note that the torques from mass are represented as $T_{a_{i}}$and will be broken into constituent elements (mass times gravity at distance, or weight times distance) later*\n",
"\n",
"3. For preliminary torque calculations and to summarize the torque required at the shoulder motor under worst case load, we can remove the acceleration torques from equation one and consider the system in static loading\n",
"\n",
"$$\n",
"\\sum T_A = 0 = T_{motor} - T_{mp} - T_{m3} - T_{m2} - T_{m1}\n",
"$$\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Loading

0 comments on commit bcb0632

Please sign in to comment.