Principle and Practice and Project Management
Assigment objectives
- Git installation
- Building my personal website
- Upload my website to the class archive
- Do a sketchup of your final project
Summary
This week we had three task, to learn how the git application works, to build our website and upload to the class archive and to present a sketch of our final project I was able to install git without hurdles, then I decided to create own website based on the HTML5 template, and lastly I was able to present intended final project, it is about multiple unmanned vehicles that can communicate with each other
Git installation
To install git in the Linux ubuntu version you must use the apt-get repository
code:$sudo apt-get update
$sudo apt get install git
Then I configured the git
Code:$git --config user.name "My username"
$git --config user.email "My email"
After I went to my gitlab repository and created a new project
I downloaded I created a new project,To download I copied the link and in my terminal I used the git command to download
code: $git clone https://gitlab.fabcloud.org/samuel.rutunda/my-fab-academy-site.git
After I had to reconfigure the ssh First I had to check if there was an existing ssh
code:$cat ~/.ssh/id_rsa.pub
Since there was none I had to create it
code:$ssh-keygen -t rsa -C "$my_email@example.com"
I had to copy the ssh key to the clip bord using xclip since I did not have it I had to download it then copy the ssh code
code:$sudo apt-get install xclip
$xclip -sel clip < ~/.ssh/id_rsa.pub
After I returned to the website to copy ssh code to the website ssh
Designing my Website
To design my website I went to the HTML template and downloaded the html5 proton template Then I started editing it, I remove the unnecessary section To get inspired on the content of the fablab webiste I went to Rwandan Alumni of 2018 (Fred) and of 2019 (Danny) to check up on their work As I do have little experience with Html and CSS, I had to brush up and remember some basic stuff, google was of huge help, as if I would encounter a problem I would type the problem in google and get the answer, the details are down below I had to compress the image used in the website, to compress I used the compress command
$compress fablab_image.jpg -quality 50% converted_fablab_image.jpg
Problems Encountered
Problem 1
Problem 1
As I was create more folders and moving away from the CSS, Images and JS folders how to access these contents files
Solution
I create a test folder where i sould test simple concept As I am a bit fmiliar with Linux I knew that it was possible to use the ../ to access the file, therefore I tried the proble with a simple image file, the webpage I wanted must open the file, I place the image in the main directory and the html file in two folders after then I set the link of the image location to be at ../../image_location, and it worked
Problem 2
As I wanted to document the code I was writting I had to figure out what are the necessary code to have this beatifull code set up
The beatufiful font$
Uploading my content to the class archive
To upload my code, I had to first clone the gitlab repository
Code:$git clone "my_repository_site"
After I had to copy my html code into the git folder, I copied using the GUI
Then I had to check using git status what I copied
Code$git status
I then added them to the repository
Code:$git add *
Next step was to commit them
Code:$git commit -m "Initial commit"
Then I pushed to the code into the gitlab repository
Code:$git push origin master
Problem 3
In a rush to publish my new website I was surprised to find that the website did not change, so I try to commit different files that the one that were on gitlab, and when it failed I wanted to return to the original file
I first used:$git checkout
Then I resorted to use$git reset --hard HEAD~2
This made the problem worse, as I had to different version on my local and remote directory
To solve the problem I had to first create a new branch called temp then merge it with the new one
Code:$git branch temp$git checkout master$git merge temp
This fixed my git problem but it did not fix the problem of the website appearing, The mkdocs tempate was still appearing. To fix it I had to go back to the recitation lecture and I found that I had to change the .gitlab-ci.yml file
New .gitlab-ci.yml code:# This file is a template, and might need editing before it works on your project.
# Full project: https://gitlab.com/pages/plain-html
pages:
stage: deploy
script:
- mkdir .public
- cp -r * .public
- mv .public public
artifacts:
paths:
- public
only:
- master
Final project sketch up
sketch
Introduction
Automation is not a matter of if but a matter of when, Automation will play an important part of the 4th industrial revolution. However the key success of automation depends on how machine can interact with one another without any human intervention. My project consist at creating robots that can communicate with each other and share vital information, The robots include a humanoid robot, robotic cars, and drones(not sure)
Concept
Given the limited ressources of robots it is imperative that they share and collaborate together to solve various task, Same as human to achieve high efficient there must be a specialisation, e.g. Some robots can be mobile while others are fixed, some can have specific sensors and try to accomplish certain task while others who are not mission critical sit back and wait for those to share information with them
My project involves a robot that interacts with humans, receives instructions from them, the instructions are finding items and locations in an enclosed location, then the mobile robots(cars and drone) goes and tries to find the object. For example a person does not know where he lost his keys, or where his dog is located, by giving a command to the humanoid robots, which shares the command to the mobile robots, they go around looking for the specific item.The goal of this project is academic, as I am interested in the communication of the robots, particularly how to optimize their coordination, e.g. Looking at bees or ants. Originally, I wanted to focus on SWARM, but I realised it was much more constraint and very technical so I broadened my scope to make them communicate
Inspiration
This project was inspired by two source, the first is the advent of the smart phone, it is of my opinion that if smartphones did not have all these smooth application it would not have been as widely adopted as it is: 1)they can accomplish an multitude of tasks. 2) they have replaced a number of utilities. and 3? they have a wonderful and smooth user interface. Current smart devices, do not integrate very well with the user, their user interface is not seamless and if you want to have them you must purchase each item by item. We need a more integrated system, that can be purchased at once, and seamlessly operate with each other, they perform the most important task while letting the user relax and only use them when needed
The second reason of my project was when I saw a TED talk by vijay kumar, the video is down below, explaining the idea of SWARM, Iwas mesmerised by what robots collaboration can achieve. They got me thinking about our human capability, amongst the key to our success we have our strong collaboration and our ability to occupy various geographical location, deserts, forests, islands, and cold places. The idea was using swarms can we foster machine to machine collaboration, and help them spread through large territorial spaces