Compare commits
2 Commits
take_off_s
...
dec-depth
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fbc9c22cb3 | ||
|
|
32da94aeae |
@@ -1,6 +1,6 @@
|
||||
# clover🍀: create autonomous drones easily
|
||||
|
||||
<img src="docs/assets/clover42-main.png" align="right" width="400px" alt="COEX Clover Drone">
|
||||
<img src="docs/assets/clever4-front-white.png" align="right" width="400px" alt="COEX Clover Drone">
|
||||
|
||||
Clover is an open source [ROS](https://www.ros.org)-based framework, providing user-friendly tools to control [PX4](https://px4.io)-powered drones. Clover is available as a ROS package, but is shipped mainly as a preconfigured image for Raspberry Pi. Once you've installed Raspberry Pi on your drone and flashed the image to its microSD card, taking the drone up in the air is a matter of minutes.
|
||||
|
||||
|
||||
@@ -8,8 +8,6 @@ p = cv2.aruco.DetectorParameters_create()
|
||||
|
||||
gen = ParameterGenerator()
|
||||
|
||||
gen.add("enabled", bool_t, 0, "if detection enabled", True)
|
||||
|
||||
gen.add("adaptiveThreshConstant", double_t, 0,
|
||||
"Constant for adaptive thresholding before finding contours",
|
||||
p.adaptiveThreshConstant, 0, 100)
|
||||
|
||||
@@ -62,7 +62,6 @@ private:
|
||||
std::unique_ptr<tf2_ros::Buffer> tf_buffer_;
|
||||
std::unique_ptr<tf2_ros::TransformListener> tf_listener_;
|
||||
std::shared_ptr<dynamic_reconfigure::Server<aruco_pose::DetectorConfig>> dyn_srv_;
|
||||
bool enabled_ = true;
|
||||
cv::Ptr<cv::aruco::Dictionary> dictionary_;
|
||||
cv::Ptr<cv::aruco::DetectorParameters> parameters_;
|
||||
image_transport::Publisher debug_pub_;
|
||||
@@ -129,8 +128,6 @@ public:
|
||||
private:
|
||||
void imageCallback(const sensor_msgs::ImageConstPtr& msg, const sensor_msgs::CameraInfoConstPtr &cinfo)
|
||||
{
|
||||
if (!enabled_) return;
|
||||
|
||||
Mat image = cv_bridge::toCvShare(msg, "bgr8")->image;
|
||||
|
||||
vector<int> ids;
|
||||
@@ -359,7 +356,6 @@ private:
|
||||
|
||||
void paramCallback(aruco_pose::DetectorConfig &config, uint32_t level)
|
||||
{
|
||||
enabled_ = config.enabled;
|
||||
parameters_->adaptiveThreshConstant = config.adaptiveThreshConstant;
|
||||
parameters_->adaptiveThreshWinSizeMin = config.adaptiveThreshWinSizeMin;
|
||||
parameters_->adaptiveThreshWinSizeMax = config.adaptiveThreshWinSizeMax;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Information: https://clover.coex.tech/aruco
|
||||
# Information: https://clover.coex.tech/en/aruco.html
|
||||
|
||||
import rospy
|
||||
from clover import srv
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Information: https://clover.coex.tech/led
|
||||
# Information: https://clover.coex.tech/en/leds.html
|
||||
|
||||
import rospy
|
||||
from clover.srv import SetLEDEffect
|
||||
|
||||
@@ -4,9 +4,7 @@ import os
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
EXCLUDE = ('clever4-front-white.png', 'clever4-front-white-large.png', '.DS_Store',
|
||||
'clever4-front-black-large.png','clover42-black.png')
|
||||
|
||||
EXCLUDE = ('clever4-front-white.png', '.DS_Store', 'clever4-front-black-large.png')
|
||||
code = 0
|
||||
|
||||
os.chdir('./docs')
|
||||
|
||||
@@ -82,7 +82,6 @@ add_service_files(
|
||||
GetTelemetry.srv
|
||||
Navigate.srv
|
||||
NavigateGlobal.srv
|
||||
TakeOff.srv
|
||||
SetPosition.srv
|
||||
SetVelocity.srv
|
||||
SetAttitude.srv
|
||||
|
||||
@@ -44,12 +44,16 @@ Alternatively you may change the `fcu_url` property in `mavros.launch` file to p
|
||||
|
||||
## Running
|
||||
|
||||
To start connection to SITL, use:
|
||||
|
||||
```bash
|
||||
roslaunch clover sitl.launch
|
||||
```
|
||||
|
||||
To start connection to the flight controller, use:
|
||||
|
||||
```bash
|
||||
roslaunch clover clover.launch
|
||||
```
|
||||
|
||||
For the simulation information see the [corresponding article](https://clover.coex.tech/en/simulation.html).
|
||||
|
||||
> Note that the package is configured to connect to `/dev/px4fmu` by default (see [previous section](#manual-installation)). Install udev rules or specify path to your FCU device in `mavros.launch`.
|
||||
|
||||
19
clover/launch/sitl.launch
Normal file
@@ -0,0 +1,19 @@
|
||||
<launch>
|
||||
<!-- clover configuration for testing in sitl -->
|
||||
<arg name="ip" default="127.0.0.1"/>
|
||||
<arg name="rosbridge" default="false"/>
|
||||
|
||||
<include file="$(find clover)/launch/clover.launch">
|
||||
<arg name="fcu_conn" value="udp"/>
|
||||
<arg name="fcu_ip" value="$(arg ip)"/>
|
||||
<arg name="gcs_bridge" value="false"/>
|
||||
<arg name="optical_flow" value="false"/>
|
||||
<arg name="web_video_server" default="false"/>
|
||||
<arg name="main_camera" default="false"/>
|
||||
<arg name="rosbridge" value="$(arg rosbridge)"/>
|
||||
<arg name="aruco" default="false"/>
|
||||
<arg name="rangefinder_vl53l1x" default="false"/>
|
||||
<arg name="led" default="false"/>
|
||||
<arg name="rc" default="false"/>
|
||||
</include>
|
||||
</launch>
|
||||
@@ -41,7 +41,6 @@
|
||||
#include <clover/GetTelemetry.h>
|
||||
#include <clover/Navigate.h>
|
||||
#include <clover/NavigateGlobal.h>
|
||||
#include <clover/TakeOff.h>
|
||||
#include <clover/SetPosition.h>
|
||||
#include <clover/SetVelocity.h>
|
||||
#include <clover/SetAttitude.h>
|
||||
@@ -782,10 +781,6 @@ bool navigateGlobal(NavigateGlobal::Request& req, NavigateGlobal::Response& res)
|
||||
return serve(NAVIGATE_GLOBAL, NAN, NAN, req.z, NAN, NAN, NAN, NAN, NAN, req.yaw, NAN, NAN, req.yaw_rate, req.lat, req.lon, NAN, req.speed, req.frame_id, req.auto_arm, res.success, res.message);
|
||||
}
|
||||
|
||||
bool takeOff(TakeOff::Request& req, TakeOff::Response& res) {
|
||||
return serve(NAVIGATE, 0, 0, req.alt, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, 0, NAN, NAN, NAN, req.speed, body.child_frame_id, true, res.success, res.message);
|
||||
}
|
||||
|
||||
bool setPosition(SetPosition::Request& req, SetPosition::Response& res) {
|
||||
return serve(POSITION, req.x, req.y, req.z, NAN, NAN, NAN, NAN, NAN, req.yaw, NAN, NAN, req.yaw_rate, NAN, NAN, NAN, NAN, req.frame_id, req.auto_arm, res.success, res.message);
|
||||
}
|
||||
@@ -910,7 +905,6 @@ int main(int argc, char **argv)
|
||||
auto gt_serv = nh.advertiseService("get_telemetry", &getTelemetry);
|
||||
auto na_serv = nh.advertiseService("navigate", &navigate);
|
||||
auto ng_serv = nh.advertiseService("navigate_global", &navigateGlobal);
|
||||
auto to_serv = nh.advertiseService("take_off", &takeOff);
|
||||
auto sp_serv = nh.advertiseService("set_position", &setPosition);
|
||||
auto sv_serv = nh.advertiseService("set_velocity", &setVelocity);
|
||||
auto sa_serv = nh.advertiseService("set_attitude", &setAttitude);
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
float32 alt
|
||||
float32 speed
|
||||
---
|
||||
bool success
|
||||
string message
|
||||
@@ -1,5 +1,3 @@
|
||||
<title>Clover Drone Kit Tools</title>
|
||||
|
||||
<h1>Clover Drone Kit Tools</h1>
|
||||
|
||||
<ul>
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<launch>
|
||||
<arg name="type" default="gazebo"/> <!-- gazebo, jmavsim, none (only clover packages) -->
|
||||
<arg name="mav_id" default="0"/>
|
||||
<arg name="est" default="ekf2"/> <!-- PX4 estimator: lpe, ekf2 -->
|
||||
<arg name="vehicle" default="clover"/> <!-- PX4 vehicle configuration: clover, clover_vpe -->
|
||||
@@ -10,7 +9,7 @@
|
||||
<arg name="use_clover_physics" default="false"/> <!-- Use inertial parameters from CAD models -->
|
||||
|
||||
<!-- Gazebo instance -->
|
||||
<include file="$(find gazebo_ros)/launch/empty_world.launch" if="$(eval type == 'gazebo')">
|
||||
<include file="$(find gazebo_ros)/launch/empty_world.launch">
|
||||
<!-- Workaround for crashes in VMware -->
|
||||
<env name="SVGA_VGPU10" value="0"/>
|
||||
<arg name="gui" value="true"/>
|
||||
@@ -19,13 +18,13 @@
|
||||
</include>
|
||||
|
||||
<!-- PX4 instance -->
|
||||
<node name="sitl_$(arg mav_id)" pkg="px4" type="px4" output="screen" args="$(find px4)/ROMFS/px4fmu_common -s etc/init.d-posix/rcS -i $(arg mav_id)" unless="$(eval type == 'none')">
|
||||
<node name="sitl_$(arg mav_id)" pkg="px4" type="px4" output="screen" args="$(find px4)/ROMFS/px4fmu_common -s etc/init.d-posix/rcS -i $(arg mav_id)">
|
||||
<env name="PX4_SIM_MODEL" value="$(arg vehicle)"/>
|
||||
<env name="PX4_ESTIMATOR" value="$(arg est)"/>
|
||||
</node>
|
||||
|
||||
<!-- Clover model -->
|
||||
<include file="$(find clover_description)/launch/spawn_drone.launch" if="$(eval type == 'gazebo')">
|
||||
<include file="$(find clover_description)/launch/spawn_drone.launch">
|
||||
<arg name="main_camera" value="$(arg main_camera)"/>
|
||||
<arg name="rangefinder" value="$(arg rangefinder)"/>
|
||||
<arg name="led" value="$(arg led)"/>
|
||||
@@ -33,20 +32,10 @@
|
||||
<arg name="use_clover_physics" value="$(arg use_clover_physics)"/>
|
||||
</include>
|
||||
|
||||
<node name="jmavsim" pkg="px4" type="jmavsim_run.sh" output="screen" if="$(eval type == 'jmavsim')"/>
|
||||
|
||||
<param name="use_sim_time" value="false" if="$(eval type == 'jmavsim')"/>
|
||||
|
||||
<!-- Clover services -->
|
||||
<include file="$(find clover)/launch/clover.launch">
|
||||
<arg name="simulator" value="true"/>
|
||||
<arg name="fcu_conn" value="sitl"/>
|
||||
<arg name="fcu_ip" value="127.0.0.1"/>
|
||||
<arg name="gcs_bridge" value=""/>
|
||||
<arg name="rc" default="false"/>
|
||||
<arg name="web_video_server" default="false" if="$(eval type == 'jmavsim')"/>
|
||||
<arg name="main_camera" default="false" if="$(eval type == 'jmavsim')"/>
|
||||
<arg name="aruco" default="false" if="$(eval type == 'jmavsim')"/>
|
||||
<arg name="led" default="false" if="$(eval type == 'jmavsim')"/>
|
||||
</include>
|
||||
</launch>
|
||||
|
||||
|
Before Width: | Height: | Size: 267 KiB |
|
Before Width: | Height: | Size: 248 KiB |
|
Before Width: | Height: | Size: 415 KiB After Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 438 KiB After Width: | Height: | Size: 133 KiB |
|
Before Width: | Height: | Size: 129 KiB |
|
Before Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 158 KiB |
|
Before Width: | Height: | Size: 185 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 177 KiB |
|
Before Width: | Height: | Size: 175 KiB |
|
Before Width: | Height: | Size: 177 KiB |
|
Before Width: | Height: | Size: 176 KiB |
|
Before Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 106 KiB |
|
Before Width: | Height: | Size: 161 KiB |
|
Before Width: | Height: | Size: 213 KiB |
|
Before Width: | Height: | Size: 176 KiB |
|
Before Width: | Height: | Size: 197 KiB |
|
Before Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 9.9 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 34 KiB |
BIN
docs/assets/qgc-battery.png
Normal file
|
After Width: | Height: | Size: 815 KiB |
|
Before Width: | Height: | Size: 243 KiB After Width: | Height: | Size: 827 KiB |
|
Before Width: | Height: | Size: 266 KiB After Width: | Height: | Size: 870 KiB |
|
Before Width: | Height: | Size: 210 KiB After Width: | Height: | Size: 677 KiB |
|
Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 623 KiB |
BIN
docs/assets/qgc-esc.png
Normal file
|
After Width: | Height: | Size: 867 KiB |
|
Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 602 KiB |
|
Before Width: | Height: | Size: 172 KiB After Width: | Height: | Size: 489 KiB |
|
Before Width: | Height: | Size: 251 KiB |
BIN
docs/assets/qgc-frame-apply.png
Normal file
|
After Width: | Height: | Size: 597 KiB |
|
Before Width: | Height: | Size: 240 KiB After Width: | Height: | Size: 822 KiB |
|
Before Width: | Height: | Size: 253 KiB After Width: | Height: | Size: 821 KiB |
|
Before Width: | Height: | Size: 268 KiB |
|
Before Width: | Height: | Size: 235 KiB After Width: | Height: | Size: 824 KiB |
|
Before Width: | Height: | Size: 263 KiB After Width: | Height: | Size: 837 KiB |
|
Before Width: | Height: | Size: 258 KiB |
|
Before Width: | Height: | Size: 970 KiB After Width: | Height: | Size: 1.6 MiB |
@@ -40,9 +40,13 @@ section ul li:before {
|
||||
margin-bottom: 0.85em;
|
||||
}
|
||||
|
||||
.book.color-theme-2 img.big-clover {
|
||||
/* Main Clover image */
|
||||
.book img.bigclever {
|
||||
margin-bottom: -12%;
|
||||
}
|
||||
.book.color-theme-2 img.bigclever {
|
||||
/* change image for black background */
|
||||
content:url(assets/clover42-black.png);
|
||||
content:url(assets/clever4-front-black-large.png);
|
||||
}
|
||||
|
||||
footer {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# COEX Clover
|
||||
|
||||
<img class="center zoom big-clover" src="../assets/clover42-main.png" width="80%" alt="Clover 4.2">
|
||||
<img class="center bigclever zoom" src="../assets/clever4-front-white-large.png" width="80%" alt="COEX Clover 4">
|
||||
|
||||
**Clover** is an educational kit of a programmable quadcopter that consists of popular open source components, and a set of necessary documentation and libraries for working with it.
|
||||
|
||||
The kit includes a [COEX Pix](coex_pix.md) flight controller with the PX4 flight stack, a [Raspberry Pi 4](raspberry.md) as a controlling onboard computer, and a [camera module](camera.md) for performing flights with the use of computer vision, as well as a set of various sensors and other peripherals.
|
||||
The kit includes a Pixhawk/Pixracer flight controller with the PX4 flight stack, a [Raspberry Pi 4](raspberry.md) as a controlling onboard computer, and a [camera module](camera.md) for performing flights with the use of computer vision, as well as a set of various sensors and other peripherals.
|
||||
|
||||
The Clover platform contains a [pre-configured image for Raspberry Pi](image.md) with the full set of required software for working with peripheral devices and [programming autonomous flights](simple_offboard.md). The source code of the platform and of the documentation is open and [available on GitHub](https://github.com/CopterExpress/clover).
|
||||
|
||||
|
||||
@@ -57,7 +57,6 @@
|
||||
* [Guide on autonomous flight](auto_setup.md)
|
||||
* [Hostname](hostname.md)
|
||||
* [PX4 Simulation](sitl.md)
|
||||
* [Navigation using vertical ArUco-markers](wall_aruco.md)
|
||||
* [PID Setup](calibratePID.md)
|
||||
* [Model files for parts](models.md)
|
||||
* [ROS Melodic installation](ros-install.md)
|
||||
@@ -77,10 +76,7 @@
|
||||
* [Interfacing with Arduino](arduino.md)
|
||||
* [Connecting GPS](gps.md)
|
||||
* [Working with IR sensors](ir_sensors.md)
|
||||
* [FPV Setup](fpv_clover_4_2.md)
|
||||
* [FPV Setup (Clover 3)](fpv.md)
|
||||
* [Magnetic grip](magnetic_grip.md)
|
||||
* [Mechanical grip](mechanical_grip.md)
|
||||
* [FPV Setup](fpv.md)
|
||||
* [Trainer mode](trainer_mode.md)
|
||||
* [Tinning](tinning.md)
|
||||
* [Types of power connectors](connectortypes.md)
|
||||
|
||||
@@ -14,7 +14,7 @@ For correct work of the blocks programming, `blocks` argument in the Clover laun
|
||||
|
||||
## Running
|
||||
|
||||
To run Clover's blocks programming interface, [connect to Clover's Wi-Fi](wifi.md) and go to web-page http://192.168.11.1/clover_blocks/ or click the link *Blocks programming* at the [main page](wifi.md#web-interface).
|
||||
To run Clover's blocks programming interface, [connect to Clover's Wi-Fi](wifi.md) and go to web-page http://192.168.11.1:8080/clover_blocks/ or click the link *Blocks programming* at the [main page](wifi.md#web-interface).
|
||||
|
||||
The page looks as follows:
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
In order to perform the sensor calibration, select the *Vehicle Setup* tab and choose the *Sensors* menu.
|
||||
|
||||
> **Caution** If you use the flight controller [*COEX Pix*](coex_pix.md), all *Autopilot Orientation* columns must specify `ROTATION_ROLL_180_YAW_90`, otherwise the flight controller will not correctly perceive the tilt and rotation of the copter.
|
||||
> **Caution** If you use the flight controller *COEX Pix*, all *Autopilot Orientation* columns must specify `ROTATION_ROLL_180_YAW_90`, otherwise the flight controller will not correctly perceive the tilt and rotation of the copter.
|
||||
|
||||
## Compass
|
||||
|
||||
|
||||
@@ -35,9 +35,9 @@ The **COEX Pix** flight controller is a modified [Pixracer](https://docs.px4.io/
|
||||
|
||||
### Port pinouts
|
||||
|
||||
<img src="../assets/coex_pix/coexpix-top.jpg" width="400" class="zoom">
|
||||
<img src="../assets/coexpix-top.jpg" width="400" class="zoom">
|
||||
|
||||
<img src="../assets/coex_pix/coexpix-bottom.jpg" width="400" class="zoom">
|
||||
<img src="../assets/coexpix-bottom.jpg" width="400" class="zoom">
|
||||
|
||||
> **Note** On rev. 1.0 boards *RC IN* port and microSD slot are switched. Pinout for the *RC IN* port is the same on these boards.
|
||||
|
||||
@@ -70,6 +70,6 @@ The board utilizes low-noise DC-DC converters, voltage inputs have LC and ferrit
|
||||
|
||||
### Port pinouts
|
||||
|
||||
<img src="../assets/coex_pix/coexpix-top-rev1.2.png" width=400 class=zoom>
|
||||
<img src="../assets/coex_pix/coexpix-top-rev1.2.jpg" width=400 class=zoom>
|
||||
|
||||
<img src="../assets/coex_pix/coexpix-bottom-rev1.2.png" width=400 class=zoom>
|
||||
<img src="../assets/coex_pix/coexpix-bottom-rev1.2.jpg" width=400 class=zoom>
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
# Installing and configuring FPV equipment
|
||||
|
||||
## Preparing and installing the FPV camera and transmitter
|
||||
|
||||
1. Install the small mounting deck onto the main frame.
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/fpv/fpv_1.png" width=300 class="zoom border">
|
||||
<img src="../assets/fpv/fpv_2.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
2. Install the camera mount bracket into the corresponding holes.
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/fpv/fpv_3.png" width=300 class="zoom border">
|
||||
<img src="../assets/fpv/fpv_4.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
3. Cut the three-pin supplied camera cable.
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/fpv/fpv_5.png" width=300 class="zoom border">
|
||||
<img src="../assets/fpv/fpv_6.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
4. Tin the wires
|
||||
|
||||
<img src="../assets/fpv/fpv_7.png" width=300 class="zoom border center">
|
||||
|
||||
5. Solder the JST-male connector to the power wires of the camera.
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/fpv/fpv_8.png" width=300 class="zoom border">
|
||||
<img src="../assets/fpv/fpv_9.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
> **Hint** Сheck what you are wearing shrink tubes before soldering the wires.
|
||||
|
||||
6. Solder the JST male connector to the transmitter.
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/fpv/fpv_10.png" width=300 class="zoom border">
|
||||
<img src="../assets/fpv/fpv_11.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
7. Solder the yellow camera signal cable to the transmitter.
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/fpv/fpv_12.png" width=300 class="zoom border">
|
||||
<img src="../assets/fpv/fpv_13.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
8. Connect the antenna to the transmitter.
|
||||
|
||||
<img src="../assets/fpv/fpv_14.png" width=300 class="zoom border center">
|
||||
|
||||
> **Caution** If voltage is applied to a transmitter without an antenna, there is a high probability that it will burn out.
|
||||
|
||||
9. Place the receiver onto the mounting deck, securing it with ties.
|
||||
|
||||
<img src="../assets/fpv/fpv_15.png" width=300 class="zoom border center">
|
||||
|
||||
10. Place the mounting deck with the receiver on the bottom of the aircraft.
|
||||
|
||||
<img src="../assets/fpv/fpv_16.png" width=300 class="zoom border center">
|
||||
|
||||
11. Place the camera in the bracket and secure it with the 4 attached bolts. The camera should be at an angle of 15°-20° relative to the plane of the aircraft.
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/fpv/fpv_17.png" width=300 class="zoom border">
|
||||
<img src="../assets/fpv/fpv_18.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/fpv/fpv_19.png" width=300 class="zoom border">
|
||||
<img src="../assets/fpv/fpv_20.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
12. Connect the signal cable to the camera.
|
||||
|
||||
<img src="../assets/fpv/fpv_21.png" width=300 class="zoom border center">
|
||||
|
||||
13. Connect the camera's power cable to the power JST soldered to the *BAT+* and *GND* pads on the power distribution board.
|
||||
|
||||
14. Connect the transmitter power cable to JST at 5V.
|
||||
|
||||
<img src="../assets/fpv/fpv_22.png" width=300 class="zoom border center">
|
||||
|
||||
## Setting up and connecting FPV goggles
|
||||
|
||||
1. Install the two supplied antennas on the glasses.
|
||||
2. Turn on the glasses by holding the power button for 3-4 seconds.
|
||||
3. Turn on the aircraft and make sure the transmitter LED is blue.
|
||||
4. Press the *Auto Search* button on the glasses to automatically search for an available radio channel.
|
||||
@@ -86,8 +86,6 @@ How it works: Works from DC. I.e., by applying voltage from a DC source (a batte
|
||||
|
||||
* Rapid wear
|
||||
|
||||
### Brushless motors
|
||||
|
||||
Brushless motors, in which the moving part is the stator, are more efficient than brush-type motors. This is achieved due to the absence of brushes. However, since motor design is much more complicated, they are more expensive.
|
||||
|
||||
**Advantages:**
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
# Assembling and setting up the electromagnetic gripper
|
||||
|
||||
The magnetic gripper can be assembled in various ways according to the wiring diagram.
|
||||
|
||||
<img src="../assets/magnet_grip/scheme.jpg" width=300 class="zoom border center">
|
||||
|
||||
The following is an example of assembling an electromagnetic capture circuit on a breadboard.
|
||||
|
||||
> **Info** It is recommended to lay the wiring between the elements on the back side of the board (in the following images, the wiring is done over the diagram for illustrative purpose).
|
||||
|
||||
1. Place the Schottky diode, 10K resistor, and transistor on the soldering board.
|
||||
|
||||
<img src="../assets/magnet_grip/magnet1.png" width=300 class="zoom border center">
|
||||
|
||||
2. Solder the contacts on the other side of the board and bite off the remaining element legs.
|
||||
3. Connect the pins of the resistor and the two outer legs of the transistor.
|
||||
|
||||
<img src="../assets/magnet_grip/magnet2.png" width=300 class="zoom border center">
|
||||
|
||||
4. Connect the center leg of the transistor and the leg of the Schottky diode (opposite to the gray marking strip).
|
||||
|
||||
<img src="../assets/magnet_grip/magnet3.png" width=300 class="zoom border center">
|
||||
|
||||
5. Cut the required amount of magnetic grab wire and solder it to the pins of the Schottky diode.
|
||||
|
||||
<img src="../assets/magnet_grip/magnet4.png" width=300 class="zoom border center">
|
||||
|
||||
6. Solder the *Dupont* - male wires to the transistor and diode leg (red, black wires), and the *Dupont* - fmale wire to the opposite transistor leg (white wire).
|
||||
|
||||
<img src="../assets/magnet_grip/magnet5.png" width=300 class="zoom border center">
|
||||
|
||||
## Checking the operation of the electromagnetic gripper
|
||||
|
||||
In order to check the operation of the gripper, apply a voltage of 5V to the signal wire. You can use the *Dupont* dad-dad wire for that.
|
||||
|
||||
<img src="../assets/magnet_grip/magnet_check.png" width=300 class="zoom border center">
|
||||
|
||||
After applying voltage, the magnet should turn on.
|
||||
|
||||
## Connecting to Raspberry Pi
|
||||
|
||||
Connect the magnetic gripper to a Raspberry Pi for software activation.
|
||||
|
||||
<img src="../assets/magnet_grip/magnet_raspberry.png" width=300 class="zoom border center">
|
||||
|
||||
An example of the code activating the magnetic gripper can be found [here](gpio.md#connecting-an-electromagnet).
|
||||
|
||||
## Connecting to Arduino
|
||||
|
||||
Connect the gripper to the Arduino Nano board in order to control it manually.
|
||||
|
||||
It is convenient to place it on the same soldering board — insert it into the appropriate holes and solder it from the back to the board.
|
||||
|
||||
<img src="../assets/magnet_grip/magnet_arduino1.png" width=300 class="zoom border center">
|
||||
|
||||
Then connect the signal output of the circuit to the selected port and solder the *Dupont* female wire to the selected signal port on the board.
|
||||
|
||||
<img src="../assets/magnet_grip/magnet_arduino2.png" width=300 class="zoom border center">
|
||||
|
||||
## Installation of electromagnetic gripper
|
||||
|
||||
1. Install an electromagnet into the center hole on the gripper deck.
|
||||
2. Use a zip tie to pull the assembled circuit to the back of the deck.
|
||||
3. Plug the Arduino *D11* signal pin into one of the *AUX* pins on the flight controller.
|
||||
4. Plug the power wire of the electromagnetic gripper to JST 5V.
|
||||
@@ -1,18 +0,0 @@
|
||||
# Assembling and setting up a mechanical gripper
|
||||
|
||||
1. Combine the main gripper plates.
|
||||
2. Install the servo in the appropriate groove in the center of the plates with the axle gear in the middle.
|
||||
3. Hold down the gripper plates with the small spacers.
|
||||
4. Install the gripper deck so that the mounting holes in the grapple correspond with the self-tapping holes in the plate.
|
||||
5. Fix the gripper structure with self-tapping screws.
|
||||
6. Turn the servo gear to the end position.
|
||||
7. Install the cruciform mount onto the gear.
|
||||
8. Secure the cruciform mount using the screw attached to the servo.
|
||||
9. Tie the servo thread so that there is a 2 to 3 cm margin.
|
||||
10. Thread the servo thread into the corresponding tensioning slots.
|
||||
11. Fasten the grip claws with small self-tapping screws so that their angle is 25°–40°.
|
||||
12. Install the assembled grip onto the aircraft from below.
|
||||
13. Insert the servo cable into the *AUX* 1-2 output on the flight controller.
|
||||
14. Go to the *Radio* tab to control capture with the remote control.
|
||||
15. In the *AUX 1/2 Passthrough RC channel* parameter, select the desired channel.
|
||||
16. Now, when you switch the toggle switch of the corresponding channel, the capture will be closed or opened.
|
||||
@@ -80,24 +80,6 @@ This page contains models and drawings of some of the drone parts. They can be u
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## Clover 4.2 WorldSkills
|
||||
|
||||
### Milling
|
||||
|
||||
<table>
|
||||
<tr><th width=150>Preview</th><th>Part</th><th width=1>File</th></tr>
|
||||
<tr>
|
||||
<td><img src="../assets/dxf/4.2/big_leg.png"></td>
|
||||
<td>
|
||||
<b>Big leg</b>.<br>
|
||||
Function: Extended footing element.<br>
|
||||
Материал: Monolithic polycarbonate 2mm.<br>
|
||||
Quantity: 2 шт.
|
||||
</td>
|
||||
<td><a href="https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/4.2/big_leg.dxf"><code>big_leg.dxf</code></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## Clover 4
|
||||
|
||||
### 3D print
|
||||
|
||||
@@ -6,7 +6,7 @@ In order to configure flight modes:
|
||||
|
||||
1. Open the *Vehicle Setup* tab in QGroundControl.
|
||||
2. Select the *Flight Modes* menu.
|
||||
3. Choose SwC (Channel 6) as mode selection switch.
|
||||
3. Choose SwC (Channel 5) as mode selection switch.
|
||||
4. Set desired flight modes.
|
||||
|
||||
The following flight modes are recommended:
|
||||
@@ -16,7 +16,7 @@ In order to configure flight modes:
|
||||
* Flight Mode 6: *Position*.
|
||||
|
||||
5. Check mode switching by changing the switch position.
|
||||
6. Choose SwA (Channel 5) as emergency motor stop (*Kill switch*).
|
||||
6. Choose SwA (Channel 6) as emergency motor stop (*Kill switch*).
|
||||
|
||||
<img src="../assets/qgc-modes.png" class="zoom" alt="QGroundControl modes">
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ If there is no voltage indicator or manual calibration is not possible, set the
|
||||
* Put the battery voltage into the prompt and click *Calculate*.
|
||||
* Press *Close* to save the calculated value.
|
||||
|
||||
<img src="../assets/qgc-voltage-divider.png" class="zoom">
|
||||
<img src="../assets/qgc-battery.png" class="zoom">
|
||||
|
||||
Further reading: https://docs.qgroundcontrol.com/en/SetupView/Power.html.
|
||||
|
||||
@@ -28,7 +28,7 @@ Further reading: https://docs.qgroundcontrol.com/en/SetupView/Power.html.
|
||||
3. Connect the battery when prompted.
|
||||
4. Wait for the *Calibration complete*.
|
||||
|
||||
<img src="../assets/qgc-power.png" class="zoom">
|
||||
<img src="../assets/qgc-esc.png" class="zoom">
|
||||
|
||||
Further reading: https://docs.px4.io/v1.9.0/en/advanced_config/esc_calibration.html.
|
||||
|
||||
|
||||
@@ -29,8 +29,6 @@ Main article: https://docs.qgroundcontrol.com/en/SetupView/Firmware.html
|
||||
|
||||
We recommend using the modified version of PX4 by CopterExpress for the Clover drone, especially for autonomous flights. Download the latest stable version **<a class="latest-firmware v4" href="https://github.com/CopterExpress/Firmware/releases">from our GitHub</a>**.
|
||||
|
||||
> **Info** For Pixhawk-based quadcopters there is a separate firmware version. See details in "[Pixhawk / Pixracer firmware flashing](firmware.md)" article.
|
||||
|
||||
Flash the flight controller with this firmware:
|
||||
|
||||
<img src="../assets/qgc-firmware.png" alt="QGroundControl firmware upload" class="zoom">
|
||||
@@ -70,12 +68,12 @@ This is how the main QGroundControl settings window will look like:
|
||||
|
||||
### Selecting the airframe
|
||||
|
||||
<img src="../assets/qgc-frame-apply-clover4.png" alt="QGroundControl frame selection" class="zoom">
|
||||
<img src="../assets/qgc-frame-apply.png" alt="QGroundControl frame selection" class="zoom">
|
||||
|
||||
1. Open the *Vehicle Setup* tab.
|
||||
2. Select the *Airframe* menu.
|
||||
3. Select the *Quadrotor X* airframe type.
|
||||
4. For Clover 4 select *COEX Clover 4* from the dropdown menu. Otherwise select *Generic Quadrotor X*.
|
||||
4. Select the *Generic Quadrotor X* from the dropdown menu.
|
||||
5. Return to the top of the list and press *Apply and Restart* button, confirm by pressing *Apply*.
|
||||
6. Wait for the settings to be applied and for the flight controller to restart.
|
||||
|
||||
@@ -89,8 +87,6 @@ Press the *Save* button to save the changed value to the flight controller. Chan
|
||||
|
||||
#### Configuring PID regulators
|
||||
|
||||
> **Info** Selecting *COEX Clover 4* frame subtype doesn't require setting PID coefficients.
|
||||
|
||||
##### Averaged PID coefficients for the Clover 4 drone
|
||||
|
||||
* `MC_PITCHRATE_P` = 0.087
|
||||
|
||||
@@ -295,8 +295,6 @@ Parameters:
|
||||
* `thrust` — throttle level, ranges from 0 (no throttle, propellers are stopped) to 1 (full throttle).
|
||||
* `auto_arm` – switch the drone to `OFFBOARD` and arm automatically (**the drone will take off**);
|
||||
|
||||
The positive direction of `yaw_rate` rotation (when viewed from the top) is counterclockwise,`pitch_rate` rotation is forward, `roll_rate` rotation is to the left.
|
||||
|
||||
### land
|
||||
|
||||
Switch the drone to landing [mode](modes.md) (`AUTO.LAND` or similar).
|
||||
|
||||
@@ -32,9 +32,3 @@ The simulation environment is based on the following components:
|
||||
* ROS packages and Gazebo plugins.
|
||||
|
||||
<!-- TODO: Write more, add a diagram, etc -->
|
||||
|
||||
## Video
|
||||
|
||||
Short video review of the simulator:
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/8HYXREMDfzQ" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
PX4 Simulation
|
||||
===
|
||||
|
||||
> **Warning** This article is about running a standalone PX4 simulation with a generic quadcopter and **is outdated**. Consider using [our configuration](simulation.md) for a more Clover-like experience.
|
||||
> **Hint** This article is about running a standalone PX4 simulation with a generic quadcopter. Consider using [our configuration](simulation.md) for a more Clover-like experience.
|
||||
|
||||
Main article: https://dev.px4.io/en/simulation/
|
||||
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
# Navigation using vertical ArUco-markers
|
||||
|
||||
The algorithm of the navigation through visual ArUco-markers, that was implemented in the Clever image, supports the flexible configuration of the markers in area. It allows you to place them on any surface, at any angle.
|
||||
|
||||
## Installing the vertical camera mount
|
||||
|
||||
For a better recognition of the markers, you need to set the camera vertically so that the lens is pointed parallel to the horizon.
|
||||
|
||||
> **Note** The configuration file allows you to configure the location of the camera in area relative to the copter in any way. For your convenience, we will review the option of installing the camera at an angle of 90 degrees to the horizon in the direction of the copter's nose.
|
||||
|
||||
### Camera mount, 3D printing
|
||||
|
||||
Print the [camera mount](models.md#clover-3).
|
||||
|
||||
Install the mount in a convenient location, so that the camera has a minimum number of unnecessary objects (protection, legs, propellers, beams) — all of it will negatively affect the recognition of the markers.
|
||||
|
||||
## Setting the camera transform
|
||||
|
||||
To set the camera position at the desired angle, open the file `main_camera.launch`, located in `~/catkin_ws/src/clover/clover/launch/`.
|
||||
|
||||
```bash
|
||||
nano ~/catkin_ws/src/clover/clover/launch/main_camera.launch
|
||||
```
|
||||
|
||||
In the parameters `direction_x`, `direction_y`, set empty values manually or enter the following lines:
|
||||
|
||||
```bash
|
||||
sed -i "/direction_z/s/default=\".*\"/default=\"\"/" /home/pi/catkin_ws/src/clover/clover/launch/main_camera.launch
|
||||
sed -i "/direction_y/s/default=\".*\"/default=\"\"/" /home/pi/catkin_ws/src/clover/clover/launch/main_camera.launch
|
||||
```
|
||||
|
||||
Edit one of the configuration lines or add the line shown bellow:
|
||||
|
||||
```xml
|
||||
<node pkg="tf2_ros" type="static_transform_publisher" name="main_camera_frame" args="0.05 0 0.05 -1.5707963 0 -1.5707963 base_link main_camera_optical"/>
|
||||
```
|
||||
|
||||
> **Note**. Only one camera configuration can be used at a time. If you insert the line above, don't forget to comment the currently active one. The syntax highlighting system will help you determine that — the active line will be highlighted in a different color than the comments. To comment, add the `<!--` and `-->` symbols at the beginning and the end respectively.
|
||||
|
||||
If you are using the marker map, where the markers have equal distances along the x and y axes, you can use [script for creating markers map `gen_map.py`](aruco_map.md#marker-map-definition). Otherwise, you will need to set them manually. To do this, go to the directory `map_name.txt` and create a map file. Fill out your map according to the [map syntax](aruco_map.md#marker-map-definition). Here is an example of a marker map with a random marker location:
|
||||
|
||||
>**Hint**. When filling out the map, select one of the markers as the origin, and measure the distance to all other markers relative to it. If all your parameters are oriented same way, you can choose not to specify all 8 parameters, but only the first 5: the marker index, size, and its location in space along the x, y, and z axes, respectively.
|
||||
|
||||
```
|
||||
106 0.33 0 0 0
|
||||
103 0.33 1.53 0.23 0
|
||||
153 0.40 -0.56 1.36 0
|
||||
```
|
||||
|
||||
After you fill out the map, you need to apply it. To do it, edit the file `aruco.launch`, located in `~/catkin_ws/src/clover/clover/launch/`. Change the line `<param name="map" value="$(find aruco_pose)/map/map_name.txt"/>`, where `map_name.txt` is the name of your map file.
|
||||
|
||||
If you are using markers that are not linked to horizontal surfaces (floor, ceiling), you must disable the parameter `known_tilt` both in the module `aruco_detect` and `aruco_map` in the same file. To do it automatically, enter:
|
||||
|
||||
```bash
|
||||
sed -i "/known_tilt/s/value=\".*\"/value=\"\"/" /home/pi/catkin_ws/src/clover/clover/launch/aruco.launch
|
||||
```
|
||||
|
||||
After all the settings, call `sudo systemctl restart clover` to restart the `clover` service.
|
||||
@@ -1,10 +1,10 @@
|
||||
# Клевер
|
||||
|
||||
<img class="center zoom big-clover" src="../assets/clover42-main.png" width="80%" alt="Клевер 4.2">
|
||||
<img class="center bigclever zoom" src="../assets/clever4-front-white-large.png" width="80%" alt="Клевер 4">
|
||||
|
||||
**«Клевер»** — это учебный конструктор программируемого квадрокоптера, состоящего из популярных открытых компонентов, а также набор необходимой документации и библиотек для работы с ним.
|
||||
|
||||
Набор включает в себя полетный контроллер [COEX Pix](coex_pix.md) с полетным стеком PX4, [Raspberry Pi 4](raspberry.md) в качестве управляющего бортового компьютера, [модуль камеры](camera.md) для реализации полетов с использованием компьютерного зрения, а также набор различных датчиков и другой периферии.
|
||||
Набор включает в себя полетный контроллер Pixracer с полетным стеком PX4, [Raspberry Pi 4](raspberry.md) в качестве управляющего бортового компьютера, [модуль камеры](camera.md) для реализации полетов с использованием компьютерного зрения, а также набор различных датчиков и другой периферии.
|
||||
|
||||
Платформа Клевера также включает в себя преднастроенный [образ для Raspberry Pi](image.md) в полным набором необходимого ПО для работы со всей периферией и [программирования автономных полетов](simple_offboard.md). Исходный код платформы Клевера и данной документации открыт и [доступен на GitHub](https://github.com/CopterExpress/clover).
|
||||
|
||||
|
||||
@@ -79,10 +79,7 @@
|
||||
* [Взаимодействие с Arduino](arduino.md)
|
||||
* [Подключение GPS](gps.md)
|
||||
* [Работа с ИК датчиками](ir_sensors.md)
|
||||
* [Установка FPV](fpv_clover_4_2.md)
|
||||
* [Установка FPV (Клевер 3)](fpv.md)
|
||||
* [Магнитный захват](magnetic_grip.md)
|
||||
* [Механический захват](mechanical_grip.md)
|
||||
* [Установка FPV](fpv.md)
|
||||
* [Сборка шаровой защиты](sphere_guard.md)
|
||||
* [Управление в режиме тренера](trainer_mode.md)
|
||||
* [Техника лужения](tinning.md)
|
||||
@@ -94,8 +91,6 @@
|
||||
* [Светодиодная лента (legacy)](leds_old.md)
|
||||
* [Вклад в Клевер](contributing.md)
|
||||
* [Переход на версию 0.20](migrate20.md)
|
||||
* [COEX Duocam](duocam.md)
|
||||
* [Виртуальная MAVLink-камера](duocam_mavlink.md)
|
||||
* [Мероприятия](events.md)
|
||||
* [CopterHack-2021](copterhack2021.md)
|
||||
* [CopterHack-2019](copterhack2019.md)
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
## Запуск
|
||||
|
||||
Для того, чтобы открыть интерфейс блочного программирования в Клевере, [подключитесь к Клеверу по Wi-Fi](wifi.md) и перейдите на страницу http://192.168.11.1/clover_blocks/ либо нажмите ссылку *Blocks programming* на [основной веб-странице Клевера](wifi.md#веб-интерфейс).
|
||||
Для того, чтобы открыть интерфейс блочного программирования в Клевере, [подключитесь к Клеверу по Wi-Fi](wifi.md) и перейдите на страницу http://192.168.11.1:8080/clover_blocks/ либо нажмите ссылку *Blocks programming* на [основной веб-странице Клевера](wifi.md#веб-интерфейс).
|
||||
|
||||
Интерфейс выглядит следующим образом:
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Чтобы откалибровать датчики зайдите во вкладку *Vehicle Setup* и выберите меню *Sensors*.
|
||||
|
||||
> **Caution** Если вы используете полетный контроллер [*COEX Pix*](coex_pix.md), во всех графах *Autopilot Orientation* необходимо указать значение `ROTATION_ROLL_180_YAW_90`, иначе полетный контроллер будет не корректно воспринимать наклоны и повороты коптера.
|
||||
> **Caution** Если вы используете полетный контроллер *COEX Pix*, во всех графах *Autopilot Orientation* необходимо указать значение `ROTATION_ROLL_180_YAW_90`, иначе полетный контроллер будет не корректно воспринимать наклоны и повороты коптера.
|
||||
|
||||
## Компас
|
||||
|
||||
|
||||
@@ -63,9 +63,9 @@
|
||||
|
||||
### Нововведения
|
||||
|
||||
* Заменен разъем USB Micro-B на разъем USB Type-C.
|
||||
* Заменен разъем USB Micro-B на раазъем USB Type-C.
|
||||
* Изменен слот для MicroSD карт, на более глубокий.
|
||||
* Изменены назначения пинов на разъеме I2C.
|
||||
* Изменены назначения пинов на разьеме I2C.
|
||||
* Добавлены ферритовые фильтры в цепи питания.
|
||||
|
||||
### Схемы расположения контактов
|
||||
|
||||
@@ -1,197 +0,0 @@
|
||||
# COEX DuoCam
|
||||
|
||||
"COEX DuoCam" – это программно-аппаратный комплекс, позволяющий получать комбинированное визуально-тепловизионное изображение.
|
||||
|
||||
<img src="../assets/duocam/gitup_seek.jpg" width=400 class="center" alt="duocam">
|
||||
|
||||
В качестве источника визуальной картинки теоретически можно использовать любую камеру, имеющую CSI или HDMI-выход.
|
||||
|
||||
В качестве источника тепловизионной картинки можно использовать тепловизоры Seek Compact или Seek Compact Pro.
|
||||
|
||||
В качестве платформы для запуска обрабатывающего софта рекомендуется использовать одноплатный компьютер Raspberry Pi 4B.
|
||||
|
||||
## Подключение устройств
|
||||
|
||||
Тепловизор подключается в один из портов USB 3.0 на RPi4. Во второй USB 3.0-порт подключается Wi-Fi адаптер для осуществления связи с наземной станцией.
|
||||
|
||||
Визуальная камера подключается в CSI порт напрямую или через HDMI-CSI-конвертер.
|
||||
|
||||
В порт USB 2.0 следует подключить USB-flash устройство, на которое будет производиться сохранение фото и видеофайлов.
|
||||
|
||||
## Принцип работы
|
||||
|
||||
Программная часть осуществляет наложение тепловизионной картинки на визуальную. С помощью конфигурационного файла или виджета управления свойствами камеры в QGroundControl можно изменять результирующее изображение.
|
||||
|
||||
### Выбор модели тепловизора
|
||||
|
||||
Первоначально надо определиться, какая у вас модель тепловизора (простая или Pro) и выставить соответствующую настройку в конфиг-файле (`enable: yes` у seek_thermal_pro или seek_thermal в разделе thermal_camera_models. Важно не забыть выставить `enable: no` у камеры, которую не предполагается использовать).
|
||||
|
||||
### Управление наложением
|
||||
|
||||
При включенном визуальном (`show_visual: yes`) и термическом (`show_thermal: yes`) изображениях, термическое будет налагаться на визуальное в регион, заданный в свойстве `overlay_thermal_on_visual` (начальная точка с координатами `(x_start, y_start)`, ширина региона - `thermal_region_width`, высота - `thermal_region_height`).
|
||||
|
||||
Если отключить визуальное изображение (`show_visual: no`), то термическое развернется на весь экран.
|
||||
|
||||
Если отключить термическое (`show_thermal: no`), то будет транслироваться только визуальное.
|
||||
|
||||
Если отключить оба – изображение перестанет транслироваться.
|
||||
|
||||
### Центровка
|
||||
|
||||
Для центровки результирующего изображения (из-за физического сдвига объективов камер термическое будет сдвинутого относительно центра визуального) следует использовать свойства раздела `final_frame_cropping`. Принцип аналогичен предыдущему разделу.
|
||||
|
||||
### Детекторы контуров (edge detectors)
|
||||
|
||||
Для облегчения понимания термического изображения, есть возможность включения наложения на него соответствующих контуров визуального изображения. В программе реализована поддержка двух алгоритмов детектирования контуров: [Sobel](https://docs.opencv.org/3.4/d2/d2c/tutorial_sobel_derivatives.html) и [Canny](https://docs.opencv.org/3.4/da/d5c/tutorial_canny_detector.html). В соответствующих разделах конфига (`apply_sobel` и `apply_canny`) можно поэкспериментировать с некоторыми свойствами детекторов.
|
||||
|
||||
### Колоризация
|
||||
|
||||
Для большей наглядности, тепловизионное изображение можно колорифицировать. Для этого необходимо выставить свойство `apply_colormap: yes`.
|
||||
|
||||
Конкретную схему колорификации можно выбрать из [списка](https://docs.opencv.org/2.4/modules/contrib/doc/facerec/colormaps.html), указав порядковый номер схемы в свойстве `colormap`.
|
||||
|
||||
### Свойства транслируемого видео и сохраняемых файлов
|
||||
|
||||
Свойства транслируемого видео можно изменять в разделе `output_video`. Делать это стоит с четким пониманием того, что делаешь - неправильные настройки могут сломать трансляцию. Например, разрешение видео должно совпадать с настройками gstreamer'а, который осуществляет последующее кодирование.
|
||||
|
||||
Для настройки сохраняемого на флеш-накопитель видео следует пользоваться группой свойств `encode_video`.
|
||||
|
||||
Каталоги для сохранения фото и видеофайлов можно указать в свойствах `path_to_save`.
|
||||
|
||||
### Настройки дополнительной отображаемой информации
|
||||
|
||||
Скрывать\показывать частоту кадров в секунду визуального и термического изображений можно при помощи свойства `show_fps`.
|
||||
|
||||
Показывать\скрывать перекрестие с температурой центрального пикселя можно при помощи свойства `draw_temp`.
|
||||
|
||||
### Подстройка температуры
|
||||
|
||||
В зависимости от используемого тепловизора, может потребоваться корректировка температурного диапазона. В секции `temperature_calibration` Доступны две настройки:
|
||||
|
||||
* Сдвиг (`offset`) - линейный сдвиг температурного диапазон на указанное число.
|
||||
* Масштаб (`scale`) - пропорциональное изменение шкалы.
|
||||
|
||||
### Выравнивание градиента температуры от центра к краям
|
||||
|
||||
Если на тепловизионном изображении наблюдается "рамка", вызванная увеличением определяемой температуры к краям, то следует применить выравнивающий фильтр (виньетирование). Настройки располагаются в секции `vignette`:
|
||||
|
||||
* `enable` - включить-выключить наложение фильтра.
|
||||
* `show_center` - показать точку "центра" для отладки ее положения.
|
||||
* `center_x` - X-координата "центра".
|
||||
* `center_y` - Y-координата "центра".
|
||||
* `max_decrement_relative` - максимальное уменьшение температуры к краям.
|
||||
|
||||
## Виджет управления камерой для QGroundControl
|
||||
|
||||

|
||||
|
||||
### Где взять
|
||||
|
||||
QGC c необходимый функционалом для управления "COEX DuoCam" можно скачать в нашем [репозитории](https://github.com/CopterExpress/qgroundcontrol/releases). Скачивать следует тот релиз, в названии которого присутствует слово `duocam` с максимальным порядковым номером.
|
||||
|
||||
### Как использовать
|
||||
|
||||
При открытии виджета QGC пошлет MAVLink-сообщения с запросом текущих значений свойств. Необходимо дождаться, пока они все до конца загрузятся. Если загрузка не завершается в течение минуты, необходимо нажать кнопку "Refresh values".
|
||||
|
||||
При изменении значений свойств QGC осуществляет коммуникацию с DuoCam посредством протокола MAVLink, поэтому нет смысла очень часто нажимать контролы - наоборот, после нажатия следует дождаться изменения картинки и только потом переходить к следующему свойству.
|
||||
|
||||
[Подробнее об архитектуре DuoCam и программе `duocam-mavlink`](duocam_mavlink.md).
|
||||
|
||||
## Конфигурационный файл
|
||||
|
||||
Для более глубокой настройки DuoCam можно использовать конфигурационный файл.
|
||||
|
||||
### Как добраться
|
||||
|
||||
Для редактирования конфигурационного файла необходимо извлечь microSD-карту из RPi4, вставить в кард-ридер своего компьютера (от операционной системы требуется возможность читать файловую систему ext4), открыть файл по адресу `<microSD>/etc/duocam/camera.yaml`.
|
||||
|
||||
Также можно зайти по SSH на работающую RPi4 и отредактировать конфигурационный файл внутри системы по тому же пути.
|
||||
|
||||
### Образец конфигурационного файла
|
||||
|
||||
```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 are 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
|
||||
```
|
||||
@@ -1,104 +0,0 @@
|
||||
# Виртуальная MAVLink-камера COEX DuoCam
|
||||
|
||||
Полётные контроллеры поддерживают разные способы взаимодействия с внешними камерами, включая протокол MAVLink. Обычно коммуникация с помощью данного протокола требует использования UART-порта на полётном контроллере, но есть возможность работать с камерой в основном потоке MAVLink-телеметрии с БПЛА.
|
||||
|
||||
Утилита `duocam-mavlink` отвечает за работу виртуальной MAVLink-камеры и встраивается в общую телеметрию между полётным контроллером и QGroundControl.
|
||||
|
||||

|
||||
|
||||
На блок-схеме прямыми линиями обозначены взаимодействия между блоками, пунктирными линиями уточняется характер взаимодействия.
|
||||
|
||||
> **Warning** Протокол взаимодействия находится в процессе модификации. В новых версиях планируется избавиться от прямой отправки значений параметров и их количества от `duocam-mavlink` к QGroundControl.
|
||||
|
||||
`duocam-camera` и `duocam-mavlink` обмениваются данными с помощью очередей POSIX. Имена очередей и формат сообщений доступен в репозитории [duocam-common](https://github.com/CopterExpress/duocam-common).
|
||||
|
||||
Для объединения блоков, взаимодействующих через MAVLink, можно использовать любой MAVLink-коммутатор/маршрутизатор, который либо позволяет отключить таблицу коммутации, либо заполняет её по схеме *MAVLink ID:Component ID* (например, `cmavnode`, `mavlink-fast-switch`, `mavlink-switch`).
|
||||
|
||||
> **Warning** При использовании `mavlink-fast-switch` требуется использовать `mavlink-serial-bridge`, либо любой другой мост для передачи MAVLink из последовательного порта в UDP, так как `mavlink-fast-switch` работает только с UDP.
|
||||
|
||||
## Конфигурационный файл
|
||||
|
||||
Для редактирования конфигурационного файла необходимо извлечь microSD-карту из RPi4, вставить в кард-ридер своего компьютера (от операционной системы требуется возможность читать файловую систему ext4), открыть файл по адресу `<microSD>/etc/duocam/mavlink.yaml`.
|
||||
|
||||
Также можно зайти по SSH на работающую RPi4 и отредактировать конфигурационный файл внутри системы по тому же пути.
|
||||
|
||||
Для корректной работы `duocam-mavlink` требуется *MAVLink ID* полётного контроллера (параметр `vehicle_id`) и `MAVLink ID` QGroundControl (параметр `qgc_vehicle_id`). `duocam-mavlink` ожидает телеметрию на UDP (параметры `ip` и `port`) и отправляет сообщения HEARTBEAT с частотой, согласно параметру `heartbeat_frequency`, представляясь, как компонент полётного контроллера `MAV_COMP_ID_CAMERA`.
|
||||
|
||||
Максимальная задержка от `duocam-camera` задаётся параметром `command_timeout`.
|
||||
|
||||
Если система DuoCam используется для полётов внутри помещений, то должен быть включен параметр `no_gps`.
|
||||
|
||||
## Пример конфигурационного файла
|
||||
|
||||
```yaml
|
||||
# MAVLink vehicle ID that owns the camera
|
||||
vehicle_id: 1
|
||||
# Enable this flag for indoor use
|
||||
no_gps: False
|
||||
# QGC vehicle ID
|
||||
qgc_vehicle_id: 255
|
||||
mavlink:
|
||||
# IP address of the interface to listen port on (0.0.0.0 for all interfaces)
|
||||
ip: 127.0.0.1
|
||||
# UDP port
|
||||
port: 14540
|
||||
# Heartbeat frequency (Hz)
|
||||
heartbeat_frequency: 1.0
|
||||
# Camera driver command timeout (s)
|
||||
command_timeout: 3.0
|
||||
```
|
||||
|
||||
## Пример конфигурационного файла для `mavlink-fast-switch`
|
||||
|
||||
```yaml
|
||||
# MAVLink endpoints
|
||||
endpoints:
|
||||
# UAV endpoint
|
||||
- name: "uav"
|
||||
local:
|
||||
port: 14588
|
||||
# DuoCam MAVLink endpoint
|
||||
- name: "duocam-mavlink"
|
||||
remote:
|
||||
ip: "127.0.0.1"
|
||||
port: 14540
|
||||
# GCS endpoint
|
||||
- name: "gcs"
|
||||
remote:
|
||||
ip: "127.0.0.1"
|
||||
port: 14550
|
||||
# Enable MAVLink ID table
|
||||
# HINT: Can't use this feature with duocam
|
||||
id-table: False
|
||||
```
|
||||
|
||||
## Пример конфигурационного файла для `mavlink-serial-bridge`
|
||||
|
||||
```yaml
|
||||
# Serial device settings
|
||||
serial:
|
||||
# Device file
|
||||
device: "/dev/ttyS0"
|
||||
# Baudrate
|
||||
baudrate: 57600
|
||||
# Flow control (hardware, none)
|
||||
flow: none
|
||||
# Software serial TX buffer (bytes) (2048 by default)
|
||||
tx-buffer: 2048
|
||||
# UDP port settings
|
||||
udp:
|
||||
# Remote host settings (optional, listening mode if not presented)
|
||||
remote:
|
||||
ip: 127.0.0.1
|
||||
port: 14588
|
||||
# Lock remote host on the initial value (optional, False by default)
|
||||
lock: True
|
||||
# Broadcast mode (optional, False by default)
|
||||
broadcast: False
|
||||
# Local settings (optional, all interfaces and a random port by default)
|
||||
local:
|
||||
# Local IP address (0.0.0.0 to listen on all interfaces) (optional, all interfaces by default)
|
||||
ip: 127.0.0.1
|
||||
# Local UDP port (0 to select a random free port) (optional, 0 by default)
|
||||
port: 0
|
||||
```
|
||||
@@ -1,94 +0,0 @@
|
||||
# Установка и настройка FPV-оборудования
|
||||
|
||||
## Подготовка и установка камеры и передатчика
|
||||
|
||||
1. Установите малую монтажную деку на основную раму.
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/fpv/fpv_1.png" width=300 class="zoom border">
|
||||
<img src="../assets/fpv/fpv_2.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
2. Установите скобу для крепления камеры в соответствующие отверстия.
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/fpv/fpv_3.png" width=300 class="zoom border">
|
||||
<img src="../assets/fpv/fpv_4.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
3. Обрежьте трехпиновый комплектный кабель камеры.
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/fpv/fpv_5.png" width=300 class="zoom border">
|
||||
<img src="../assets/fpv/fpv_6.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
4. Залудите провода
|
||||
|
||||
<img src="../assets/fpv/fpv_7.png" width=300 class="zoom border center">
|
||||
|
||||
5. К силовым проводам камеры припаяйте разъем JST-папа.
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/fpv/fpv_8.png" width=300 class="zoom border">
|
||||
<img src="../assets/fpv/fpv_9.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
> **Hint** Перед спаиванием проводов не забудьте надеть термоусадку на провода.
|
||||
|
||||
6. К передатчику припаяйте разъем JST-папа.
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/fpv/fpv_10.png" width=300 class="zoom border">
|
||||
<img src="../assets/fpv/fpv_11.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
7. К передатчику припаяйте желтый сигнальный кабель камеры.
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/fpv/fpv_12.png" width=300 class="zoom border">
|
||||
<img src="../assets/fpv/fpv_13.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
8. Подключите антенну к передатчику.
|
||||
|
||||
<img src="../assets/fpv/fpv_14.png" width=300 class="zoom border center">
|
||||
|
||||
> **Caution** Если на передатчик без антенны подать напряжение есть большая вероятность, что он сгорит.
|
||||
|
||||
9. На монтажную деку установите приемник, закрепив его стяжками.
|
||||
|
||||
<img src="../assets/fpv/fpv_15.png" width=300 class="zoom border center">
|
||||
|
||||
10. Установите монтажную деку вместе с приемником снизу коптера.
|
||||
|
||||
<img src="../assets/fpv/fpv_16.png" width=300 class="zoom border center">
|
||||
|
||||
11. Установите камеру в скобу и закрепите ее с помощью 4-х комплектных болтов. Камера должна быть под углом 15°-20° относительно плоскости коптера.
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/fpv/fpv_17.png" width=300 class="zoom border">
|
||||
<img src="../assets/fpv/fpv_18.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/fpv/fpv_19.png" width=300 class="zoom border">
|
||||
<img src="../assets/fpv/fpv_20.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
12. Подключите сигнальный кабель к камере.
|
||||
|
||||
<img src="../assets/fpv/fpv_21.png" width=300 class="zoom border center">
|
||||
|
||||
13. Подключите кабель питания камеры к силовому JST, припаянному к площадкам *BAT+* и *GND* на плате распределения питания.
|
||||
|
||||
14. Подключите кабель питания передатчика к JST на 5В.
|
||||
|
||||
<img src="../assets/fpv/fpv_22.png" width=300 class="zoom border center">
|
||||
|
||||
## Настройка и подключение FPV-очков
|
||||
|
||||
1. Установите на очки две комплектные антенны.
|
||||
2. Включите очки удерживая кнопку питания 3–4 секунды.
|
||||
3. Включите коптер и убедитесь, что светодиод передатчика светится синим цветом.
|
||||
4. Нажмите на очках кнопку *Auto Search*, для автоматического поиска доступного радиоканала.
|
||||
@@ -1,65 +0,0 @@
|
||||
# Сборка и настройка электромагнитного захвата
|
||||
|
||||
Магнитный захват можно собрать различными способами в соответствии с электрической схемой.
|
||||
|
||||
<img src="../assets/magnet_grip/scheme.jpg" width=300 class="zoom border center">
|
||||
|
||||
Ниже представлен пример сборки схемы электромагнитного захвата на макетной плате.
|
||||
|
||||
> **Info** Рекомендуется проложить проводку между элементами с обратной стороны платы (на дальнейших изображениях проводка сделана поверх схемы, для наглядности).
|
||||
|
||||
1. На паечной плате разместите диод Шоттки, резистор на 10 кОм и транзистор.
|
||||
|
||||
<img src="../assets/magnet_grip/magnet1.png" width=300 class="zoom border center">
|
||||
|
||||
2. Припаяйте контакты с другой стороны платы и откусите оставшиеся ножки элементов.
|
||||
3. Соедините контакты резистора и двух крайних ножек транзистора.
|
||||
|
||||
<img src="../assets/magnet_grip/magnet2.png" width=300 class="zoom border center">
|
||||
|
||||
4. Соедините центральную ножку транзистора и ножку диода Шоттки (противоположную серой маркировочной полоске).
|
||||
|
||||
<img src="../assets/magnet_grip/magnet3.png" width=300 class="zoom border center">
|
||||
|
||||
5. Обрежьте необходимое количество провода магнитного захвата и припаяйте его к контактам диода Шоттки.
|
||||
|
||||
<img src="../assets/magnet_grip/magnet4.png" width=300 class="zoom border center">
|
||||
|
||||
6. Припаяйте провода *Dupont*-папа к ножке транзистора и диода (красный, черный провода), а также провод *Dupont*-мама на противоположную ножку транзистора (белый провод).
|
||||
|
||||
<img src="../assets/magnet_grip/magnet5.png" width=300 class="zoom border center">
|
||||
|
||||
## Проверка работы электромагнитного захвата
|
||||
|
||||
Для того, чтобы проверить работу захвата, подайте на сигнальный провод напряжение 5В. Для этого можно использовать провод *Dupont* папа-папа.
|
||||
|
||||
<img src="../assets/magnet_grip/magnet_check.png" width=300 class="zoom border center">
|
||||
|
||||
После подачи напряжения магнит должен включиться.
|
||||
|
||||
## Подключение к Raspberry Pi
|
||||
|
||||
Подключите магнитный захват к плате Raspberry Pi для программного использования
|
||||
|
||||
<img src="../assets/magnet_grip/magnet_raspberry.png" width=300 class="zoom border center">
|
||||
|
||||
Пример кода, активирующего магнитный захват, можно посмотреть [тут](gpio.md#подключение-электромагнита).
|
||||
|
||||
## Подключение к Arduino
|
||||
|
||||
Подключите захват плате Arduino Nano, чтобы использовать его в ручном режиме.
|
||||
|
||||
Удобно ее располагать на той же паечной плате -- вставьте ее в подходящие отверстия и припаяйте с обратной стороны к плате.
|
||||
|
||||
<img src="../assets/magnet_grip/magnet_arduino1.png" width=300 class="zoom border center">
|
||||
|
||||
Затем подключите сигнальный выход схемы к выбранному порту и припаяйте провод *Dupont*-мама к выбранному сигнальному порту на плате.
|
||||
|
||||
<img src="../assets/magnet_grip/magnet_arduino2.png" width=300 class="zoom border center">
|
||||
|
||||
## Установка электромагнитного захвата
|
||||
|
||||
1. В центральное отверстие на деке захвата установите электромагнит.
|
||||
2. Стяжкой притяните собранную схему к обратной стороне деки.
|
||||
3. Сигнальный вывод Arduino *D11* вставьте в один из выводов *AUX* на полетном контроллере.
|
||||
4. Вставьте силовой вывод электромагнитного захвата в JST 5В.
|
||||
@@ -1,18 +0,0 @@
|
||||
# Сборка и настройка механического захвата
|
||||
|
||||
1. Совместите главные пластины захвата.
|
||||
2. Установите сервопривод в соответствующий паз в центре пластин, таким образом, чтобы осевая шестерня находилась посередине захвата.
|
||||
3. Прижмите пластины захвата небольшими проставками.
|
||||
4. Установите деку захвата таким образом, чтобы крепежные отверстия в захвате совпадали с отверстиями для саморезов в пластине.
|
||||
5. Закрепите конструкцию захвата саморезами.
|
||||
6. Поверните шестерню сервопривода в крайнее положение.
|
||||
7. Установите на шестерню крестообразное крепление.
|
||||
8. Закрепите крестообразное крепление с помощью винта, прилагающегося к сервоприводу.
|
||||
9. Завяжите сервоприводную нить таким образом, чтобы оставалось 2-3 см запаса.
|
||||
10. Проденьте сервоприводную нить в соответствующие натягивающие пазы.
|
||||
11. Закрепите клешни захвата маленькими саморезами таким образом, чтобы их угол составлял 25°–40°.
|
||||
12. Установите собранный захват на коптер снизу.
|
||||
13. Протяните кабель сервопривода и вставьте его в выход *AUX* 1-2 на полетном контроллере.
|
||||
14. Для того, чтобы настроить управление захватом с пульта, зайдите во вкладку *Radio*.
|
||||
15. В параметре *AUX 1/2 Passthrough RC channel* укажите необходимый вам канал.
|
||||
16. Теперь при переключении тумблера соответствующего канала захват будет закрываться или открываться.
|
||||
@@ -80,31 +80,13 @@
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## Клевер 4.2 WorldSkills
|
||||
|
||||
### Фрезеровка
|
||||
|
||||
<table>
|
||||
<tr><th width=150>Изображение</th><th>Деталь</th><th width=1>Файл</th></tr>
|
||||
<tr>
|
||||
<td><img src="../assets/dxf/4.2/big_leg.png"></td>
|
||||
<td>
|
||||
<b>Ножка большая</b>.<br>
|
||||
Функция: Опорный элемент увеличенной высоты.<br>
|
||||
Материал: Монолитный поликарбонат 2мм.<br>
|
||||
Количество: 2 шт.
|
||||
</td>
|
||||
<td><a href="https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/4.2/big_leg.dxf"><code>big_leg.dxf</code></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## Клевер 4
|
||||
|
||||
### 3D печать
|
||||
|
||||
* **АКБ холдер** – [`battery_holder.stl`](https://github.com/CopterExpress/clover/raw/master/docs/assets/stl/battery_holder.stl)
|
||||
Функция: Фиксация АКБ и тестера напряжения.
|
||||
Материал: ABS пластик(или аналог). Заполнение не менее 50%.
|
||||
* **АКБ холдер** – [`battery_holder.stl`](https://github.com/CopterExpress/clover/raw/master/docs/assets/stl/battery_holder.stl)
|
||||
Функция: Фиксация АКБ и тестера напряжения.
|
||||
Материал: ABS пластик(или аналог). Заполнение не менее 50%.
|
||||
Количество: 1шт.
|
||||
|
||||
## Дополнительные модели для Клевер 4
|
||||
@@ -113,16 +95,16 @@
|
||||
|
||||
### Лазерная резка
|
||||
|
||||
* **Усиленная пластина - основа** – [`reinforced_plate_base.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/reinforced_plate_base.dxf)
|
||||
Функция: Крепление компьютеров формата Jetson Nano и виброразвязок на раме Клевер 4.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
* **Усиленная пластина - основа** – [`reinforced_plate_base.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/reinforced_plate_base.dxf)
|
||||
Функция: Крепление компьютеров формата Jetson Nano и виброразвязок на раме Клевер 4.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
Количество: 1шт.
|
||||
* **Ребро жёсткости усиленной пластины** – [`reinforced_plate_rib.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/reinforced_plate_rib.dxf)
|
||||
Функция: Увеличение жёсткости сборки.
|
||||
* **Ребро жёсткости усиленной пластины** – [`reinforced_plate_rib.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/reinforced_plate_rib.dxf)
|
||||
Функция: Увеличение жёсткости сборки.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
Количество: 2шт.
|
||||
* **Пластина для камеры** – [`reinforced_plate_camera_pad.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/reinforced_plate_camera_pad.dxf)
|
||||
Функция: Крепление камеры при использовании усиленной пластины.
|
||||
Функция: Крепление камеры при использовании усиленной пластины.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
Количество: 1шт.
|
||||
|
||||
@@ -130,65 +112,65 @@
|
||||
|
||||
### 3D печать
|
||||
|
||||
* **Кейс для камеры** – [`camera_case.stl`](https://github.com/CopterExpress/clover/raw/master/docs/assets/stl/camera_case.stl)
|
||||
Функция: Кейс для крепления модуля камеры.
|
||||
Материал: PLA/ABS(или аналог). Заполнение 30%.
|
||||
Количество: 1шт.
|
||||
**Крепежная пластина для камеры** – [`camera_mount.stl`](https://github.com/CopterExpress/clover/raw/master/docs/assets/stl/camera_mount.stl).
|
||||
Функция: Крепежный модуль, для монтажа кейса.
|
||||
Материал: PLA/ABS(или аналог). Заполнение 30%.
|
||||
Количество: 1шт.
|
||||
**Пластина для камеры** – [`camera_plate.stl`](https://github.com/CopterExpress/clover/raw/master/docs/assets/stl/camera_plate.stl).
|
||||
Функция: Пластина для закрепление модуля камеры в кейсе.
|
||||
Материал: PLA/ABS(или аналог). Заполнение 30%.
|
||||
* **Кейс для камеры** – [`camera_case.stl`](https://github.com/CopterExpress/clover/raw/master/docs/assets/stl/camera_case.stl)
|
||||
Функция: Кейс для крепления модуля камеры.
|
||||
Материал: PLA/ABS(или аналог). Заполнение 30%.
|
||||
Количество: 1шт.
|
||||
**Крепежная пластина для камеры** – [`camera_mount.stl`](https://github.com/CopterExpress/clover/raw/master/docs/assets/stl/camera_mount.stl).
|
||||
Функция: Крепежный модуль, для монтажа кейса.
|
||||
Материал: PLA/ABS(или аналог). Заполнение 30%.
|
||||
Количество: 1шт.
|
||||
**Пластина для камеры** – [`camera_plate.stl`](https://github.com/CopterExpress/clover/raw/master/docs/assets/stl/camera_plate.stl).
|
||||
Функция: Пластина для закрепление модуля камеры в кейсе.
|
||||
Материал: PLA/ABS(или аналог). Заполнение 30%.
|
||||
Количество: 1шт.
|
||||
* **Малая монтажная дека** – [`mounting_deck_small.stl`](https://github.com/CopterExpress/clover/raw/master/docs/assets/stl/mounting_deck_small.stl).
|
||||
Функция: Крепление камеры и полетного контроллера.
|
||||
Материал: PLA/ABS(или аналог). Заполнение 60%.
|
||||
Функция: Крепление камеры и полетного контроллера.
|
||||
Материал: PLA/ABS(или аналог). Заполнение 60%.
|
||||
Количество: 1шт.
|
||||
|
||||
### Лазерная резка
|
||||
|
||||
* **Ножка** (вариант с захватом) – [`big_leg.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/big_leg.dxf)
|
||||
Функция: Опорный элемент для ситуации установки захвата.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
* **Ножка** (вариант с захватом) – [`big_leg.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/big_leg.dxf)
|
||||
Функция: Опорный элемент для ситуации установки захвата.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
Количество: 4шт.
|
||||
* **Дека монтажная** – [`deck.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/deck.dxf)
|
||||
Функция: Крепление АКБ сопутствующей периферии.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
* **Дека монтажная** – [`deck.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/deck.dxf)
|
||||
Функция: Крепление АКБ сопутствующей периферии.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
Количество: 1шт.
|
||||
* **Дуга** – [`prop_guard.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/prop_guard.dxf)
|
||||
Функция: Элемент каркаса защиты.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
* **Дуга** – [`prop_guard.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/prop_guard.dxf)
|
||||
Функция: Элемент каркаса защиты.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
Количество: 16шт.
|
||||
* **Рогатка + ушко** – [`prop_guard_mount.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/prop_guard_mount.dxf)
|
||||
Функция: Крепление защиты пропеллеров к раме.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
* **Рогатка + ушко** – [`prop_guard_mount.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/prop_guard_mount.dxf)
|
||||
Функция: Крепление защиты пропеллеров к раме.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
Количество: 4шт.
|
||||
* **Проставка** – [`grab_spacer.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/grab_spacer.dxf).
|
||||
Функция: Монтаж сервопривода к деке захвата.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
* **Проставка** – [`grab_spacer.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/grab_spacer.dxf).
|
||||
Функция: Монтаж сервопривода к деке захвата.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
Количество: 1шт.
|
||||
* **Ножка** – [`leg.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/leg.dxf).
|
||||
Функция: Опорный элемент.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
* **Ножка** – [`leg.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/leg.dxf).
|
||||
Функция: Опорный элемент.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
Количество: 4шт.
|
||||
* **Обруч (LED)** – [`led_mount_plate.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/led_mount_plate.dxf).
|
||||
Функция: Крепление светодиодной ленты.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
* **Обруч (LED)** – [`led_mount_plate.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/led_mount_plate.dxf).
|
||||
Функция: Крепление светодиодной ленты.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
Количество: 4шт.
|
||||
* **Малая монтажная дека** – [`mounting_deck_small.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/mounting_deck_small.dxf).
|
||||
Функция: Крепление камеры и полетного контроллера.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
Функция: Крепление камеры и полетного контроллера.
|
||||
Материал: Монолитный поликарбонат 2мм.
|
||||
Количество: 1шт.
|
||||
|
||||
### Фрезеровка
|
||||
|
||||
* **Дека центральная** – [`central_plate.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/central_plate.dxf).
|
||||
Функция: Несущая часть коптера.
|
||||
Материал: Стеклотекстолит/карбон 2мм.
|
||||
* **Дека центральная** – [`central_plate.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/central_plate.dxf).
|
||||
Функция: Несущая часть коптера.
|
||||
Материал: Стеклотекстолит/карбон 2мм.
|
||||
Количество: 1шт.
|
||||
* **Луч** – [`arm.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/arm.dxf).
|
||||
Функция: Крепление моторов.
|
||||
Материал: Стеклотекстолит/карбон 2мм.
|
||||
* **Луч** – [`arm.dxf`](https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/arm.dxf).
|
||||
Функция: Крепление моторов.
|
||||
Материал: Стеклотекстолит/карбон 2мм.
|
||||
Количество: 4шт.
|
||||
|
||||