15. Mechanical Design¶
group assignment:
- design a machine that includes mechanism+actuation+automation
- build the mechanical parts and operate it manually
- document the group project and your individual contribution
Individual contribution¶
For this week’s assignment I’ve contributed setting up the collaboration tools, publishing our group webpage and doing research on the chosen machine.
Every topic below was written / developed by myself.
Collaboration¶
To quickly start putting our thoughts into the documentation, I’ve created a note on hackmd.io. Hackmd is a great markdown collaboration tool, similar to google docs. Where everyone can use their laptops or smartphones to write or upload pictures easily. Most of us have been using it for the past couple of weeks, and so far it has been working fine.
But there is still the need to publish our work on a Fab Academy repo. So, I asked our instructors and they gave us master access on https://gitlab.fabcloud.org/barcelonamachines2019/group1. I will describe the set up work on the next section.
Another need is file sharing and version control of our designs. Since we use different OSs and softwares, I will do a little research to see what are the best options.
Set up group page¶
After being granted master access to our group repo, it was time to set up the webpage. Most of us are using markdown for our personal documentation, and as of now, we’re using hackmd to take notes. So, one great option is to use mkdocs to build the static website. But since the repo is empty, there is a little bit of work before everything starts happening magically.
Clone the repo¶
Since the repo was empty, I just created a simple README file and then went into starting to work locally.
git clone git@gitlab.fabcloud.org:barcelonamachines2019/group1.git
Create new mkdocs¶
As mentioned before, we are going to use mkdocs, to the first step is to create a new project.
mkdocs new .
Now, if we start serving, there is already a whole website working locally
mkdocs serve
Voila!
Config CI/CD¶
If I’d push it now to the origin, the files would be there but gitlab would not know what to do with them.
We need to tell GitLab to build our mkdocs website and then serve it after every push.
For that, I’ll just copy my already functioning .gitlab-ci.yml file, making just two little changes, since so far I’m not using a theme and the repo structure is different:
image: python:alpine before_script: - pip install mkdocs pages: script: - mkdocs build - mv site public artifacts: paths: - public only: - master
Push to origin¶
git add . git commit -m "mkdocs init" git push
Check pipeline¶
Now if I go to GitLab, I should see the jobs done
Check website¶
If I access http://barcelonamachines2019.fabcloud.io/group1/ the welcome page should be up.
Now, it’s time to start adding content to it.
Research¶
Scanning methods¶
Stanford paper on State of the Art on 3D Reconstruction with RGB-D Cameras
LASER triangulation¶
Advantage of this technology is its resolution and accuracy while the disadvantage is it is sensitive to the properties of the surface that it scans. There could be a problem in scanning a very shinny or transparent surfaces.
Structured light¶
Advantages of this technology are its resolution, speed and this can be used to scan people. The main disadvantage with the structured lighting 3d scanning is its sensibility to lighting conditions and therefore it’s difficult to work outside.
Photogrammetry¶
The main advantages of this scanning technology is its precision, acquisition speed and its capability of reconstructing subjects of various scales that are photographed from the ground or air.
Contact-based¶
Advantages with this scanning are its precision and ability to scan reflective or transparent surfaces. The disadvantages are its speed and inability to work on organic and free-form shapes.
3D Model construction¶
Free up to 5000 polygons
Free for non-commercial use
Paid with free trial
Paid with free trial
Products on the market¶
What was done beforehand¶
Portable 3D scanner / ReconstructMe
Working examples
Bearing¶
DIY thrust bearing