mirror of
https://github.com/CopterExpress/clover.git
synced 2026-05-26 11:43:25 +00:00
Merge branch 'master' into bookworm
This commit is contained in:
6
.github/workflows/build-image.yaml
vendored
6
.github/workflows/build-image.yaml
vendored
@@ -22,12 +22,12 @@ jobs:
|
|||||||
# cd images && sudo chmod -R 777 . && zip -9 $(echo clover_*).zip clover_* && ls -lh . && unzip -l clover_*.zip
|
# cd images && sudo chmod -R 777 . && zip -9 $(echo clover_*).zip clover_* && ls -lh . && unzip -l clover_*.zip
|
||||||
- name: Compress image using 7-Zip
|
- name: Compress image using 7-Zip
|
||||||
run: |
|
run: |
|
||||||
cd images && sudo chmod -R 777 . && 7z a -mx=9 $(echo clover_*).7z clover_* && ls -lh . && 7z l clover_*.7z
|
cd images && sudo chmod -R 777 . && 7z a -mx=9 $(echo *_*).7z *_* && ls -lh . && 7z l *_*.7z
|
||||||
- name: Upload image
|
- name: Upload image
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v1
|
||||||
if: ${{ github.event_name == 'release' }}
|
if: ${{ github.event_name == 'release' }}
|
||||||
with:
|
with:
|
||||||
files: images/clover_*.zip
|
files: images/*_*.zip
|
||||||
prerelease: true
|
prerelease: true
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -36,5 +36,5 @@ jobs:
|
|||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: image
|
name: image
|
||||||
path: images/clover_*.7z
|
path: images/*_*.7z
|
||||||
retention-days: 1
|
retention-days: 1
|
||||||
|
|||||||
@@ -113,7 +113,9 @@
|
|||||||
"VMware",
|
"VMware",
|
||||||
"DuoCam"
|
"DuoCam"
|
||||||
],
|
],
|
||||||
"code_blocks": false
|
"code_blocks": false,
|
||||||
|
"html_elements": false
|
||||||
},
|
},
|
||||||
"MD045": false
|
"MD045": false,
|
||||||
|
"MD051": false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
<param name="dictionary" value="2"/> <!-- DICT_4X4_250 -->
|
<param name="dictionary" value="2"/> <!-- DICT_4X4_250 -->
|
||||||
<param name="estimate_poses" value="true"/>
|
<param name="estimate_poses" value="true"/>
|
||||||
<param name="send_tf" value="true"/>
|
<param name="send_tf" value="true"/>
|
||||||
<param name="use_map_markers" value="true"/>
|
<param name="use_map_markers" value="$(arg aruco_map)"/>
|
||||||
<param name="known_vertical" value="map" if="$(eval placement == 'floor' or placement == 'ceiling')"/>
|
<param name="known_vertical" value="map" if="$(eval placement == 'floor' or placement == 'ceiling')"/>
|
||||||
<param name="flip_vertical" value="true" if="$(eval placement == 'ceiling')"/>
|
<param name="flip_vertical" value="true" if="$(eval placement == 'ceiling')"/>
|
||||||
<param name="length" value="$(arg length)"/>
|
<param name="length" value="$(arg length)"/>
|
||||||
|
|||||||
@@ -303,6 +303,14 @@ def check_fcu():
|
|||||||
failure('cell voltage is not available, https://clover.coex.tech/power')
|
failure('cell voltage is not available, https://clover.coex.tech/power')
|
||||||
else:
|
else:
|
||||||
cell = battery.cell_voltage[0]
|
cell = battery.cell_voltage[0]
|
||||||
|
# number of cells 1 means this is overall voltage
|
||||||
|
if len(battery.cell_voltage) == 1:
|
||||||
|
n_cells = get_param('BAT1_N_CELLS', strict=False)
|
||||||
|
if n_cells is None:
|
||||||
|
# older PX4
|
||||||
|
n_cells = get_param('BAT_N_CELLS', strict=True)
|
||||||
|
cell /= n_cells
|
||||||
|
|
||||||
if cell > 4.3 or cell < 3.0:
|
if cell > 4.3 or cell < 3.0:
|
||||||
failure('incorrect cell voltage: %.2f V, https://clover.coex.tech/power', cell)
|
failure('incorrect cell voltage: %.2f V, https://clover.coex.tech/power', cell)
|
||||||
elif cell < 3.7:
|
elif cell < 3.7:
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ navigate(x=2, y=2, z=2, speed=1, frame_id='aruco_map')
|
|||||||
|
|
||||||
### Using a specific marker frame
|
### Using a specific marker frame
|
||||||
|
|
||||||
Starting with the [image](image.md) version 0.18, the drone also can fly relative to a marker in the map, even if it is not currently visible. Like with [single-marker navigation](aruco_marker.md#working-with-detected-markers), this works by setting the frame_id parameter to aruco_ID, where ID is the desired marker number.
|
Starting with the [image](image.md) version 0.18, the drone also can fly relative to a marker in the map, even if it is not currently visible. Like with [single-marker navigation](aruco_marker.md#working-with-detected-markers), this works by setting the frame_id parameter to `aruco_ID`, where ID is the desired marker number.
|
||||||
|
|
||||||
The following code will move the drone to the point 1 meter above the center of marker 5:
|
The following code will move the drone to the point 1 meter above the center of marker 5:
|
||||||
|
|
||||||
|
|||||||
@@ -210,7 +210,7 @@ Most of the parameters for autonomous flight are located in the following direct
|
|||||||
<arg name="aruco_vpe" default="true"/>`
|
<arg name="aruco_vpe" default="true"/>`
|
||||||
```
|
```
|
||||||
|
|
||||||
- Generate the ArUco markers field. See the article [Map-based navigation with ArUco markers] (aruco_map.md # marker map settings) for details. To generate markers, you need to enter a command with specific values.
|
- Generate the ArUco markers field. See the article [Map-based navigation with ArUco markers](aruco_map.md#marker-map-definition) for details. To generate markers, you need to enter a command with specific values.
|
||||||
|
|
||||||
Here is the example generating command where:
|
Here is the example generating command where:
|
||||||
|
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ navigate(x=2, y=2, z=2, speed=1, frame_id='aruco_map') # полет в коор
|
|||||||
|
|
||||||
### Полет в координаты по ID маркера
|
### Полет в координаты по ID маркера
|
||||||
|
|
||||||
Начиная с версии [образа](image.md) 0.18, доступны также полёты относительно отдельного маркера в карте, даже если дрон его не видит. По аналогии с [навигацией по отдельным маркерам](aruco_marker.md#навигация-по-маркерам) при настройке карты маркеров дрон сможет лететь в координаты относительно отдельного маркера, используя фрейм aruco_ID с соответствующим ID маркера.
|
Начиная с версии [образа](image.md) 0.18, доступны также полёты относительно отдельного маркера в карте, даже если дрон его не видит. По аналогии с [навигацией по отдельным маркерам](aruco_marker.md#навигация-по-маркерам) при настройке карты маркеров дрон сможет лететь в координаты относительно отдельного маркера, используя фрейм `aruco_ID` с соответствующим ID маркера.
|
||||||
|
|
||||||
Полет в точку над маркером 5 на высоту 1 метр:
|
Полет в точку над маркером 5 на высоту 1 метр:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user