Compare commits

..

187 Commits
v0.4 ... v0.8.1

Author SHA1 Message Date
Oleg Kalachev
3b0dd46ca6 Decrease conn/timeout to 8 seconds 2018-07-25 15:40:38 +03:00
Oleg Kalachev
16b2e1903a Fix udp and udp-b bridge settings 2018-07-25 15:40:38 +03:00
Smirnov Artem
36d7a95d34 Merge pull request #58 from urpylka/rm_mount_point
image_builder: fix pack 4
2018-07-25 14:33:11 +04:00
Artem Smirnov
1d82e195ec image_builder: add checkout to GWBT_REF 2018-07-25 12:55:18 +03:00
Artem Smirnov
78cae0c69a image_builder: fix vars syntax 2018-07-25 12:55:18 +03:00
Oleg Kalachev
2b46ee27f2 docs: small fix 2018-07-25 12:26:43 +03:00
Oleg Kalachev
de44400749 Merge branch 'master' of github.com:CopterExpress/clever 2018-07-25 12:01:47 +03:00
Oleg Kalachev
55e40bd6c3 docs: add mobile rc page [wip] 2018-07-25 12:01:38 +03:00
Artem Smirnov
124950d7e4 image_builder: remove MOUNT_POINT
I changed CONST-PATH to dynamic dir by mktemp
2018-07-24 19:05:04 +03:00
Smirnov Artem
199104ca83 Merge pull request #57 from urpylka/master
image_builder: fix pack
2018-07-24 16:33:19 +04:00
Artem Smirnov
e5552e0a4b image_builder: replace old archive 2018-07-24 15:16:56 +03:00
Oleg Kalachev
bfb0aa7961 Force gitbook update 2018-07-16 23:34:00 +03:00
Smirnov Artem
44d83bdcf8 Merge pull request #56 from Yuliya1404/master
added description of project and links to telegtam chats
2018-07-11 22:41:12 +03:00
Yuliya1404
d960e57cf9 docs: small fix 2018-07-11 15:47:38 +03:00
Yuliya1404
30ec03ef4d docs: added description of project and links on telegram chat 2018-07-11 15:28:34 +03:00
Smirnov Artem
c2c27b1577 docs: added build status icon 2018-07-08 15:09:51 +03:00
Oleg Kalachev
c0449ccf59 docs update 2018-07-07 17:58:33 +03:00
Oleg Kalachev
ea933ce3d1 docs: small fix 2018-07-07 17:57:02 +03:00
Oleg Kalachev
327666385b docs: small fix 2018-07-07 17:55:54 +03:00
Oleg Kalachev
8ea511b293 docs: firmware.md fixes 2018-07-07 17:54:09 +03:00
Oleg Kalachev
c510fe5cf0 Merge branch 'master' of github.com:CopterExpress/clever 2018-07-07 17:50:47 +03:00
Oleg Kalachev
dab70937f5 docs: add article about px4 firmware uploading 2018-07-07 17:50:42 +03:00
Smirnov Artem
fec4859cfe image_builder: enable the lirc-rpi module for uart 2018-07-06 22:10:58 +03:00
Oleg Kalachev
63ecc3b713 image: fix libpoco-dev version 2018-07-06 22:02:53 +03:00
Oleg Kalachev
d3a08c60d7 Merge pull request #54 from Yuliya1404/master
docs: changed metod materials
2018-07-06 17:25:51 +03:00
Oleg Kalachev
322eb1e255 image: add tcpdump and libpoco-dev 2018-07-06 04:37:00 +03:00
Oleg Kalachev
22d4f3c3e7 docs: small fixes 2018-07-05 03:07:52 +03:00
Oleg Kalachev
008750b1d9 docs: add systemd/roslaunch documentation 2018-07-05 03:03:16 +03:00
Oleg Kalachev
506767f32f docs: add some info to gps article 2018-07-05 02:50:45 +03:00
Oleg Kalachev
aaa673de92 simple_offboard: add global alt to get_telemetry service 2018-07-05 02:50:35 +03:00
Oleg Kalachev
43237d8ff4 GCS bridges config and documentation improvements 2018-07-05 02:10:53 +03:00
Oleg Kalachev
9681fc9a87 Merge branch 'master' of github.com:CopterExpress/clever 2018-07-04 20:29:45 +03:00
Oleg Kalachev
76c3e96f76 Enable mavros respawn by default 2018-07-04 20:26:47 +03:00
shish1404
1e66afa6a4 docs: changed test 2018-06-29 22:14:46 +03:00
shish1404
41c59e8e49 docs: added videos 2018-06-29 18:49:22 +03:00
shish1404
225e3d7936 docs: changed label 2018-06-29 18:48:53 +03:00
Artem Smirnov
204dd97b00 image_builder: remove date from image name 2018-06-26 19:49:42 +03:00
Artem Smirnov
27bfecc737 image_builder: add information about new partitions 2018-06-25 19:33:11 +03:00
Smirnov Artem
8cdb131a19 Merge pull request #53 from urpylka/master
image_builder: fix pack
2018-06-25 14:53:51 +03:00
Artem Smirnov
c9042588f0 image_builder: enable shrinker by default 2018-06-25 13:28:44 +03:00
Oleg Kalachev
342eaec49a gitbook: fix ya-metrika 2018-06-25 03:13:17 +03:00
Oleg Kalachev
77b3d28e3b gitbook: add ya-metrika 2018-06-25 03:00:04 +03:00
Smirnov Artem
357b38b5e7 image_builder: add text for /etc/fstab 2018-06-23 21:12:06 +03:00
Artem Smirnov
a99a1c7540 image_builder: change PARTUUID to /dev/mmcblk0p2 2018-06-23 20:44:30 +03:00
Artem Smirnov
6742ba332a image_builder: add fixed version for deb-packages 2018-06-22 15:31:26 +03:00
Smirnov Artem
c5916fea7c Merge pull request #52 from urpylka/master
image_builder fix-pack
2018-06-21 23:44:08 +03:00
Smirnov Artem
7a4958f8e9 Merge branch 'master' into master 2018-06-21 23:43:35 +03:00
Artem Smirnov
b71a96faee image_builder: add param for discover packages 2018-06-21 21:54:47 +03:00
Artem Smirnov
24e79f0169 image_builder: add autosizer.sh to build.Jenkinsfile 2018-06-21 18:24:02 +03:00
Artem Smirnov
76e887407a image_builder: add argument for set FREE SPACE 2018-06-21 18:24:02 +03:00
Artem Smirnov
0d0c8e54f4 image_builder: add image-shrinker 2018-06-21 18:24:02 +03:00
Artem Smirnov
06a01f7e32 image_builder: return devel dir to catkin_ws
needed for roscd
2018-06-21 18:24:02 +03:00
Artem Smirnov
f564d20c5b image_builder: add fixed rosinstall file 2018-06-21 18:24:02 +03:00
Artem Smirnov
85afded6b4 image_builder: move install mjpg-streamer to soft-install 2018-06-19 15:51:26 +03:00
Artem Smirnov
7e84853c37 image_builder: small echo fix 2018-06-19 13:39:37 +03:00
Artem Smirnov
c3c324158f image_builder: fix for add environment 2018-06-18 20:51:29 +03:00
Artem Smirnov
1e2fd40c05 image_builder: remove build & devel dirs 2018-06-18 20:42:47 +03:00
Artem Smirnov
6a7f78a218 image_builder: add "yes" flag 2018-06-18 20:42:47 +03:00
Smirnov Artem
0b637e56d7 image_builder: change param to const 2018-06-18 20:42:47 +03:00
Artem Smirnov
63f44a5a3f image_builder: remove unused code from image_config.sh 2018-06-18 20:42:47 +03:00
Artem Smirnov
83ce14e31b image_builder: merge arguments in resize_fs 2018-06-18 20:42:47 +03:00
Artem Smirnov
8162357ce6 image_builder: catkin_init_workspace not needed 2018-06-18 20:42:47 +03:00
Oleg Kalachev
ba0e9cf9c5 Change udp connection timeout to 10 2018-06-18 19:40:34 +03:00
Oleg Kalachev
8d1072d97d docs: add info about virtual joustick in qgroundcontrol 2018-06-14 02:04:22 +03:00
Oleg Kalachev
ffd4fdf2dc docs: add illustration to listener command usage 2018-06-14 01:01:17 +03:00
Oleg Kalachev
d279f04a1f docs: more 2018-06-13 16:39:48 +03:00
Oleg Kalachev
77e8c858a0 docs: another fixes 2018-06-13 16:34:57 +03:00
Oleg Kalachev
f6edf15011 docs: little fixes 2018-06-13 16:33:52 +03:00
Oleg Kalachev
b50c34b19c docs: add flight logs article 2018-06-13 16:29:55 +03:00
Oleg Kalachev
874f206e2a Somes fixes to iOS app 2018-06-09 20:33:40 +03:00
Oleg Kalachev
fd262fdb6a Add .editorconfig 2018-06-09 20:26:18 +03:00
Oleg Kalachev
2cb17985d4 Merge branch 'master' of github.com:CopterExpress/clever 2018-06-09 19:21:11 +03:00
Oleg Kalachev
2daa6f108a Update to iOS app 2018-06-09 16:12:57 +03:00
Oleg Kalachev
2e0d92c0d5 image: restore .vimrc 2018-06-09 03:41:41 +03:00
Oleg Kalachev
1a0d61af7c docs: small fixes 2018-06-09 02:28:45 +03:00
Oleg Kalachev
eb9fc6140b Merge branch 'master' of github.com:CopterExpress/clever 2018-06-08 20:14:43 +03:00
Oleg Kalachev
b0d72030fa docs: working on rc docs 2018-06-08 20:13:42 +03:00
Oleg Kalachev
db27d422ae docs: working on rc docs 2018-06-08 20:06:44 +03:00
Oleg Kalachev
d6ec597fe2 docs: working on rc docs 2018-06-08 00:52:12 +03:00
Oleg Kalachev
0fe319f430 Set udp bridge connection timeout to 20 2018-06-06 18:17:24 +03:00
Oleg Kalachev
2616b49e82 Merge branch 'master' of github.com:CopterExpress/clever 2018-06-06 18:09:47 +03:00
Oleg Kalachev
c2fd26db56 Support mavros udp-pb bridge 2018-06-06 18:09:38 +03:00
Artem Smirnov
71bd59fe3d image_builder: change "catkin init" to "catkin_init_workspace" 2018-06-05 17:41:38 +03:00
Oleg Kalachev
5b84fe63dd docs: remove disquss 2018-06-03 15:11:24 +03:00
Smirnov Artem
40782063c4 image_builder: Added GWBT_URL parameter
Added GWBT_URL parameter for automatic insert that to field on manual run of build
2018-06-02 14:55:53 +03:00
Smirnov Artem
580eb2400c docs: update wifi.md 2018-05-31 17:12:15 +03:00
Smirnov Artem
4666e443cb Update microsd_images.md 2018-05-31 16:54:41 +03:00
Smirnov Artem
d52c1701e4 Merge pull request #49 from urpylka/wifi_doc
docs: add network & wifi conf
2018-05-31 16:24:50 +03:00
Smirnov Artem
4a543c75f7 image_builder: use dnsmasq as default dhcp-server (#48) 2018-05-31 16:22:45 +03:00
Smirnov Artem
0b15f4ffd5 Update network.md 2018-05-31 16:16:06 +03:00
Oleg Kalachev
0f6e24d07f Changes to network.md 2018-05-31 16:15:51 +03:00
Artem Smirnov
7110ef1420 docs: add network & wifi conf 2018-05-31 16:04:35 +03:00
Oleg Kalachev
a56cef65d5 docs: modes changes 2018-05-30 16:35:09 +03:00
Oleg Kalachev
f58be1ff6f docs: small change 2018-05-30 16:11:07 +03:00
Oleg Kalachev
b1a788864c docs: some styling 2018-05-30 16:09:06 +03:00
Oleg Kalachev
fe468d911b docs: small change 2018-05-30 16:05:45 +03:00
Oleg Kalachev
ef8e1c0478 docs: some styling 2018-05-30 16:04:14 +03:00
Oleg Kalachev
710c4fb33e docs: add some units 2018-05-30 15:56:18 +03:00
Oleg Kalachev
3ef8656bcd docs: add link to px4 releases page 2018-05-30 15:50:53 +03:00
Oleg Kalachev
251e15f503 docs: add some units 2018-05-30 15:44:03 +03:00
Smirnov Artem
eb2f9d9c2b docs: add UDP support to GCS-bridge (#47) 2018-05-18 18:12:54 +03:00
Oleg Kalachev
dfcd3ea693 Merge branch 'master' of github.com:CopterExpress/clever 2018-05-13 23:01:14 +03:00
Oleg Kalachev
7260128dfd docs: note about yaw=NaN 2018-05-13 23:01:06 +03:00
Oleg Kalachev
d4e783c96f snippets: get_distance_global 2018-05-13 20:10:41 +03:00
Oleg Kalachev
c57a342053 Fix to readme 2018-05-12 17:03:25 +03:00
Oleg Kalachev
9ed9af2d04 Some fixes to readme 2018-05-12 17:02:48 +03:00
Oleg Kalachev
295b9c98d1 docs: rework images article 2018-05-12 16:58:54 +03:00
Oleg Kalachev
8f4de0e08f Merge branch 'master' of github.com:CopterExpress/clever 2018-05-10 22:33:16 +03:00
Oleg Kalachev
8f53301b79 simple_offboard: correct axes for calculating yaw for setpoints 2018-05-10 22:32:45 +03:00
Oleg Kalachev
6372ef8c22 simple_offboard: Tait-Bryan z-y-x angles for pitch, roll and yaw 2018-05-10 22:31:56 +03:00
Oleg Kalachev
a91f9e5a6b Change image size to from 8G to 7G 2018-05-10 16:40:05 +03:00
Oleg Kalachev
6b74f75616 Merge branch 'master' of github.com:CopterExpress/clever 2018-05-09 19:50:46 +03:00
Oleg Kalachev
9cd9babb83 simple_offboard: yaw_rate, pitch_rate, roll_rate in get_telemetry 2018-05-09 19:50:18 +03:00
Smirnov Artem
380c14da56 image_buider: enable hardware uart with raspi-config (#43)
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-05-05 20:36:22 +03:00
urpylka
32c1c18af2 image_builder: fix syntax
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-05-05 16:50:36 +03:00
urpylka
b7077339a1 image_builder: add sha256sum to release message
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-05-03 22:33:57 +03:00
urpylka
52fd505ffc image_builder: change spaces
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-05-03 22:33:57 +03:00
urpylka
b911b7a3dd image_builder: fix syntax
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-05-03 22:01:29 +03:00
Smirnov Artem
9b38d5135e image_builder: fix small mistake 2018-04-27 20:14:33 +03:00
Smirnov Artem
0346c48546 Merge pull request #39 from CopterExpress/image_builder_refactor_23042018
Image builder refactor 23042018
2018-04-27 13:49:16 +03:00
urpylka
212c6ca5ac image_config: fix output debug 2018-04-27 13:42:12 +03:00
urpylka
361c89d016 image_config: little fix & add more debug output 2018-04-27 13:35:32 +03:00
urpylka
b0cbc67799 image_config: add debug output 2018-04-27 13:26:28 +03:00
urpylka
18cfb08054 image_builder: fix comment 2018-04-26 23:43:55 +03:00
Smirnov Artem
66121e6d5d Rename jenkinsfile to Jenkinsfile 2018-04-26 23:41:30 +03:00
urpylka
a4841de17e image_builder: try fix with send big string as argument
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-26 23:37:37 +03:00
Oleg Kalachev
84aef97e37 docs: fixes 2018-04-26 00:11:20 +03:00
Oleg Kalachev
f14e1976e7 docs: fix 2018-04-26 00:10:20 +03:00
Oleg Kalachev
8c9acc98fb docs: qr example 2018-04-26 00:09:12 +03:00
Oleg Kalachev
bd36428bd4 docs: typo 2018-04-25 23:24:44 +03:00
urpylka
7f7276e34a image_builder: fix bug with GH credentials after parsing json
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 22:24:02 +03:00
urpylka
460761ef68 image_builder: fix small bug
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 21:27:12 +03:00
urpylka
9fefc6428e image_builder: fix small bugs
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 21:09:42 +03:00
urpylka
ffe4423c10 docs: remove duplicates after merge
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 20:46:16 +03:00
Smirnov Artem
3f02919cd9 Merge pull request #36 from Yuliya1404/master
Updated assemble and lessons
2018-04-24 20:19:48 +03:00
Yuliya1404
3075badf33 docs: update lessons & assemble article
* Update tb.md

* Update testConnection.md

* Update safety.md

* Delete brrc2205ondeck.png

* Add files via upload

* Create connectortypes.md

* Add files via upload

* Update connectortypes.md

* Update assemble.md

* Add files via upload

* Create metod.md

* Update metodmaterials.md

* Create tests.md

* Update SUMMARY.md

* Create lessons.md

* Update lessons.md
2018-04-24 20:06:20 +03:00
urpylka
29d66ee264 image_builder: add readme-file about builder
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 19:02:03 +03:00
urpylka
846ec3a430 image_builder: made absolute path in jenkinsfile
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 19:02:03 +03:00
urpylka
a65a50ffd3 image_builder: change ini to json in yadisk.py
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 19:02:03 +03:00
urpylka
c945bb9d03 image_builder: made var YA_SCRIPT
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 19:02:03 +03:00
urpylka
3dc9575c9e image_builder: refactor comment
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 19:02:03 +03:00
urpylka
f901167009 image_builder: replace ini to json, requests to curl
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 19:02:03 +03:00
urpylka
8519a6c6a4 image_builder: refactor path to execute-files
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 19:02:03 +03:00
urpylka
d8fc2c088f image_builder: fix bag with switch-case order in bash
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 19:02:03 +03:00
urpylka
679cd37ec6 image_builder: fix bag with IMAGE_VERSION
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 19:02:03 +03:00
urpylka
40be77f9c3 image_builder: refactor publish_image functions
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 19:02:03 +03:00
urpylka
1a0d762c4e image_builder: hardware configure by raspi-config
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 19:02:03 +03:00
urpylka
a7e0032225 image_builder: fix syntax
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 19:02:03 +03:00
urpylka
0b9df02faa image_builder: translate couple comments
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 19:02:03 +03:00
urpylka
0dcf7d1520 image_builder: remove not used code
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
2018-04-24 19:02:02 +03:00
Smirnov Artem
b146057ca7 Merge pull request #35 from Svetk0/Svetk0-setup
docs: update
2018-04-24 19:01:01 +03:00
Svetk0
68a32e036e Rename calibratePID to calibratePID.md 2018-04-12 17:09:10 +03:00
Svetk0
dba5b63230 Update setup.md 2018-04-12 17:08:16 +03:00
Svetk0
26efccb110 Add files via upload 2018-04-12 17:06:10 +03:00
Svetk0
e0516663aa Create calibratePID 2018-04-12 17:05:45 +03:00
Svetk0
d737d91bc2 Update setup.md 2018-04-12 16:57:43 +03:00
Svetk0
1b10d59188 Add files via upload 2018-04-12 16:57:01 +03:00
Svetk0
a9ca13c55d Update setup.md 2018-04-12 16:34:45 +03:00
Svetk0
57fbe9cc09 Update setup.md 2018-04-12 14:57:35 +03:00
Svetk0
061b225690 Update setup.md 2018-04-12 14:55:20 +03:00
Svetk0
27189d559a Update setup.md 2018-04-12 12:52:56 +03:00
Svetk0
60b22d0df8 Create safety_assem.md 2018-03-28 12:45:55 +03:00
Svetk0
0072bf8330 Update SUMMARY.md 2018-03-28 12:45:49 +03:00
Svetk0
f36b4546a9 Create mount_antenna.md 2018-03-28 12:43:50 +03:00
Svetk0
c0a97fd263 Update SUMMARY.md 2018-03-28 12:42:22 +03:00
Svetk0
46932e4adf Rename mount_battcase.md to mount_batterycase.md 2018-03-28 12:41:55 +03:00
Svetk0
0c2675ec28 Update and rename mount_batterycase.md to prepare_batterycase.md 2018-03-28 12:40:22 +03:00
Svetk0
f4e5d7978a Update SUMMARY.md 2018-03-28 12:39:43 +03:00
Svetk0
cc7ba566c5 Create mount_battcase.md 2018-03-28 12:39:37 +03:00
Svetk0
d47e3f6bbf Create mount_frame.md 2018-03-28 12:37:56 +03:00
Svetk0
2335c74b55 Create mount_esc.md 2018-03-28 12:34:01 +03:00
Svetk0
ca4bab7bf8 Create mount_pixhawk.md 2018-03-28 12:32:56 +03:00
Svetk0
d4d84ea422 Update SUMMARY.md 2018-03-28 12:31:26 +03:00
Svetk0
f985e07be4 Create mount_receiver.md 2018-03-28 12:28:52 +03:00
Svetk0
bab62cf374 Update SUMMARY.md 2018-03-28 12:24:42 +03:00
Svetk0
4eb988c34d Create test_motors.md 2018-03-28 12:24:37 +03:00
Svetk0
3006d7e32e Create binding.md 2018-03-28 12:23:06 +03:00
Svetk0
3e9b7426bf Create soldering_power.md 2018-03-28 12:21:03 +03:00
Svetk0
e8f93782e0 Create mount_elements.md 2018-03-28 12:19:32 +03:00
Svetk0
910b24c460 Update SUMMARY.md 2018-03-27 17:55:22 +03:00
Svetk0
5dc580c76b Create mount_batterycase.md 2018-03-27 17:55:12 +03:00
Svetk0
c0705222f5 Create mount_connector.md 2018-03-27 17:54:06 +03:00
Svetk0
b51e8add55 Create mount_pdb.md 2018-03-27 17:53:24 +03:00
Svetk0
86211df4b3 Create kit.md 2018-03-27 17:18:19 +03:00
Svetk0
5ef5c6b641 Create mount_motors.md 2018-03-27 17:16:53 +03:00
Svetk0
5b96253146 Update SUMMARY.md 2018-03-27 17:14:30 +03:00
Svetk0
54111504ac Update SUMMARY.md 2018-03-27 17:05:53 +03:00
137 changed files with 3899 additions and 885 deletions

13
.editorconfig Normal file
View File

@@ -0,0 +1,13 @@
root = true
[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
[*.{py,cpp,h,swift,launch}]
indent_style = space
indent_size = 4
[*.{js,html}]
indent_style = tab

View File

@@ -4,16 +4,17 @@
CLEVER is an educational programmable drone kit consisting of an unassembled quadcopter, open source software and documentation. The kit includes Pixhawk/Pixracer autopilot running PX4 firmware, Raspberry Pi 3 as companion computer, a camera for computer vision navigation as well as additional sensors and peripheral devices.
Copter Express has implemented a large number of different autonomous drone projects using exactly the same platform: [automated pizza delivery](https://www.youtube.com/watch?v=hmkAoZOtF58) in Samara and Kazan, coffee delivery in Skolkovo Innovation Center, [autonomous quadcopter with charging station](https://www.youtube.com/watch?v=RjX6nUqw1mI) for site monitoring and security, winning drones on [Robokross-2016](https://www.youtube.com/watch?v=dGbDaz_VmYU) and [Robokross-2017](https://youtu.be/AQnd2CRczbQ) competitions and many others.
Copter Express has implemented a large number of different autonomous drone projects using exactly the same platform: [automated pizza delivery](https://www.youtube.com/watch?v=hmkAoZOtF58) in Samara and Kazan, coffee delivery in Skolkovo Innovation Center, [autonomous quadcopter with charging station](https://www.youtube.com/watch?v=RjX6nUqw1mI) for site monitoring and security, winning drones on [Robocross-2016](https://www.youtube.com/watch?v=dGbDaz_VmYU) and [Robocross-2017](https://youtu.be/AQnd2CRczbQ) competitions and many others.
**The main documentation in Russian is available on our Gitbook:**
**https://copterexpress.gitbooks.io/clever/content/**
**The main documentation in Russian is available [on our Gitbook](https://clever.copterexpress.com/).**
Use it to learn how to assemble, configure, pilot and program autonomous CLEVER drone.
## Preconfigured RPi 3 image
Preconfigured image for Raspberry Pi 3 with installed and configured software, ready to fly, is available [here](https://copterexpress.gitbooks.io/clever/content/docs/microsd_images.html).
**Preconfigured image for Raspberry Pi 3 with installed and configured software, ready to fly, is available [in the Releases section](https://github.com/CopterExpress/clever/releases).**
[![Build Status](http://builder.coex.space/job/CopterExpress---clever/badge/icon)](http://builder.coex.space/job/CopterExpress---clever/)
Image includes:
@@ -24,7 +25,7 @@ Image includes:
* mavros
* CLEVER software bundle for autonomous drone control
API description in Russian for autonomous flights is available [here](https://copterexpress.gitbooks.io/clever/simple_offboard.html).
API description (in Russian) for autonomous flights is available [on GitBook](https://copterexpress.gitbooks.io/clever/simple_offboard.html).
## Manual installation

View File

@@ -139,7 +139,7 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0920;
LastUpgradeCheck = 0920;
LastUpgradeCheck = 0930;
ORGANIZATIONNAME = "Copter Express";
TargetAttributes = {
7C51653C20139237004D1F4D = {
@@ -294,6 +294,7 @@
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
@@ -301,6 +302,7 @@
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
@@ -351,6 +353,7 @@
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
@@ -358,6 +361,7 @@
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@@ -1,95 +1,111 @@
{
"images" : [
{
"idiom" : "iphone",
"size" : "20x20",
"idiom" : "iphone",
"filename" : "cleverrc40.png",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "20x20",
"idiom" : "iphone",
"filename" : "clever60.png",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"idiom" : "iphone",
"filename" : "clever58.png",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"idiom" : "iphone",
"filename" : "clever87.png",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"idiom" : "iphone",
"filename" : "clever80.png",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"idiom" : "iphone",
"filename" : "clever120.png",
"scale" : "3x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "cleverios180.png",
"filename" : "clever120-1.png",
"scale" : "2x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "cleverios180-1.png",
"filename" : "clever180-1.png",
"scale" : "3x"
},
{
"idiom" : "ipad",
"size" : "20x20",
"idiom" : "ipad",
"filename" : "clever20.png",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "20x20",
"idiom" : "ipad",
"filename" : "clever40.png",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "29x29",
"idiom" : "ipad",
"filename" : "clever29.png",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "29x29",
"idiom" : "ipad",
"filename" : "clever58-1.png",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "40x40",
"idiom" : "ipad",
"filename" : "clever40-1.png",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "40x40",
"idiom" : "ipad",
"filename" : "clever80-1.png",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "76x76",
"idiom" : "ipad",
"filename" : "clever76.png",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "76x76",
"idiom" : "ipad",
"filename" : "clever152.png",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "83.5x83.5",
"idiom" : "ipad",
"filename" : "clever167.png",
"scale" : "2x"
},
{
"idiom" : "ios-marketing",
"size" : "1024x1024",
"idiom" : "ios-marketing",
"filename" : "clever1024.png",
"scale" : "1x"
}
],

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 867 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 867 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 867 B

View File

@@ -5,7 +5,7 @@
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
<string>Clever RC</string>
<string>CLEVER RC</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
@@ -19,7 +19,7 @@
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<string>3</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>

View File

@@ -10,12 +10,13 @@ import UIKit
import WebKit
import SwiftSocket
import NotificationBannerSwift
import AudioToolbox.AudioServices
class ViewController: UIViewController, WKScriptMessageHandler {
@IBOutlet weak var webView: WKWebView!
let impactGenerator = UIImpactFeedbackGenerator(style: .medium)
let notificationGenerator = UINotificationFeedbackGenerator()
let udpSocket = UDPClient(address:"255.255.255.255", port: 35602)
let udpSocket = UDPClient(address: "255.255.255.255", port: 35602)
override func viewDidLoad() {
super.viewDidLoad()
@@ -24,6 +25,7 @@ class ViewController: UIViewController, WKScriptMessageHandler {
UIApplication.shared.isIdleTimerDisabled = true
// Setup webview event handlers
webView.scrollView.bounces = false;
webView.configuration.userContentController.add(self, name: "control")
webView.configuration.userContentController.add(self, name: "controlStart")
webView.configuration.userContentController.add(self, name: "lowBattery")
@@ -56,7 +58,7 @@ class ViewController: UIViewController, WKScriptMessageHandler {
} else if (message.name == "lowBattery") {
// Got low battery notification
print("Low battery notification")
notificationGenerator.notificationOccurred(.warning)
tapticNotify()
} else if (message.name == "notification") {
// Got notification message
print(message)
@@ -71,4 +73,22 @@ class ViewController: UIViewController, WKScriptMessageHandler {
}
}
}
func tapticNotify() {
if let feedbackSupportLevel = UIDevice.current.value(forKey: "_feedbackSupportLevel") as? Int {
switch feedbackSupportLevel {
case 2:
// 2nd Generation Taptic Engine w/ Haptic Feedback (iPhone 7/7+)
notificationGenerator.notificationOccurred(.warning)
case 1:
// 1st Generation Taptic Engine (iPhone 6S/6S+)
let peek = SystemSoundID(1519)
AudioServicesPlaySystemSound(peek)
case 0:
// No Taptic Engine
break
default: break
}
}
}
}

View File

@@ -7,6 +7,10 @@ html, body {
color: rgba(255, 255, 255, 0.9);
}
* {
user-select: none;
}
.stick {
border-radius: 50%;
width: 5cm;

View File

@@ -65,8 +65,8 @@ new ROSLIB.Topic({
name: '/rosout_agg',
messageType: 'rosgraph_msgs/Log'
}).subscribe(function(message) {
var BLACKLIST = ['CMD: ', 'PR: ', 'DROPPED'];
if(message.level >= 4) {
var BLACKLIST = ['CMD: ', 'PR: ', 'DROPPED', 'Clock skew detected', 'MANUAL CONTROL LOST'];
if (message.level >= 4) {
if (BLACKLIST.some(function(e) {
return message.msg.indexOf(e) != -1;
})) {

View File

@@ -4,13 +4,16 @@
"author": "Copter Express",
"language": "ru",
"root": "docs/",
"plugins": ["youtube", "richquotes", "disqus", "versions"],
"plugins": ["youtube", "richquotes", "versions", "yametrika"],
"pluginsConfig": {
"disqus": {
"shortName": "coex-clever"
},
"versions": {
"type": "tags"
},
"yametrika": {
"id": 49359238
}
}
}

View File

@@ -3,9 +3,9 @@
<arg name="fcu_ip" default="127.0.0.1"/>
<arg name="gcs_bridge" default="tcp"/>
<arg name="viz" default="true"/>
<arg name="respawn" default="false"/>
<arg name="respawn" default="true"/>
<node pkg="mavros" type="mavros_node" name="mavros" required="false" clear_params="true" respawn="$(arg respawn)" respawn_delay="3" output="screen">
<node pkg="mavros" type="mavros_node" name="mavros" required="false" clear_params="true" respawn="$(arg respawn)" respawn_delay="5" output="screen">
<!-- UART connection -->
<param name="fcu_url" value="/dev/ttyAMA0:921600" if="$(eval fcu_conn is None or fcu_conn == 'uart')"/>
@@ -17,9 +17,12 @@
<!-- gcs bridge -->
<param name="gcs_url" value="tcp-l://0.0.0.0:5760" if="$(eval gcs_bridge == 'tcp')"/>
<param name="gcs_url" value="udp://@192.168.11.14:14550" if="$(eval gcs_bridge == 'udp')"/> <!-- TODO: fix -->
<param name="gcs_url" value="udp-b://192.168.11.1:14550@" if="$(eval gcs_bridge == 'udp-b')"/>
<param name="gcs_url" value="udp://0.0.0.0:14550@14550" if="$(eval gcs_bridge == 'udp')"/>
<param name="gcs_url" value="udp-b://$(env ROS_IP):14550@14550" if="$(eval gcs_bridge == 'udp-b')"/>
<param name="gcs_url" value="udp-pb://$(env ROS_IP):14550@14550" if="$(eval gcs_bridge == 'udp-pb')"/>
<param name="gcs_url" value="" if="$(eval not gcs_bridge)"/>
<param name="gcs_quiet_mode" value="true"/>
<param name="conn/timeout" value="8"/>
<!-- default px4 params -->
<rosparam command="load" file="$(find mavros)/launch/px4_config.yaml"/>

View File

@@ -188,7 +188,7 @@ def get_publisher_and_message(req, stamp, continued=True, update_frame=True):
PT.IGNORE_AFX + PT.IGNORE_AFY + PT.IGNORE_AFZ +
(PT.IGNORE_YAW if yaw_rate_flag else PT.IGNORE_YAW_RATE),
position=setpoint,
yaw=euler_from_orientation(current_nav_finish.pose.orientation)[2] - math.pi / 2,
yaw=euler_from_orientation(current_nav_finish.pose.orientation, 'szyx')[2] - math.pi / 2,
yaw_rate=req.yaw_rate)
return position_pub, msg
@@ -207,7 +207,7 @@ def get_publisher_and_message(req, stamp, continued=True, update_frame=True):
PT.IGNORE_AFX + PT.IGNORE_AFY + PT.IGNORE_AFZ +
(PT.IGNORE_YAW if yaw_rate_flag else PT.IGNORE_YAW_RATE),
position=pose_local.pose.position,
yaw=euler_from_orientation(pose_local.pose.orientation)[2] - math.pi / 2,
yaw=euler_from_orientation(pose_local.pose.orientation, 'szyx')[2] - math.pi / 2,
yaw_rate=req.yaw_rate)
return position_pub, msg
@@ -225,7 +225,7 @@ def get_publisher_and_message(req, stamp, continued=True, update_frame=True):
PT.IGNORE_AFX + PT.IGNORE_AFY + PT.IGNORE_AFZ +
(PT.IGNORE_YAW if yaw_rate_flag else PT.IGNORE_YAW_RATE),
velocity=vector_local.vector,
yaw=euler_from_orientation(pose_local.pose.orientation)[2] - math.pi / 2,
yaw=euler_from_orientation(pose_local.pose.orientation, 'szyx')[2] - math.pi / 2,
yaw_rate=req.yaw_rate)
return position_pub, msg
@@ -348,6 +348,7 @@ def get_telemetry(req):
'z': float('nan'),
'lat': float('nan'),
'lon': float('nan'),
'alt': float('nan'),
'vx': float('nan'),
'vy': float('nan'),
'vz': float('nan'),
@@ -368,11 +369,9 @@ def get_telemetry(req):
res['x'] = p.pose.position.x
res['y'] = p.pose.position.y
res['z'] = p.pose.position.z
# Get yaw in the request's frame_in
_, _, res['yaw'] = euler_from_orientation(p.pose.orientation)
# Calculate pitch and roll as angles between the pose and fcu_horiz
attitude_pose = tf_buffer.transform(pose, 'fcu_horiz', TRANSFORM_TIMEOUT)
res['roll'], res['pitch'], _ = euler_from_orientation(attitude_pose.pose.orientation)
# Calculate roll pitch and yaw as Tait-Bryan angles, order z-y-x
res['yaw'], res['pitch'], res['roll'] = euler_from_orientation(p.pose.orientation, axes='rzyx')
if velocity:
v = Vector3Stamped()
@@ -383,11 +382,15 @@ def get_telemetry(req):
res['vx'] = linear.vector.x
res['vy'] = linear.vector.y
res['vz'] = linear.vector.z
# TODO pitch_rate, roll_rate, yaw_rate
res['yaw_rate'] = velocity.twist.angular.z
res['pitch_rate'] = velocity.twist.angular.y
res['roll_rate'] = velocity.twist.angular.x
if global_position and stamp - global_position.header.stamp < rospy.Duration(5):
res['lat'] = global_position.latitude
res['lon'] = global_position.longitude
res['alt'] = global_position.altitude
if state:
res['connected'] = state.connected

View File

@@ -6,8 +6,8 @@ def orientation_from_quaternion(q):
return Quaternion(*q)
def orientation_from_euler(roll, pitch, yaw):
q = t.quaternion_from_euler(roll, pitch, yaw)
def orientation_from_euler(roll, pitch, yaw, axes='rzyx'):
q = t.quaternion_from_euler(roll, pitch, yaw, axes)
return orientation_from_quaternion(q)
@@ -15,9 +15,9 @@ def quaternion_from_orientation(o):
return o.x, o.y, o.z, o.w
def euler_from_orientation(o):
def euler_from_orientation(o, axes='rzyx'):
q = quaternion_from_orientation(o)
return t.euler_from_quaternion(q)
return t.euler_from_quaternion(q, axes)
def vector3_from_point(p):

View File

@@ -7,8 +7,9 @@ string mode
float32 x
float32 y
float32 z
float32 lat
float32 lon
float64 lat
float64 lon
float32 alt
float32 vx
float32 vy
float32 vz

View File

@@ -11,6 +11,10 @@
Для того, чтобы научиться собирать, настраивать, пилотировать и программировать автономный дрон «Клевер», воспользуйтесь этим учебником.
Если вы детально изучили наш gitbook, но так и не нашли ответа на свой вопрос, напишите в чат техподдержки и наши специалисты вам с радостью ответят https://t.me/COEXHelpdesk .
Также, у нас есть чат для программистов, которые разрабатывают под PX4, автономную навигацию в помещениях и рои дронов https://t.me/DroneCode .
Образ для Raspberry Pi
----------------------

View File

@@ -9,6 +9,8 @@
* [Подключение Raspberry Pi к PixHawk](connection.md)
* [Подключение по Wi-Fi](wifi.md)
* [Работа с QGroundControl через Wi-Fi](gcs_bridge.md)
* [Прошивка PixHawk/PixRacer](firmware.md)
* [Пилотирование со смартфона](rc.md)
* [SSH-доступ](ssh.md)
* [Неисправности радиоаппаратуры](radioerrors.md)
* [Безопасность](safety.md)
@@ -26,20 +28,17 @@
* [Визуализация с помощью rviz](rviz.md)
* [Работа с SITL](sitl.md)
* [Подключение GPS](gps.md)
* [Автозапуск ПО](autolaunch.md)
* [Использование 3G-модема](3g.md)
* [Устройство сети RPi](network.md)
* [Работа с логами PX4](flight_logs.md)
* Учебник
* [Урок 1](lesson1.md)
* [Урок 2](lesson2.md)
* [Урок 3](lesson3.md)
* [Урок 4](lesson4.md)
* [Урок 5](lesson5.md)
* [Урок 6](lesson6.md)
* [Урок 7](lesson7.md)
* [Урок 8](lesson8.md)
* [Урок 9](lesson9.md)
* [Урок 10](lesson10.md)
* [Теория и видеоуроки](lessons.md)
* [Учебно-методическое пособие](metod.md)
* [Контрольные и проверочные материалы](tests.md)
* [Другое](drugoe.md)
* [CopterHack-2017](copterhack2017.md)
* [Прошивка ESC контроллеров с помощью Arduino](esc_firmware.md)
* [Работа со светодиодной лентой](leds.md)
* [Проекты на базе коптера "Клевер"](projects.md)
* [Полезные ссылки](links.md)

View File

@@ -110,7 +110,7 @@ _Примечание_: указанное выше определение пр
Для правильной работы Vision Position Estimation необходимо \(через [QGroundControl](gcs_bridge.md)\) убедиться, что:
* Для PixHawk: Установлена прошивка с LPE \(local position estimator\). Для PixRacer: параметр `SYS_MC_EST_GROUP` установлен в `local_position_estimator, attitude_estimator_q`.
* Для PixHawk: Установлена прошивка с LPE \(local position estimator\). Для PixHawk необходимо [скачать прошивку `px4fmu-v2_lpe.px4`](https://github.com/PX4/Firmware/releases). Для PixRacer параметр `SYS_MC_EST_GROUP` должен быть установлен в `local_position_estimator, attitude_estimator_q`.
* В параметре `LPE_FUSION` включены **только** флажки `vision position`, `vision yaw`, `land detector`. Итоговое значение _28_.
* Выключен компас: `ATT_W_MAG` = 0
* Вес угла по рысканью по зрению: `ATT_W_EXT_HDG` = 0.5

View File

@@ -95,7 +95,7 @@
![Дополнительное оборудование](assets/addEqipment.jpg)
![Техника безопасности при пайке](tb.md)
[Техника безопасности при пайке](tb.md)
Порядок сборки
--------------
@@ -127,7 +127,7 @@
* Лучи с моторами необходимо расположить согласно схеме. Стрелками указано направление вращения моторов.
![Вращение моторов](assets/brrc2205ondeck.png)
//указать стрелками направление вращения на моторах
#### Залудить три контактные площадки регулятора
* Нанести флюс
@@ -146,7 +146,7 @@
* Повторить данную операцию для оставшихся трех регуляторов
### Монтаж разъемов питания
![Статья про силовые и управляющие цепи](power.md)
[Статья про силовые и управляющие цепи](powerConnection.md)
#### Подготовка проводов для силовых разъемов XT60
@@ -159,7 +159,7 @@
#### Подготовка силовых разъемов питания XT60 pin и XT60 socket
![Статья про силовые разъемы и их обозначения](../notes/powerConnection.md)
[Статья про силовые разъемы и их обозначения](connectortypes.md)
![Силовой разъем XT60](assets/xt60pinsocket.jpg)
@@ -176,7 +176,6 @@
8. Повторить процедуру для разъема XT60 socket.
#### Подготовка разъема питания управляющей цепи 5В
![Статья про трехпроводной шлейф мама-мама](../notes/servoWire.md) // *почему используется именно 3х контактный разъем, почему шина питания посередине
1. Обрезать/вытащить все пины из одного из разъемов. Отсоединить его.
2. Поддеть канцелярским ножом фиксатор на оставшемся разъеме, чтобы освободить 3-й провод.
@@ -187,11 +186,9 @@
### Монтаж платы распределения питания
![Статья про PDB](/pdb.md)
#### Предпаячная проверка
![Статья про прозвонку](testConnection.md)
[Статья про прозвонку](testConnection.md)
![Предпаячная проверка](assets/startPDBtest.jpg)
@@ -205,7 +202,7 @@
* “BAT+”, с каждым контактом, обозначенным “+”
#### Залудить контактные площадки платы питания
1. ![Залудить*](zap.md) контактные площадки платы питания.
1. [Залудить*](zap.md) контактные площадки платы питания.
2. С помощью мультиметра проверить отсутствие контактного замыкания на плате (прозвонить)
![Постпаячная проверка](assets/zapPDBtest.jpg)
@@ -294,15 +291,17 @@
![БЕЗОПАСНОСТЬ при работе с АКБ](assets/safetyPower.png)
#### Включение радиопульта
1. На пульте зажать кнопку BIND KEY.
2. Включить пульт (перещелкнуть POWER, BIND KEY не отпускаем).
3. Ждем синхронизацию.
4. Отсоединить джампер.
5. Светодиод горит непрерывно.
1. Вставить джампер в B/VCC радиоприемника (замкнуть "землю" и "сигнал")
2. На пульте зажать кнопку BIND KEY.
3. Включить пульт (перещелкнуть POWER, BIND KEY не отпускаем).
4. Подключить аккумулятор к коптеру.
5. Ждем синхронизацию.
6. Отсоединить джампер.
7. Светодиод горит непрерывно.
![Подключение питания приемника](assets/connectingRadio.png)
![Мануал по неисправностям](radioerrors1.md)
[Мануал по неисправностям радиоаппаратуры](radioerrors1.md)
### Проверка направления вращения моторов
1. Наклеить наклейки на АКБ 18650.
2. Установить 18650 в отсек АКБ, соблюдая полярность.
@@ -329,7 +328,7 @@
2. Разъем питания 5В продеть в прорезь.
![Установка стоек и прорезь](assets/mountReceiverStud.png)
3. Приемник прикрепить к ![нижней дополнительной раме*](../notes/deck.md), используя двухсторонний скотч и ориентируясь на гравировку. Антенны направлены вперед.
3. Приемник прикрепить к нижней дополнительной раме, используя двухсторонний скотч и ориентируясь на гравировку. Антенны направлены вперед.
![Установка радиоприемника на деку](assets/mountReceiverDeck.png)
@@ -341,8 +340,7 @@
![Установка нижней деки](assets/mountBottomDeck.png)
##### ВАЖНО
Направление стрелок на плате питания и на раме дополнительной совпадают
Направление стрелок на плате питания и на дополнительной раме совпадают
### Монтаж полетного контроллера
#### Переворачиваем сборку
@@ -438,7 +436,4 @@
2. При подключении (отключении) аккумуляторов держаться только за разъёмы, тянуть или дергать за провода запрещается.
3. В случае обрыва разъемов, обнаружения нарушений целостности изоляции или корпуса аккумулятора, не трогая его, немедленно сообщить преподавателю.
## ![БЕЗОПАСНОСТЬ ПРИ ЛЁТНОЙ ЭКСПЛУАТАЦИИ КОПТЕРОВ](safetyDoc.md#ПОЛЁТЫ)
## [ТЕХНИКА БЕЗОПАСНОСТИ ПРИ ПАЙКЕ И ЛЁТНОЙ ЭКСПЛУАТАЦИИ КОПТЕРОВ](safety.md)

BIN
docs/assets/3dmodel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
docs/assets/balance.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
docs/assets/ball.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

BIN
docs/assets/banana.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
docs/assets/bridge_udp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

After

Width:  |  Height:  |  Size: 751 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 MiB

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 MiB

After

Width:  |  Height:  |  Size: 901 KiB

BIN
docs/assets/calculation.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 363 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 467 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 404 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 KiB

After

Width:  |  Height:  |  Size: 62 KiB

BIN
docs/assets/detal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 KiB

BIN
docs/assets/detal1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 KiB

BIN
docs/assets/detal2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 598 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 644 KiB

BIN
docs/assets/elements.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

BIN
docs/assets/elements1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 475 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 MiB

After

Width:  |  Height:  |  Size: 848 KiB

BIN
docs/assets/finalball.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 593 KiB

BIN
docs/assets/flightplot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 518 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 KiB

After

Width:  |  Height:  |  Size: 70 KiB

BIN
docs/assets/listener.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 444 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 237 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 414 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 552 KiB

After

Width:  |  Height:  |  Size: 126 KiB

BIN
docs/assets/oscillRoll.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 425 KiB

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 279 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 327 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 251 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 KiB

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 339 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 294 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 31 KiB

BIN
docs/assets/safetyball.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 329 KiB

After

Width:  |  Height:  |  Size: 71 KiB

BIN
docs/assets/setupSwitch.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 848 KiB

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 310 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 772 KiB

After

Width:  |  Height:  |  Size: 243 KiB

BIN
docs/assets/stmrev.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

BIN
docs/assets/t-plug.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
docs/assets/table.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 KiB

After

Width:  |  Height:  |  Size: 103 KiB

BIN
docs/assets/xt60.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

59
docs/autolaunch.md Normal file
View File

@@ -0,0 +1,59 @@
Автозапускаемое ПО
===
systemd
---
Основная документация: [https://wiki.archlinux.org/index.php/Systemd_(Русский)](https://wiki.archlinux.org/index.php/Systemd_(Русский)).
Все автоматически стартуемое ПО Клевера запускается в виде systemd-сервиса `clever.service`.
Сервис может быть перезапущен командой `systemctl`:
```bash
sudo systemctl restart clever
```
Текстовый вывод ПО можно просмотреть с помощью команды `journalctl`:
```bash
journalctl -u clever
```
Для того, запустить ПО Клевера непосредственно в текущей консольной сессии, вы можете использовать `roslaunch`:
```bash
sudo systemctl stop clever
roslaunch clever clever.launch
```
Вы можете выключить автозапуск ПО Клевера с помощью команды `disable`:
```bash
sudo systemctl disable clever
```
roslaunch
---
Основная документация: http://wiki.ros.org/roslaunch.
Список объявленных для запуска нод / программ указывается в файле `/home/pi/catkin_ws/src/clever/clever/launch/clever.launch`.
Вы можете добавить собственную ноду в список автозапускаемых. Для этого разместите ваш запускаемый файл (например, `my_program.py`) в каталог `/home/pi/catkin_ws/src/clever/clever/src`. Затем добавьте запуск вашей ноды в `clever.launch`, например:
```xml
<node name="my_program" pkg="clever" type="my_program.py" output="screen"/>
```
Запускаемый файл должен иметь *permission* на запуск:
```bash
chmod +x my_program.py
```
При использовании скриптовых языков вначале файла должен стоять [shebang](https://ru.wikipedia.org/wiki/Шебанг_(Unix)), например:
```bash
#!/usr/bin/env python
```

17
docs/calibratePID.md Normal file
View File

@@ -0,0 +1,17 @@
### Как настраивать PID
На практике самая распространенная проблема это быстрые осцилляции, возникающие из-за слишком большого значения параметра P.
В данной ситуации следует уменьшить его значение (все параметры выставляются экспериментальным путем, исходя из поведения аппарата).
Также стоит проверить чтобы осцилляций не было при резком спуске (в противном случае уменьшить P)
Медленные раскачивания коптера из стороны в сторону при попытке удержания заданной точки связаны с перебором значения I.
В случае если при движении коптер раскачивается следует поднять это значение
В случае если коптер плохо держит заданное положение следует увеличить параметр D при переборе или недостатке параметра D возникают осцилляции
#### ВАЖНО настройку D следует начинать с минимальных значений , в 3-4 раза меньше значений по умолчанию, если таковые присутствуют
Параметры для Rate Pitch and Rate Roll должны быть одинаковыми
По YAW параметры следует менять отдельно, согласно вышеуказанной инструкции (как правило рысканье не требует серьезной настройки, можно оставить по умолчанию)
![Осцилляции по ROLL](assets/oscillRoll.jpg)

Some files were not shown because too many files have changed in this diff Show More