Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
Principles, Practices and Project Management
============================================
(old)

##### Week of 29 January 2020
##### Principles and Practices - [notes](https://fabacademy.org/2020/labs/barcelona/local/#material/week01/) + [video](https://vimeo.com/388191611)
##### Project Management - [notes](http://academy.cba.mit.edu/classes/project_management/index.html) + [video](https://vimeo.com/388201669)
make making easier > tool / machine > robotic arm? > infinite axes > modular
I'm interested in making a robot of some kind. A machine that does a specific series of tasks. I read about kinds of [robots](https://wiki.fablabbcn.org/Category:Robotic) according to [application](https://robots.ieee.org/learn/types-of-robots/), [geometry/axes](https://robots.ieee.org/learn/types-of-robots/). Instead of having limited axes for movement. I wondered if the arm could be modular and move in any direction possible. That's how I came to the idea of having robotic modules, that can be versatile for functions.
References
----------
* [Cubelets: Modular Robot Cube Toys](http://hight3ch.com/cubelets-modular-robot-cube-toys/)

I found some projects that have done this in different ways. Many of them are educational toys for kids - meant to learn programming/ coding.
* [Mabot by bellrobot](https://www.bellrobot.com/mabot.html)
* [Project Bloks](https://www.kickstarter.com/projects/28168150/mabot-teach-kids-robotics-and-programming)
* [Cubroid Coding Blocks](http://codingblocks.cubroid.com/)
* [Sphero's Spark](https://www.sphero.com/sphero-sprk-plus)
* [Sphero's Spark](https://www.robospace.cc/tacobot-en/)
* [Tern by TUFTS](http://hci.cs.tufts.edu/tern/) programming with wooden Blocks

Some projects that do this in different ways:
[Mblocks](https://interestingengineering.com/m-blocks-robotic-cubes-that-can-build-themselves) and [Mblocks 2.0](https://www.slashgear.com/m-blocks-2-0-revealed-now-these-cube-robots-can-collaborate-30597942/): are self-assembly cubes

[Cubli](https://idsc.ethz.ch/research-dandrea/research-projects/archive/cubli.html) can balance on it's edge and corner

[Topobo by Tangible media, MIT](https://tangible.media.mit.edu/project/topobo/), has kinetic memory. It can record and playback physical motion.
I read about [self-reconfiguring robots](https://en.wikipedia.org/wiki/Self-reconfiguring_modular_robot), and discovered that while a cube can be combined with other cubes according to functions, the same cube cannot do multiple functions. Therefore, I want to design a cube that does multiple functions, that can be modified by chaning faces or edges or corners of the cube.

The modular approach that [Machines that make](http://mtm.cba.mit.edu/) project takes, so the application is up to the user is what I want to follow while making this robotic cube.
Maybe make a flying one? Like a ball drone?

2\. Project management
======================
This week I learned about version control, web development using SSGs, and sketched out an initial final project idea.
Git
---
I've used git a little for my Master's documentation. But till now, just used some basic commands like:
`git init` to initialise a new repo
`git status` to check what's happening with the current directory
`git add .` to add all changes from the working directory to the staging area
`git commit -m "action msg"` to commit changes from the staging area to the local repo
`git push` to push changes from the local repo to the remote repo
`git pull` to pull files from the remote repo to the local repo
I find this diagram very helpful to visualise the directory structure:

To learn more about branching, merging and other actions, I did a tutorial:[](http...)
Found my existing SSH key using `~/.ssh/id_rsa.pub`
Copied and added it to my FabCloud account.
Then I cloned the default repository to a local folder using:`git clone git@gitlab.fabcloud.org:academany/fabacademy/2020/labs/barcelona/students/mitalee-parikh.git`
Web Development
---------------
I recently learned how to make a website using HTML, CSS with a Bootstrap framework. To develop my webpage, I wanted to explore different Static Site Generators before fixing on one. So I started by setting up both Mkdocs and Jekyll. Hugo was another option I want to look into in the coming weeks.
Setting up jekyll
-----------------
I followed this [Jekyll tutorial](https://jekyll.org) by [Giraffe Academy](https://www.youtube.com/playlist?list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB). Before installing jekyll, I checked if I had these supporting things, and updated them:
1\. **Homebrew:** to easily install software packages
2\. **Ruby:** programming language that jekyll is written in
3\. **RubyGems:** package manager for ruby
4\. **Bundler:** to track and install gems and versions in a group, for jekyll themes
Homebrew, Ruby and Gem were all pre-installed.
So I checked versions using
`ruby -v` and `gem -v`
I installed bundler with `gem install jekyll bundler`, but got a permissions error msg.
So, I tried it with sudo like so: `sudo gem install jekyll bundler` and it worked.
And then to make sure checked version: `gem install jekyll bundler`
To view the changes on my local server `http://localhost:4000` I used `bundle exec jekyll serve` the first time and `jekyll serve` everytime after.
### Setting up Mkdocs
Setting up Mkdocs was a similar process. Intalling and upgrading package manager pip `pip install --upgrade pip` to install mkdocs: `pip install mkdocs`
To view the changes on my local server `http://127.0.0.1:8000` I used `mkdocs serve`
### Themes
I tried to clone and modify some jekyll themes I downloaded from [rubygems.org](https://rubygems.org/). While pushing it to gitlab, I wasn't sure what files to keep from the default fabcloud repo. So I replaced them all, but there was an issue with my pipeline. I think it has something to do with the config.yml file. While I figure that out, I'm using this default template to document my process.
### Useful links
* [Jekyll](http://jekyll.org) [tutorial by Giraffe Academy](https://www.youtube.com/playlist?list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB)
* [Markdown](https://en.wikipedia.org/wiki/Markdown) [basic tutorial](https://www.markdowntutorial.com/)
* [Mkdocs guidelines](https://www.mkdocs.org/)
### Misc Practices
Before pushing, I used `ncdu` to check sizes of files. To compress my images I installed and used [ImageMagick](https://imagemagick.org/index.php). I found it very efficient to quickly convert or compress images for the web, and also to make quick GIFs.
After some trial and error, i figureed these basic commands and settings I can use for my workflow:
To compress photos taken from my phone:
`convert IMGname.HEIC -resize 25% -quality 50% -density 72 jpg:extent=300kb IMGnewname.jpg`
To compress images taken as screenshot from my computer:
`convert Screenshot\ 2020-02-18\ at\ 10.54.27\ AM.png -resize 50% -quality 50% -density 72 jpg:extent=300kb newname.jpg`
To make a quick GIF:
`convert -resize 25% -delay 15 -loop 0 IMG_1380.HEIC IMG_1381.HEIC IMG_1382.HEIC IMG_1386.HEIC IMG_1387.HEIC IMG_1388.HEIC animation.gif`
And to check the existing properties of an image:
`magick identify -verbose focus.gif`
I also check individual file sizes by changing current directory in terminal and using `du -sh *|sort -n`