From 63f979c2ff34d021c1d8f85dc87364e8bb5c6bf0 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Tue, 13 Apr 2021 08:33:30 +0300 Subject: [PATCH 01/17] docs: minor redirects update --- redirects.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/redirects.json b/redirects.json index 134dae7c..bdce76bd 100644 --- a/redirects.json +++ b/redirects.json @@ -49,7 +49,8 @@ { "from": "modes/", "to": "ru/modes.html" }, { "from": "firmware/", "to": "en/firmware.html" }, - { "from": "simple_offboard/", "to": "ru/simple_offboard.html" }, + { "from": "simple_offboard/", "to": "en/simple_offboard.html" }, + { "from": "offboard/", "to": "en/simple_offboard.html" }, { "from": "camera/", "to": "ru/camera.html" }, { "from": "snippets/", "to": "ru/snippets.html" }, { "from": "optical_flow/", "to": "ru/optical_flow.html" }, From dfdaf3aa4f0c87691f31bac5e2f0592ea1810f4f Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Tue, 13 Apr 2021 08:50:10 +0300 Subject: [PATCH 02/17] image: add get_telemetry example --- builder/assets/examples/get_telemetry.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 builder/assets/examples/get_telemetry.py diff --git a/builder/assets/examples/get_telemetry.py b/builder/assets/examples/get_telemetry.py new file mode 100644 index 00000000..fbbfb24f --- /dev/null +++ b/builder/assets/examples/get_telemetry.py @@ -0,0 +1,11 @@ +# Information: https://clover.coex.tech/en/simple_offboard.html#gettelemetry + +import rospy +from clover import srv + +rospy.init_node('flight') + +get_telemetry = rospy.ServiceProxy('get_telemetry', srv.GetTelemetry) + +# Print drone's state +print(get_telemetry()) From 9829ee2e727cf566abff9725751431c69c7fb185 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Tue, 13 Apr 2021 09:32:26 +0300 Subject: [PATCH 03/17] docs: minor change --- docs/ru/programming.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/programming.md b/docs/ru/programming.md index 8dea6653..370f1566 100644 --- a/docs/ru/programming.md +++ b/docs/ru/programming.md @@ -32,7 +32,7 @@ ## Автономный полет {#flight} -> **Info** Для изучения языка программирования Python обращайтесь к [самоучителю](https://pythonworld.ru/samouchitel-python). +> **Info** Для изучения языка программирования Python вы можете обратиться к [самоучителю](https://pythonworld.ru/samouchitel-python). После настройки системы позиционирования становится возможным написание скриптов для автономных полетов. Для выполнения скриптов [подключитесь в Raspberry Pi по SSH](ssh.md). Для того, чтобы запустить Python-скрипт, используйте команду `python`: From 0504569b0cadc92a412a7fbe1abf44240b293fe3 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Sat, 10 Apr 2021 07:21:46 +0300 Subject: [PATCH 04/17] Fix building documentation --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 3d240f67..aa326366 100644 --- a/.travis.yml +++ b/.travis.yml @@ -77,6 +77,7 @@ jobs: - 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 + - gitbook fetch 3.2.3 && npm i npm@3.10.10 --prefix=~/.gitbook/versions/3.2.3/ # fixing https://travis-ci.org/github/CopterExpress/clover/jobs/766541125#L932 - npm install markdownlint-cli -g - npm install svgexport -g - gitbook -V From 200c5dea57432c5d8c7bb7b113e94d790fde17f0 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Sat, 10 Apr 2021 07:49:26 +0300 Subject: [PATCH 05/17] image: fix documentation building in image --- builder/image-ros.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/builder/image-ros.sh b/builder/image-ros.sh index 1bd60339..b9700088 100755 --- a/builder/image-ros.sh +++ b/builder/image-ros.sh @@ -101,6 +101,7 @@ rm -rf build # remove build artifacts echo_stamp "Build Clover documentation" cd /home/pi/catkin_ws/src/clover NPM_CONFIG_UNSAFE_PERM=true npm install gitbook-cli -g +NPM_CONFIG_UNSAFE_PERM=true gitbook fetch 3.2.3 && npm i npm@3.10.10 --prefix=~/.gitbook/versions/3.2.3/ # fixing https://travis-ci.org/github/CopterExpress/clover/jobs/766541125#L932 NPM_CONFIG_UNSAFE_PERM=true gitbook install gitbook build touch node_modules/CATKIN_IGNORE docs/CATKIN_IGNORE _book/CATKIN_IGNORE clover/www/CATKIN_IGNORE apps/CATKIN_IGNORE # ignore documentation files by catkin From f825901a19bd544ff04206d07e5274a838f51c7f Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Tue, 13 Apr 2021 10:58:20 +0300 Subject: [PATCH 06/17] docs: add link to selfcheck utility to programming article --- docs/en/programming.md | 10 +++++++++- docs/ru/programming.md | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/docs/en/programming.md b/docs/en/programming.md index f927e8b9..78f5ae34 100644 --- a/docs/en/programming.md +++ b/docs/en/programming.md @@ -34,7 +34,15 @@ Read more in the [GPS connection](gps.md) article. > **Info** For studying Python programming language, see [tutorial](https://www.learnpython.org/en/Welcome). -After you've configured your positioning system, you can start writing programs for autonomous flights. Use the [SSH connection to the Raspberry Pi](ssh.md) to run your scripts. In order to run a Python script use the `python` command: +After you've configured your positioning system, you can start writing programs for autonomous flights. Use the [SSH connection to the Raspberry Pi](ssh.md) to run your scripts. + +Before the first flight it's recommended to check the Clover's configuration with [selfcheck.py utility](selfcheck.md): + +```bash +rosrun clover selfcheck.py +``` + +In order to run a Python script use the `python` command: ```bash python flight.py diff --git a/docs/ru/programming.md b/docs/ru/programming.md index 370f1566..b4e5c395 100644 --- a/docs/ru/programming.md +++ b/docs/ru/programming.md @@ -34,7 +34,15 @@ > **Info** Для изучения языка программирования Python вы можете обратиться к [самоучителю](https://pythonworld.ru/samouchitel-python). -После настройки системы позиционирования становится возможным написание скриптов для автономных полетов. Для выполнения скриптов [подключитесь в Raspberry Pi по SSH](ssh.md). Для того, чтобы запустить Python-скрипт, используйте команду `python`: +После настройки системы позиционирования становится возможным написание скриптов для автономных полетов. Для выполнения скриптов [подключитесь в Raspberry Pi по SSH](ssh.md). + +Перед первым полетом рекомендуется проверить конфигурацию Клевера при помощи [утилиты selfcheck.py](selfcheck.md): + +```bash +rosrun clover selfcheck.py +``` + +Для того, чтобы запустить Python-скрипт, используйте команду `python`: ```bash python flight.py From c72eb1b44026f43907392cbea32be6d0a5fb4741 Mon Sep 17 00:00:00 2001 From: SeliverstovaE <64311178+SeliverstovaE@users.noreply.github.com> Date: Wed, 14 Apr 2021 22:22:36 +0300 Subject: [PATCH 07/17] docs: minor change to copterhack2021.md (#325) * Update copterhack2021.md * Update docs/en/copterhack2021.md Co-authored-by: Oleg Kalachev --- docs/en/copterhack2021.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/copterhack2021.md b/docs/en/copterhack2021.md index 136d455b..cd8d9670 100644 --- a/docs/en/copterhack2021.md +++ b/docs/en/copterhack2021.md @@ -1,6 +1,6 @@ # CopterHack 2021 -CopterHack 2021 is a team competition for the development of open source projects for the Clover quadcopter platform. +CopterHack 2021 is a team competition for the development of open source projects for the Clover quadcopter platform. Fifty-four teams from 12 countries took part in the competition. All information about the event can be found on the official website: https://coex.tech/copterhack. From b4a8119bd711aa73750a35ba1d0c38bdb5e2ba9c Mon Sep 17 00:00:00 2001 From: SeliverstovaE <64311178+SeliverstovaE@users.noreply.github.com> Date: Wed, 14 Apr 2021 22:23:43 +0300 Subject: [PATCH 08/17] docs: minor change to copterhack2021.md (ru) (#324) * Update copterhack2021.md * Update docs/ru/copterhack2021.md Co-authored-by: Oleg Kalachev --- docs/ru/copterhack2021.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/copterhack2021.md b/docs/ru/copterhack2021.md index ee0446bf..0b93a3b3 100644 --- a/docs/ru/copterhack2021.md +++ b/docs/ru/copterhack2021.md @@ -1,6 +1,6 @@ # CopterHack 2021 -CopterHack 2021 – это командный конкурс по разработке проектов с открытым исходным кодом для платформы квадрокоптера "Клевер". +CopterHack 2021 – это командный конкурс по разработке проектов с открытым исходным кодом для платформы квадрокоптера "Клевер". В конкурсе приняло участие 54 команды из 12 стран. Все информацию о мероприятии смотрите на официальном сайте: https://ru.coex.tech/copterhack. From 659380c57558f3bbcc2e32b691a5e74a87a468a9 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Fri, 16 Apr 2021 10:34:07 +0300 Subject: [PATCH 09/17] docs: clover_vm redirect --- redirects.json | 1 + 1 file changed, 1 insertion(+) diff --git a/redirects.json b/redirects.json index bdce76bd..8d4a04ff 100644 --- a/redirects.json +++ b/redirects.json @@ -62,6 +62,7 @@ { "from": "camera_setup/", "to": "en/camera_setup.html" }, { "from": "power/", "to": "en/power.html" }, { "from": "connection/", "to": "en/connection.html" }, + { "from": "clover_vm/", "to": "en/simulation_vm.html" }, { "from": "ru/microsd_images.html", "to": "image.html" }, { "from": "en/microsd_images.html", "to": "image.html" } From cb88537ddc9a85220bda208c1adc19f2a1e19e82 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Tue, 20 Apr 2021 16:53:53 +0300 Subject: [PATCH 10/17] docs: add snippet for using aruco_detect/enabled dynamic parameter --- docs/en/snippets.md | 25 +++++++++++++++++++++++++ docs/ru/snippets.md | 25 +++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/docs/en/snippets.md b/docs/en/snippets.md index 4772077b..b8fe6539 100644 --- a/docs/en/snippets.md +++ b/docs/en/snippets.md @@ -359,3 +359,28 @@ calibrate_gyro() ``` > **Note** In process of calibration the drone should not be moved. + + + +### # {#aruco-detect-enabled} + + + +Enable and disable [ArUco markers recognition](aruco_marker.md) dynamically (for example, for saving CPU resources): + +```python +import rospy +import dynamic_reconfigure.client + +# ... + +client = dynamic_reconfigure.client.Client('aruco_detect') + +# Turn markers recognition off +client.update_configuration({'enabled': False}) + +rospy.sleep(5) + +# Turn markers recognition on +client.update_configuration({'enabled': True}) +``` diff --git a/docs/ru/snippets.md b/docs/ru/snippets.md index adaabe5d..af71488f 100644 --- a/docs/ru/snippets.md +++ b/docs/ru/snippets.md @@ -377,3 +377,28 @@ calibrate_gyro() ``` > **Note** В процессе калибровки гироскопов дрон нельзя двигать. + + + +### # {#aruco-detect-enabled} + + + +Динамически включать и отключать [распознавание ArUco-маркеров](aruco_marker.md) (например, для экономии ресурсов процессора): + +```python +import rospy +import dynamic_reconfigure.client + +# ... + +client = dynamic_reconfigure.client.Client('aruco_detect') + +# Turn markers recognition off +client.update_configuration({'enabled': False}) + +rospy.sleep(5) + +# Turn markers recognition on +client.update_configuration({'enabled': True}) +``` From e0ca1272bbc359ff70aff5146105d952fa81df2c Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Fri, 23 Apr 2021 22:46:48 +0300 Subject: [PATCH 11/17] clover.launch: wait for px4fmu device until starting mavros --- clover/launch/mavros.launch | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/clover/launch/mavros.launch b/clover/launch/mavros.launch index 1eea4558..d67e40e4 100644 --- a/clover/launch/mavros.launch +++ b/clover/launch/mavros.launch @@ -6,13 +6,15 @@ + + - + - + From 4943cb94b09247f7b49841b0459f367a286c5d33 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Sat, 1 May 2021 08:49:27 +0300 Subject: [PATCH 12/17] www: simplify showing image version on the main page Using a clover_version symlink instead of shell node --- builder/image-software.sh | 1 + clover/www/clover_version | 1 + clover/www/index.html | 10 +++++----- 3 files changed, 7 insertions(+), 5 deletions(-) create mode 120000 clover/www/clover_version diff --git a/builder/image-software.sh b/builder/image-software.sh index 5d695571..54917504 100755 --- a/builder/image-software.sh +++ b/builder/image-software.sh @@ -149,6 +149,7 @@ my_travis_retry pip install --prefer-binary rpi_ws281x echo_stamp "Setup Monkey" mv /etc/monkey/sites/default /etc/monkey/sites/default.orig mv /root/monkey /etc/monkey/sites/default +sed -i 's/SymLink Off/SymLink On/' /etc/monkey/monkey.conf systemctl enable monkey.service echo_stamp "Install Node.js" diff --git a/clover/www/clover_version b/clover/www/clover_version new file mode 120000 index 00000000..ac5ca460 --- /dev/null +++ b/clover/www/clover_version @@ -0,0 +1 @@ +/etc/clover_version \ No newline at end of file diff --git a/clover/www/index.html b/clover/www/index.html index 676b48e5..fbae51c8 100644 --- a/clover/www/index.html +++ b/clover/www/index.html @@ -13,15 +13,15 @@
- From 480a9b1f0ada91f7536d294669219bb224eb9fdc Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Sat, 1 May 2021 08:52:42 +0300 Subject: [PATCH 13/17] =?UTF-8?q?clover.launch:=20remove=20shell=20node=20?= =?UTF-8?q?autolaunch=20as=20it=E2=80=99s=20not=20needed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clover/launch/clover.launch | 4 ---- clover/test/basic.py | 16 ---------------- 2 files changed, 20 deletions(-) diff --git a/clover/launch/clover.launch b/clover/launch/clover.launch index a3e3ba8e..5626c82a 100644 --- a/clover/launch/clover.launch +++ b/clover/launch/clover.launch @@ -12,7 +12,6 @@ - @@ -91,9 +90,6 @@
- - - diff --git a/clover/test/basic.py b/clover/test/basic.py index fe546f7d..f9a767d8 100755 --- a/clover/test/basic.py +++ b/clover/test/basic.py @@ -28,19 +28,3 @@ def test_simple_offboard_services_available(): def test_web_video_server(node): import urllib2 urllib2.urlopen("http://localhost:8080").read() - -def test_shell(node): - execute = rospy.ServiceProxy('exec', srv.Execute) - execute.wait_for_service(5) - - res = execute(cmd='echo foo') - assert res.code == 0 - assert res.output == 'foo\n' - - res = execute(cmd='foo') - assert res.code == 32512 - assert res.output == '' - - res = execute(cmd='ls foo') - assert res.code == 512 - assert res.output == '' From cdd6000c586511d971229176a3315bce7325192e Mon Sep 17 00:00:00 2001 From: deadln <44840386+deadln@users.noreply.github.com> Date: Fri, 7 May 2021 00:23:54 -0700 Subject: [PATCH 14/17] Fix packages installation (#326) * Catkin install testing * Update standalone-install.sh * Fix aruco_pose DetectorParams generating * Update builder/standalone-install.sh * Fix * Fix Co-authored-by: Oleg Kalachev --- aruco_pose/CMakeLists.txt | 2 +- aruco_pose/cfg/{DetectorParams.cfg => Detector.cfg} | 0 builder/standalone-install.sh | 3 +++ clover_simulation/CMakeLists.txt | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) rename aruco_pose/cfg/{DetectorParams.cfg => Detector.cfg} (100%) diff --git a/aruco_pose/CMakeLists.txt b/aruco_pose/CMakeLists.txt index 30fe1e4b..f0176424 100644 --- a/aruco_pose/CMakeLists.txt +++ b/aruco_pose/CMakeLists.txt @@ -111,7 +111,7 @@ generate_messages( ## Generate dynamic reconfigure parameters in the 'cfg' folder generate_dynamic_reconfigure_options( - cfg/DetectorParams.cfg + cfg/Detector.cfg ) ################################### diff --git a/aruco_pose/cfg/DetectorParams.cfg b/aruco_pose/cfg/Detector.cfg similarity index 100% rename from aruco_pose/cfg/DetectorParams.cfg rename to aruco_pose/cfg/Detector.cfg diff --git a/builder/standalone-install.sh b/builder/standalone-install.sh index d477fb30..f4da6623 100755 --- a/builder/standalone-install.sh +++ b/builder/standalone-install.sh @@ -41,3 +41,6 @@ pip install --upgrade pytest cd /root/catkin_ws source devel/setup.bash catkin_make run_tests && catkin_test_results + +# Step 5: Install packages +catkin_make install diff --git a/clover_simulation/CMakeLists.txt b/clover_simulation/CMakeLists.txt index 7ee6b14e..a4a6a2b0 100644 --- a/clover_simulation/CMakeLists.txt +++ b/clover_simulation/CMakeLists.txt @@ -52,7 +52,7 @@ target_compile_options(throttling_camera PRIVATE -std=c++11) add_dependencies(throttling_camera ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) install(DIRECTORY launch DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) -install(DIRECTORY meshes DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) +install(DIRECTORY models DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) install(DIRECTORY resources DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) catkin_install_python(PROGRAMS scripts/aruco_gen From c0d9bd7ef0a7b0a5d7282142ca6c0d830447b0c7 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Wed, 12 May 2021 23:41:14 +0300 Subject: [PATCH 15/17] mavros.launch: add default 'prefix' argument --- clover/launch/mavros.launch | 1 + 1 file changed, 1 insertion(+) diff --git a/clover/launch/mavros.launch b/clover/launch/mavros.launch index d67e40e4..cb958447 100644 --- a/clover/launch/mavros.launch +++ b/clover/launch/mavros.launch @@ -7,6 +7,7 @@ + From 609a7ab0149194394f0842daad5e775961e0777b Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Thu, 13 May 2021 11:46:03 +0300 Subject: [PATCH 16/17] blocks: print exception info on error --- clover_blocks/src/clover_blocks | 2 ++ 1 file changed, 2 insertions(+) diff --git a/clover_blocks/src/clover_blocks b/clover_blocks/src/clover_blocks index dd14312f..abee8383 100755 --- a/clover_blocks/src/clover_blocks +++ b/clover_blocks/src/clover_blocks @@ -10,6 +10,7 @@ from __future__ import print_function +import traceback import rospy import os import threading @@ -116,6 +117,7 @@ def run(req): rospy.loginfo('Program forced to stop') except Exception as e: rospy.logerr(str(e)) + traceback.print_exc() error_pub.publish(str(e)) rospy.loginfo('Program terminated') From 80d446e8579e56347b3b02d074bea403dcea27ce Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Thu, 13 May 2021 14:36:15 +0300 Subject: [PATCH 17/17] blocks: show traceback in error alert --- clover_blocks/src/clover_blocks | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/clover_blocks/src/clover_blocks b/clover_blocks/src/clover_blocks index abee8383..82a12854 100755 --- a/clover_blocks/src/clover_blocks +++ b/clover_blocks/src/clover_blocks @@ -10,9 +10,9 @@ from __future__ import print_function -import traceback import rospy -import os +import os, sys +import traceback import threading import re import uuid @@ -118,7 +118,11 @@ def run(req): except Exception as e: rospy.logerr(str(e)) traceback.print_exc() - error_pub.publish(str(e)) + etype, value, tb = sys.exc_info() + fmt = traceback.format_exception(etype, value, tb) + fmt.pop(1) # remove 'clover_blocks' file frame + exc_info = ''.join(fmt) + error_pub.publish(str(e) + '\n\n' + exc_info) rospy.loginfo('Program terminated') running_lock.release()