### Systemd Service Files for Automatic Startup
Source: https://github.com/copterexpress/clover/blob/master/docs/en/jetson_nano.md
Provides links to example systemd service files for roscore and clover, which can be used to automatically start the nodes on boot.
```shell
# Example service file for roscore
# [Unit]
# Description=roscore
# After=network.target
#
# [Service]
# Type=simple
# ExecStart=/opt/ros/noetic/bin/roscore
# Restart=on-failure
#
# [Install]
# WantedBy=multi-user.target
# Example service file for clover
# [Unit]
# Description=Clover ROS Node
# After=roscore.service
#
# [Service]
# Type=simple
# ExecStart=/home/user/catkin_ws/devel/lib/clover/clover_node
# Restart=on-failure
#
# [Install]
# WantedBy=multi-user.target
```
--------------------------------
### Install PX4 Prerequisites
Source: https://github.com/copterexpress/clover/blob/master/docs/en/simulation_native.md
Installs the necessary prerequisites for building PX4 and its SITL environment using the provided Ubuntu setup script.
```bash
cd ~/catkin_ws/src/PX4-Autopilot/Tools/setup
sudo ./ubuntu.sh
```
--------------------------------
### Linux ZeroTier Installation
Source: https://github.com/copterexpress/clover/blob/master/docs/ru/zerotier_vpn.md
Installs the ZeroTier client on Linux systems using a curl command to download and execute the installation script.
```bash
curl -s https://install.zerotier.com | sudo bash
```
--------------------------------
### Install Geographiclib Datasets
Source: https://github.com/copterexpress/clover/blob/master/docs/en/jetson_nano.md
Downloads and installs the geographiclib datasets required by the mavros package.
```bash
curl https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh -o install_geographiclib_datasets.sh
chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh
```
--------------------------------
### Install Geographiclib Datasets
Source: https://github.com/copterexpress/clover/blob/master/docs/en/simulation_native.md
Installs the necessary geographiclib datasets required by the MAVROS package.
```bash
sudo /opt/ros/noetic/lib/mavros/install_geographiclib_datasets.sh
```
--------------------------------
### Clone and Install Calibration Application
Source: https://github.com/copterexpress/clover/blob/master/docs/ru/camera_calib.md
Clones the calibration web application from the GitHub repository and installs it using Python's setup tools. This prepares the environment for running the calibration server.
```bash
git clone https://github.com/tinderad/calibration_web_2.7.git
cd calibration_web_2.7.git
sudo python setup.py build
sudo python setup.py install
```
--------------------------------
### Install and Configure Monkey Web Server
Source: https://github.com/copterexpress/clover/blob/master/docs/en/simulation_native.md
Installs the Monkey web server from a .deb package, configures it to serve Clover's web tools, and sets up a systemd service to manage the server.
```bash
wget https://github.com/CopterExpress/clover_vm/raw/master/assets/packages/monkey_1.6.9-1_$(dpkg --print-architecture).deb -P /tmp
sudo dpkg -i /tmp/monkey_*.deb
sed "s/pi/$USER/g" ~/catkin_ws/src/clover/builder/assets/monkey | sudo tee /etc/monkey/sites/default
sudo sed -i 's/SymLink Off/SymLink On/' /etc/monkey/monkey.conf
sudo cp ~/catkin_ws/src/clover/builder/assets/monkey.service /etc/systemd/system/monkey.service
sudo systemctl enable monkey
sudo systemctl start monkey
```
--------------------------------
### ZeroTier Linux Installation
Source: https://github.com/copterexpress/clover/blob/master/docs/en/zerotier_vpn.md
Installs the ZeroTier One client on Linux systems using a curl command to download and execute the installation script.
```bash
curl -s https://install.zerotier.com | sudo bash
```
--------------------------------
### Install ROS Melodic Base Packages
Source: https://github.com/copterexpress/clover/blob/master/docs/en/jetson_nano.md
Installs the core ROS Melodic packages on the Jetson Nano. This includes adding the ROS repository keys and updating the package list.
```bash
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt update
sudo apt install ros-melodic-ros-base
```
--------------------------------
### Install ROS Dependencies
Source: https://github.com/copterexpress/clover/blob/master/docs/en/jetson_nano.md
Installs all required ROS dependencies for the cloned packages using rosdep.
```bash
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src -y
```
--------------------------------
### Install ROS Noetic and Dependencies
Source: https://github.com/copterexpress/clover/blob/master/docs/en/simulation_native.md
Installs ROS Noetic on Ubuntu 20.04, adds ROS setup to bashrc, and installs essential build tools and Python package manager.
```bash
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt install build-essential git python3-pip python3-rosdep
```
--------------------------------
### Create Catkin Workspace and Clone Repositories
Source: https://github.com/copterexpress/clover/blob/master/docs/en/simulation_native.md
Sets up a Catkin workspace, builds it, adds the workspace setup to bashrc, and clones the Clover, ros_led, and mav_comm repositories.
```bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
cd ~/catkin_ws/src
git clone --depth 1 https://github.com/CopterExpress/clover
git clone --depth 1 https://github.com/CopterExpress/ros_led
git clone --depth 1 https://github.com/ethz-asl/mav_comm
```
--------------------------------
### Install ROS Dependencies with rosdep
Source: https://github.com/copterexpress/clover/blob/master/docs/en/simulation_native.md
Initializes rosdep, updates its sources, and installs all dependencies for the cloned ROS packages within the workspace.
```bash
cd ~/catkin_ws
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src -y
```
--------------------------------
### CopterExpress Clover Flight Sequence Example
Source: https://github.com/copterexpress/clover/blob/master/docs/ru/auto_setup.md
An example Python code snippet demonstrating a basic autonomous flight sequence for the Clover drone, including takeoff, navigation to a point, and landing. It highlights the use of `navigate` and `rospy.sleep` for sequential command execution.
```python
navigate(x=0, y=0, z=1.5, speed=0.5, frame_id='body', auto_arm=True)
rospy.sleep(3)
navigate(x=1, y=1, z=1.5, speed=1, frame_id='aruco_map')
rospy.sleep(3)
land()
```
--------------------------------
### Install ROS Melodic Desktop-Full
Source: https://github.com/copterexpress/clover/blob/master/docs/en/ros-install.md
Installs the full ROS Melodic desktop environment, which includes all core ROS components, development tools (like rqt, rviz), and support for the simulator (SITL).
```bash
sudo apt-get install ros-melodic-desktop-full
```
--------------------------------
### Geographiclib Datasets Installation
Source: https://github.com/copterexpress/clover/blob/master/docs/ru/simulation_native.md
Installs the necessary geographiclib datasets required by the mavros package for accurate navigation.
```bash
sudo /opt/ros/noetic/lib/mavros/install_geographiclib_datasets.sh
```
--------------------------------
### Install ROS Melodic Desktop
Source: https://github.com/copterexpress/clover/blob/master/docs/en/ros-install.md
Installs the ROS Melodic desktop environment, suitable for users who only need development tools like rqt and rviz, without simulator support.
```bash
sudo apt-get install ros-melodic-desktop
```
--------------------------------
### Install dnsmasq-base and run
Source: https://github.com/copterexpress/clover/blob/master/docs/en/network.md
Installs the dnsmasq-base package and provides an example command for running dnsmasq-base as a DHCP server with specific network configurations.
```bash
sudo apt install dnsmasq-base
```
```bash
# Calling dnsmasq-base
sudo dnsmasq --interface=wlan0 --address=/clover/coex/192.168.11.1 --no-daemon --dhcp-range=192.168.11.100,192.168.11.200,12h --no-hosts --filterwin2k --bogus-priv --domain-needed --quiet-dhcp6 --log-queries
# More about dnsmasq-base
dnsmasq --help
# or
man dnsmasq
```
--------------------------------
### Initial Raspberry Pi Setup
Source: https://github.com/copterexpress/clover/blob/master/docs/ru/auto_setup.md
Steps for setting up the Raspberry Pi, including connecting power, accessing the web interface, and SSH connection. It also mentions network configuration and file editing using nano.
```bash
sudo reboot
```
```bash
sudo systemctl restart clover
```
```bash
rosrun clover selfcheck.py
```
```bash
Ctrl+C
```
```bash
python3 myprogram.py
```
```bash
journalctl -u clover
```
```bash
sudo nano /etc/sudoers
```
--------------------------------
### Make Autostart Script Executable
Source: https://github.com/copterexpress/clover/blob/master/docs/ru/duocam_setup.md
Grants execute permissions to the `duocam_autostart.sh` script, allowing it to be run by the system.
```bash
chmod a+x duocam_autostart.sh
```
--------------------------------
### Server Setup and Launch
Source: https://github.com/copterexpress/clover/blob/master/docs/ru/bigchallenges.md
Instructions for cloning the server repository, installing Python dependencies, and running the server. It also mentions configuration files for flight altitudes and allowed IP addresses.
```bash
git clone https://github.com/Tennessium/HUEX
cd HUEX/server
pip install -r requirements.txt
python manage.py runserver 0.0.0.0:8000
```
--------------------------------
### Install Additional Python Packages for PX4
Source: https://github.com/copterexpress/clover/blob/master/docs/en/simulation_native.md
Installs the 'toml' Python package required by PX4.
```bash
pip3 install --user toml
```
--------------------------------
### Install Python Dependencies
Source: https://github.com/copterexpress/clover/blob/master/docs/en/simulation_native.md
Installs Python packages required by the Clover project using pip3.
```bash
sudo /usr/bin/python3 -m pip install -r ~/catkin_ws/src/clover/clover/requirements.txt
```
--------------------------------
### ROS Workspace Setup and Clover Build
Source: https://github.com/copterexpress/clover/blob/master/docs/ru/sitl.md
Initializes a ROS workspace, clones the Clover repository, installs dependencies, and builds the workspace.
```bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
./devel/setup.bash
cd src
git clone https://github.com/copterexpress/clover
cd ..
rosdep install -y --from-paths src --ignore-src -r
catkin_make
```
--------------------------------
### Install pip for Python 2
Source: https://github.com/copterexpress/clover/blob/master/docs/en/jetson_nano.md
Installs the pip package installer for Python 2, which is required for some ROS dependencies. This involves downloading the get-pip.py script and executing it with Python 2.
```bash
sudo apt install curl
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python ./get-pip.py
```
--------------------------------
### Set Up Clover Workspace Environment
Source: https://github.com/copterexpress/clover/blob/master/docs/en/jetson_nano.md
Sources the setup.bash file to add the workspace's build artifacts to the current shell environment.
```bash
cd ~/catkin_ws
source devel/setup.bash
```
--------------------------------
### Preparing for Flight
Source: https://github.com/copterexpress/clover/blob/master/docs/en/assemble_4.md
Final steps before flight, including component setup and propeller installation. Emphasizes waiting until setup is complete before mounting propellers.
```assembly
Perform the quadrotor components setup according to [the "Configuration" section](setup.md).
Warning: Be sure to not mount the propellers until the setup is complete. Do it only when you are ready to fly.
Attach the propellers according to their rotation direction. The battery should be disconnected during propeller installation.
```
--------------------------------
### Install OpenCV Development Libraries
Source: https://github.com/copterexpress/clover/blob/master/docs/en/jetson_nano.md
Installs a specific version of the OpenCV development libraries (3.2.0) to avoid build failures on Jetson Nano.
```bash
sudo apt install libopencv-dev=3.2.0+dfsg-4ubuntu0.1
```
--------------------------------
### Enable v4l2loopback Module
Source: https://github.com/copterexpress/clover/blob/master/docs/ru/duocam_setup.md
Ensures the v4l2loopback kernel module is loaded to create virtual video devices.
```bash
echo "v4l2loopback" | sudo tee -a /etc/modules
```
--------------------------------
### Install gst-rtsp-launch
Source: https://github.com/copterexpress/clover/blob/master/docs/ru/duocam_setup.md
Installs the necessary gst-rtsp-launch utility on Debian-based systems.
```shell
sudo apt install gst-rtsp-launch -y
```
--------------------------------
### ZeroTier One Network Connection Steps
Source: https://github.com/copterexpress/clover/blob/master/docs/en/zerotier_vpn.md
Steps to connect to a ZeroTier network using the ZeroTier One application. This involves running the app, joining a network, and entering the network ID.
```APIDOC
ZeroTier One App:
Run ZeroTier One app.
Click on the ZeroTier One icon in the taskbar.
Click 'Join Network...'.
Enter Network ID in the 'Enter Network ID' field.
```
--------------------------------
### Installing Raspberry Pi
Source: https://github.com/copterexpress/clover/blob/master/docs/en/assemble_4.md
Guide for installing the Raspberry Pi, including inserting the microSD card, attaching it with standoffs, and routing BEC wires.
```assembly
1. Insert your microSD card into the Raspberry Pi
2. Attach the Raspberry Pi using four standoffs.
3. Route the BEC wires through the channel in the top carbon deck.
4. Connect the BEC outputs according to the following image.
```
--------------------------------
### Catkin Workspace Creation and Package Cloning
Source: https://github.com/copterexpress/clover/blob/master/docs/ru/simulation_native.md
Creates a new Catkin workspace, builds it, sources its setup file, and clones the required Clover, ros_led, mav_comm, and PX4-Autopilot repositories.
```bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
cd ~/catkin_ws/src
git clone --depth 1 https://github.com/CopterExpress/clover
git clone --depth 1 https://github.com/CopterExpress/ros_led
git clone --depth 1 https://github.com/ethz-asl/mav_comm
```
--------------------------------
### PX4 Dependency Installation Script
Source: https://github.com/copterexpress/clover/blob/master/docs/ru/simulation_native.md
Executes the PX4-Autopilot's setup script to install all necessary dependencies for building PX4 and its Software-in-the-Loop (SITL) environment. The --no-nuttx flag can be used to skip the ARM toolchain installation if not needed.
```bash
cd ~/catkin_ws/src/PX4-Autopilot/Tools/setup
sudo ./ubuntu.sh
# Optional: sudo ./ubuntu.sh --no-nuttx
```
--------------------------------
### ROS LED Library Setup
Source: https://github.com/copterexpress/clover/blob/master/docs/ru/bigchallenges.md
Steps to install and configure the ROS package for an LED strip. This includes cloning the library, modifying the LED count, making the package, and enabling/starting the systemd service.
```bash
cd ~/catkin_ws/src
git clone https://github.com/bart02/ros-led-lib.git led
cd led
# Modify LED_COUNT in ledsub.py
chmod +x ledsub.py
cd ~/catkin_ws
catkin_make
sudo systemctl enable /home/pi/catkin_ws/src/led/led.service
sudo systemctl start led
```
--------------------------------
### Installation of the Battery Compartment
Source: https://github.com/copterexpress/clover/blob/master/docs/en/assemble_2.md
Guide for installing the battery compartment, including attaching it to the frame and installing the battery.
```instruction
Requires the following components:
* M3x12 screws (4 pcs)
* M3 nuts (4 pcs)
* Additional frame (1 pc)
* Battery compartment (1 pc)
1. Attach the battery compartment on top of the additional frame with M3x12 screws and nuts.
2. Attach the top additional frame to the legs with M3x8 screws.
3. Install the battery into the battery compartment.
```
--------------------------------
### Install libseek-thermal Driver
Source: https://github.com/copterexpress/clover/blob/master/docs/ru/duocam_setup.md
Steps to clone the libseek-thermal repository, build, and install the driver for the HT-201 thermal camera.
```bash
git clone https://github.com/OpenThermal/libseek-thermal.git
cd libseek-thermal
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig
```
--------------------------------
### Install Propellers
Source: https://github.com/copterexpress/clover/blob/master/docs/en/assemble_4_2.md
Installs propellers in accordance with the directional diagram of the motors.
```assembly
Install the propellers in accordance with the [directional diagram of the motors](#prop_rotation).
```
--------------------------------
### Clover 4 Motor Installation Guide
Source: https://github.com/copterexpress/clover/blob/master/docs/en/assemble_4_2_ws.md
Instructions for installing motors on the Clover 4 drone, emphasizing the correct rotation scheme and the importance of using M3x5 screws to prevent short circuits.
```markdown
## Installing of motors
1. When installing motors, pay attention to the rotation scheme of the motors. The rotation mark on the motors must match the rotation scheme.
2. Mount the motor on the corresponding holes in the beam using **M3x5 screws**.