diff --git a/.gitbook/assets/image (1) (1).png b/.gitbook/assets/image (1) (1).png
new file mode 100644
index 0000000..d89a20c
Binary files /dev/null and b/.gitbook/assets/image (1) (1).png differ
diff --git a/.gitbook/assets/image (1).png b/.gitbook/assets/image (1).png
index d89a20c..5e278e0 100644
Binary files a/.gitbook/assets/image (1).png and b/.gitbook/assets/image (1).png differ
diff --git a/.gitbook/assets/image.png b/.gitbook/assets/image.png
index 5e278e0..e953489 100644
Binary files a/.gitbook/assets/image.png and b/.gitbook/assets/image.png differ
diff --git a/README.md b/README.md
index 27a71f1..27b84ba 100644
--- a/README.md
+++ b/README.md
@@ -22,8 +22,8 @@ Here are the articles in this book:
[estimation](estimation/)
{% endcontent-ref %}
-{% content-ref url="computer-vision.md" %}
-[computer-vision.md](computer-vision.md)
+{% content-ref url="computer-vision/" %}
+[computer-vision](computer-vision/)
{% endcontent-ref %}
{% content-ref url="machine-learning/" %}
diff --git a/SUMMARY.md b/SUMMARY.md
index 4f22b78..e63cb43 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -11,6 +11,9 @@
* [PX4 Setup](tutorials/workspace-setup/px4-setup/README.md)
* [PX4 Toolchain Setup](tutorials/workspace-setup/px4-setup/px4-toolchain-setup.md)
* [Ardupilot Setup](tutorials/workspace-setup/ardupilot-setup.md)
+ * [Installing Ground Control Station](tutorials/workspace-setup/installing-ground-control-station/README.md)
+ * [QGroundControl](tutorials/workspace-setup/installing-ground-control-station/qgroundcontrol.md)
+ * [Mission Planner](tutorials/workspace-setup/installing-ground-control-station/mission-planner.md)
* [How to Write a ROS Package](tutorials/how-to-write-a-ros-package/README.md)
* [ROS Package](tutorials/how-to-write-a-ros-package/ros-package.md)
* [Node Handles, Parameters, and Topics](tutorials/how-to-write-a-ros-package/node-handles-parameters-and-topics.md)
@@ -27,15 +30,12 @@
* [Odroid XU4 Setup](tutorials/miscellaneous/odroid-xu4-setup.md)
* [Simulation using Offboard Control](tutorials/miscellaneous/simulation-using-offboard-control/README.md)
* [Enable Offboard Mode in PX4](tutorials/miscellaneous/simulation-using-offboard-control/enable-offboard-mode-in-px4.md)
- * [Camera Calibration](tutorials/miscellaneous/camera-calibration.md)
* [Writing a UDev rule](tutorials/miscellaneous/writing-udev-rule.md)
* [Sensor fusion](tutorials/miscellaneous/sensor-fusion.md)
- * [ArUco ROS](tutorials/miscellaneous/using-aruco\_ros.md)
- * [TF2](tutorials/miscellaneous/tf2.md)
* [Reference wiki links](tutorials/dump1.md)
* [Concepts](concepts/README.md)
* [Quaternions](concepts/quaternions/README.md)
- * [theory](concepts/quaternions/dump2.md)
+ * [Theory](concepts/quaternions/dump2.md)
* [Kalman Filters](concepts/kalman-filters.md)
* [Rotations](concepts/rotations.md)
* [Path Planning](concepts/path-planning/README.md)
@@ -76,7 +76,9 @@
* [DIYing a VI-Sensor](estimation/vio/diying-a-vi-sensor.md)
* [Setup with VICON](estimation/setup-with-vicon.md)
* [Odometry from pose data](estimation/odometry-from-pose-data.md)
-* [Computer Vision](computer-vision.md)
+* [Computer Vision](computer-vision/README.md)
+ * [Camera Calibration](computer-vision/camera-calibration.md)
+ * [ArUco ROS](computer-vision/using-aruco\_ros.md)
* [Machine Learning](machine-learning/README.md)
* [Datasets](machine-learning/datasets.md)
* [Hardware Integration](hardware-integration/README.md)
diff --git a/computer-vision.md b/computer-vision/README.md
similarity index 53%
rename from computer-vision.md
rename to computer-vision/README.md
index 967a768..a1fd24b 100644
--- a/computer-vision.md
+++ b/computer-vision/README.md
@@ -1,7 +1,11 @@
+---
+description: A brief overview of hardware and various algorithms employed.
+---
+
# Computer Vision
{% hint style="info" %}
-Keep checking for updates!
+
{% endhint %}
Here are the articles in this section:
diff --git a/tutorials/miscellaneous/camera-calibration.md b/computer-vision/camera-calibration.md
similarity index 80%
rename from tutorials/miscellaneous/camera-calibration.md
rename to computer-vision/camera-calibration.md
index 3e4813d..7bf07a3 100644
--- a/tutorials/miscellaneous/camera-calibration.md
+++ b/computer-vision/camera-calibration.md
@@ -1,14 +1,10 @@
----
-description: How to calibrate the camera.
----
-
# Camera Calibration
The standard camera model used in OpenCV and ROS is referred to as the Pinhole model. You can read more about it here:
{% embed url="https://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html" %}
-[ ](https://gajena.gitbook.io/aerial-robotics/camera\_calibration)The camera can be calibrated by one of the three following ways:
+The camera can be calibrated by one of the three following ways:
### 1.Kalibr
diff --git a/tutorials/miscellaneous/using-aruco_ros.md b/computer-vision/using-aruco_ros.md
similarity index 100%
rename from tutorials/miscellaneous/using-aruco_ros.md
rename to computer-vision/using-aruco_ros.md
diff --git a/tutorials/how-to-write-a-ros-package/transformations.md b/tutorials/how-to-write-a-ros-package/transformations.md
index 2ae0db9..5606b53 100644
--- a/tutorials/how-to-write-a-ros-package/transformations.md
+++ b/tutorials/how-to-write-a-ros-package/transformations.md
@@ -12,5 +12,56 @@ Further details on the transformation notation, frame names and conventions can
{% embed url="https://github.com/ethz-asl/mav_tools/wiki/Coordinate-Systems" %}
+## TF2
+### tf-remapping
+
+Here,
+
+* old: contains the name of tf that needs to be remapped
+* new: new name of tf
+
+```markup
+
+
+
+
+
+ [{old: /imu, new: /base_link}]
+
+
+
+
+
+
+
+
+
+```
+
+The topic subscribed to is:
+
+**/tf\_old** (tf/tfMessage) -- Old transform tree. This is usually published by remapping playback of a bag file. You may need to set use\_sim\_time as true for the bag file transforms to be accepted.
+
+The topic published is:
+
+**/tf** (tf/tfMessage) -- Current transform tree. This is the normal /tf topic.
+
+### publish-static-transforms
+
+static\_transform\_publisher x y z yaw pitch roll frame\_id child\_frame\_id period\_in\_ms
+
+> Publish a static coordinate transform to tf using an x/y/z offset in meters and yaw/pitch/roll in radians. (yaw is rotation about Z, pitch is rotation about Y, and roll is rotation about X). The period, in milliseconds, specifies how often to send a transform. 100ms (10hz) is a good value.
+
+static\_transform\_publisher x y z qx qy qz qw frame\_id child\_frame\_id period\_in\_ms
+
+> Publish a static coordinate transform to tf using an x/y/z offset in meters and quaternion. The period, in milliseconds, specifies how often to send a transform. 100ms (10hz) is a good value.
+
+static\_transform\_publisher is designed both as a command-line tool for manual use, as well as for use within roslaunch files for setting static transforms. For example:
+
+```markup
+
+
+
+```
diff --git a/tutorials/miscellaneous/README.md b/tutorials/miscellaneous/README.md
index 4c87c49..df98f32 100644
--- a/tutorials/miscellaneous/README.md
+++ b/tutorials/miscellaneous/README.md
@@ -14,10 +14,6 @@ Articles in this section:
[simulation-using-offboard-control](simulation-using-offboard-control/)
{% endcontent-ref %}
-{% content-ref url="camera-calibration.md" %}
-[camera-calibration.md](camera-calibration.md)
-{% endcontent-ref %}
-
{% content-ref url="writing-udev-rule.md" %}
[writing-udev-rule.md](writing-udev-rule.md)
{% endcontent-ref %}
@@ -25,11 +21,3 @@ Articles in this section:
{% content-ref url="sensor-fusion.md" %}
[sensor-fusion.md](sensor-fusion.md)
{% endcontent-ref %}
-
-{% content-ref url="using-aruco_ros.md" %}
-[using-aruco\_ros.md](using-aruco\_ros.md)
-{% endcontent-ref %}
-
-{% content-ref url="tf2.md" %}
-[tf2.md](tf2.md)
-{% endcontent-ref %}
diff --git a/tutorials/miscellaneous/tf2.md b/tutorials/miscellaneous/tf2.md
deleted file mode 100644
index 9de97eb..0000000
--- a/tutorials/miscellaneous/tf2.md
+++ /dev/null
@@ -1,56 +0,0 @@
----
-description: Some sample code for using the TF2 library.
----
-
-# TF2
-
-## tf-remapping
-
-Here,
-
-* old: contains the name of tf that needs to be remapped
-* new: new name of tf
-
-```markup
-
-
-
-
-
- [{old: /imu, new: /base_link}]
-
-
-
-
-
-
-
-
-
-```
-
-The topic subscribed to is:
-
-**/tf\_old** (tf/tfMessage) -- Old transform tree. This is usually published by remapping playback of a bag file. You may need to set use\_sim\_time as true for the bag file transforms to be accepted.
-
-The topic published is:
-
-**/tf** (tf/tfMessage) -- Current transform tree. This is the normal /tf topic.
-
-## publish-static-transforms
-
-static\_transform\_publisher x y z yaw pitch roll frame\_id child\_frame\_id period\_in\_ms
-
-> Publish a static coordinate transform to tf using an x/y/z offset in meters and yaw/pitch/roll in radians. (yaw is rotation about Z, pitch is rotation about Y, and roll is rotation about X). The period, in milliseconds, specifies how often to send a transform. 100ms (10hz) is a good value.
-
-static\_transform\_publisher x y z qx qy qz qw frame\_id child\_frame\_id period\_in\_ms
-
-> Publish a static coordinate transform to tf using an x/y/z offset in meters and quaternion. The period, in milliseconds, specifies how often to send a transform. 100ms (10hz) is a good value.
-
-static\_transform\_publisher is designed both as a command-line tool for manual use, as well as for use within roslaunch files for setting static transforms. For example:
-
-```markup
-
-
-
-```
diff --git a/tutorials/workspace-setup/installing-ground-control-station/README.md b/tutorials/workspace-setup/installing-ground-control-station/README.md
new file mode 100644
index 0000000..3fc5f36
--- /dev/null
+++ b/tutorials/workspace-setup/installing-ground-control-station/README.md
@@ -0,0 +1,6 @@
+---
+description: Your Sky's Commander!"
+---
+
+# Installing Ground Control Station
+
diff --git a/tutorials/workspace-setup/installing-ground-control-station/mission-planner.md b/tutorials/workspace-setup/installing-ground-control-station/mission-planner.md
new file mode 100644
index 0000000..46052fa
--- /dev/null
+++ b/tutorials/workspace-setup/installing-ground-control-station/mission-planner.md
@@ -0,0 +1,41 @@
+# Mission Planner
+
+## For Window's peeps
+
+The following instructions show how to install _Mission Planner_ on Windows. These instructions will be suitable for most users
+
+1. Download the [latest Mission Planner installer from here](https://firmware.ardupilot.org/Tools/MissionPlanner/MissionPlanner-latest.msi)
+2. Double click on the downloaded **.msi** file to run the installer
+3. Follow the instructions to complete the setup process. The installation utility will automatically install any necessary software drivers. If you receive a DirectX installation error, please update your DirectX plug-in from the [Windows Download Center](https://www.microsoft.com/en-us/download/windows.aspx).
+4. If you receive a warning stating Window's cant verify the publisher of the driver, select **Install this driver software anyway** to continue.
+
+{% hint style="info" %}
+Mission Planner is normally installed in the **C:\Program Files (x86)\Mission Planner** folder.
+
+An icon to open the _Mission Planner_ is created according to your instructions during the installation.
+{% endhint %}
+
+## For Linux's peeps
+
+It is possible to run most Windows based programs on many Linux Distributions using MONO. Mission Planner does run under MONO but will have occasional issues and/or crashes.
+
+1. Download and install the latest version of MONO from [here](https://www.mono-project.com/download/stable/).
+2. Download Mission Planner as a zip file from [here](https://firmware.ardupilot.org/Tools/MissionPlanner/MissionPlanner-latest.zip) and unzip to a directory.
+3. Change to that directory and execute:
+
+ ```bash
+ mono MissionPlanner.exe
+ ```
+
+Boom! You're all ready to roll with MissionPlanner!
+
+\
+
+
+\
+
+
+\
+
+
+\
diff --git a/tutorials/workspace-setup/installing-ground-control-station/qgroundcontrol.md b/tutorials/workspace-setup/installing-ground-control-station/qgroundcontrol.md
new file mode 100644
index 0000000..01fe6ce
--- /dev/null
+++ b/tutorials/workspace-setup/installing-ground-control-station/qgroundcontrol.md
@@ -0,0 +1,52 @@
+# QGroundControl
+
+## For Window's peeps
+
+_QGroundControl_ can be installed on 64 bit versions of Windows:
+
+1. Download [QGroundControl-installer.exe](https://d176tv9ibo4jno.cloudfront.net/latest/QGroundControl-installer.exe).
+2. Double click the executable to launch the installer.
+
+{% hint style="warning" %}
+The Windows installer creates 3 shortcuts: **QGroundControl**, **GPU Compatibility Mode**, **GPU Safe Mode**. Use the first shortcut unless you experience startup or video rendering issues
+{% endhint %}
+
+## For Linux's peeps
+
+_QGroundControl_ can be installed/run on Ubuntu LTS 20.04 (and later).
+
+Ubuntu comes with a serial modem manager that interferes with any robotics related use of a serial port (or USB serial). Before installing _QGroundControl_ you should remove the modem manager and grant yourself permissions to access the serial port. You also need to install _GStreamer_ in order to support video streaming.
+
+1. On the command prompt enter:
+
+ ```bash
+ sudo usermod -a -G dialout $USER
+ sudo apt-get remove modemmanager -y
+ sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y
+ sudo apt install libqt5gui5 -y
+ sudo apt install libfuse2 -y
+ ```
+2. Logout and login again to enable the change to user permissions.
+
+ To install _QGroundControl_:
+
+1. Download [QGroundControl.AppImage](https://d176tv9ibo4jno.cloudfront.net/latest/QGroundControl.AppImage).
+2. Install (and run) using the terminal commands:\
+
+
+ ```bash
+ chmod +x ./QGroundControl.AppImage
+ ./QGroundControl.AppImage (or double click)
+
+ ```
+
+\
+Boom! You're all ready to roll with QGroundControl!
+
+\
+
+
+\
+
+
+\
diff --git a/tutorials/workspace-setup/installing-ubuntu.md b/tutorials/workspace-setup/installing-ubuntu.md
index cd0edb2..a0fa5b7 100644
--- a/tutorials/workspace-setup/installing-ubuntu.md
+++ b/tutorials/workspace-setup/installing-ubuntu.md
@@ -36,7 +36,7 @@ Rufus Official Site for downloading. Rufus helps you burn ISO on your drives
Install Rufus, and upon starting the application should look like:
-
+
Insert the external flash drive, Rufus would automatically detect it as _Device._\
Under _Boot Selection_ choose the ISO file downloaded above.\
@@ -50,7 +50,7 @@ Reboot your system, and while it turns on, before your laptop's brand's icon sho
Repeatedly press the key (Keys to be pressed vary a lot, usually it is`F2`, confirm from ) until the BIOS Menu shows up, something like this:
-
+
Turn off `UEFI Secure Boot` and `Legacy Boot` (if available) settings.\
Now in the _Boot Device Select Menu_ change the `Boot Order` to USB first.\