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.\