[Opal-commits] web tutorial4.html,NONE,1.1 tutorial5.html,NONE,1.1 manual.html,1.2,1.3 tutorial1.htm
Status: Inactive
Brought to you by:
tylerstreeter
|
From: tylerstreeter <tyl...@us...> - 2005-03-04 03:45:42
|
Update of /cvsroot/opal/web In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23540 Modified Files: manual.html tutorial1.html tutorial2.html tutorial3.html Added Files: tutorial4.html tutorial5.html Log Message: added Motors tutorial and fixed some things with the others Index: tutorial3.html =================================================================== RCS file: /cvsroot/opal/web/tutorial3.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** tutorial3.html 3 Mar 2005 02:22:48 -0000 1.1 --- tutorial3.html 4 Mar 2005 03:45:32 -0000 1.2 *************** *** 25,39 **** <o:Author>Tyler Streeter</o:Author> <o:LastAuthor>Tyler Streeter</o:LastAuthor> ! <o:Revision>134</o:Revision> ! <o:TotalTime>254</o:TotalTime> <o:Created>2004-06-05T15:20:00Z</o:Created> ! <o:LastSaved>2005-03-03T02:21:00Z</o:LastSaved> <o:Pages>1</o:Pages> ! <o:Words>361</o:Words> ! <o:Characters>2059</o:Characters> <o:Company>none</o:Company> ! <o:Lines>17</o:Lines> ! <o:Paragraphs>4</o:Paragraphs> ! <o:CharactersWithSpaces>2416</o:CharactersWithSpaces> <o:Version>10.6714</o:Version> </o:DocumentProperties> --- 25,39 ---- <o:Author>Tyler Streeter</o:Author> <o:LastAuthor>Tyler Streeter</o:LastAuthor> ! <o:Revision>138</o:Revision> ! <o:TotalTime>259</o:TotalTime> <o:Created>2004-06-05T15:20:00Z</o:Created> ! <o:LastSaved>2005-03-04T01:21:00Z</o:LastSaved> <o:Pages>1</o:Pages> ! <o:Words>446</o:Words> ! <o:Characters>2543</o:Characters> <o:Company>none</o:Company> ! <o:Lines>21</o:Lines> ! <o:Paragraphs>5</o:Paragraphs> ! <o:CharactersWithSpaces>2984</o:CharactersWithSpaces> <o:Version>10.6714</o:Version> </o:DocumentProperties> *************** *** 41,44 **** --- 41,46 ---- <w:WordDocument> <w:Zoom>90</w:Zoom> + <w:SpellingState>Clean</w:SpellingState> + <w:GrammarState>Clean</w:GrammarState> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> *************** *** 80,83 **** --- 82,88 ---- text-decoration:underline; text-underline:single;} + span.SpellE + {mso-style-name:""; + mso-spl-e:yes;} @page Section1 {size:8.5in 11.0in; *************** *** 107,111 **** </style> <![endif]--><!--[if gte mso 9]><xml> ! <o:shapedefaults v:ext="edit" spidmax="54274"> <o:colormenu v:ext="edit" fillcolor="white"/> </o:shapedefaults></xml><![endif]--><!--[if gte mso 9]><xml> --- 112,116 ---- </style> <![endif]--><!--[if gte mso 9]><xml> ! <o:shapedefaults v:ext="edit" spidmax="55298"> <o:colormenu v:ext="edit" fillcolor="white"/> </o:shapedefaults></xml><![endif]--><!--[if gte mso 9]><xml> *************** *** 141,144 **** --- 146,159 ---- <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>Joints + connect two Solids, constraining their relative motion. There are + several types of Joints, each constraining motion in different ways. <span + style='mso-spacerun:yes'> </span>The available Joints are: Hinge Joints (one + rotational degree of freedom), Universal Joints (two rotational degrees of + freedom), Ball Joints (three rotational degrees of freedom), Wheel Joints (two + rotational degrees of freedom; typically one axis coincides with a wheels + axis, and the other is used for steering), Slider Joints (one translational + degree of freedom), and Fixed Joints (zero rotational degrees of freedom).<o:p></o:p></span></p> + <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> + <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>Joints are created much like Solids:<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> *************** *** 153,160 **** height:22.95pt'> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>opal::Simulator* ! sim = opal::createSimulator();<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>opal::Joint* ! joint = sim->createJoint();<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> </td> --- 168,178 ---- height:22.95pt'> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>opal::Simulator</span></span><span style='font-family:Courier; ! color:black'>* <span class=SpellE>sim</span> = <span class=SpellE>opal::createSimulator</span>();<o:p></o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>opal::Joint</span></span><span style='font-family:Courier; ! color:black'>* joint = <span class=SpellE>sim</span>-><span ! class=SpellE>createJoint</span>();<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> </td> *************** *** 167,173 **** <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>Before ! using the Joint, it must be initialized with a JointData object.<span ! style='mso-spacerun:yes'> </span>Before it can be initialized, you must create ! two Solids and position them:<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 align=left --- 185,191 ---- <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>Before ! using the Joint, it must be initialized with a <span class=SpellE>JointData</span> ! object.<span style='mso-spacerun:yes'> </span>Before it can be initialized, ! you must create two Solids and position them:<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 align=left *************** *** 181,213 **** height:22.95pt'> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>opal::Solid* ! solid0 = sim->createSolid();<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>opal::BoxShapeData ! boxData;<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>solid0->addShape(boxData);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>opal::Solid* ! solid1 = sim->createSolid();<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>opal::Matrix44r solid1Transform;<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>solid1Transform.translate(0.0, 1.5, 0.0);<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>solid1->setTransform(solid1Transform);<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>opal::CapsuleShapeData ! capsuleData;<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>solid1->addShape(capsuleData);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>opal::JointData ! jointData;<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.setType(opal::HINGE_JOINT);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.solid0 = solid0;<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.solid1 = solid1;<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.anchor ! = opal::Point3r(0.0, 0.75, 0.0);<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.axis[0].direction ! = opal::Vec3r(1.0, 0.0, 0.0);<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>joint->init(jointData);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> </td> --- 199,246 ---- height:22.95pt'> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>opal::Solid</span></span><span style='font-family:Courier; ! color:black'>* solid0 = <span class=SpellE>sim</span>-><span ! class=SpellE>createSolid</span>();<o:p></o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>opal::BoxShapeData</span></span><span style='font-family:Courier; ! color:black'> <span class=SpellE>boxData</span>;<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>solid0-><span ! class=SpellE>addShape</span>(<span class=SpellE>boxData</span>);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>opal::Solid</span></span><span style='font-family:Courier; ! color:black'>* solid1 = <span class=SpellE>sim</span>-><span ! class=SpellE>createSolid</span>();<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>opal::Matrix44r solid1Transform;<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>solid1Transform.translate(0.0, 1.5, 0.0);<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>solid1-><span ! class=SpellE>setTransform</span>(solid1Transform);<o:p></o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>opal::CapsuleShapeData</span></span><span style='font-family: ! Courier;color:black'> <span class=SpellE>capsuleData</span>;<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>solid1-><span ! class=SpellE>addShape</span>(<span class=SpellE>capsuleData</span>);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>opal::JointData</span></span><span style='font-family:Courier; ! color:black'> <span class=SpellE>jointData</span>;<o:p></o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>jointData.setType</span></span><span style='font-family:Courier; ! color:black'>(<span class=SpellE>opal::HINGE_JOINT</span>);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.solid0 = solid0;<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.solid1 = solid1;<o:p></o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>jointData.anchor</span></span><span style='font-family:Courier; ! color:black'> = opal::Point3r(0.0, 0.75, 0.0);<o:p></o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>jointData.axis</span></span><span style='font-family:Courier; ! color:black'>[0].direction = opal::Vec3r(1.0, 0.0, 0.0);<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>joint->init(<span ! class=SpellE>jointData</span>);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> </td> *************** *** 238,243 **** static environment by simply setting the Joints other Solid to NULL.<span style='mso-spacerun:yes'> </span>Joints can have limits for each of their ! degrees of freedom.<span style='mso-spacerun:yes'> </span>Lets create ! another Joint with some limits:<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 align=left --- 271,276 ---- static environment by simply setting the Joints other Solid to NULL.<span style='mso-spacerun:yes'> </span>Joints can have limits for each of their ! degrees of freedom.<span style='mso-spacerun:yes'> </span>Lets create another ! Joint with some limits:<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 align=left *************** *** 251,272 **** height:22.95pt'> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>opal::JointData ! jointData;<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.setType(opal::HINGE_JOINT);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.solid0 = solid0;<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.solid1 = solid1;<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.anchor ! = opal::Point3r(0.0, 0.75, 0.0);<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.axis[0].direction ! = opal::Vec3r(1.0, 0.0, 0.0);<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.axis[0].limitsEnabled ! = true;<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.axis[0].limits.low ! = -45.0;<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.axis[0].limits.high ! = 25.0;<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>joint->init(jointData);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> </td> --- 284,314 ---- height:22.95pt'> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>opal::JointData</span></span><span style='font-family:Courier; ! color:black'> <span class=SpellE>jointData</span>;<o:p></o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>jointData.setType</span></span><span style='font-family:Courier; ! color:black'>(<span class=SpellE>opal::HINGE_JOINT</span>);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.solid0 = solid0;<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>jointData.solid1 = solid1;<o:p></o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>jointData.anchor</span></span><span style='font-family:Courier; ! color:black'> = opal::Point3r(0.0, 0.75, 0.0);<o:p></o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>jointData.axis</span></span><span style='font-family:Courier; ! color:black'>[0].direction = opal::Vec3r(1.0, 0.0, 0.0);<o:p></o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>jointData.axis</span></span><span style='font-family:Courier; ! color:black'>[0].<span class=SpellE>limitsEnabled</span> = true;<o:p></o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>jointData.axis</span></span><span style='font-family:Courier; ! color:black'>[0].<span class=SpellE>limits.low</span> = -45.0;<o:p></o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>jointData.axis</span></span><span style='font-family:Courier; ! color:black'>[0].<span class=SpellE>limits.high</span> = 25.0;<o:p></o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>joint->init(<span ! class=SpellE>jointData</span>);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> </td> *************** *** 304,308 **** height:22.95pt'> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>joint->setBreakParams(opal::THRESHOLD_MODE, 3.0);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> --- 346,351 ---- height:22.95pt'> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>joint-><span ! class=SpellE>setBreakParams</span>(<span class=SpellE>opal::THRESHOLD_MODE</span>, 3.0);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> *************** *** 318,323 **** it exceeds a threshold, at which point the Joint breaks.<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>When you ! are done with a Joint, tell the Simulator to destroy it:<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 align=left --- 361,366 ---- it exceeds a threshold, at which point the Joint breaks.<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>When ! you are done with a Joint, tell the Simulator to destroy it:<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 align=left *************** *** 332,336 **** height:22.95pt'> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span style='font-family:Courier;color:black'>sim->destroySolid(joint);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> </td> --- 375,381 ---- height:22.95pt'> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; ! color:black'>sim</span></span><span style='font-family:Courier;color:black'>-><span ! class=SpellE>destroySolid</span>(joint);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> </td> --- NEW FILE: tutorial5.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> <meta name=ProgId content=Word.Document> <meta name=Generator content="Microsoft Word 10"> <meta name=Originator content="Microsoft Word 10"> <link rel=File-List href="tutorial5_files/filelist.xml"> <link rel=Edit-Time-Data href="tutorial5_files/editdata.mso"> <!--[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]--> <title>OPAL: Open Physics Abstraction Layer</title> <!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Author>Tyler Streeter</o:Author> <o:LastAuthor>Tyler Streeter</o:LastAuthor> <o:Revision>138</o:Revision> <o:TotalTime>257</o:TotalTime> <o:Created>2004-06-05T15:20:00Z</o:Created> <o:LastSaved>2005-03-04T03:44:00Z</o:LastSaved> <o:Pages>1</o:Pages> <o:Words>38</o:Words> <o:Characters>223</o:Characters> <o:Company>none</o:Company> <o:Lines>1</o:Lines> <o:Paragraphs>1</o:Paragraphs> <o:CharactersWithSpaces>260</o:CharactersWithSpaces> <o:Version>10.6714</o:Version> </o:DocumentProperties> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:Zoom>90</w:Zoom> <w:GrammarState>Clean</w:GrammarState> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--> <style> <!-- /* Font Definitions */ @font-face {font-family:"Book Antiqua"; panose-1:2 4 6 2 5 3 5 3 3 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:647 0 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; color:white;} a:link, span.MsoHyperlink {color:#3366FF; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {color:#000066; text-decoration:underline; text-underline:single;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} --> </style> <!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman";} </style> <![endif]--><!--[if gte mso 9]><xml> <o:shapedefaults v:ext="edit" spidmax="57346"> <o:colormenu v:ext="edit" fillcolor="white"/> </o:shapedefaults></xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext="edit"> <o:idmap v:ext="edit" data="1"/> </o:shapelayout></xml><![endif]--> </head> <body bgcolor=white lang=EN-US link="#3366FF" vlink="#000066" style='tab-interval: .5in' alink="#ffcc33"> <div class=Section1> <table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width="95%" style='width:95.58%;mso-cellspacing:0in;mso-padding-alt:7.5pt 7.5pt 7.5pt 7.5pt'> <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'> <td width=1295 valign=top style='width:777.0pt;padding:7.5pt 7.5pt 7.5pt 7.5pt'> <p class=MsoNormal align=center style='text-align:center'><span style='font-family:"Book Antiqua";mso-bidi-font-family:Arial;color:black'><o:p> </o:p></span></p> <p class=MsoNormal align=center style='text-align:center'><span style='font-family:"Book Antiqua";mso-bidi-font-family:Arial;color:black'><o:p> </o:p></span></p> <p class=MsoNormal align=center style='text-align:center'><span style='font-family:"Book Antiqua";mso-bidi-font-family:Arial;color:#333333'><img width=534 height=129 id="_x0000_i1025" src="files/opal_logo.jpg" border=0><o:p></o:p></span></p> <p class=MsoNormal align=center style='text-align:center'><span style='font-family:"Book Antiqua";mso-bidi-font-family:Arial;color:black'><o:p> </o:p></span></p> <p class=MsoNormal align=center style='text-align:center'><span style='font-family:"Book Antiqua";mso-bidi-font-family:Arial;color:black'><o:p> </o:p></span></p> <p class=MsoNormal align=center style='text-align:center'><span style='font-size:22.0pt;font-family:"Book Antiqua";mso-bidi-font-family:Arial; color:black'>Tutorial 5: Sensors<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>Sensors are not yet implemented <o:p></o:p></span></p> </td> </tr> </table> <p class=MsoNormal align=center style='margin-bottom:12.0pt;text-align:center'><span style='font-size:10.0pt;font-family:"Book Antiqua";mso-bidi-font-family:Arial; color:#333333'><o:p> </o:p></span></p> <p class=MsoNormal align=center style='margin-bottom:12.0pt;text-align:center'><span style='font-size:8.0pt;font-family:"Book Antiqua";mso-bidi-font-family:Arial; color:black'>OPAL is Copyright © 2004-2005 Alan Fischer, Andres Reinot, and Tyler Streeter<o:p></o:p></span></p> </div> </body> </html> Index: tutorial2.html =================================================================== RCS file: /cvsroot/opal/web/tutorial2.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** tutorial2.html 3 Mar 2005 02:22:48 -0000 1.2 --- tutorial2.html 4 Mar 2005 03:45:32 -0000 1.3 *************** *** 25,39 **** <o:Author>Tyler Streeter</o:Author> <o:LastAuthor>Tyler Streeter</o:LastAuthor> ! <o:Revision>122</o:Revision> ! <o:TotalTime>208</o:TotalTime> <o:Created>2004-06-05T15:20:00Z</o:Created> ! <o:LastSaved>2005-03-03T02:10:00Z</o:LastSaved> <o:Pages>1</o:Pages> ! <o:Words>362</o:Words> ! <o:Characters>2064</o:Characters> <o:Company>none</o:Company> ! <o:Lines>17</o:Lines> ! <o:Paragraphs>4</o:Paragraphs> ! <o:CharactersWithSpaces>2422</o:CharactersWithSpaces> <o:Version>10.6714</o:Version> </o:DocumentProperties> --- 25,39 ---- <o:Author>Tyler Streeter</o:Author> <o:LastAuthor>Tyler Streeter</o:LastAuthor> ! <o:Revision>124</o:Revision> ! <o:TotalTime>211</o:TotalTime> <o:Created>2004-06-05T15:20:00Z</o:Created> ! <o:LastSaved>2005-03-04T01:29:00Z</o:LastSaved> <o:Pages>1</o:Pages> ! <o:Words>420</o:Words> ! <o:Characters>2394</o:Characters> <o:Company>none</o:Company> ! <o:Lines>19</o:Lines> ! <o:Paragraphs>5</o:Paragraphs> ! <o:CharactersWithSpaces>2809</o:CharactersWithSpaces> <o:Version>10.6714</o:Version> </o:DocumentProperties> *************** *** 41,44 **** --- 41,45 ---- <w:WordDocument> <w:Zoom>90</w:Zoom> + <w:GrammarState>Clean</w:GrammarState> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> *************** *** 107,111 **** </style> <![endif]--><!--[if gte mso 9]><xml> ! <o:shapedefaults v:ext="edit" spidmax="54274"> <o:colormenu v:ext="edit" fillcolor="white"/> </o:shapedefaults></xml><![endif]--><!--[if gte mso 9]><xml> --- 108,112 ---- </style> <![endif]--><!--[if gte mso 9]><xml> ! <o:shapedefaults v:ext="edit" spidmax="56322"> <o:colormenu v:ext="edit" fillcolor="white"/> </o:shapedefaults></xml><![endif]--><!--[if gte mso 9]><xml> *************** *** 140,143 **** --- 141,152 ---- <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> + <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>A + Solid is analogous to a physical object in the real world. It can be + static (just a shape, not physically simulated) or dynamic (has a shape, + mass, and is physically simulated). The available Shapes are: boxes, + spheres, capsule, planes, rays, and triangular meshes.<span + style='mso-spacerun:yes'> </span>A Solid contains no moving parts. Complex + objects with moving parts can be built from multiple Solids with Joints.<o:p></o:p></span></p> + <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>Create a Solid by asking a Simulator to create one:<o:p></o:p></span></p> *************** *** 166,171 **** <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>Once you ! have a Solid, you can set its various parameters.<span style='mso-spacerun:yes'> </span>For example <o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> --- 175,180 ---- <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>Once ! you have a Solid, you can set its various parameters.<span style='mso-spacerun:yes'> </span>For example <o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> *************** *** 256,262 **** how the spheres offset was changed.<span style='mso-spacerun:yes'> </span>The offset positions the Shape relative to the Solids transform.<span ! style='mso-spacerun:yes'> </span>Shapes are not offset at all by default.<span ! style='mso-spacerun:yes'> </span>Here, we have moved the Sphere away from ! the Solids origin.<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>Each --- 265,271 ---- how the spheres offset was changed.<span style='mso-spacerun:yes'> </span>The offset positions the Shape relative to the Solids transform.<span ! style='mso-spacerun:yes'> </span>Shapes are not offset at all by ! default.<span style='mso-spacerun:yes'> </span>Here, we have moved the ! Sphere away from the Solids origin.<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>Each *************** *** 345,350 **** force will be applied to the Solid until its duration expires.<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>When ! you are done with a Solid, tell the Simulator to destroy it:<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 align=left --- 354,359 ---- force will be applied to the Solid until its duration expires.<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>When you ! are done with a Solid, tell the Simulator to destroy it:<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 align=left *************** *** 368,374 **** <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>If other ! things depends on this Solid, like a Joint, Motor, or Sensor, it will automatically ! be disabled.<o:p></o:p></span></p> </td> </tr> --- 377,383 ---- <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> ! <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>If ! other things depends on this Solid, like a Joint, Motor, or Sensor, it will ! automatically be disabled.<o:p></o:p></span></p> </td> </tr> --- NEW FILE: tutorial4.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> <meta name=ProgId content=Word.Document> <meta name=Generator content="Microsoft Word 10"> <meta name=Originator content="Microsoft Word 10"> <link rel=File-List href="tutorial4_files/filelist.xml"> <link rel=Edit-Time-Data href="tutorial4_files/editdata.mso"> <!--[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]--> <title>OPAL: Open Physics Abstraction Layer</title> <!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Author>Tyler Streeter</o:Author> <o:LastAuthor>Tyler Streeter</o:LastAuthor> <o:Revision>169</o:Revision> <o:TotalTime>307</o:TotalTime> <o:Created>2004-06-05T15:20:00Z</o:Created> <o:LastSaved>2005-03-04T03:41:00Z</o:LastSaved> <o:Pages>1</o:Pages> <o:Words>593</o:Words> <o:Characters>3381</o:Characters> <o:Company>none</o:Company> <o:Lines>28</o:Lines> <o:Paragraphs>7</o:Paragraphs> <o:CharactersWithSpaces>3967</o:CharactersWithSpaces> <o:Version>10.6714</o:Version> </o:DocumentProperties> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:Zoom>90</w:Zoom> <w:SpellingState>Clean</w:SpellingState> <w:GrammarState>Clean</w:GrammarState> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--> <style> <!-- /* Font Definitions */ @font-face {font-family:Courier; panose-1:2 7 4 9 2 2 5 2 4 4; mso-font-charset:0; mso-generic-font-family:modern; mso-font-format:other; mso-font-pitch:fixed; mso-font-signature:3 0 0 0 1 0;} @font-face {font-family:"Book Antiqua"; panose-1:2 4 6 2 5 3 5 3 3 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:647 0 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; color:white;} a:link, span.MsoHyperlink {color:#3366FF; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {color:#000066; text-decoration:underline; text-underline:single;} span.SpellE {mso-style-name:""; mso-spl-e:yes;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} --> </style> <!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman";} </style> <![endif]--><!--[if gte mso 9]><xml> <o:shapedefaults v:ext="edit" spidmax="59394"> <o:colormenu v:ext="edit" fillcolor="white"/> </o:shapedefaults></xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext="edit"> <o:idmap v:ext="edit" data="1"/> </o:shapelayout></xml><![endif]--> </head> <body bgcolor=white lang=EN-US link="#3366FF" vlink="#000066" style='tab-interval: .5in' alink="#ffcc33"> <div class=Section1> <table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width="95%" style='width:95.58%;mso-cellspacing:0in;mso-padding-alt:7.5pt 7.5pt 7.5pt 7.5pt'> <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'> <td width=1295 valign=top style='width:777.0pt;padding:7.5pt 7.5pt 7.5pt 7.5pt'> <p class=MsoNormal align=center style='text-align:center'><span style='font-family:"Book Antiqua";mso-bidi-font-family:Arial;color:black'><o:p> </o:p></span></p> <p class=MsoNormal align=center style='text-align:center'><span style='font-family:"Book Antiqua";mso-bidi-font-family:Arial;color:black'><o:p> </o:p></span></p> <p class=MsoNormal align=center style='text-align:center'><span style='font-family:"Book Antiqua";mso-bidi-font-family:Arial;color:#333333'><img width=534 height=129 id="_x0000_i1025" src="files/opal_logo.jpg" border=0><o:p></o:p></span></p> <p class=MsoNormal align=center style='text-align:center'><span style='font-family:"Book Antiqua";mso-bidi-font-family:Arial;color:black'><o:p> </o:p></span></p> <p class=MsoNormal align=center style='text-align:center'><span style='font-family:"Book Antiqua";mso-bidi-font-family:Arial;color:black'><o:p> </o:p></span></p> <p class=MsoNormal align=center style='text-align:center'><span style='font-size:22.0pt;font-family:"Book Antiqua";mso-bidi-font-family:Arial; color:black'>Tutorial 4: Motors<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>A Motor applies forces/torques to Solids or Joints to achieve some desired effect. There are several types of Motors, including Attractor Motors, Geared Motors, Servo Motors, Spring Motors, and Thruster Motors.<span style='mso-spacerun:yes'> </span>This tutorial will show how to setup each type.<span style='mso-spacerun:yes'> </span>It will also give examples of how each type could be used.<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>Lets first create all the objects well need (and assume they will be initialized ):<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 align=left style='background:silver;border-collapse:collapse;border:none;mso-border-alt: solid windowtext .25pt;mso-table-lspace:9.0pt;margin-left:.1in;mso-table-rspace: 9.0pt;margin-right:.1in;mso-table-anchor-vertical:paragraph;mso-table-anchor-horizontal: page;mso-table-left:7.35pt;mso-table-top:12.7pt;mso-padding-alt:0in 5.4pt 0in 5.4pt'> <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes;height:22.95pt'> <td width=974 valign=top style='width:584.6pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .25pt;padding:0in 5.4pt 0in 5.4pt; height:22.95pt'> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>opal::Simulator</span></span><span style='font-family:Courier; color:black'>* <span class=SpellE>sim</span> = <span class=SpellE>opal::createSimulator</span>();<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>opal::Solid</span></span><span style='font-family:Courier; color:black'>* solid0 = <span class=SpellE>sim</span>-><span class=SpellE>createSolid</span>();<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>opal::Solid</span></span><span style='font-family:Courier; color:black'>* solid1 = <span class=SpellE>sim</span>-><span class=SpellE>createSolid</span>();<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>opal::Joint</span></span><span style='font-family:Courier; color:black'>* joint = <span class=SpellE>sim</span>-><span class=SpellE>createJoint</span>();<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> </td> </tr> </table> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>Now well make an Attractor Motor and initialize it:<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 align=left style='background:silver;border-collapse:collapse;border:none;mso-border-alt: solid windowtext .25pt;mso-table-lspace:9.0pt;margin-left:.1in;mso-table-rspace: 9.0pt;margin-right:.1in;mso-table-anchor-vertical:paragraph;mso-table-anchor-horizontal: page;mso-table-left:7.35pt;mso-table-top:12.7pt;mso-padding-alt:0in 5.4pt 0in 5.4pt'> <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes;height:22.95pt'> <td width=974 valign=top style='width:584.6pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .25pt;padding:0in 5.4pt 0in 5.4pt; height:22.95pt'> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>opal::AttractorMotorData</span></span><span style='font-family: Courier;color:black'> data;<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>data.solid0 = solid0;<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>data.solid1 = solid1;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.strength</span></span><span style='font-family:Courier; color:black'> = 10.0;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.exponent</span></span><span style='font-family:Courier; color:black'> = 2.0;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>opal::AttractorMotor</span></span><span style='font-family: Courier;color:black'>* attractor = <span class=SpellE>sim</span>-><span class=SpellE>createAttractorMotor</span>();<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>attractor->init(data);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> </td> </tr> </table> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>This Attractor Motor will constantly apply forces to the two Solids to make them gravitate toward one another.<span style='mso-spacerun:yes'> </span>This makes it easy to simulate planetary gravitation or magnetic attraction.<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>Next, lets make a Geared Motor:<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 align=left style='background:silver;border-collapse:collapse;border:none;mso-border-alt: solid windowtext .25pt;mso-table-lspace:9.0pt;margin-left:.1in;mso-table-rspace: 9.0pt;margin-right:.1in;mso-table-anchor-vertical:paragraph;mso-table-anchor-horizontal: page;mso-table-left:7.35pt;mso-table-top:12.7pt;mso-padding-alt:0in 5.4pt 0in 5.4pt'> <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes;height:22.95pt'> <td width=974 valign=top style='width:584.6pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .25pt;padding:0in 5.4pt 0in 5.4pt; height:22.95pt'> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>opal::GearedMotorData</span></span><span style='font-family: Courier;color:black'> data;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.joint</span></span><span style='font-family:Courier; color:black'> = joint;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.jointAxisNum</span></span><span style='font-family:Courier; color:black'> = 0;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.maxTorque</span></span><span style='font-family:Courier; color:black'> = 10.0;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.maxVelocity</span></span><span style='font-family:Courier; color:black'> = 2000.0;<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>opal:: <span class=SpellE>GearedMotor</span>* engine = <span class=SpellE>sim</span>-><span class=SpellE>createGearedMotor</span>();<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>engine->init(data);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>engine-><span class=SpellE>setThrottle</span>(0.5);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> </td> </tr> </table> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>The Geared Motors throttle should now be updated as desired.<span style='mso-spacerun:yes'> </span>The Motor will have more torque available when its angular velocity is low.<span style='mso-spacerun:yes'> </span>As it approaches its max velocity, it will apply less and less torque.<span style='mso-spacerun:yes'> </span>This Motor is great for simulating automobile engines.<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>The next Motor is a Servo Motor:<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 align=left style='background:silver;border-collapse:collapse;border:none;mso-border-alt: solid windowtext .25pt;mso-table-lspace:9.0pt;margin-left:.1in;mso-table-rspace: 9.0pt;margin-right:.1in;mso-table-anchor-vertical:paragraph;mso-table-anchor-horizontal: page;mso-table-left:7.35pt;mso-table-top:12.7pt;mso-padding-alt:0in 5.4pt 0in 5.4pt'> <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes;height:22.95pt'> <td width=974 valign=top style='width:584.6pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .25pt;padding:0in 5.4pt 0in 5.4pt; height:22.95pt'> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>opal::ServoMotorData</span></span><span style='font-family: Courier;color:black'> data;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.joint</span></span><span style='font-family:Courier; color:black'> = joint;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.mode</span></span><span style='font-family:Courier; color:black'> = <span class=SpellE>opal::DESIRED_ANGLE_MODE</span>;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.jointAxisNum</span></span><span style='font-family:Courier; color:black'> = 0;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.desiredAngle</span></span><span style='font-family:Courier; color:black'> = 35.0;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.maxTorque</span></span><span style='font-family:Courier; color:black'> = 4.0;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.restoreSpeed</span></span><span style='font-family:Courier; color:black'> = 2.0;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>opal::ServoMotor</span></span><span style='font-family:Courier; color:black'>* servo = <span class=SpellE>sim</span>-><span class=SpellE>createServoMotor</span>();<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>servo->init(data);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> </td> </tr> </table> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>The Servo will continually use up to its max torque to try to achieve its desired angle.<span style='mso-spacerun:yes'> </span>Servos are extremely stable controllers, similar a PD or PID controllers.<span style='mso-spacerun:yes'> </span>They make automatic adjustments to keep from overshoot their target angle.<span style='mso-spacerun:yes'> </span>Servos are really good for robot simulations: the robot can simply set its desired Joint angles, and the Servo automatically provides enough torque to reach that angle without overshooting.<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'>A Spring Motor is a simple linear and/or <span class=SpellE>torsional</span> spring with damping that brings a Solid to a desired position and/or orientation:<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 align=left style='background:silver;border-collapse:collapse;border:none;mso-border-alt: solid windowtext .25pt;mso-table-lspace:9.0pt;margin-left:.1in;mso-table-rspace: 9.0pt;margin-right:.1in;mso-table-anchor-vertical:paragraph;mso-table-anchor-horizontal: page;mso-table-left:7.35pt;mso-table-top:12.7pt;mso-padding-alt:0in 5.4pt 0in 5.4pt'> <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes;height:22.95pt'> <td width=974 valign=top style='width:584.6pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .25pt;padding:0in 5.4pt 0in 5.4pt; height:22.95pt'> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>opal::SpringMotorData</span></span><span style='font-family: Courier;color:black'> data;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.solid</span></span><span style='font-family:Courier; color:black'> = solid0;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.mode</span></span><span style='font-family:Courier; color:black'> = <span class=SpellE>opal::LINEAR_AND_ANGULAR_MODE</span>;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.desiredPos</span></span><span style='font-family:Courier; color:black'> = opal::Point3r(4.0, 0.0, -8.5);<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.desiredForward</span></span><span style='font-family: Courier;color:black'> = opal::Vec3r(0.0, 0.0, -1.0);<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.desiredUp</span></span><span style='font-family:Courier; color:black'> = opal:: Vec3r (0.0, 1.0, 0.0);<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.desiredRight</span></span><span style='font-family:Courier; color:black'> = opal:: Vec3r (1.0, 0.0, 0.0);<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.linearKd</span></span><span style='font-family:Courier; color:black'> = 2.0;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.linearKs</span></span><span style='font-family:Courier; color:black'> = 20.0;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.angularKd</span></span><span style='font-family:Courier; color:black'> = 0.2;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>data.angularKs</span></span><span style='font-family:Courier; color:black'> = 0.6;<o:p></o:p></span></p> <p class=MsoNormal><span class=SpellE><span style='font-family:Courier; color:black'>opal::SpringMotor</span></span><span style='font-family:Courier; color:black'>* spring = <span class=SpellE>sim</span>-><span class=SpellE>createSpringMotor</span>();<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'>spring->init(data);<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> </td> </tr> </table> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:Courier;color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p class=MsoNormal><span style='font-family:"Book Antiqua";color:black'><o:p> </o:p></span></p> <p clas... [truncated message content] |