DesignBots Tutorial and Architecture
Home
DesignBots Overview
Menu and Interface Functions
Tutorial and Architecture
This page walks you through a simple XYTable design. It also covers the important concept of arranging your DOF's within DesignBots. DOF is a common robotics term meaning 'degree of freedom'. Every DOF corresponds to one dimension in which the device is free to move, typically this requires one motor.
If you have problems at any point it may help to examine the XYTutorial.bot file as it contains a completed copy of what this tutorial builds. Save your work first by clicking Save under the File menu. The Open file function is in their as well so you can open the XYTutorial.bot file which should be installed into the same folder that you installed DesignBots to.
On the form labeled "Edit Part 1", click into the name box and change the name of 'Part 1' to 'XY Table'(Don't include the apostrophes where I use them). Click Apply on the Edit form and note that the name is updated throughout the application.
Click the design menu, select 'Create New Part Room', and create a part room named 'X Table Top'.
Create three more part rooms named 'Y Table Bottom', 'Y Table Top', and '12 x 2 x 1'.
At this point it would be useful to note that the first four rooms are going to be used as layout rooms to provide grouping and organization for the project, the Table Top rooms will be motorized. The rest of the rooms will hold simple single part definitions, unless you want to create 'factory' rooms containing many complete robotic devices. This type of organization is critical to the architecture of your project.
Select the '12 x 2 x 1' room. Click the 'Camera / Shape tab'. Change the shape name to box. Change the shape size to '1, 12, 2'. Click Apply. You won't put anything else in this room, it will be used as a reusable part.
Create another part room and name it '12in Rail'. Change it's shape name to 'cone' and it's shape size to '.5, .5, 12'. Click Apply.
Select the XY Table part room with the 'Parts Bar'.
Click 'Add Sub Part'. Select the '12 x 2 x 1' part, and name the subpart 'X End 1'. You have just added a reference to '12 x 2 x 1', the reference name is 'X End 1'.
Click on XY Table in the tree at the top of the edit form and note how the grid turns red as you select it as the part to edit. Change the grids 'Shape Size' property to '12, 12, 1' and click Apply.
Select the 'X End 1' subpart again. Set it's Subpart position to '-5.5, 0, 1'. Click 'Apply'.
Click 'Add SubPart' and add another '12 x 2 x 1' beam, name this one 'X End 2', and set it's home position to '5.5, 0, 1'.
Click 'Add Subpart' and add a '12 Rail', name the subpart 'X Rail 1'. In it's 'Sub Part Position' tab, change the 'Home Attitude' to '90 , 0 , 0' and click Apply, the part should rotate. Change the 'Home Position' to '0, 5, 1.5' to place the rail. Click 'Add Subpart and place another rail at '0, -5, 1.5' with the same orientation.
We won't bother modelling the motor, drive rod or other details at this point, so those will be the only nonmoving parts added.
Create another part room named '12 x 1 x 1'. Change it's shape name to box and it's shape size to '1, 12, 1'.
Create another part room named 'X Plate'. Change it's shape name to 'box' and it's shape size to '4 , 12, .25'.
Select the 'X Table Top' and set it's shape size to '4 , 12 , 1'. This room will be motorized and carries the top of the X Table.
Click subpart and pick 'X Plate'. Name it 'Plate' and set it's sub part position to '0, 0, -.125'.
Click subpart and pick '12 x 1 x 1'. Change it's subpart position to '1.5, 0, -.625'.
Click subpart and add another '12 x 1 x 1'. Change it's subpart position to '-1.5, 0, -.625'.
Select the XY Table room from the parts bar and click add subpart. Add 'X Table Top' and set it's subpart position to '0, 0, 2.125'.
Go back to the 'X Table Top' room again. Click 'X Table Top' at the top of the subpart tree . Select the Motor Position Tab. Select the 'Linear' and 'X' option. Double click the Motor Default Position box to animate the table. Reset the default to zero.
Go back to the XY Table room. Go into the Operate menu and select 'Drive Motor Positions'. Enter the Positions box, then double click to test and animate your X Table. When done you can add a motor, drive rod, bearings, bearing blocks and other details if you wish.
At this point you should save your work and take some time to look at what you've done. Experiment with some of the settings.
Take a good look at the XYTable.bot on the DesignBots Overview
I'll be providing less instructional detail for the second half so you'll have to think more about what you're building.
Select the X Table Top room from the parts bar and add Y Table Bottom as a subpart.
Select the 'Y Table Bottom' from the parts bar and add Y Table Top as a subpart. Set the subpart position of Y Table Top to raise it a couple of inches.
Create a new part room and create a '4 x 1 x 1' box in it. Select Y Table Bottom from the parts bar and add two of your new '4 x 1 x 1' boxes and place them appropriately at the ends where they can clamp the Y rails(see DesignBots Overview for an example picture). Add two 12in Rails to Y Table Bottom as subparts and position them to run in the Y direction. Keep looking at the screenshots as a guide and follow the same general process that you used to build the Bottom of the X Table.
Create a new part room and create a '4 x 4 x .25' Plate within it. Select Y Table Top and add the plate as a subpart. Add two '4 x 1 x 1' boxes to act as beams and sliders. Keep looking at the screenshots as a guide and follow the same general process that you used to build the Top of the X Table.
Select Y Table Top from the parts bar. Click Y Table Top at the top of the sub part tree on the Edit form. Select the motor type to Linear and the axis to 'Y'.
When done, select XY Table from the parts bar and go to the Operate Menu to test your design.
Load and examine the XYTutorial.bot example file to 'cheat' if you have any difficulties.
When you've completed the XY Table, save your device and open the MinimalistArm.bot example design. Explore the general layout of the parts and subparts. Note how I've linked the six DOF part rooms, each one references the next as a subpart. Note that it is each DOF part room that is motorized and that all the individual parts exist in their own rooms. The Rotor part is the only complex subassembly. I built the file with the same general strategy as used with the XY Table. I created a DOF room for every motor and assumed that each DOF room would carry a number of fixed subparts. I linked the DOF rooms, added the subparts to provide visual structure, then set the motor properties and tested. I've put the axles/motors in the proper DOF Room, though you can't see them rotate.
Complex subassemblies like the Rotor room can make your design a lot more efficient. If you create them without moving parts they will be easier to reuse than if you don't. For example, you can add more fixed detail to the Rotor assembly(stuff that moves with the axle), and you can add more detail to the Motor room to provide detail to the motor housing. However if you try and create a reusable motor from the two you will probably find that it's more trouble than its worth. Keeping the DOFS in their own rooms, linking them, and adding complex but fixed sub assemblies like Rotor works well. This isn't a limitation in the program, I deliberately decided that when you add a subpart you would only be adding a reference to another part room, the part being added does not get copied. Having partially modified copies of parts at every turn would be complex, error prone, and inefficient to update for the user. In summary on this point, complex devices like a robot, arm, hand, or finger should be given their own part room for organization and reusability, smaller devices like motors aren't worth it. Motors model well in two parts, a 'housing' and an 'axle(Rotor)'. You can then install the appropriate part of the motor into the appropriate DOF room, along with whatever is attached to the housing or axle. So each motorized DOF part room carries all the parts that move with it.