mirror of
https://github.com/CopterExpress/clover.git
synced 2026-06-01 15:39:32 +00:00
Compare commits
24 Commits
v0.21.2-qb
...
melodic-de
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a1aa153fba | ||
|
|
53a00ef5e7 | ||
|
|
6809c0e852 | ||
|
|
03b87ee336 | ||
|
|
cdd6000c58 | ||
|
|
480a9b1f0a | ||
|
|
4943cb94b0 | ||
|
|
e0ca1272bb | ||
|
|
cb88537ddc | ||
|
|
659380c575 | ||
|
|
b4a8119bd7 | ||
|
|
c72eb1b440 | ||
|
|
f825901a19 | ||
|
|
200c5dea57 | ||
|
|
0504569b0c | ||
|
|
9829ee2e72 | ||
|
|
dfdaf3aa4f | ||
|
|
63f979c2ff | ||
|
|
b8dafce816 | ||
|
|
19e0b94fda | ||
|
|
957e57692c | ||
|
|
0d49c426eb | ||
|
|
a2c3b77c62 | ||
|
|
cbeb46fac3 |
@@ -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
|
||||
|
||||
@@ -21,6 +21,7 @@ Clover drone is used on a wide range of educational events, including [Copter Ha
|
||||
Preconfigured image for Raspberry Pi with installed and configured software, ready to fly, is available [in the Releases section](https://github.com/CopterExpress/clover/releases).
|
||||
|
||||
[](https://travis-ci.org/CopterExpress/clover)
|
||||

|
||||
|
||||
Image features:
|
||||
|
||||
|
||||
0
_book/file
Normal file
0
_book/file
Normal file
@@ -111,7 +111,7 @@ generate_messages(
|
||||
|
||||
## Generate dynamic reconfigure parameters in the 'cfg' folder
|
||||
generate_dynamic_reconfigure_options(
|
||||
cfg/DetectorParams.cfg
|
||||
cfg/Detector.cfg
|
||||
)
|
||||
|
||||
###################################
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<package format="2">
|
||||
<name>aruco_pose</name>
|
||||
<version>0.21.1</version>
|
||||
<version>0.21.3</version>
|
||||
<description>Positioning with ArUco markers</description>
|
||||
|
||||
<maintainer email="okalachev@gmail.com">Oleg Kalachev</maintainer>
|
||||
|
||||
11
builder/assets/examples/get_telemetry.py
Normal file
11
builder/assets/examples/get_telemetry.py
Normal file
@@ -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())
|
||||
@@ -79,10 +79,4 @@ if ! grep -q "^bcm2835-v4l2" /etc/modules;
|
||||
then printf "bcm2835-v4l2\n" >> /etc/modules
|
||||
fi
|
||||
|
||||
echo_stamp "#8 Check if Compute Module 4"
|
||||
if grep -q "Compute Module 4" "/proc/device-tree/model"; then
|
||||
echo_stamp "Enable USB on Compute Module 4"
|
||||
echo "dtoverlay=dwc2,dr_mode=host" >> /boot/config.txt
|
||||
fi
|
||||
|
||||
echo_stamp "#9 End of configure hardware interfaces"
|
||||
echo_stamp "#8 End of configure hardware interfaces"
|
||||
|
||||
@@ -60,25 +60,4 @@ domain-needed
|
||||
quiet-dhcp6
|
||||
EOF
|
||||
|
||||
echo_stamp "#4 Build the RTL8814AU Wi-Fi adapter driver"
|
||||
wget http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/raspberrypi-kernel-headers_1.20210108-1_armhf.deb
|
||||
dpkg -i raspberrypi-kernel-headers_1.20210108-1_armhf.deb
|
||||
cd /home/pi
|
||||
git clone https://github.com/aircrack-ng/rtl8812au.git --depth=1
|
||||
cd rtl8812au
|
||||
echo kernel version: $(uname -r)
|
||||
echo kernel version from procfs: $(cat /proc/version)
|
||||
echo version: $(git describe --tags --always)
|
||||
sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g' Makefile # https://github.com/aircrack-ng/rtl8812au#for-raspberry-rpi
|
||||
sed -i 's/CONFIG_PLATFORM_ARM_RPI = n/CONFIG_PLATFORM_ARM_RPI = y/g' Makefile
|
||||
# sed -i 's/CONFIG_PLATFORM_ARM64_RPI = n/CONFIG_PLATFORM_ARM64_RPI = y/g' Makefile
|
||||
apt-cache policy raspberrypi-kernel-headers
|
||||
# apt-get install -y raspberrypi-kernel-headers=1.20210108 dkms
|
||||
apt-get install -y dkms
|
||||
ls /lib/modules
|
||||
echo make
|
||||
make KERNEL_VER=5.4.83-v7l+ KVER=5.4.83-v7l+
|
||||
echo make install
|
||||
make install KERNEL_VER=5.4.83-v7l+ KVER=5.4.83-v7l+
|
||||
|
||||
echo_stamp "#5 End of network installation"
|
||||
echo_stamp "#4 End of network installation"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -24,6 +24,7 @@ find_package(catkin REQUIRED COMPONENTS
|
||||
tf2_ros
|
||||
image_transport
|
||||
cv_bridge
|
||||
catkin_virtualenv
|
||||
)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
|
||||
@@ -132,6 +133,16 @@ generate_messages(
|
||||
## LIBRARIES: libraries you create in this project that dependent projects also need
|
||||
## CATKIN_DEPENDS: catkin_packages dependent projects also need
|
||||
## DEPENDS: system dependencies of this project that dependent projects also need
|
||||
|
||||
# Generate the virtualenv
|
||||
catkin_generate_virtualenv(INPUT_REQUIREMENTS requirements.in)
|
||||
|
||||
# Make sure your python executables are installed using `catkin_install_python`:
|
||||
catkin_install_python(
|
||||
PROGRAMS
|
||||
src/selfcheck.py
|
||||
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
|
||||
|
||||
catkin_package(
|
||||
# INCLUDE_DIRS include
|
||||
LIBRARIES ${PROJECT_NAME}
|
||||
@@ -248,11 +259,8 @@ target_link_libraries(${PROJECT_NAME}
|
||||
# )
|
||||
|
||||
## Mark other files for installation (e.g. launch and bag files, etc.)
|
||||
# install(FILES
|
||||
# # myfile1
|
||||
# # myfile2
|
||||
# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
|
||||
# )
|
||||
install(FILES requirements.in
|
||||
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
|
||||
|
||||
# Only install udev rules when building a Debian package
|
||||
# FIXME: Other operating systems may have other prefixes
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
<arg name="led" default="true"/>
|
||||
<arg name="blocks" default="false"/>
|
||||
<arg name="rc" default="true"/>
|
||||
<arg name="shell" default="true"/>
|
||||
|
||||
<arg name="simulator" default="false"/> <!-- flag that we are operating on a simulated drone -->
|
||||
|
||||
@@ -91,9 +90,6 @@
|
||||
<param name="use_fake_gcs" value="false"/>
|
||||
</node>
|
||||
|
||||
<!-- Shell access through ROS service -->
|
||||
<node name="shell" pkg="clover" type="shell" output="screen" if="$(arg shell)"/>
|
||||
|
||||
<!-- Update static directory -->
|
||||
<node pkg="roswww_static" name="roswww_static" type="main.py" clear_params="true">
|
||||
<param name="default_package" value="clover"/>
|
||||
|
||||
@@ -6,13 +6,15 @@
|
||||
<arg name="viz" default="true"/>
|
||||
<arg name="respawn" default="true"/>
|
||||
<arg name="distance_sensor_remap" default="rangefinder/range"/>
|
||||
<arg name="usb_device" default="/dev/px4fmu"/>
|
||||
<arg name="prefix" default="bash -c 'while [ ! -e $(arg usb_device) ]; do sleep 1; done; $0 $@'" if="$(eval fcu_conn == 'usb')"/>
|
||||
|
||||
<node pkg="mavros" type="mavros_node" name="mavros" required="false" clear_params="true" respawn="$(arg respawn)" unless="$(eval fcu_conn == 'none')" respawn_delay="1" output="screen">
|
||||
<node pkg="mavros" type="mavros_node" name="mavros" launch-prefix="$(arg prefix)" required="false" clear_params="true" respawn="$(arg respawn)" unless="$(eval fcu_conn == 'none')" respawn_delay="1" output="screen">
|
||||
<!-- UART connection -->
|
||||
<param name="fcu_url" value="/dev/ttyAMA0:921600" if="$(eval fcu_conn is None or fcu_conn == 'uart')"/>
|
||||
|
||||
<!-- USB connection -->
|
||||
<param name="fcu_url" value="/dev/px4fmu" if="$(eval fcu_conn == 'usb')"/>
|
||||
<param name="fcu_url" value="$(arg usb_device)" if="$(eval fcu_conn == 'usb')"/>
|
||||
|
||||
<!-- sitl before PX4 1.9.0 -->
|
||||
<param name="fcu_url" value="udp://@$(arg fcu_ip):14557" if="$(eval fcu_conn == 'udp')"/>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<package format="2">
|
||||
<name>clover</name>
|
||||
<version>0.21.1</version>
|
||||
<version>0.21.3</version>
|
||||
<description>The Clover package</description>
|
||||
|
||||
<maintainer email="okalachev@gmail.com">Oleg Kalachev</maintainer>
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
<!-- Package format specifier version 2.0 allows specifying dependencies for both
|
||||
build- and runtime in a single <depend> element -->
|
||||
<build_depend>catkin_virtualenv</build_depend>
|
||||
<depend>message_generation</depend>
|
||||
<depend>roscpp</depend>
|
||||
<depend>rospy</depend>
|
||||
@@ -38,7 +39,8 @@
|
||||
<depend>web_video_server</depend>
|
||||
<depend>tf2_web_republisher</depend>
|
||||
<depend>python-lxml</depend>
|
||||
<exec_depend>python-pymavlink</exec_depend>
|
||||
<test_depend>ros_pytest</test_depend>
|
||||
<!-- <exec_depend>python-pymavlink</exec_depend> -->
|
||||
<!-- Use test_depend for packages you need only for testing: -->
|
||||
<!-- <test_depend>gtest</test_depend> -->
|
||||
|
||||
@@ -46,5 +48,6 @@
|
||||
<export>
|
||||
<nodelet plugin="${prefix}/nodelet_plugins.xml" />
|
||||
<!-- Other tools can request additional information be placed here -->
|
||||
<pip_requirements>requirements.in</pip_requirements>
|
||||
</export>
|
||||
</package>
|
||||
|
||||
13
clover/requirements.in
Normal file
13
clover/requirements.in
Normal file
@@ -0,0 +1,13 @@
|
||||
click>=7.1.2
|
||||
docopt>=0.6.2
|
||||
flask>=1.1.1
|
||||
future>=0.18.2
|
||||
geopy>=1.11.0
|
||||
itsdangerous>=1.1.0
|
||||
jinja2>=2.11.3
|
||||
lxml>=4.6.3
|
||||
markupsafe>=1.1.1
|
||||
pymavlink>=2.4.14
|
||||
smbus2>=0.3.0
|
||||
vl53l1x>=0.0.5
|
||||
werkzeug>=1.0.1
|
||||
@@ -1,5 +0,0 @@
|
||||
flask==1.1.1
|
||||
docopt==0.6.2
|
||||
geopy==1.11.0
|
||||
smbus2==0.3.0
|
||||
VL53L1X==0.0.5
|
||||
@@ -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 == ''
|
||||
|
||||
1
clover/www/clover_version
Symbolic link
1
clover/www/clover_version
Symbolic link
@@ -0,0 +1 @@
|
||||
/etc/clover_version
|
||||
@@ -13,15 +13,15 @@
|
||||
|
||||
<div class="version"></div>
|
||||
|
||||
<script src="js/roslib.js"></script>
|
||||
<script type="text/javascript">
|
||||
document.querySelector("#wvs").href = location.protocol + '//' + location.hostname + ':8080';
|
||||
document.querySelector("#butterfly").href = location.protocol + '//' + location.hostname + ':57575';
|
||||
|
||||
// Determine image version
|
||||
var ros = new ROSLIB.Ros({ url: 'ws://' + location.hostname + ':9090' });
|
||||
var exec = new ROSLIB.Service({ ros: ros, name : '/exec', serviceType : 'clover/Execute' });
|
||||
exec.callService(new ROSLIB.ServiceRequest({ cmd: 'cat /etc/clover_version' }), function(result) {
|
||||
document.querySelector('.version').innerHTML = 'Version: ' + result.output;
|
||||
fetch('clover_version').then(function(response) {
|
||||
if (response.status !== 200) return;
|
||||
response.text().then(function(text) {
|
||||
document.querySelector('.version').innerHTML = 'Version: ' + text;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<package format="2">
|
||||
<name>clover_blocks</name>
|
||||
<version>0.21.1</version>
|
||||
<version>0.21.3</version>
|
||||
<description>Blockly programming support for Clover</description>
|
||||
<maintainer email="okalachev@gmail.com">Oleg Kalachev</maintainer>
|
||||
<license>MIT</license>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<package format="2">
|
||||
<name>clover_description</name>
|
||||
<version>0.21.1</version>
|
||||
<version>0.21.3</version>
|
||||
<description>The clover_description package provides URDF models of the Clover series of quadcopters.</description>
|
||||
|
||||
<maintainer email="sfalexrog@gmail.com">Alexey Rogachevskiy</maintainer>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<package format="2">
|
||||
<name>clover_simulation</name>
|
||||
<version>0.21.1</version>
|
||||
<version>0.21.3</version>
|
||||
<description>The clover_simulation package provides worlds and launch files for Gazebo.</description>
|
||||
|
||||
<maintainer email="okalachev@gmail.com">Oleg Kalachev</maintainer>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 415 KiB After Width: | Height: | Size: 46 KiB |
4202
docs/assets/dxf/4.2/grip_spacer.dxf
Normal file
4202
docs/assets/dxf/4.2/grip_spacer.dxf
Normal file
File diff suppressed because it is too large
Load Diff
BIN
docs/assets/dxf/4.2/grip_spacer.png
Normal file
BIN
docs/assets/dxf/4.2/grip_spacer.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.7 KiB |
@@ -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.
|
||||
|
||||
|
||||
@@ -96,6 +96,16 @@ This page contains models and drawings of some of the drone parts. They can be u
|
||||
</td>
|
||||
<td><a href="https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/4.2/big_leg.dxf"><code>big_leg.dxf</code></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="../assets/dxf/4.2/grip_spacer.png"></td>
|
||||
<td>
|
||||
<b>Grip spacer</b>.<br>
|
||||
Function: spacer for the gripper plates.<br>
|
||||
Material: monolithic polycarbonate 2mm.<br>
|
||||
Quantity: 1 pcs.
|
||||
</td>
|
||||
<td><a href="https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/4.2/grip_spacer.dxf"><code>grip_spacer.dxf</code></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## Clover 4
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -359,3 +359,28 @@ calibrate_gyro()
|
||||
```
|
||||
|
||||
> **Note** In process of calibration the drone should not be moved.
|
||||
|
||||
<!-- markdownlint-disable MD044 -->
|
||||
|
||||
### # {#aruco-detect-enabled}
|
||||
|
||||
<!-- markdownlint-enable MD044 -->
|
||||
|
||||
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})
|
||||
```
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# CopterHack 2021
|
||||
|
||||
CopterHack 2021 – это командный конкурс по разработке проектов с открытым исходным кодом для платформы квадрокоптера "Клевер".
|
||||
CopterHack 2021 – это командный конкурс по разработке проектов с открытым исходным кодом для платформы квадрокоптера "Клевер". В конкурсе приняло участие 54 команды из 12 стран.
|
||||
|
||||
Все информацию о мероприятии смотрите на официальном сайте: https://ru.coex.tech/copterhack.
|
||||
|
||||
|
||||
@@ -96,6 +96,16 @@
|
||||
</td>
|
||||
<td><a href="https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/4.2/big_leg.dxf"><code>big_leg.dxf</code></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="../assets/dxf/4.2/grip_spacer.png"></td>
|
||||
<td>
|
||||
<b>Проставка для захвата</b>.<br>
|
||||
Функция: Опорный элемент для механического захвата.<br>
|
||||
Материал: Монолитный поликарбонат 2мм.<br>
|
||||
Количество: 1 шт.
|
||||
</td>
|
||||
<td><a href="https://github.com/CopterExpress/clover/raw/master/docs/assets/dxf/4.2/grip_spacer.dxf"><code>grip_spacer.dxf</code></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## Клевер 4
|
||||
|
||||
@@ -32,9 +32,17 @@
|
||||
|
||||
## Автономный полет {#flight}
|
||||
|
||||
> **Info** Для изучения языка программирования Python обращайтесь к [самоучителю](https://pythonworld.ru/samouchitel-python).
|
||||
> **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
|
||||
|
||||
@@ -377,3 +377,28 @@ calibrate_gyro()
|
||||
```
|
||||
|
||||
> **Note** В процессе калибровки гироскопов дрон нельзя двигать.
|
||||
|
||||
<!-- markdownlint-disable MD044 -->
|
||||
|
||||
### # {#aruco-detect-enabled}
|
||||
|
||||
<!-- markdownlint-enable MD044 -->
|
||||
|
||||
Динамически включать и отключать [распознавание 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})
|
||||
```
|
||||
|
||||
@@ -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" },
|
||||
@@ -61,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" }
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<package format="2">
|
||||
<name>roswww_static</name>
|
||||
<version>0.21.1</version>
|
||||
<version>0.21.3</version>
|
||||
<description>Static web pages for ROS packages</description>
|
||||
<maintainer email="okalachev@gmail.com">Oleg Kalachev</maintainer>
|
||||
<license>MIT</license>
|
||||
|
||||
Reference in New Issue
Block a user