Compare commits
30 Commits
new-readme
...
roslaunch_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c254691f80 | ||
|
|
4fe6f24d16 | ||
|
|
cda7e62dbf | ||
|
|
fa9a1794f6 | ||
|
|
ebec850010 | ||
|
|
5a8db188f6 | ||
|
|
4376bbb723 | ||
|
|
1d694e1a15 | ||
|
|
54de7fca3a | ||
|
|
32f5584082 | ||
|
|
d7c0fb33ff | ||
|
|
d16e7bf155 | ||
|
|
26bd1e2d8f | ||
|
|
e12577cf0e | ||
|
|
12544a69af | ||
|
|
f471280bef | ||
|
|
2ff9887ac4 | ||
|
|
2ecfb28a5d | ||
|
|
091483226f | ||
|
|
af16414c77 | ||
|
|
696214e717 | ||
|
|
15fd156ce0 | ||
|
|
82bfb961a4 | ||
|
|
c50637c60f | ||
|
|
a26f0f41e7 | ||
|
|
28690491c2 | ||
|
|
ca1323faf3 | ||
|
|
b713b49f3f | ||
|
|
62a77519e6 | ||
|
|
e1bf8aade5 |
@@ -73,8 +73,11 @@ jobs:
|
||||
node_js:
|
||||
- "10"
|
||||
before_script:
|
||||
- sudo sh -c "echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections"
|
||||
- sudo apt update && sudo apt install -y calibre msttcorefonts
|
||||
- npm install gitbook-cli -g
|
||||
- npm install markdownlint-cli -g
|
||||
- npm install svgexport -g
|
||||
- gitbook -V
|
||||
- markdownlint -V
|
||||
script:
|
||||
@@ -83,6 +86,7 @@ jobs:
|
||||
- ./check_unused_assets.py
|
||||
- gitbook install
|
||||
- gitbook build
|
||||
- gitbook pdf ./ _book/clover.pdf
|
||||
deploy:
|
||||
provider: pages
|
||||
local_dir: _book
|
||||
|
||||
169
README.md
@@ -1,173 +1,40 @@
|
||||
# COEX Clover Drone Kit
|
||||
|
||||
<table align=center>
|
||||
<tr>
|
||||
<td align=center><a href="https://px4.io"><img src="docs/assets/px4.svg" height=60></a></td>
|
||||
<td align=center><a href="https://www.raspberrypi.org"><img src="docs/assets/rpi.svg" height=60></a></td>
|
||||
<td align=center><a href="https://www.ros.org"><img src="docs/assets/ros.svg" height=60></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<img src="docs/assets/clever4-front-white.png" align="right" width="400px" alt="Clover Drone">
|
||||
|
||||
This repository contains documentation, software platform source code and RPi image builder for COEX Clover drone kit.
|
||||
Clover is an educational programmable drone kit consisting of an unassembled quadcopter, open source software and documentation. The kit includes Pixracer-compatible autopilot running PX4 firmware, Raspberry Pi 4 as companion computer, a camera for computer vision navigation as well as additional sensors and peripheral devices.
|
||||
|
||||
<img src="docs/assets/clover42.png" align="right" width="400px" alt="COEX Clover">
|
||||
The main documentation is available [on Gitbook](https://clover.coex.tech/).
|
||||
|
||||
Clover is a [PX4](https://px4.io)- and [ROS](https://www.ros.org)-powered educational programmable drone kit consisting of an unassembled quadcopter, open source software and documentation. The kit includes Pixracer-compatible autopilot, Raspberry Pi 4 as companion computer, a camera for computer vision navigation as well as additional sensors and peripheral devices.
|
||||
Official website: <a href="https://coex.tech/clover">coex.tech/clover</a>.
|
||||
|
||||
The main documentation is available at [https://clover.coex.tech](https://clover.coex.tech/). Official website: <a href="https://coex.tech/clover">coex.tech/clover</a>.
|
||||
|
||||
## Autonomous flights video
|
||||
## Video compilation
|
||||
|
||||
[](https://youtu.be/u3omgsYC4Fk)
|
||||
|
||||
Clover drone is used on a wide range of educational events, including [Copter Hack](https://www.youtube.com/watch?v=xgXheg3TTs4), WorldSkills Drone Operation competition, [Autonomous Vehicles Track of NTI Olympics 2016–2020](https://www.youtube.com/watch?v=E1_ehvJRKxg), Quadro Hack 2019 (National University of Science and Technology MISiS), Russian Robot Olympiad (autonomous flights), and others.
|
||||
|
||||
## Features
|
||||
## Raspberry Pi image
|
||||
|
||||
### Prebuilt RPi image
|
||||
Preconfigured image for Raspberry Pi with installed and configured software, ready to fly, is available [in the Releases section](https://github.com/CopterExpress/clover/releases).
|
||||
|
||||
...
|
||||
[](https://travis-ci.org/CopterExpress/clover)
|
||||
|
||||
### Common robotics software
|
||||
Image features:
|
||||
|
||||
Prebuilt image for Raspberry Pi includes:
|
||||
* Raspbian Buster
|
||||
* [ROS Melodic](http://wiki.ros.org/melodic)
|
||||
* Configured networking
|
||||
* OpenCV
|
||||
* [`mavros`](http://wiki.ros.org/mavros)
|
||||
* Periphery drivers for ROS ([GPIO](https://clover.coex.tech/en/gpio.html), [LED strip](https://clover.coex.tech/en/leds.html), etc)
|
||||
* `aruco_pose` package for marker-assisted navigation
|
||||
* `clover` package for autonomous drone control
|
||||
|
||||
|Software|Description|
|
||||
|-|-|
|
||||
|Raspbian Buster||
|
||||
|[ROS Melodic](http://wiki.ros.org/melodic)|Common robotics framework|
|
||||
|[OpenCV](https://opencv.org)|Computer vision library|
|
||||
|[`mavros`](http://wiki.ros.org/mavros)|ROS package for communication with the flight controller|
|
||||
|Configured networking||
|
||||
|Periphery drivers for ROS ([GPIO](https://clover.coex.tech/en/gpio.html), [LED strip](https://clover.coex.tech/en/leds.html), etc)||
|
||||
|`clover`|package for autonomous drone control|
|
||||
|`aruco_pose`|Package for marker-assisted navigation|
|
||||
|
||||
### QGroundControl Wi-Fi bridge
|
||||
|
||||
...
|
||||
|
||||
### Easy autonomous flights programming
|
||||
|
||||
By using `clover` package, taking off, navigating and landing is just:
|
||||
|
||||
```python
|
||||
navigate(x=0, y=0, z=1, frame_id='body', auto_arm=True) # takeoff and hover 1 m above the ground
|
||||
```
|
||||
|
||||
```python
|
||||
navigate(x=1, y=0, z=0, frame_id='body') # fly forward 1 m
|
||||
```
|
||||
|
||||
```
|
||||
land()
|
||||
```
|
||||
|
||||
See [programming documentation](https://clover.coex.tech) for further information.
|
||||
|
||||
### Optical flow positioning
|
||||
|
||||
<img src="docs/assets/optical-flow.gif">
|
||||
|
||||
RPi based optical flow....
|
||||
|
||||
See [details](https://clover.coex.tech/en/optical_flow.html) in the documentation.
|
||||
|
||||
### ArUco markers recognizing
|
||||
|
||||
<img src="docs/assets/aruco.gif">
|
||||
|
||||
...
|
||||
|
||||
See [details](https://clover.coex.tech/en/aruco.html) in the documentation.
|
||||
|
||||
### Easy working with peripheral devices
|
||||
|
||||
Preinstalled package for the [LED strip](https://clover.coex.tech/en/leds.html) allows high-level control (such as rainbow effect or color fade) as well as individual LED low-level control:
|
||||
|
||||
```python
|
||||
set_effect(r=0, g=100, b=0) # fill strip with green color
|
||||
```
|
||||
|
||||
```python
|
||||
set_effect(effect='fade', r=0, g=0, b=255) # fade to blue color
|
||||
```
|
||||
|
||||
```python
|
||||
set_effect(effect='rainbow') # show rainbow
|
||||
```
|
||||
|
||||
Preinstalled [VL53L1X rangefinder driver](https://clover.coex.tech/en/laser.html) passes data to the flight controller automatically and allows the user to get its data:
|
||||
|
||||
```python
|
||||
data = rospy.wait_for_message('rangefinder/range', Range) # get data from the rangefinder
|
||||
```
|
||||
|
||||
Preinstalled fast Python [GPIO library](https://clover.coex.tech/en/gpio.html).
|
||||
|
||||
```python
|
||||
pi.write(11, 1) # set signal of pin 11 to high
|
||||
```
|
||||
|
||||
```python
|
||||
level = pi.read(12) # read the state of pin 12
|
||||
```
|
||||
|
||||
### Simulator
|
||||
|
||||
<img src="docs/assets/simulator.jpg" width=400 align=center>
|
||||
|
||||
Clover repository includes three simulation-related repository for Gazebo-based simulation.
|
||||
|
||||
Screenshot...
|
||||
|
||||
See details in the [documentation](https://clover.coex.tech/en/simulation.html). The simulation environment also available as a virtual machine image.
|
||||
|
||||
### Remote control apps
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<a href="https://itunes.apple.com/ru/app/clever-rc/id1396166572?mt=8">
|
||||
<img src="docs/assets/appstore.svg" height=40>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://play.google.com/store/apps/details?id=express.copter.cleverrc">
|
||||
<img src="docs/assets/google_play.png" height=40>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- <a href="https://itunes.apple.com/ru/app/clever-rc/id1396166572?mt=8"><img src="docs/assets/appstore.svg"></a><a href="https://play.google.com/store/apps/details?id=express.copter.cleverrc"><img src="docs/assets/google_play.png" width="15%"></a> -->
|
||||
|
||||
### Community
|
||||
|
||||
<img src="docs/assets/community/collage.jpg" width=400 align=center>
|
||||
|
||||
Clover is widely used ...
|
||||
|
||||
[Telegram chat](tg://resolve?domain=COEXHelpdesk)...
|
||||
|
||||
### Free and open source
|
||||
|
||||
The Clover software bundle is free, open source, and compatible with any PX4/ROS-based drone.
|
||||
|
||||
## Manual installation
|
||||
API description for autonomous flights is available [on GitBook](https://clover.coex.tech/en/simple_offboard.html).
|
||||
|
||||
For manual package installation and running see [`clover` package documentation](clover/README.md).
|
||||
|
||||
## PX4 Dev Summit 2019 talk
|
||||
|
||||
[](http://www.youtube.com/watch?v=CTG9E9PbJQ8)
|
||||
|
||||
## Other resources
|
||||
|
||||
* Official documentation: [https://clover.coex.tech](https://clover.coex.tech).
|
||||
* ROS Wiki page: [https://wiki.ros.org/Robots/clover](https://wiki.ros.org/Robots/clover).
|
||||
* ROS Robots page: [https://robots.ros.org/clover](https://robots.ros.org/clover).
|
||||
|
||||
## License
|
||||
|
||||
While the Clover platform source code is available under the MIT License, note, that the [documentation](docs/) is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
Generate map file for aruco_map nodelet.
|
||||
|
||||
Usage:
|
||||
genmap.py <length> <x> <y> <dist_x> <dist_y> [<first>] [--top-left | --bottom-left]
|
||||
genmap.py <length> <x> <y> <dist_x> <dist_y> [<first>] [<x0>] [<y0>] [--top-left | --bottom-left]
|
||||
genmap.py (-h | --help)
|
||||
|
||||
Options:
|
||||
@@ -23,6 +23,8 @@ Options:
|
||||
<dist_x> Distance between markers along X axis
|
||||
<dist_y> Distance between markers along Y axis
|
||||
<first> First marker ID [default: 0]
|
||||
<x0> X coordinate for the first marker [default: 0]
|
||||
<y0> Y coordinate for the first marker [default: 0]
|
||||
--top-left First marker is on top-left (default)
|
||||
--bottom-left First marker is on bottom-left
|
||||
|
||||
@@ -39,20 +41,22 @@ arguments = docopt(__doc__)
|
||||
|
||||
length = float(arguments['<length>'])
|
||||
first = int(arguments['<first>'] if arguments['<first>'] is not None else 0)
|
||||
x0 = float(arguments['<x0>'] if arguments['<x0>'] is not None else 0)
|
||||
y0 = float(arguments['<y0>'] if arguments['<y0>'] is not None else 0)
|
||||
markers_x = int(arguments['<x>'])
|
||||
markers_y = int(arguments['<y>'])
|
||||
dist_x = float(arguments['<dist_x>'])
|
||||
dist_y = float(arguments['<dist_y>'])
|
||||
bottom_left = arguments['--bottom-left']
|
||||
|
||||
max_y = (markers_y - 1) * dist_y
|
||||
max_y = y0 + (markers_y - 1) * dist_y
|
||||
|
||||
print('# id\tlength\tx\ty\tz\trot_z\trot_y\trot_x')
|
||||
for y in range(markers_y):
|
||||
for x in range(markers_x):
|
||||
pos_x = x * dist_x
|
||||
pos_y = y * dist_y
|
||||
pos_x = x0 + x * dist_x
|
||||
pos_y = y0 + y * dist_y
|
||||
if not bottom_left:
|
||||
pos_y = max_y - pos_y
|
||||
print('{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t'.format(first, length, pos_x, pos_y, 0, 0, 0, 0))
|
||||
print('{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}'.format(first, length, pos_x, pos_y, 0, 0, 0, 0))
|
||||
first += 1
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
<launch>
|
||||
<arg name="aruco_detect" default="true"/>
|
||||
<arg name="aruco_map" default="false"/>
|
||||
<arg name="aruco_vpe" default="false"/>
|
||||
<arg name="aruco_detect" default="false"/> <!-- markers recognition enabled -->
|
||||
<arg name="aruco_map" default="false"/> <!-- markers map recognition enabled -->
|
||||
<arg name="aruco_vpe" default="false"/> <!-- markers map positioning enabled -->
|
||||
<arg name="placement" default="floor"/> <!-- markers placement: floor, ceiling, unknown -->
|
||||
<arg name="length" default="0.33"/> <!-- not-in-map markers length, m -->
|
||||
<arg name="map" default="map.txt"/> <!-- markers map file name -->
|
||||
|
||||
<!-- For additional help go to https://clover.coex.tech/aruco -->
|
||||
|
||||
@@ -12,8 +15,9 @@
|
||||
<remap from="map_markers" to="aruco_map/markers" if="$(arg aruco_map)"/>
|
||||
<param name="estimate_poses" value="true"/>
|
||||
<param name="send_tf" value="true"/>
|
||||
<param name="known_tilt" value="map"/>
|
||||
<param name="length" value="0.33"/>
|
||||
<param name="known_tilt" value="map" if="$(eval placement == 'floor')"/>
|
||||
<param name="known_tilt" value="map_flipped" if="$(eval position == 'ceiling')"/>
|
||||
<param name="length" value="$(arg length)"/>
|
||||
<!-- aruco detector parameters -->
|
||||
<param name="cornerRefinementMethod" value="2"/> <!-- contour refinement -->
|
||||
<param name="minMarkerPerimeterRate" value="0.075"/> <!-- 0.075 for 320x240, 0.0375 for 640x480 -->
|
||||
@@ -24,8 +28,9 @@
|
||||
<remap from="image_raw" to="main_camera/image_raw"/>
|
||||
<remap from="camera_info" to="main_camera/camera_info"/>
|
||||
<remap from="markers" to="aruco_detect/markers"/>
|
||||
<param name="map" value="$(find aruco_pose)/map/map.txt"/>
|
||||
<param name="known_tilt" value="map"/>
|
||||
<param name="map" value="$(find aruco_pose)/map/$(arg map)"/>
|
||||
<param name="known_tilt" value="map" if="$(eval placement == 'floor')"/>
|
||||
<param name="known_tilt" value="map_flipped" if="$(eval placement == 'ceiling')"/>
|
||||
<param name="image_axis" value="true"/>
|
||||
<param name="frame_id" value="aruco_map_detected" if="$(arg aruco_vpe)"/>
|
||||
<param name="frame_id" value="aruco_map" unless="$(arg aruco_vpe)"/>
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
<launch>
|
||||
<arg name="fcu_conn" default="usb"/>
|
||||
<arg name="fcu_ip" default="127.0.0.1"/>
|
||||
<arg name="fcu_sys_id" default="1"/>
|
||||
<arg name="gcs_bridge" default="tcp"/>
|
||||
<arg name="web_video_server" default="true"/>
|
||||
<arg name="rosbridge" default="true"/>
|
||||
<arg name="main_camera" default="true"/>
|
||||
<arg name="optical_flow" default="true"/>
|
||||
<arg name="aruco" default="false"/>
|
||||
<arg name="rangefinder_vl53l1x" default="true"/>
|
||||
<arg name="led" default="true"/>
|
||||
<arg name="rc" default="true"/>
|
||||
<arg name="fcu_conn" default="usb"/> <!-- FCU connection type: usb, uart, tcp, udp, sitl -->
|
||||
<arg name="fcu_ip" default="127.0.0.1"/> <!-- FCU IP adddress (if using TCP/UDP) -->
|
||||
<arg name="fcu_sys_id" default="1"/> <!-- MAVLink system ID, noeditor -->
|
||||
<arg name="gcs_bridge" default="tcp"/> <!-- GCS bridge type: tcp, udp, udp-b, udp-pb -->
|
||||
<arg name="web_video_server" default="true"/> <!-- web video server enabled -->
|
||||
<arg name="rosbridge" default="true"/> <!-- rosbridge_suite enabled, noeditor -->
|
||||
<arg name="main_camera" default="true"/> <!-- main camera enabled -->
|
||||
<arg name="optical_flow" default="true"/> <!-- optical flow enabled -->
|
||||
<arg name="rangefinder_vl53l1x" default="true"/> <!-- VL53l1X rangefinder enabled -->
|
||||
<arg name="led" default="true"/> <!-- LED strip driver enabled -->
|
||||
<arg name="rc" default="true"/> <!-- support for mobile RC enabled -->
|
||||
<arg name="shell" default="true"/>
|
||||
|
||||
<!-- log formatting -->
|
||||
@@ -31,7 +30,7 @@
|
||||
</node>
|
||||
|
||||
<!-- aruco markers -->
|
||||
<include file="$(find clover)/launch/aruco.launch" if="$(arg aruco)"/>
|
||||
<include file="$(find clover)/launch/aruco.launch"/>
|
||||
|
||||
<!-- optical flow -->
|
||||
<node pkg="nodelet" type="nodelet" name="optical_flow" args="load clover/optical_flow nodelet_manager" if="$(arg optical_flow)" clear_params="true" output="screen">
|
||||
@@ -87,4 +86,11 @@
|
||||
<node pkg="roswww_static" name="roswww_static" type="main.py" clear_params="true">
|
||||
<param name="default_package" value="clover"/>
|
||||
</node>
|
||||
|
||||
<!-- roslaunch editor parameters -->
|
||||
<group ns="roslaunch_editor">
|
||||
<param name="items" type="yaml" value="[clover/clover.launch, clover/main_camera.launch, clover/aruco.launch, clover/led.launch]"/>
|
||||
<param name="apply_command" value="sudo systemctl restart clover"/>
|
||||
<param name="hide_uncommented" value="true"/>
|
||||
</group>
|
||||
</launch>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<launch>
|
||||
<arg name="ws281x" default="true"/>
|
||||
<arg name="led_effect" default="true"/>
|
||||
<arg name="led_notify" default="true"/>
|
||||
<arg name="ws281x" default="true"/> <!-- LED strip driver enabled -->
|
||||
<arg name="led_effect" default="true"/> <!-- LED effect API enabled -->
|
||||
<arg name="led_notify" default="all"/> <!-- LED strip notifications: all, battery, none -->
|
||||
|
||||
<!-- For additional help go to https://clover.coex.tech/led -->
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<param name="fade_period" value="0.5"/>
|
||||
<param name="rainbow_period" value="5"/>
|
||||
<!-- events effects table -->
|
||||
<rosparam param="notify" if="$(arg led_notify)">
|
||||
<rosparam param="notify" if="$(eval led_notify == 'all')">
|
||||
startup: { r: 255, g: 255, b: 255 }
|
||||
connected: { effect: rainbow }
|
||||
disconnected: { effect: blink, r: 255, g: 50, b: 50 }
|
||||
@@ -34,5 +34,8 @@
|
||||
low_battery: { threshold: 3.7, effect: blink_fast, r: 255, g: 0, b: 0 }
|
||||
error: { effect: flash, r: 255, g: 0, b: 0 }
|
||||
</rosparam>
|
||||
<rosparam param="notify" if="$(eval led_notify == 'battery')">
|
||||
low_battery: { threshold: 3.7, effect: blink_fast, r: 255, g: 0, b: 0 }
|
||||
</rosparam>
|
||||
</node>
|
||||
</launch>
|
||||
|
||||
BIN
docs/assets/5_D1_2.jpg
Normal file
|
After Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 2.1 MiB |
BIN
docs/assets/assembling_clever4_2/coex_pix.png
Normal file
|
After Width: | Height: | Size: 463 KiB |
BIN
docs/assets/assembling_clever4_2/esc_1.png
Normal file
|
After Width: | Height: | Size: 433 KiB |
BIN
docs/assets/assembling_clever4_2/esc_2.png
Normal file
|
After Width: | Height: | Size: 591 KiB |
BIN
docs/assets/assembling_clever4_2/fc_connection_1.png
Normal file
|
After Width: | Height: | Size: 350 KiB |
BIN
docs/assets/assembling_clever4_2/fc_connection_2.png
Normal file
|
After Width: | Height: | Size: 435 KiB |
BIN
docs/assets/assembling_clever4_2/fc_connection_3.png
Normal file
|
After Width: | Height: | Size: 468 KiB |
BIN
docs/assets/assembling_clever4_2/fc_connection_4.png
Normal file
|
After Width: | Height: | Size: 476 KiB |
BIN
docs/assets/assembling_clever4_2/fc_connection_5.png
Normal file
|
After Width: | Height: | Size: 464 KiB |
BIN
docs/assets/assembling_clever4_2/fc_connection_6.png
Normal file
|
After Width: | Height: | Size: 472 KiB |
BIN
docs/assets/assembling_clever4_2/final_1.png
Normal file
|
After Width: | Height: | Size: 426 KiB |
BIN
docs/assets/assembling_clever4_2/final_2.png
Normal file
|
After Width: | Height: | Size: 777 KiB |
BIN
docs/assets/assembling_clever4_2/final_3.png
Normal file
|
After Width: | Height: | Size: 455 KiB |
BIN
docs/assets/assembling_clever4_2/final_4.png
Normal file
|
After Width: | Height: | Size: 446 KiB |
BIN
docs/assets/assembling_clever4_2/frame_1.png
Normal file
|
After Width: | Height: | Size: 304 KiB |
BIN
docs/assets/assembling_clever4_2/frame_2.png
Normal file
|
After Width: | Height: | Size: 320 KiB |
BIN
docs/assets/assembling_clever4_2/frame_3.png
Normal file
|
After Width: | Height: | Size: 307 KiB |
BIN
docs/assets/assembling_clever4_2/frame_4.png
Normal file
|
After Width: | Height: | Size: 152 KiB |
BIN
docs/assets/assembling_clever4_2/frame_5.png
Normal file
|
After Width: | Height: | Size: 348 KiB |
BIN
docs/assets/assembling_clever4_2/frame_6.png
Normal file
|
After Width: | Height: | Size: 342 KiB |
BIN
docs/assets/assembling_clever4_2/frame_7.png
Normal file
|
After Width: | Height: | Size: 346 KiB |
BIN
docs/assets/assembling_clever4_2/guard_1.png
Normal file
|
After Width: | Height: | Size: 175 KiB |
BIN
docs/assets/assembling_clever4_2/guard_2.png
Normal file
|
After Width: | Height: | Size: 224 KiB |
BIN
docs/assets/assembling_clever4_2/guard_3.png
Normal file
|
After Width: | Height: | Size: 558 KiB |
BIN
docs/assets/assembling_clever4_2/guard_4.png
Normal file
|
After Width: | Height: | Size: 426 KiB |
BIN
docs/assets/assembling_clever4_2/led_1.png
Normal file
|
After Width: | Height: | Size: 95 KiB |
BIN
docs/assets/assembling_clever4_2/led_2.png
Normal file
|
After Width: | Height: | Size: 155 KiB |
BIN
docs/assets/assembling_clever4_2/led_3.png
Normal file
|
After Width: | Height: | Size: 600 KiB |
BIN
docs/assets/assembling_clever4_2/led_4.png
Normal file
|
After Width: | Height: | Size: 514 KiB |
BIN
docs/assets/assembling_clever4_2/led_5.png
Normal file
|
After Width: | Height: | Size: 651 KiB |
BIN
docs/assets/assembling_clever4_2/led_6.png
Normal file
|
After Width: | Height: | Size: 764 KiB |
BIN
docs/assets/assembling_clever4_2/led_7.png
Normal file
|
After Width: | Height: | Size: 612 KiB |
BIN
docs/assets/assembling_clever4_2/motor_1.png
Normal file
|
After Width: | Height: | Size: 290 KiB |
BIN
docs/assets/assembling_clever4_2/motor_2.png
Normal file
|
After Width: | Height: | Size: 263 KiB |
BIN
docs/assets/assembling_clever4_2/pdb_1.png
Normal file
|
After Width: | Height: | Size: 466 KiB |
BIN
docs/assets/assembling_clever4_2/pdb_2.png
Normal file
|
After Width: | Height: | Size: 433 KiB |
BIN
docs/assets/assembling_clever4_2/pixracer_1.png
Normal file
|
After Width: | Height: | Size: 460 KiB |
BIN
docs/assets/assembling_clever4_2/pixracer_2.png
Normal file
|
After Width: | Height: | Size: 462 KiB |
BIN
docs/assets/assembling_clever4_2/radio.png
Normal file
|
After Width: | Height: | Size: 632 KiB |
BIN
docs/assets/assembling_clever4_2/raspberry_1.png
Normal file
|
After Width: | Height: | Size: 129 KiB |
BIN
docs/assets/assembling_clever4_2/raspberry_10.png
Normal file
|
After Width: | Height: | Size: 498 KiB |
BIN
docs/assets/assembling_clever4_2/raspberry_11.png
Normal file
|
After Width: | Height: | Size: 514 KiB |
BIN
docs/assets/assembling_clever4_2/raspberry_2.png
Normal file
|
After Width: | Height: | Size: 387 KiB |
BIN
docs/assets/assembling_clever4_2/raspberry_3.png
Normal file
|
After Width: | Height: | Size: 391 KiB |
BIN
docs/assets/assembling_clever4_2/raspberry_5.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
docs/assets/assembling_clever4_2/raspberry_6.png
Normal file
|
After Width: | Height: | Size: 102 KiB |
BIN
docs/assets/assembling_clever4_2/raspberry_7.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
docs/assets/assembling_clever4_2/raspberry_8.png
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
docs/assets/assembling_clever4_2/raspberry_9.png
Normal file
|
After Width: | Height: | Size: 411 KiB |
BIN
docs/assets/assembling_clever4_2/type_size/aluminium_20.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
docs/assets/assembling_clever4_2/type_size/aluminium_40.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
docs/assets/assembling_clever4_2/type_size/dumper.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
docs/assets/assembling_clever4_2/type_size/htp-15.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
docs/assets/assembling_clever4_2/type_size/htp-20.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
docs/assets/assembling_clever4_2/type_size/htp-30.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
docs/assets/assembling_clever4_2/type_size/htp-40.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
docs/assets/assembling_clever4_2/type_size/hts-6.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
docs/assets/assembling_clever4_2/type_size/m2x5.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
docs/assets/assembling_clever4_2/type_size/m3x10.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
docs/assets/assembling_clever4_2/type_size/m3x5.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
docs/assets/assembling_clever4_2/type_size/m3x8.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
docs/assets/assembling_clever4_2/type_size/nut_metal.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
docs/assets/assembling_clever4_2/type_size/nut_nylon.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
docs/assets/assembling_clover4_1/assembly.jpg
Normal file
|
After Width: | Height: | Size: 692 KiB |
BIN
docs/assets/assembling_clover4_1/coex_pix.png
Normal file
|
After Width: | Height: | Size: 553 KiB |
BIN
docs/assets/assembling_clover4_1/esc_bec.jpg
Executable file
|
After Width: | Height: | Size: 452 KiB |
BIN
docs/assets/assembling_clover4_1/fc_connection_1.png
Normal file
|
After Width: | Height: | Size: 416 KiB |
BIN
docs/assets/assembling_clover4_1/fc_connection_2.png
Normal file
|
After Width: | Height: | Size: 518 KiB |
BIN
docs/assets/assembling_clover4_1/fc_connection_3.png
Normal file
|
After Width: | Height: | Size: 558 KiB |
BIN
docs/assets/assembling_clover4_1/fc_connection_4.png
Normal file
|
After Width: | Height: | Size: 521 KiB |
BIN
docs/assets/assembling_clover4_1/fcu_1.jpg
Executable file
|
After Width: | Height: | Size: 153 KiB |
BIN
docs/assets/assembling_clover4_1/guard_3.png
Normal file
|
After Width: | Height: | Size: 673 KiB |
BIN
docs/assets/assembling_clover4_1/led_1.png
Normal file
|
After Width: | Height: | Size: 124 KiB |
BIN
docs/assets/assembling_clover4_1/led_2.png
Normal file
|
After Width: | Height: | Size: 190 KiB |
BIN
docs/assets/assembling_clover4_1/led_5.png
Normal file
|
After Width: | Height: | Size: 372 KiB |
BIN
docs/assets/assembling_clover4_1/micro_USB.jpg
Executable file
|
After Width: | Height: | Size: 698 KiB |
BIN
docs/assets/assembling_clover4_1/motor_4.png
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
docs/assets/assembling_clover4_1/pdb.jpg
Executable file
|
After Width: | Height: | Size: 517 KiB |
BIN
docs/assets/assembling_clover4_1/pdb_1.png
Normal file
|
After Width: | Height: | Size: 154 KiB |
BIN
docs/assets/assembling_clover4_1/raspberry_0.jpg
Executable file
|
After Width: | Height: | Size: 594 KiB |
BIN
docs/assets/assembling_clover4_1/raspberry_1.png
Normal file
|
After Width: | Height: | Size: 152 KiB |
BIN
docs/assets/assembling_clover4_1/raspberry_10.png
Normal file
|
After Width: | Height: | Size: 610 KiB |
BIN
docs/assets/assembling_clover4_1/raspberry_11.png
Normal file
|
After Width: | Height: | Size: 629 KiB |
BIN
docs/assets/assembling_clover4_1/raspberry_2.jpg
Executable file
|
After Width: | Height: | Size: 592 KiB |
BIN
docs/assets/assembling_clover4_1/raspberry_3.png
Normal file
|
After Width: | Height: | Size: 472 KiB |
BIN
docs/assets/assembling_clover4_1/raspberry_5.png
Normal file
|
After Width: | Height: | Size: 101 KiB |
BIN
docs/assets/assembling_clover4_1/raspberry_6.png
Normal file
|
After Width: | Height: | Size: 123 KiB |
BIN
docs/assets/assembling_clover4_1/raspberry_7.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/assets/assembling_clover4_1/raspberry_8.png
Normal file
|
After Width: | Height: | Size: 133 KiB |
BIN
docs/assets/assembling_clover4_1/raspberry_9.png
Normal file
|
After Width: | Height: | Size: 495 KiB |
BIN
docs/assets/big_map.jpg
Normal file
|
After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 614 KiB |
|
Before Width: | Height: | Size: 2.2 MiB |