Principle and Practice and Project Management

Assigment objectives

  1. Git installation
  2. Building my personal website
  3. Upload my website to the class archive
  4. 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

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

GO ON TOP