PRE2016 3 Groep15
<nowiki>Insert non-formatted text here</nowiki>== Group Members ==
Name | Student ID |
Martijn de Boer | 0907480 |
Josja Geijsberts | 0896965 |
Gijs Herings | 0953862 |
Martin van Leeuwen | 0901497 |
Max van Meer | 0951669 |
Bart Tulkens | 0956335 |
Introduction
Requirements, Preferences & Constraints
Requirements
- Grabbing and releasing Duplo® building blocks
- Stacking the building blocks to construct a building
- Autonomously carrying out a set building plan
Preferences
- On-site setup of the robot is easy and fast
- The construction built is as robust as possible
- Bystanders’ safety is ensured
- The robot is as cheap as possible
Constraints
- Placement precision has to be in the order of 10^-4 m
- The robot has to be able to reach the top of the building
- The budget depends on dr. Molengraft’s level of interest
USE Aspects
User
- The construction robot will reduce the workload of the construction workers.
- The construction robot will reduce the amount of danger construction workers are exposed to.
- The construction robot will lead to a quicker realisation time of the building, which in turn leads to:
- Quicker accessibility for potential future residents.
- Construction workers not having to works on the same project for too long.
Society
- The quicker realisation time of buildings the construction robot provides, will lead to a more efficient construction sector, which in turn leads to:
- The construction sector being more able to keep up with society’s demand for more living room.
- Possibly lower house costs due to reduced construction costs. This makes buy houses more accessible to a bigger audience.
Enterprise
- The quicker realisation time of buildings can save construction companies a lot of money due to being able to do more projects in less time.
- The construction robot can save construction companies money on wages for construction workers
- The construction robot can help construction companies compete better on the market.
Plan of Attack
The initial step in the assembly of the robot is to get the green light for its creation. To ensure that the scope of the project is indeed properly defined. Once the theoretical background is sufficiently explored the construction of the robot can start. The construction can be divided in a few segments.
- Acquiring the required components
- Physical assembly
- Calibration
- Software implementation
- General Debugging
Acquiring the required components
A the first and most crucial step will be to acquire the right components for our robot. The most crucial component will be to motor. The robot will require at least three so called Stepper motors strong enough so it can move itself around on its rails and precise enough to place blocks acurately. The motorresponsible for the vertical movement will have the be even stronger because it will need to fight of gravity when moving over the y-axis of the robot. This motor could however be relieved of this extra stress by introducing a counterweight. The Stepper motor is an ideal choice for our assignment due to its high torque at low speeds and it's ability to move precisely.
The robot will also need a way to grab and release duplo blocks, this can be done using a template brick together with a servo and a mechanism to convert the angular force of the servo into the linear force required to push away a duplo block.
Depending on the motors used and the complexity of the desired software a motor controller along with a general microcontroller will need to be acquired so it is possible to control the motors. The motors and controllers will of course require electricity to run, therefore a power supply is required as well. This could be in form of a batterypack, or DC-adapter .The DC-Adapter would be the prefered alternative since the robot will not have to be very mobile. Using power from the the general elecricity grid will remove concerns of batteries running empty.
To give the motors a way of moving around three rails are necessary of appropriate size so the gearwheel of the motor will fit inside. These rails willbe attached upon a framework to ensure stability. Both the rails and the framework should be larger than the desired building so the gripper can reach all required positions along with the stack of bricks.
Summary:
- 3 Steppermotors
- 1 Servo
- Duplo blocks
- 1 Mirocontroller(arduino uno)
- 1 DC-adapter
- 3 Rails
- Framework
Physical assembly
The assembly phase will start once the motor components are acquired. First these motors will have to be connected to the motor controller and the general controller to test its function. Once sufficient tests have been completed the construction of the robot can begin.
First the gripper will have to be created, this requires a servo , the template duplo block and the motionconverter. This block should have a hole drilled in the middle so the mechanism can push the duploblock through this hole.(Illustration might be nice). Then wire it to the microcontroller again and see what happens if it can indeed push away a duplo brick.
If the previous test was satisfactory the next step can be executed. In figure .. can be seen how this motor will be attached to the to the rails so it can move around a one dimensional space. The gripper can then be attached to this motor as well so it can move along a vertical line.
Next the vertical axis also known as the y-axis will be created like in figure.. To move along this axis another rail is required and on this rail the motor dealing with the movement on this axis can be attached. At the oposite end the rail that was moving the gripper vertically should be attached to the framework as in figure.... Now the gripper can move around in two dimensional space.
Next the system that can move around in two dimensions should be attached on another axis so it can move around in 3 dimensions. This processes should be similar to the last one. See fig... for the end result.
Calibration
Now we have a builder that can move around inside the frame and theoretically can reach every point the three dimensional space inside the frame. To prepare for the software implementation the motors should be calibrated so we know exactly what signals result in what amount of movement.
Software Implementation
The software should be able to convert a certain 3D model into points where the gripper should move in order to create a phyisical construction of the model. An advanced program could use the vertices's of a mesh from a 3d model to decide on which coordinates the bricks should be placed. This is however deemed outside of the scope of this project and our program will likely just use an array of 3-dimensional coordinates to decide where to place it's bricks. The so called pseudocode for such a program is given below.\\
OnCoordinatesRecieved:
- Retrieve list of Coordinates.
- Check if list is valid and we are not already building.
- Sort Coordinates on from low Y values to high Y values.
- Create a Queue from list.
- Start Build.
Build:
- Check if Queue not empty, if it is then break if not continue looping.
- Get the first coordinate from the queue and remove it from the queue.
- Go to brick stash.
- Push down on brick.
- Move to desired y coordinate + 1.
- Move to desired X and Z coordinate.
- Move to desired Y coordinate.
- Push down.
- Release brick.
- Move to desired Y coordinate + 1.
- Execute build again.
This programm can be executed using popular controllers such as the well-known Arduino and Rasperry-Pi. These controllers differ on price,ease of use, performance and versatility. This project should not require the higher performance and versatility of the raspberry pi, therefore the preferred controller for this project will be the Aruino Uno due to its ease of use and low price.
General debugging
Once completed the robot is likely to still show some unexpected behavior. This can be fixed in the final phase of the assembly. After numerous test in different condition the autonomous robot can be deemed completed.