Compare commits

..

31 Commits

Author SHA1 Message Date
Oleg Kalachev
0666bfdf33 Shrink install lines 2021-06-09 13:43:58 +03:00
Oleg Kalachev
7c57581c33 blocks: install programs directory 2021-06-09 13:40:58 +03:00
Oleg Kalachev
881daaa389 aruco_pose: install library file 2021-06-09 13:34:09 +03:00
Oleg Kalachev
0dcf16de6b aruco_pose: install launch and map directories 2021-06-09 13:28:49 +03:00
Oleg Kalachev
8abb40249c Fix 2021-06-09 13:27:16 +03:00
Oleg Kalachev
3ab73edb74 clover: fix installation rc and led 2021-06-09 01:36:50 +03:00
Oleg Kalachev
aeb1c8ac11 builder: source catkin_ws/devel/setup.bash on build 2021-06-09 01:35:12 +03:00
Oleg Kalachev
2d3df6a94e clover: install nodes and libraries 2021-06-09 01:31:02 +03:00
Oleg Kalachev
0249d01ca7 clover: install launch files and examples 2021-06-09 01:13:15 +03:00
Oleg Kalachev
71100a9545 image: move examples to clover package 2021-06-08 23:06:58 +03:00
Oleg Kalachev
118b4573fe docs: add link to packages repo 2021-06-08 20:28:38 +03:00
Oleg Kalachev
f77843f4a5 Move ROS Noetic (#327)
* builder: Use 64-bit Raspberry Pi OS

* travis: Use 64-bit builder

* builder: Don't try to install Melodic packages on Noetic

* clover: Use package version 3, update dependencies

* travis: Enable Noetic build

* standalone_install: Auto-select Python, ROS distro

* builder: Use variable substitution for ROS_DISTRO

* builder: Add Noetic package definitions

* builder: Use variable substitution for validation

* aruco_pose, clover: Allow compiling against OpenCV 3 and 4

* builder: Add proper Noetic repository

* builder: Don't force Tornado version

Assume rosbridge_suite depends on the right one.

* builder: Install packages for Python 3

* builder/test: Use Python3 interpreter for ROS tests

TODO (?): add tests for Python2?

* builder: Use Python 3 syntax for Python 3 tests

* builder: Install rpi_ws281x for Python3

* standalone_install: Use proper Python for pytest

* builder: Install espeak for python3

* builder: Use proper path for roscore

* builder: Install rosdep, etc. for python3

* builder: Run Clever/Clover test with Python3

* builder: Use Python3 for Clever compat layer

* builder: Enable OpenCV 4.2 repository

* builder: Force versions for ROS packages that use OpenCV

Also, hold their versions so that they don't get updated for no reason.

* aruco_pose/draw: Replace OpenCV projection code with a rewrite

* builder: Don't try to install compressed_transport twice

* clover: Fix importing urllib for Python3

* aruco_pose, clover: Expose Python scripts through CMake

* clover/selfcheck: Be more python3-compatible

This is basically commit a01d199890 from buster-python3, not sure if it aged well.

* roswww_static: Add python script installation

* clover_blocks: Use Python3 syntax for exec

* aruco_pose: Remove unused code

* Melodic => Noetic in some docs

* docs: add 0.22 migration article

* docs: remove unneeded comment

* docs: python 3 updates

* docs: python 3 update in auto_setup article

* docs: add ROS Noetic transition note

* aruco.launch: add placement, length and map arguments

* genmap.py: add -o argument for output file name

* docs: use -o argument of genmap.py

* simple_offboard: correctly check manual control timeout, separate it from kill switch check

* blocks: force led_leds index to int

* docs: update and fix 0.22 migration articles

* blocks: fix set_leds with color-typed argument

* aruco_gen: Open file in binary mode for Python3 compatibility

* clover: Use proper variable in aruco.launch

* led: change default number of leds to 72

* aruco_pose: Make sure there are no undefined symbols

Also, compile in apriltag_quad_thresh.cpp - it contains some of the functions referenced
in aruco.cpp, which would otherwise be undefined.

* aruco_pose: Make vendored library compatible with older OpenCVs

* aruco_pose, clover: Reduce the amount of OpenCV libs requested

* aruco_pose, clover: Move subscriptions to the end of init

* aruco_pose: Don't expose vendored library symbols

* aruco_pose: Simplify dynamic parameter callback setting

* builder: Build with debug symbols

* clover: Attempt to respawn dying nodelets

* Change Raspberry Pi OS to latest armhf, use packages.coex.tech as a source

* Add CRYPTOGRAPHY_DONT_BUILD_RUST=1

* Fix Node.js installation

* image: use older CMake (3.13.4-1)
Fixing https://travis-ci.org/github/CopterExpress/clover/jobs/764367665#L6984

* image: update Raspberry Pi OS to 2021-03-04

* image: bring back moving ld.so.preload out of the way while building

* Fix pthreads ld error

* Try to fix pthreads ld error

* Another attempt to fix pthreads ld error

* Yet another attempt to fix pthreads ld error

* Try to fix

* Be verbose

* Temporarily disable rc and camera_markers building

* Fix standalone-install

* Revert "Temporarily disable rc and camera_markers building"

This reverts commit e119220e91.

* Try to fix

* Try to fix

* Revert "image: use older CMake (3.13.4-1)"

This reverts commit df28da0060.

* Revert "Revert "image: use older CMake (3.13.4-1)""

This reverts commit a28c774e8f.

* Verbosity

* Debugging

* More debugging

* Display all CMake variables

* Try to fix

* Another try to fix

* Revert "Another try to fix"

This reverts commit 5a4c3a0da7.

* Another try to fix

* And another

* And yet another

* Continue...

* Cleanup

* Sources lists cleanup

* More cleanup

* Restore .git directory in clover repo

* Fix building documentation

* Fix documentation building in image

* Trigger build to update ws281x package

* Test

* Disable unneeded hack

* Disable hack

* image: add cmake-modules package

* www: add viewing clover.err file from web interface

* Remove hacks

* Show nodelet version

* docs: add packages article

* image: add image-view package for recording video from topics

* Minor fix

* CI: add Docker authentication on image build

* CI: fix Bash syntax

* CI: fix authentication in Docker

* CI: move Melodic build and editorconfig-lint to GitHub Actions (#331)

* Create main.yml

* Update main.yml

* Disable native Melodic build in Travis

* Run editorconfig-lint in Actions

* Let wget be less verbose

* Test

* Test ok

* Disable editorconfig-lint in Travis

* docs: add links to hardware sources

* CI: move image building to GitHub actions (#335)

* Start working on building image in GitHub actions

* Trigger GitHub on push to any branch

* Fix TRAVIS_TAG

* Add compress image step

* Disable image build in Travis

* Add upload image step

* Fix compress image

* Fix

* Fix

* Minor fix

* Trigger build on tag

* Show images sizes not in human format

* Upload only built image

* Make prerelease

* Upload assets on release not on tags

* readme: change build badge to GitHub Actions

* readme: add support chat badge

* CI: move documentation building to GitHub Actions (#337)

* CI: change docs target branch to actions

* CI: change docs target branch to master

* CI: use gh-pages target branch for docs

* CI: split up to several workflows

* CI: remove .travis.yml

* CI: change apt to apt-get

* CI: push documentation site to the main repo

* builder: less verbosity

* CI: add new key for apt
Fixing https://github.com/CopterExpress/clover/runs/2700356960#step:3:74

* Add Noetic building to CI

* Add test for QR recognition

* Fix

* Move QR recognition test to a separate file

* Fix QR recognition code for Python 3

* Import SetLEDs, LEDStateArray, LEDState in tests

* Add more imports to tests
(from documentation)

* Fix permissions

* Fix standalone-install for Python 2

* Fix QR recognition test

* Don’t use ROS for QR recognition test

* docs: remove non-working example

* Make v4l2 device file an argument in main_camera.launch

* Wait for v4l2 device before launching the camera driver

* Use exec in waitfile

* Transfer main camera nodelet manager to main_camera.launch

* Update cv_camera version to 0.5.1

* docs: minor fix

* Revert cv_camera to 0.5.0

* Update Raspberry Pi OS to 2021-05-07

* docs: add link to the last ROS Melodic version.

Co-authored-by: Alexey Rogachevskiy <sfalexrog@gmail.com>
2021-06-08 20:13:46 +03:00
Oleg Kalachev
5f62a8639a docs: use -o argument of genmap.py 2021-06-08 19:28:17 +03:00
Oleg Kalachev
fa1db1d90b genmap.py: add -o argument for output file name 2021-06-08 19:28:09 +03:00
Alexey Rogachevskiy
1a2e87bb6a aruco_pose, clover: Move subscriptions to the end of init 2021-06-08 19:23:39 +03:00
Oleg Kalachev
7dbd983ec5 Update Raspberry Pi OS to 2021-05-07 2021-06-08 19:10:30 +03:00
Oleg Kalachev
d2d395f1fc docs: add copterhack-2022 logo 2021-06-08 14:27:37 +03:00
oponfil
ff93f79c0a docs: some changes to copterhack2022 (#345)
Have made some changes in text
2021-06-07 19:39:18 +03:00
SeliverstovaE
5deb09eb45 docs: changed the dates for copterhack2022 (#344) 2021-06-07 19:38:39 +03:00
SeliverstovaE
70b8be5c5d docs: copterhack 2022 (en) (#343)
* Create copterhack2022.md

* Fixes

Co-authored-by: Oleg Kalachev <okalachev@gmail.com>
2021-06-07 12:32:32 +03:00
Oleg Kalachev
2a08e20b47 docs: minor fix 2021-06-07 12:17:24 +03:00
SeliverstovaE
3328d8f4ac docs: update copterhack 2022 (#341) 2021-06-05 16:56:00 +03:00
oponfil
f7fb814894 docs: update copterhack 2022(#340)
Fixed some text phrases
2021-06-05 16:54:54 +03:00
SeliverstovaE
3a3b0bbd80 docs: Copterhack2022 (ru) (#336)
* Add new article for Clover

* Edit article

* Optimize images

* Remove unused asset

Co-authored-by: Oleg Kalachev <okalachev@gmail.com>
2021-06-05 12:06:42 +03:00
Oleg Kalachev
ca095f3f16 docs: update wi-fi screenshots 2021-06-04 09:14:56 +03:00
Oleg Kalachev
baf2467939 docs: minor fix 2021-06-03 17:53:55 +03:00
Oleg Kalachev
abba3bf876 docs: change some redirects to English version
Since GitHub pages considers /<page> as /<page>.html now
2021-06-03 11:38:19 +03:00
Oleg Kalachev
346373ed23 Use exec in waitfile 2021-06-03 09:58:41 +03:00
Oleg Kalachev
bb996056c9 docs: remove non-working example 2021-06-02 08:03:51 +03:00
Oleg Kalachev
0e0b1cdc31 docs: minor fix 2021-06-01 06:00:12 +03:00
1Den4ik1
eceaa0ec91 docs: add magnetic grip load article (ru) (#338)
Co-authored-by: Oleg Kalachev <okalachev@gmail.com>
2021-06-01 05:56:25 +03:00
43 changed files with 427 additions and 25 deletions

View File

@@ -110,7 +110,8 @@
"Li-ion",
"Nvidia",
"VirtualBox",
"VMware"
"VMware",
"DuoCam"
],
"code_blocks": false
},

View File

@@ -202,11 +202,11 @@ set_property(TARGET aruco_pose
# )
## Mark executables and/or libraries for installation
# install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node
# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
# )
install(TARGETS ${PROJECT_NAME}
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
## Mark cpp header files for installation
# install(DIRECTORY include/${PROJECT_NAME}/
@@ -226,6 +226,10 @@ catkin_install_python(PROGRAMS src/genmap.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
install(DIRECTORY launch DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
install(DIRECTORY map DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
#############
## Testing ##
#############

View File

@@ -105,8 +105,6 @@ ${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/butterf
${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/monkey.service' '/lib/systemd/system/'
# software install
${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} exec ${SCRIPTS_DIR}'/image-software.sh'
# examples
${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/examples' '/home/pi/' # TODO: symlink?
# network setup
${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} exec ${SCRIPTS_DIR}'/image-network.sh'
# avahi setup

View File

@@ -90,7 +90,7 @@ echo_stamp "Installing OpenCV 4.2-compatible ROS packages"
apt install -y --no-install-recommends \
ros-${ROS_DISTRO}-compressed-image-transport=1.14.0-0buster \
ros-${ROS_DISTRO}-cv-bridge=1.15.0-0buster \
ros-${ROS_DISTRO}-cv-camera=0.5.1-0buster \
ros-${ROS_DISTRO}-cv-camera=0.5.0-0buster \
ros-${ROS_DISTRO}-image-publisher=1.15.3-0buster \
ros-${ROS_DISTRO}-web-video-server=0.2.1-0buster
apt-mark hold \
@@ -113,6 +113,7 @@ my_travis_retry pip3 install -r /home/pi/catkin_ws/src/clover/clover/requirement
source /opt/ros/${ROS_DISTRO}/setup.bash
# Don't build simulation plugins for actual drone
catkin_make -j2 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCATKIN_BLACKLIST_PACKAGES=clover_gazebo_plugins
source devel/setup.bash
echo_stamp "Install clever package (for backwards compatibility)"
cd /home/pi/catkin_ws/src/clover/builder/assets/clever
@@ -151,7 +152,8 @@ catkin_make run_tests #&& catkin_test_results
echo_stamp "Change permissions for catkin_ws"
chown -Rf pi:pi /home/pi/catkin_ws
echo_stamp "Change permissions for examples"
echo_stamp "Make \$HOME/examples symlink"
ln -s "$(catkin_find clover examples --first-only)" /home/pi
chown -Rf pi:pi /home/pi/examples
echo_stamp "Setup ROS environment"

View File

@@ -241,12 +241,12 @@ target_link_libraries(${PROJECT_NAME}
# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
# )
## Mark executables and/or libraries for installation
# install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node
# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
# )
# Mark executables and/or libraries for installation
install(TARGETS simple_offboard clover_rc camera_markers vpe_publisher clover_led shell clover
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
## Mark cpp header files for installation
# install(DIRECTORY include/${PROJECT_NAME}/
@@ -266,6 +266,12 @@ catkin_install_python(PROGRAMS src/selfcheck.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
install(DIRECTORY launch DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
install(DIRECTORY examples DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
# TODO: install www
# Only install udev rules when building a Debian package
# FIXME: Other operating systems may have other prefixes
string(FIND ${CMAKE_INSTALL_PREFIX} "/opt/ros" _PREFIX_INDEX)

View File

@@ -73,6 +73,11 @@ catkin_install_python(PROGRAMS src/clover_blocks
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
# TODO: store programs in home directory?
install(DIRECTORY programs
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)
#############
## Testing ##
#############

View File

@@ -146,6 +146,7 @@ def stop(req):
return {'success': True}
# TODO: find dir in installed package
programs_path = rospy.get_param('~programs_dir', os.path.dirname(os.path.abspath(__file__)) + '/../programs')

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Слой_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 566.93 226.77" style="enable-background:new 0 0 566.93 226.77;" xml:space="preserve">
<style type="text/css">
.st0{fill:#3679BC;}
.st1{fill:#27B4AA;}
</style>
<g>
<polygon class="st0" points="356.5,37.35 287.97,37.35 287.97,56.03 312.9,56.03 312.9,105.92 331.58,105.92 331.58,56.03
356.5,56.03 "/>
<polygon class="st0" points="434.54,56.03 434.54,37.35 366,37.35 366,37.39 365.97,37.39 365.97,105.92 366,105.92 384.65,105.92
434.54,105.92 434.54,87.24 384.65,87.24 384.65,80.99 415.89,80.99 415.89,62.31 384.65,62.31 384.65,56.03 "/>
<polygon class="st0" points="356.55,134.06 356.52,120.82 343.35,120.86 318.39,145.81 306.6,145.81 306.6,120.86 287.92,120.86
287.92,189.39 306.6,189.39 306.6,164.49 318.45,164.49 343.35,189.39 356.52,189.42 356.55,176.18 335.5,155.12 "/>
<path class="st0" d="M88.62,56.3h34.3V37.35h-34.3c-18.94,0-34.3,15.36-34.3,34.3s15.36,34.3,34.3,34.3h34.3V87h-34.3
c-8.48,0-15.35-6.87-15.35-15.35C73.28,63.17,80.15,56.3,88.62,56.3z"/>
<path class="st0" d="M181.76,155.12v34.3h18.95v-34.3c0-18.94-15.36-34.3-34.3-34.3s-34.3,15.36-34.3,34.3v34.3h18.95v-34.3
c0-8.48,6.87-15.35,15.35-15.35C174.89,139.78,181.76,146.65,181.76,155.12z"/>
<path class="st0" d="M244.21,139.78h34.3v-18.95h-34.3c-18.94,0-34.3,15.36-34.3,34.3s15.36,34.3,34.3,34.3h34.3v-18.95h-34.3
c-8.48,0-15.35-6.87-15.35-15.35C228.86,146.65,235.73,139.78,244.21,139.78z"/>
<polygon class="st0" points="104.15,120.82 104.15,145.55 73.46,145.55 73.46,120.82 54.32,120.82 54.32,189.42 73.46,189.42
73.46,164.69 104.15,164.69 104.15,189.42 122.92,189.42 122.92,120.82 "/>
<path class="st1" d="M453.24,145.34c-0.23-13.68-11.67-24.52-25.35-24.52h-24.53v18.68h24.77c3.37,0,6.27,2.59,6.43,5.96
c0.17,3.6-2.7,6.56-6.25,6.56h-6.26c-10.32,0-18.68,8.36-18.68,18.68v0v18.65h49.88v-18.65H428.3
C442.22,170.71,453.47,159.31,453.24,145.34z"/>
<path class="st1" d="M512.59,145.34c-0.23-13.68-11.67-24.52-25.35-24.52h-24.53v18.68h24.77c3.37,0,6.27,2.59,6.43,5.96
c0.17,3.6-2.7,6.56-6.25,6.56h-6.26c-10.32,0-18.68,8.36-18.68,18.68v0v18.65h49.88v-18.65h-24.94
C501.57,170.71,512.82,159.31,512.59,145.34z"/>
<path class="st0" d="M200.29,66.27c-2.97-18.71-20.55-31.47-39.25-28.49c-18.71,2.97-31.47,20.55-28.49,39.25
c2.97,18.71,20.55,31.47,39.25,28.49C190.5,102.56,203.26,84.98,200.29,66.27z M166.42,87c-8.48,0-15.35-6.87-15.35-15.35
c0-8.48,6.87-15.35,15.35-15.35c8.48,0,15.35,6.87,15.35,15.35C181.76,80.13,174.89,87,166.42,87z"/>
<rect x="375.22" y="120.82" transform="matrix(-1 -1.224647e-16 1.224647e-16 -1 769.1138 266.6382)" class="st1" width="18.68" height="24.99"/>
<path class="st0" d="M253.7,37.39v-0.04h-33.19v0.04h-10.61v68.53h18.68V87h25.11c13.7,0,24.81-11.11,24.81-24.81
C278.51,48.49,267.4,37.39,253.7,37.39z M250.69,71.46h-22.1V53.17h22.1v0.01c5.05,0,9.14,4.09,9.14,9.14
C259.83,67.37,255.74,71.46,250.69,71.46z"/>
<path class="st0" d="M512.61,62.19c0-13.7-11.11-24.81-24.81-24.81v-0.04h-33.19v0.01h-10.61v68.6h18.68V87h17.79l18.92,18.92
l13.17,0.03l0.04-13.24l-10.36-10.36C508.52,77.85,512.61,70.5,512.61,62.19z M484.79,71.46
C484.79,71.46,484.79,71.46,484.79,71.46h-22.1V53.17h22.1v0.01c0,0,0,0,0,0c5.05,0,9.14,4.09,9.14,9.14
C493.92,67.37,489.83,71.46,484.79,71.46z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 775 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 KiB

After

Width:  |  Height:  |  Size: 126 KiB

BIN
docs/assets/wifi-pass.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

BIN
docs/assets/wifi-ssid.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@@ -95,6 +95,7 @@
* [Migration to v0.20](migrate20.md)
* [Migration to v0.22](migrate22.md)
* [Events](events.md)
* [CopterHack-2022](copterhack2022.md)
* [CopterHack-2021](copterhack2021.md)
* [CopterHack-2019](copterhack2019.md)
* [CopterHack-2018](copterhack2018.md)

136
docs/en/copterhack2022.md Normal file
View File

@@ -0,0 +1,136 @@
# CopterHack 2022
<img src="../assets/copterhack2022.svg" width=300 align=right>
CopterHack 2022 is an international open-source projects competition on aerial robotics. The mainstream of the CopterHack 2022 is team competition with a free choice of the project topic. In addition, this year we organized a second category, company cases. The competitions main language is English.
You can see the articles of the CopterHack 2021 finalist teams by the link [CopterHack 2021](copterhack2021.md).
The proposed projects have to be open-source and be compatible with the Clover quadcopter platform. Teams will work on their projects throughout the competition, bringing them closer to the state of the finished product. Industry experts will assist the participants through lectures and regular feedback.
## Company case competition
Teams are welcome to dive into the development of the following company cases:
1. To make a modification of the PX4 firmware version v1.12.0 for Clover.
2. To develop the PX4v4 flight controller board with the dimensions 55x40 mm and the compatibility of a Raspberry Pi CM 4 installation.
The list of cases will be further expand.
## CopterHack 2022 stages
The qualifying and project development stages are to be held in an online format. The final round is to be made in a hybrid mode (offline + online). The competition involves monthly updates from the teams with regular feedback from the Jury. All teams have to prepare a final video and presentation about the project's results to participate in the final stage.
1. Qualifying stage. Applications are wilcome due October 31, 2021.
2. Projects development stage. This stage includes monthly updates and mentorship of participants, starts at June 10, 2021, and continuous until February 28, 2022.
3. All participating teams should shoot the final video to proceed to the final round. Final videos have to be submitted from March 1 up to March 31, 2022.
4. The final round. Projects presentation at April 910, 2022.
## Conditions and criteria for evaluating the final result
General project requirements:
1. Open-source.
2. Compatibility with the Clover platform.
Criteria for judging the jury at the final:
1. Readiness and the article (max. 10 points): the degree of readiness of the project; an accessible and understandable description of the project in the article; a link to the code with comments, diagrams, drawings. According to the article, it should be possible to reproduce the project and get the result.
2. Amount of work has been done (max. 6 points): the amount of work has been done by the team in the framework of CopterHack 2022, its complexity, and the technical level.
3. Usefulness for Clover (max. 6 points): the relevance of the Clover and PX4 platform application in practice, the potential level of demand from other Clover users.
4. Presentation at the final (max. 3 points): quality and entertainment of the final presentation; completeness of the project coverage; demonstration; answers to the jury's questions.
## Prize fund
The mainstream of the CopterHack 2022 involves the following prizes from COEX based on the results of the jury's evaluation of projects at the final round:
* 1st place: $3000 (USD).
* 2nd place: $2000 (USD).
* 3rd place: $1000 (USD).
* 4th place: $500 (USD).
* 5th place: $500 (USD).
The competition partners can reward the teams according to additional criteria identified due to the evaluation of projects during the final round.
The company case competition provides a prize of $2500 (USD) from COEX for further project development for the best teams in each cases.
## How to apply?
> **Note** To apply, you should have an account on [GitHub](https://github.com).
Prepare your application and send it as a Draft Pull Request to [Clover repository](https://github.com/CopterExpress/clover)
1. Fork the Clover repository:
<img src="../assets/github_application/github-fork.png" alt="GitHub Fork">
2. On the web page of your fork, go to the `docs/en ' section and create a new file in the [Markdown] format(http://ru.wikipedia.org/wiki/Markdown):
<img src="../assets/github_application/create_new_file.png" alt="GitHub Create New File">
3. Enter the title of your article. For example, `new-article.md`
<img src="../assets/github_application/new_article.png" alt="GitHub New Article">
4. Fill out your application by the recommended template:
```markdown
# Project name
[CopterHack-2022](copterhack2022.md), team **Team name**.
## Team information
The list of team members:
(Describe the team: full name, contacts (e-mail/Telegram username), role in the team).
* Alexander Sokolov, @aleksandrsokolov111, teamlead;
* Elena Smirnova, @elenasmirnova111, Full-stack developer.
## Project description
### Project idea
Briefly describe the idea and stage of the project.
### The potential outcomes
Describe how you see the project result.
### Using Clover platform
Describe how the Clover platform will be used in your project.
#### Additional information at the request of participants
For example, information about the team's experience working on projects, attach a link to articles, videos.
```
5. Go to the bottom of the page and create a new branch with the title of your article:
<img src="../assets/github_application/propose_new_file.png" alt="GitHub Propose New File">
6. If necessary, place additional visual assets in the `docs/assets` folder and add them to your article.
7. Send a Draft Pull Request from your branch to Clover:
<img src="../assets/github_application/github-pull-request-create.png" alt="GitHub Create Pull">
8. In the Pull Request comments, you will be given feedback on the application. On the contest page, in the section "Projects of the contest participants", a link to your application in your fork will be published.
9. During the contest, you will work on this document, bringing it closer to the state of the finished article. By the end of the contest, you will publish your article, which will be the result of your work in CopterHack 2022.
As soon as the link to the application is added to this page in the section "Projects of the contest's participants", your team has become an official participant of the CopterHack 2022!
Contest participants will be added to the special Telegram group, where one can send the project's updates and get feedback from the Jury. For the all participating teams, COEX will provide a 50% discount on the Clover drone kit.
> **Info** There are no restrictions on the age, education, and number of people in the team.
## Projects of the contest's participants
Applications will be published as they will become available.
---
For all questions: [CopterHack 2022](https://t.me/CopterHack).

View File

@@ -4,6 +4,8 @@ The RPi image for Clover contains all the necessary software for working with Cl
## Usage
> **Info** Starting from version v0.22, the image is based on ROS Noetic and using Python 3. If you want to use ROS Melodic and Python 2, use version [v0.21.2](https://github.com/CopterExpress/clover/releases/download/v0.21.2/clover_v0.21.2.img.zip).
1. Download the latest stable release of the image **<a class="latest-image" href="https://github.com/CopterExpress/clover/releases">download</a>**.
2. Download and install [Etcher](https://www.balena.io/etcher/), the software for flashing images (available for Windows/Linux/macOS).
3. Put the MicroSD-card into your computer (use an adapter if necessary).

View File

@@ -8,7 +8,7 @@ The repository is already addedd in [RPi image](image.md) and may be used for si
## Packages publishing
You can make a Pull Request in a git repository with packages, adding or updating your package (a file with `.deb` extension), that relates to Clover or ROS. After merging your package will be available for installation with `apt` utility:
You can make a Pull Request in a [git repository with packages](https://github.com/CopterExpress/packages), adding or updating your package (a file with `.deb` extension), that relates to Clover or ROS. After merging your package will be available for installation with `apt` utility:
```bash
sudo apt install ros-noetic-clover-some-feature

View File

@@ -13,7 +13,7 @@ ssh pi@192.168.11.1
Password: `raspberry`.
For SSH access from Windows, you may use [PuTTY] (https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html).
For SSH access from Windows, you may use [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html).
You can also gain SSH access from your smart-phone using the [Termius](https://www.termius.com) app.

View File

@@ -7,7 +7,10 @@ Connecting to Clover via Wi-Fi
Connect to this Wi-Fi using the password `cloverwifi`.
<img src="../assets/ssid.png" width="300px" alt="Wi-Fi SSID">
<div class="image-group">
<img src="../assets/wifi-ssid.png" width=300 class="zoom">
<img src="../assets/wifi-pass.png" width=300 class="zoom">
</div>
To edit Wi-Fi settings, or to obtain more detailed information about the network device on Raspberry Pi, read this [article](network.md).

View File

@@ -86,6 +86,7 @@
* [Установка FPV (Клевер 3)](fpv.md)
* [Магнитный захват](magnetic_grip.md)
* [Механический захват](mechanical_grip.md)
* [Груз для магнитного захвата](magnetic_grip_load.md)
* [Сборка шаровой защиты](sphere_guard.md)
* [Управление в режиме тренера](trainer_mode.md)
* [Техника лужения](tinning.md)
@@ -99,9 +100,10 @@
* [Репозиторий пакетов COEX](packages.md)
* [Переход на версию 0.20](migrate20.md)
* [Переход на версию 0.22](migrate22.md)
* [COEX Duocam](duocam.md)
* [COEX DuoCam](duocam.md)
* [Виртуальная MAVLink-камера](duocam_mavlink.md)
* [Мероприятия](events.md)
* [CopterHack-2022](copterhack2022.md)
* [CopterHack-2021](copterhack2021.md)
* [CopterHack-2019](copterhack2019.md)
* [Олимпиада НТИ 2019](nti2019.md)

136
docs/ru/copterhack2022.md Normal file
View File

@@ -0,0 +1,136 @@
# CopterHack 2022
<img src="../assets/copterhack2022.svg" width=300 align=right>
CopterHack 2022 — это международный конкурс по разработке проектов по летающей робототехнике с открытым исходным кодом. CopterHack 2022 имеет основное направление со свободным выбором темы проекта, а также отдельную номинацию "кейсы компании". Основным языком конкурса является английский.
Ознакомиться со статьями команд-финалистов предыдущего года можно в статье о [CopterHack 2021](copterhack2021.md).
На конкурс принимаются проекты с открытым исходным кодом и совместимые с платформой квадрокоптера "Клевер". На протяжении конкурса команды работают на собственными идеями и разработками, приближая их к состоянию готового продукта. В этом участникам помогают эксперты отрасли через лекции и регулярную обратную связь.
## Направление "кейс компании"
Команды приглашаются принять участие в работе над следующими кейсами компании:
1. Модификация прошивки PX4 версии v1.12.0 под Клевер.
2. Разработка платы полетного контроллера PX4 v.4 на основе COEX Pix размером 55*40 мм и возможностью установки Raspberry Pi CM4.
Список кейсов может быть расширен.
## Этапы CopterHack 2022
Отборочный и проектный этапы конкурса проходят в онлайн-формате, формат проведения финала гибридный (оффлайн + онлайн). Конкурс подразумевает ежемесячные апдейты от команд с получением регулярной обратной связи от жюри. Для участия в заключительном этапе необходимо подготовить финальное видео и презентацию о результатах проекта.
1. Отборочный этап. Подача заявок (10 июня — 31 октября 2021).
2. Проектный этап. Менторство проектов (10 июня 2021 — 28 февраля 2022).
3. Подготовка финального видео (1 — 31 марта 2022).
4. Заключительный этап. Финальная защита проектов на английском языке (9 — 10 апреля 2022).
## Условия и критерии оценки
Условия, предъявляемые к проектам:
1. Открытый исходный код/модели/схемы/чертежи.
2. Совместимость с платформой "Клевер".
Критерии оценивания жюри в финале:
1. Готовность и статья (макс. 10 баллов): степень готовности проекта; доступное и понятное описание проекта в статье; прикреплены код с комментариями, схемы, чертежи. По статье должно быть возможно повторить проект, получить результат.
2. Объем проделанной работы (макс. 6 баллов): объем проделанной командой работы в рамках CopterHack 2022, ее сложность и технический уровень.
3. Полезность для Клевера (макс. 6 баллов): актуальность применения на практике в платформе Клевер и PX4, потенциальный уровень спроса на разработку со стороны других пользователей Клевера.
4. Презентация на финале (макс. 3 балла): качество и зрелищность финальной презентации; полнота освещения проекта; демонстрация; ответы на вопросы жюри.
## Призовой фонд
Основное направление конкурса предполагает следующие призы от компании COEX по результатам оценивания жюри на финале:
* I место: $3000.
* II место: $2000.
* III место: $1000.
* IV место: $500.
* V место: $500.
Партнеры конкурса могут поощрить команды по дополнительным критериям, выявленным в результате оценки проектов в ходе финала.
Номинация "кейс компании" предоставляет приз от компании COEX для дальнейшего развития проекта в размере $2500 для команды с лучшим результатом по каждому из кейсов.
## Как подать заявку?
> **Note** Для подачи заявки необходимо иметь аккаунт на [GitHub](https://github.com).
Подготовьте вашу заявку и пришлите ее в виде Draft Pull Request в [репозиторий Клевера](https://github.com/CopterExpress/clover).
1. Сделайте форк репозитория Клевера:
<img src="../assets/github_application/github-fork.png" alt="GitHub Fork">
2. На web странице вашего форка зайдите в раздел `docs/ru` и создайте новый файл в формате [Markdown](https://ru.wikipedia.org/wiki/Markdown):
<img src="../assets/github_application/create_new_file.png" alt="GitHub Create New File">
3. Введите название вашей статьи. Например, `new-article.md`
<img src="../assets/github_application/new_article.png" alt="GitHub New Article">
4. Оформите вашу заявку в соответствии с рекомендуемым шаблоном:
```markdown
# Название проекта
[CopterHack-2022](copterhack2022.md), команда **Название команды**.
## Информация о команде
Состав команды:
(Опишите состав команды: имя и фамилия, контакты (e-mail/имя пользователя в Telegram), роль в команде).
* Александр Соколов, @aleksandrsokolov111, тимлид;
* Елена Смирнова, @elenasmirnova111, Full-stack разработчик.
## Описание проекта
### Идея проекта
Опишите кратко идею и стадию проекта.
### Планируемые результаты
Опишите как вы видите результат проекта.
### Использование платформы "Клевер"
Опишите как в вашем проекте будет использоваться платформа "Клевер".
#### Дополнительная информация по желанию участников
Например, информация об опыте работы команды над проектами, прикрепить ссылку на статьи, видео.
```
5. Перейдите вниз страницы и создайте новую ветку с названием вашей статьи:
<img src="../assets/github_application/propose_new_file.png" alt="GitHub Propose New File">
6. При необходимости поместите дополнительные визуальные материалы в папку `docs/assets` и оформите на них ссылки в вашей статье.
7. Сделайте Draft Pull Request вашей ветки в master Клевера:
<img src="../assets/github_application/github-pull-request-create.png" alt="GitHub Create Pull">
8. В комментариях Pull Request вам будет дана обратная связь по заявке. На страничке конкурса в разделе "Проекты участников конкурса" будет опубликована ссылка на вашу заявку в вашем форке.
9. На протяжении конкурса вы будете работать над этим документом, приближая его к состоянию статьи. В документе будет видна история разработки и ежемесячные апдейты. К финалу конкурса вы сможете опубликовать вашу статью, это и будет результат вашей работы в CopterHack.
Как только ссылка на заявку будет добавлена на эту страничку в раздел "Проекты участников конкурса", ваша команда стала официальным участником CopterHack 2022!
Участники конкурса будут добавлены в Telegram-группу, куда можно отправлять первый апдейт и получить обратную связь от Жюри. Для команд-участников предусмотрена скидка 50% на конструктор программируемого квадрокоптера "Клевер".
> **Info** Ограничения по возрасту, образованию и количеству человек в команде отсутствуют.
## Проекты участников конкурса
Заявки будут публиковаться по мере поступления.
---
По всем вопросам: [CopterHack 2022](https://t.me/CopterHack).

View File

@@ -10,8 +10,12 @@
> **Warning** Протокол взаимодействия находится в процессе модификации. В новых версиях планируется избавиться от прямой отправки значений параметров и их количества от `duocam-mavlink` к QGroundControl.
<!-- markdownlint-disable MD044 -->
`duocam-camera` и `duocam-mavlink` обмениваются данными с помощью очередей POSIX. Имена очередей и формат сообщений доступен в репозитории [duocam-common](https://github.com/CopterExpress/duocam-common).
<!-- markdownlint-enable MD044 -->
Для объединения блоков, взаимодействующих через 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.

View File

@@ -4,6 +4,8 @@
## Использование
> **Info** Начиная с версии v0.22, образ основан на ROS Noetic и использует Python 3. Если вы хотите использовать ROS Melodic и Python 2, используйте версию [v0.21.2](https://github.com/CopterExpress/clover/releases/download/v0.21.2/clover_v0.21.2.img.zip).
1. Скачайте последний стабильный релиз образа — **<a class="latest-image" href="https://github.com/CopterExpress/clover/releases">скачать</a>**.
2. Скачайте и установите [программу для записи образов Etcher](https://www.balena.io/etcher/) (доступна для Windows/Linux/macOS).
3. Установите MicroSD-карту в компьютер (используйте адаптер при необходимости).

View File

@@ -0,0 +1,53 @@
# Груз с подставкой для магнитного захвата
Груз с подставкой для использования в работе с квадрокоптером Клевер 4 WS.
Грузом для магнитного захвата является некая геометрическая фигура, которая имеет внутренний и внешний конус и имеет форму стакана с вырезами для облегчения.
## Технические характеристики
### Груз в сборе с подставкой и пластиной для зацепа магнитного захвата
Груз в сборе с подставкой и пластиной для зацепа магнитного захвата выглядит следующим образом:
<img src="../assets/grip_load/assembly.png" width=300 class="zoom center">
### Подставка под груз для магнитного захвата
Подставка под груз для магнитного захвата имеет разборную конструкцию и состоит из двух частей.
Первая - это низ:
<img src="../assets/grip_load/ball_stand.png" width=300 class="zoom center">
Вторая - это дополнение, чтобы добрать необходимую высоту для точного позиционирования груза на подставке:
<img src="../assets/grip_load/addition.png" width=300 class="zoom center">
В сборе это выглядит так:
<img src="../assets/grip_load/cup_stand.png" width=300 class="zoom center">
### Груз для подставки
Сам груз отдельно от подставки выглядит следующим образом:
<img src="../assets/grip_load/cup.png" width=300 class="zoom center">
Вес при 100% заполнении из материала PETG при печати на 3D принтере составляет 35 грамм.
Высота груза 72.5 миллиметров.
## Фиксация груза на захвате
Для того, чтобы груз держался на магнитном захвате, на его верхнюю часть приклеивается комплектная пластина, и в сборке это выглядит следующим образом:
<img src="../assets/grip_load/cup_with_plate.png" width=300 class="zoom center">
На дно подставки необходимо приклеить двусторонний скотч для дальнейшей фиксации подставки на используемой в дальнейшем поверхности:
<img src="../assets/grip_load/stand_tape.png" width=300 class="zoom center">
В случае использования нижней части с механическим захватом также необходимо приклеить к её основанию двусторонний скотч, чтобы подставку не сдувало воздушным потоком от пропеллеров. В сборке с теннисным мячиком это выглядит следующим образом:
<img src="../assets/grip_load/stand_with_ball.png" width=300 class="zoom center">

View File

@@ -6,7 +6,10 @@
Подключитесь к Wi-Fi, используя пароль `cloverwifi`.
<img src="../assets/ssid.png" width="300px" alt="Подключение по Wi-Fi">
<div class="image-group">
<img src="../assets/wifi-ssid.png" width=300 class="zoom">
<img src="../assets/wifi-pass.png" width=300 class="zoom">
</div>
Для изменения настроек Wi-Fi или получения более детальной информации о устройстве сети на Raspberry Pi прочитайте статью "[Настройка Wi-Fi](network.md)".

View File

@@ -12,13 +12,13 @@
{ "from": "connectortypes.html", "to": "ru/connectortypes.html" },
{ "from": "gps.html", "to": "ru/gps.html" },
{ "from": "setup.html", "to": "ru/setup.html" },
{ "from": "power.html", "to": "ru/power.html" },
{ "from": "power.html", "to": "en/power.html" },
{ "from": "modes.html", "to": "ru/modes.html" },
{ "from": "firmware.html", "to": "ru/firmware.html" },
{ "from": "firmware.html", "to": "en/firmware.html" },
{ "from": "px4_parameters.html", "to": "ru/px4_parameters.html" },
{ "from": "raspberry.html", "to": "ru/raspberry.html" },
{ "from": "microsd_images.html", "to": "ru/image.html" },
{ "from": "connection.html", "to": "ru/connection.html" },
{ "from": "connection.html", "to": "en/connection.html" },
{ "from": "wifi.html", "to": "ru/wifi.html" },
{ "from": "ssh.html", "to": "ru/ssh.html" },
{ "from": "network.html", "to": "ru/network.html" },
@@ -36,7 +36,7 @@
{ "from": "camera_frame.html", "to": "ru/camera_setup.html" },
{ "from": "ru/camera_frame.html", "to": "camera_setup.html" },
{ "from": "camera.html", "to": "ru/camera.html" },
{ "from": "led.html", "to": "ru/leds.html" },
{ "from": "led.html", "to": "en/leds.html" },
{ "from": "leds.html", "to": "ru/leds.html" },
{ "from": "rviz.html", "to": "ru/rviz.html" },
{ "from": "sitl.html", "to": "ru/sitl.html" },