### 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**.
> **Caution** Make sure that the motors are secured with M3x5 screws, otherwise a short circuit between the windings may occur. ``` -------------------------------- ### DuoCam Configuration File Example Source: https://github.com/copterexpress/clover/blob/master/docs/ru/duocam.md An example of the `camera.yaml` configuration file for DuoCam, detailing various settings for visual and thermal camera output, image processing, and file saving. ```yaml show_visual: yes show_thermal: yes flip_thermal: no apply_sobel: enable: yes sobel_scale: 3 sobel_delta: 0 apply_canny: no draw_temp: yes output_video: device: /dev/video1 width: 1280 height: 720 bytes_per_pixel: 3 framerate: 20 path_to_save_photos: /media/usb0/ path_to_save_videos: /media/usb0/ encode_video: width: 720 height: 480 framerate: 10 thermal_camera_models: seek_thermal_pro: enable: no sensor_resolution: width: 320 height: 240 overlay_thermal_on_visual: # These values are for GitUp3 x_start: 282 y_start: 102 thermal_region_width: 600 thermal_region_height: 400 transparency: 0.3 # These values for Raspicam # x_start: 425 # y_start: 155 # thermal_region_width: 900 # thermal_region_height: 600 final_frame_cropping: enable: yes x_start: 0 y_start: 0 width: 1160 height: 610 seek_thermal: enable: yes sensor_resolution: width: 206 height: 156 overlay_thermal_on_visual: x_start: 282 y_start: 102 thermal_region_width: 600 thermal_region_height: 400 transparency: 0.3 final_frame_cropping: enable: yes x_start: 0 y_start: 0 width: 1160 height: 610 # Colormaps are taken from: https://docs.opencv.org/2.4/modules/contrib/doc/facerec/colormaps.html # COLORMAP_AUTUMN = 0, # COLORMAP_BONE = 1, # COLORMAP_JET = 2, # COLORMAP_WINTER = 3, # COLORMAP_RAINBOW = 4, # COLORMAP_OCEAN = 5, # COLORMAP_SUMMER = 6, # COLORMAP_SPRING = 7, # COLORMAP_COOL = 8, # COLORMAP_HSV = 9, # COLORMAP_PINK = 10, # COLORMAP_HOT = 11 apply_colormap: enable: yes colormap: 4 ``` -------------------------------- ### Install Additional ROS Packages Source: https://github.com/copterexpress/clover/blob/master/docs/en/ros-install.md Installs any specific ROS Melodic package by replacing 'PACKAGE' with the desired package name. This allows for flexible installation of additional ROS tools and libraries. ```bash sudo apt-get install ros-melodic-PACKAGE ``` -------------------------------- ### Additional Python Package Installation Source: https://github.com/copterexpress/clover/blob/master/docs/ru/simulation_native.md Installs the 'toml' Python package, which is required by PX4. ```bash pip3 install --user toml ``` -------------------------------- ### Install Calibration Script (Linux) Source: https://github.com/copterexpress/clover/blob/master/docs/en/camera_calib.md Installs the clever_cam_calibration script after cloning the repository on a Linux system. ```bash cd clever_cam_calibration sudo python setup.py build sudo python setup.py install ``` -------------------------------- ### Setting up Clover Package Environment Source: https://github.com/copterexpress/clover/blob/master/docs/ru/sitl.md Sources the ROS setup file to make the Clover package available in the current terminal session. ```bash source ~/catkin_ws/devel/setup.bash ``` -------------------------------- ### Install Battery Strap and Battery Source: https://github.com/copterexpress/clover/blob/master/docs/en/assemble_4_2.md Steps for installing the battery strap and the main flight battery. ```assembly Install the battery strap and connect the flight controller to the Raspberry Pi using a USB cable. Install the battery. ``` -------------------------------- ### Setting up the Positioning System Source: https://github.com/copterexpress/clover/blob/master/docs/ru/nav-beacon.md This guide provides instructions for setting up the complete positioning system. It may cover hardware installation, software configuration, and calibration procedures for accurate indoor navigation. ```APIDOC docs/ru/navigation_system_setup.md: - Step-by-step guide for system setup. - Hardware placement and connection instructions. - Software configuration and calibration steps. ``` -------------------------------- ### PX4-Autopilot Repository Setup Source: https://github.com/copterexpress/clover/blob/master/docs/ru/simulation_native.md Clones the PX4-Autopilot repository and creates symbolic links for its sitl_gazebo and mavlink submodules into the Catkin workspace's src directory. ```bash git clone --recursive --depth 1 --branch v1.12.3 https://github.com/PX4/PX4-Autopilot.git ~/PX4-Autopilot ln -s ~/PX4-Autopilot ~/catkin_ws/src/ ln -s ~/PX4-Autopilot/Tools/sitl_gazebo ~/catkin_ws/src/ ln -s ~/PX4-Autopilot/mavlink ~/catkin_ws/src/ ``` -------------------------------- ### Python Dependency Installation for Clover Source: https://github.com/copterexpress/clover/blob/master/docs/ru/simulation_native.md Installs Python-specific dependencies required by the Clover package using pip. ```bash sudo /usr/bin/python3 -m pip install -r ~/catkin_ws/src/clover/clover/requirements.txt ``` -------------------------------- ### Thermal Camera Autostart Script Source: https://github.com/copterexpress/clover/blob/master/docs/ru/duocam_setup.md A shell script to automatically start the thermal camera viewer with specified parameters (camera type, colormap, rotation, output device) upon system startup. ```bash seek_viewer --camtype=seekpro --colormap=1 --rotate=0 --mode=v4l2 --output=/dev/video5 ``` -------------------------------- ### Install Calibration Script (Windows) Source: https://github.com/copterexpress/clover/blob/master/docs/en/camera_calib.md Installs the clever_cam_calibration script after downloading and unzipping the archive on a Windows system. ```bash cd path\to\archive\clever_cam_calibration\ python setup.py build python setup.py install ``` -------------------------------- ### Basic Linux Commands for Clover Source: https://github.com/copterexpress/clover/blob/master/docs/ru/auto_setup.md Essential Linux commands for navigating the file system, managing files and directories, and interacting with the Clover system. Includes commands for listing files, changing directories, editing files, removing files/folders, creating directories, and rebooting. ```bash ls ``` ```bash cd catkin_ws/src/clover/clover/launch/ ``` ```bash cd ``` ```bash nano file.py ``` ```bash nano ~/catkin_ws/src/clover/clover/launch/clover.launch ``` ```bash Ctrl+X; Y; Enter ``` ```bash rm -rf name ``` ```bash mkdir myfolder ``` -------------------------------- ### Copter Project Installation and Service Management Source: https://github.com/copterexpress/clover/blob/master/docs/ru/bigchallenges.md Instructions for cloning the copter project, installing Python dependencies, and managing the main script using systemd services. This ensures the script runs automatically on system startup. ```bash git clone https://github.com/Tennessium/HUEX cd HUEX/clever pip install -r requirements.txt # Configure server IP in copter/consts.py sudo systemctl enable /home/pi/HUEX/clever/setup/taxi.service sudo systemctl start taxi.service ```