Compare commits
10 Commits
efad1a7409
...
b335a4e7f6
| Author | SHA1 | Date | |
|---|---|---|---|
| b335a4e7f6 | |||
| bd29dd38a3 | |||
| 1f8d75cf12 | |||
| b1ecb64a12 | |||
| 954ef7bf7a | |||
| 9b252fe4fb | |||
| ed85c72b7b | |||
| db40327ecf | |||
| 7addc30fa2 | |||
| 5f8e8a0319 |
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.obsidian/
|
||||
206
C++/C++ 标准库常用头文件.md
Normal file
@ -0,0 +1,206 @@
|
||||
|
||||
C++标准库提供了丰富的头文件,用于包含各种功能和数据结构。以下是一些常用的C++标准库头文件及其主要作用:
|
||||
|
||||
1. **iostream**:输入和输出流操作,包括`cin`、`cout`、`cerr`、`clog`等。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <iostream>`
|
||||
|
||||
2. **iomanip**:输入输出流格式化操作,如`setw`、`setprecision`等。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <iomanip>`
|
||||
|
||||
3. **fstream**:文件输入和输出流操作,用于文件的读写。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <fstream>`
|
||||
|
||||
4. **string**:字符串操作,提供了丰富的字符串处理函数和类。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <string>`
|
||||
|
||||
5. **vector**:动态数组,提供了可变大小的数组容器。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <vector>`
|
||||
|
||||
6. **list**:双向链表容器。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <list>`
|
||||
|
||||
7. **deque**:双端队列容器。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <deque>`
|
||||
|
||||
8. **queue**:队列容器,通常基于deque实现。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <queue>`
|
||||
|
||||
9. **stack**:栈容器,通常基于deque实现。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <stack>`
|
||||
|
||||
10. **map**:关联容器,实现键-值对的有序映射。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <map>`
|
||||
|
||||
11. **set**:关联容器,实现有序集合。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <set>`
|
||||
|
||||
12. **algorithm**:提供了各种常见算法,如排序、查找等。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <algorithm>`
|
||||
|
||||
13. **numeric**:数值算法,提供了一些对数值进行操作的函数。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <numeric>`
|
||||
|
||||
14. **cmath**:数学函数库,提供了数学运算函数。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <cmath>`
|
||||
|
||||
15. **ctime**:时间和日期操作,提供了与时间相关的函数。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <ctime>`
|
||||
|
||||
16. **cstdlib**:通用工具函数,提供了一些通用的功能,如`atoi`、`rand`等。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <cstdlib>`
|
||||
|
||||
17. **cassert**:断言,用于在程序中插入调试断言。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <cassert>`C++标准库提供了丰富的头文件,用于包含各种功能和数据结构。以下是一些常用的C++标准库头文件及其主要作用:
|
||||
|
||||
1. **iostream**:输入和输出流操作,包括`cin`、`cout`、`cerr`、`clog`等。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <iostream>`
|
||||
|
||||
2. **iomanip**:输入输出流格式化操作,如`setw`、`setprecision`等。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <iomanip>`
|
||||
|
||||
3. **fstream**:文件输入和输出流操作,用于文件的读写。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <fstream>`
|
||||
|
||||
4. **string**:字符串操作,提供了丰富的字符串处理函数和类。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <string>`
|
||||
|
||||
5. **vector**:动态数组,提供了可变大小的数组容器。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <vector>`
|
||||
|
||||
6. **list**:双向链表容器。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <list>`
|
||||
|
||||
7. **deque**:双端队列容器。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <deque>`
|
||||
|
||||
8. **queue**:队列容器,通常基于deque实现。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <queue>`
|
||||
|
||||
9. **stack**:栈容器,通常基于deque实现。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <stack>`
|
||||
|
||||
10. **map**:关联容器,实现键-值对的有序映射。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <map>`
|
||||
|
||||
11. **set**:关联容器,实现有序集合。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <set>`
|
||||
|
||||
12. **algorithm**:提供了各种常见算法,如排序、查找等。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <algorithm>`
|
||||
|
||||
13. **numeric**:数值算法,提供了一些对数值进行操作的函数。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <numeric>`
|
||||
|
||||
14. **cmath**:数学函数库,提供了数学运算函数。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <cmath>`
|
||||
|
||||
15. **ctime**:时间和日期操作,提供了与时间相关的函数。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <ctime>`
|
||||
|
||||
16. **cstdlib**:通用工具函数,提供了一些通用的功能,如`atoi`、`rand`等。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <cstdlib>`
|
||||
|
||||
17. **cassert**:断言,用于在程序中插入调试断言。
|
||||
|
||||
cppCopy code
|
||||
|
||||
`#include <cassert>`
|
||||
12
C++/clang-format.md
Normal file
@ -0,0 +1,12 @@
|
||||
clang-format -style=可选格式名 -dump-config > .clang-format
|
||||
|
||||
|
||||
LLVM A style complying with the LLVM coding standards
|
||||
Google A style complying with Google’s C++ style guide
|
||||
Chromium A style complying with Chromium’s style guide
|
||||
Mozilla A style complying with Mozilla’s style guide
|
||||
WebKit A style complying with WebKit’s style guide
|
||||
Microsoft A style complying with Microsoft’s style guide
|
||||
GNU A style complying with the GNU coding standards
|
||||
|
||||
ColumnLimit: 160 限制每行最大160列
|
||||
18
C++/cmake 集成PROJ.md
Normal file
@ -0,0 +1,18 @@
|
||||
|
||||
```sh
|
||||
git clone
|
||||
mkdir build && cd build
|
||||
cmake ..
|
||||
make -j
|
||||
sudo make install
|
||||
|
||||
```
|
||||
|
||||
|
||||
```cmake
|
||||
|
||||
find_package(PROJ REQUIRED CONFIG)
|
||||
include_directories(${PROJ_INCLUDE_DIRS})
|
||||
target_link_libraries(MyApp ${PROJ_LIBRARIES} )
|
||||
target_link_libraries(MyApp PRIVATE PROJ::proj)
|
||||
```
|
||||
12
C++/cmake.md
Normal file
@ -0,0 +1,12 @@
|
||||
|
||||
## message
|
||||
|
||||
```cmake
|
||||
# **_mode_** 的值包括 **FATAL_ERROR**、**WARNING**、**AUTHOR_WARNING**、**STATUS**、**VERBOSE**等。我主要使用其中的 2 个——**FATAL_ERROR**、**STATUS**。
|
||||
|
||||
# **FATAL_ERROR**:产生 CMake Error,**会停止编译系统的构建过程**;
|
||||
|
||||
# **STATUS**:最常用的命令,常用于查看变量值,类似于编程语言中的 DEBUG 级别信息。
|
||||
|
||||
message(STATUS "result:${RET}")
|
||||
```
|
||||
@ -1,7 +0,0 @@
|
||||
## 容器开机自启
|
||||
|
||||
```
|
||||
docker ps -qa
|
||||
docker update --restart=always 容器ID/容器名
|
||||
docker update --restart=always 56f0b18af626
|
||||
```
|
||||
BIN
img/1号杆左侧.jpg
Normal file
|
After Width: | Height: | Size: 11 MiB |
BIN
img/2d17e914ea61b6c53a28add924db4c5.png
Normal file
|
After Width: | Height: | Size: 688 KiB |
BIN
img/IMG_0470.HEIC.jpg
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
img/Pasted image 20231113152736.png
Normal file
|
After Width: | Height: | Size: 139 KiB |
BIN
img/Pasted image 20240419134421.png
Normal file
|
After Width: | Height: | Size: 319 KiB |
BIN
img/Pasted image 20240518083857.png
Normal file
|
After Width: | Height: | Size: 133 KiB |
BIN
img/Pasted image 20240518083904.png
Normal file
|
After Width: | Height: | Size: 133 KiB |
BIN
img/Pasted image 20240518084818.png
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
img/Pasted image 20240518085054.png
Normal file
|
After Width: | Height: | Size: 141 KiB |
BIN
img/Pasted image 20240518090635.png
Normal file
|
After Width: | Height: | Size: 130 KiB |
BIN
img/Pasted image 20240920184848.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
img/Pasted image 20240920185245.png
Normal file
|
After Width: | Height: | Size: 225 KiB |
BIN
img/Pasted image 20240920191057.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
img/Pasted image 20240920191357.png
Normal file
|
After Width: | Height: | Size: 183 KiB |
BIN
img/Pasted image 20240920191648.png
Normal file
|
After Width: | Height: | Size: 81 KiB |
BIN
img/Pasted image 20240921092928.png
Normal file
|
After Width: | Height: | Size: 131 KiB |
BIN
img/Pasted image 20240921093031.png
Normal file
|
After Width: | Height: | Size: 131 KiB |
BIN
img/Pasted image 20240921093817.png
Normal file
|
After Width: | Height: | Size: 130 KiB |
BIN
img/Pasted image 20240921094049.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
img/Pasted image 20240921094402.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
img/Pasted image 20240921114346.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
img/Pasted image 20240921114906.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
img/Pasted image 20241023184358.png
Normal file
|
After Width: | Height: | Size: 714 KiB |
BIN
img/Pasted image 20241023184552.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
img/Pasted image 20241023185109.png
Normal file
|
After Width: | Height: | Size: 937 KiB |
BIN
img/Pasted image 20241023185228.png
Normal file
|
After Width: | Height: | Size: 812 KiB |
BIN
img/Pasted image 20241108140251.png
Normal file
|
After Width: | Height: | Size: 2.3 MiB |
BIN
img/Pasted image 20241108140342.png
Normal file
|
After Width: | Height: | Size: 2.3 MiB |
BIN
img/Pasted image 20241108141440.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
img/Pasted image 20241108144110.png
Normal file
|
After Width: | Height: | Size: 3.9 MiB |
BIN
img/Pasted image 20241108151954.png
Normal file
|
After Width: | Height: | Size: 504 KiB |
BIN
img/Pasted image 20241108152104.png
Normal file
|
After Width: | Height: | Size: 516 KiB |
BIN
img/Pasted image 20241116160056.png
Normal file
|
After Width: | Height: | Size: 2.4 MiB |
BIN
img/Pasted image 20241116161141.png
Normal file
|
After Width: | Height: | Size: 89 KiB |
BIN
img/Pasted image 20241116161513.png
Normal file
|
After Width: | Height: | Size: 162 KiB |
BIN
img/Pasted image 20241116164650.png
Normal file
|
After Width: | Height: | Size: 519 KiB |
BIN
img/Pasted image 20241116164710.png
Normal file
|
After Width: | Height: | Size: 185 KiB |
BIN
img/Pasted image 20241116164841.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
img/Pasted image 20241116164954.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
img/Pasted image 20241116165033.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
img/Pasted image 20241116165045.png
Normal file
|
After Width: | Height: | Size: 750 KiB |
BIN
img/Pasted image 20241116170801.png
Normal file
|
After Width: | Height: | Size: 176 KiB |
BIN
img/Pasted image 20241116171555.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
img/Screenshot_20240425-101537[1].png
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
img/_visiable.jpg
Normal file
|
After Width: | Height: | Size: 226 KiB |
BIN
img/cdc-acm.ko
Normal file
BIN
img/cdc_ether.ko
Normal file
BIN
img/rndis_host.ko
Normal file
BIN
img/uart_port.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
img/灵汐测试.png
Normal file
|
After Width: | Height: | Size: 3.8 MiB |
BIN
img/灵汐软件运行.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
img/综合对比14m.png
Normal file
|
After Width: | Height: | Size: 654 KiB |
BIN
img/设置波特率.png
Normal file
|
After Width: | Height: | Size: 182 KiB |
BIN
img/选择无人机.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
@ -1,4 +1,4 @@
|
||||
# Linux(Ubuntu个人常用软件安装)
|
||||
|
||||
|
||||
#### Qv2ray
|
||||
|
||||
@ -95,7 +95,6 @@ sudo update-alternatives --config gcc
|
||||
|
||||
|
||||
#### pyenv install 报错解决
|
||||
```
|
||||
|
||||
```bash
|
||||
sudo apt update
|
||||
@ -118,5 +117,3 @@ sudo apt install \
|
||||
xz-utils \
|
||||
zlib1g-dev
|
||||
```
|
||||
|
||||
```
|
||||
@ -12,8 +12,9 @@ sudo find / -name "libssl.so.1.1"
|
||||
|
||||
sudo echo "libssl path" > /etc/id.so.conf
|
||||
sudo ldconfig
|
||||
openssl
|
||||
openssl version
|
||||
|
||||
sudo echo "/usr/local/lib/libssl.so.1.1" > /etc/id.so.conf
|
||||
|
||||
```
|
||||
|
||||
@ -21,7 +22,7 @@ openssl
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev
|
||||
wget https://www.python.org/ftp/python/3.8.9/Python-3.8.9.tgz
|
||||
wget https://mirrors.huaweicloud.com/python/3.8.9/Python-3.8.9.tgz
|
||||
tar -xf Python-3.8.9.tgz
|
||||
cd Python-3.8.9
|
||||
./configure --enable-optimizations
|
||||
17
linux/docker.md
Normal file
@ -0,0 +1,17 @@
|
||||
**容器开机自启**
|
||||
|
||||
```
|
||||
docker ps -qa
|
||||
docker update --restart=always 容器ID/容器名
|
||||
docker update --restart=always 56f0b18af626
|
||||
```
|
||||
|
||||
**设置网络代理**
|
||||
|
||||
```sh
|
||||
sudo mkdir -p /etc/systemd/system/docker.service.d
|
||||
sudo touch /etc/systemd/system/docker.service.d/proxy.conf
|
||||
[Service]
|
||||
Environment="HTTP_PROXY=http://127.0.0.1:7890/"
|
||||
Environment="HTTPS_PROXY=http://127.0.0.1:7890/"
|
||||
```
|
||||
23
linux/ffmpeg 常用指令.md
Normal file
@ -0,0 +1,23 @@
|
||||
|
||||
### 低延迟拉流播放
|
||||
```bash
|
||||
ffplay -fflags nobuffer -flags low_delay -i "rtmp://120.26.0.57:1935/live/osdk_"
|
||||
```
|
||||
### 拉流保存
|
||||
```bash
|
||||
ffmpeg -i "rtmp://120.26.0.57:1935/live/osdk_" -c copy lynxi_ai.mp4
|
||||
```
|
||||
### 视频截取
|
||||
``` bash
|
||||
# 00:00:30 开始时间,20 截取长度
|
||||
ffmpeg -ss 00:00:30 -i example.mp4 -t 20 -c copy output.mp4
|
||||
```
|
||||
|
||||
### 视频抽帧
|
||||
|
||||
```sh
|
||||
# i input_video.mp4:指定输入视频文件。
|
||||
# -vf "fps=1":使用视频过滤器 (vf),以 1 帧每秒的速率抽取帧。
|
||||
# output_%04d.png:输出文件名格式,`%04d` 会生成四位数字的序号,例如 output_0001.png
|
||||
ffmpeg -i input_video.mp4 -vf "fps=1" output_%04d.png
|
||||
```
|
||||
9
linux/i2c.md
Normal file
@ -0,0 +1,9 @@
|
||||
|
||||
```sh
|
||||
i2cdump -f -y 1 0x51
|
||||
i2cdetect -y 1
|
||||
i2cdetect -l
|
||||
|
||||
sudo hwclock --systohc
|
||||
date -s 10:08:08
|
||||
```
|
||||
30
linux/linux 自动加载ko驱动.md
Normal file
@ -0,0 +1,30 @@
|
||||
|
||||
要在Ubuntu 20上实现开机自动加载内核模块(.ko驱动),可以按照以下步骤进行操作:
|
||||
|
||||
1. 确保你已经编译好了你的内核模块,并且拥有一个.ko文件。
|
||||
|
||||
2. 打开终端,使用以下命令将.ko文件复制到/lib/modules/<kernel_version>/目录下,其中<kernel_version>是你当前正在使用的内核版本号:
|
||||
|
||||
```
|
||||
sudo cp your_module.ko /lib/modules/$(uname -r)/
|
||||
```
|
||||
|
||||
3. 运行以下命令,将你的模块的信息添加到modules.dep文件中:
|
||||
|
||||
```
|
||||
sudo depmod
|
||||
```
|
||||
|
||||
4. 创建一个新的文件,以在系统启动时加载模块。在终端中运行以下命令:
|
||||
|
||||
```
|
||||
sudo nano /etc/modules-load.d/<your_module>.conf
|
||||
```
|
||||
|
||||
这里的<your_module>是你想要加载的模块的名称。
|
||||
|
||||
5. 在打开的文件中,输入你的模块的名称,保存并关闭文件。
|
||||
|
||||
6. 重启你的系统。你的模块应该会在启动时自动加载。
|
||||
|
||||
这样,你的.ko驱动模块应该会在Ubuntu 20的启动时自动加载。请确保你的模块编译正确,并且与你的内核版本兼容。如果你的模块依赖其他模块,你也需要确保这些模块已正确加载。
|
||||
@ -1,5 +1,3 @@
|
||||
# linux 常用指令
|
||||
|
||||
### 基础指令
|
||||
|
||||
#### 查找并杀死进程
|
||||
@ -42,10 +40,10 @@ ssh-keygen -t rsa -C "yewuya0206@gmail.com" #生成密钥
|
||||
#### 设置代理
|
||||
|
||||
```sh
|
||||
git config --global http.proxy http://127.0.0.1:7890
|
||||
git config --global https.proxy http://127.0.0.1:7890
|
||||
git config --global https.proxy https://127.0.0.1:7890
|
||||
git config --global http.proxy 'socks5://127.0.0.1:7890'
|
||||
git config --global https.proxy 'socks5://127.0.0.1:7890'
|
||||
git config --global http.proxy 'http://192.168.110.159:7980'
|
||||
git config --global https.proxy 'http://192.168.110.159:7980'
|
||||
```
|
||||
|
||||
#### 修改已提交的commit
|
||||
@ -87,3 +85,35 @@ curl -d "zoom=1" "http://192.168.5.14/api/v1/zoom"
|
||||
stty -F /dev/ttySWK0 speed 115200 设置串口波特率
|
||||
cat /dey/ttyUSB0 查看串口输出
|
||||
```
|
||||
#### 设置串口登录
|
||||
``` sh
|
||||
sudo systemctl enable serial-getty@ttyS0.service
|
||||
sudo systemctl start serial-getty@ttyS0.service
|
||||
```
|
||||
#### ubuntu 20 配置静态IP
|
||||
|
||||
|
||||
```yaml
|
||||
|
||||
network:
|
||||
version: 2
|
||||
renderer: NetworkManager
|
||||
ethernets:
|
||||
eth0: # 网卡名称
|
||||
dhcp4: no # 关闭dhcp
|
||||
dhcp6: no
|
||||
addresses: [192.168.110.12/24] # 静态ip
|
||||
gateway4: 192.168.110.1 # 网关
|
||||
nameservers:
|
||||
addresses: [8.8.8.8, 114.114.114.114] #dns
|
||||
|
||||
```
|
||||
|
||||
## 串口操作
|
||||
|
||||
### 配置串口登录
|
||||
|
||||
```sh
|
||||
sudo systemctl enable serial-getty@ttyS0.service
|
||||
sudo systemctl start serial-getty@ttyS0.service
|
||||
```
|
||||
35
linux/nvidia jetson 部署torch和torchvision.md
Normal file
@ -0,0 +1,35 @@
|
||||
## 当前部署环境
|
||||
Jetpack 4.6
|
||||
Python 3.6.9
|
||||
cuda 10.2
|
||||
|
||||
## 安装版本
|
||||
torch 1.8.0
|
||||
torchvision 0.9.0
|
||||
|
||||
## 部署步骤
|
||||
|
||||
### 资源下载
|
||||
参考链接
|
||||
https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048
|
||||
### 实际操作
|
||||
|
||||
```sh
|
||||
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev libomp-dev
|
||||
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libopenblas-dev libavcodec-dev libavformat-dev libswscale-dev
|
||||
|
||||
pip3 install -U pip -i https://mirrors.aliyun.com/pypi/simple/ # 换源
|
||||
pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/
|
||||
|
||||
pip3 install Cython scipy uff protobuf tqdm Pillow numpy==1.19.4 seaborn==0.9.1
|
||||
pip3 install -U scipy
|
||||
pip3 install torch-1.8.0-cp36-cp36m-linux_aarch64.whl # 安装torch
|
||||
cd torchvision # 编译安装torchvision
|
||||
export BUILD_VERSION=0.9.0
|
||||
python3 setup.py install --user
|
||||
mkdir ~/.config/Ultralytics/ # 安装字体
|
||||
cp yolov5-6.1/fonts/* ~/.config/Ultralytics/
|
||||
|
||||
cd yolov5-6.1/ # 测试
|
||||
python3 detect_rectify.py
|
||||
```
|
||||
26
linux/opencv opencv-contrib build.md
Normal file
@ -0,0 +1,26 @@
|
||||
|
||||
```bash
|
||||
mkdir opencv_build
|
||||
cd opencv_build
|
||||
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.3.zip
|
||||
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.3.zip
|
||||
unzip opencv.zip
|
||||
unzip opencv_contrib.zip
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.3/modules/aruco/ ../opencv-4.5.3
|
||||
make -j
|
||||
sudo make install
|
||||
sudo ldconfig
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTS=OFF -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.3/modules/aruco/ ../opencv-4.5.3/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
17
linux/opencv 编译打包为静态库.md
Normal file
@ -0,0 +1,17 @@
|
||||
|
||||
|
||||
```bash
|
||||
|
||||
mkdir opencv_build
|
||||
cd opencv_build
|
||||
wget -O opencv.zip https://github.com/opencv/opencv_contrib/archive/4.8.1.zip
|
||||
wget -O opencv_contrib.zip https://github.com/opencv/opencv/archive/4.8.1.zip
|
||||
uzip opencv.zip
|
||||
uzip opencv_contrib.zip
|
||||
mkdir build && cd build
|
||||
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.8.1/modules/aruco ../opencv-4.8.1/
|
||||
make -j4
|
||||
make install DESTDIR=./install
|
||||
|
||||
```
|
||||
@ -34,6 +34,10 @@ export PATH=$CMAKE_HOME:$PATH
|
||||
|
||||
```shell
|
||||
sudo apt-get install -y gcc-7 g++-7
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
|
||||
sudo apt update
|
||||
sudo apt-get install gcc-11
|
||||
sudo apt-get install g++-11
|
||||
```
|
||||
|
||||
查看已安装的版本
|
||||
@ -48,6 +52,13 @@ ls /usr/bin/gcc*
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 20 --slave /usr/bin/g++ g++ /usr/bin/g++-5
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 10 --slave /usr/bin/g++ g++ /usr/bin/g++-7
|
||||
sudo update-alternatives --config gcc
|
||||
|
||||
|
||||
|
||||
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70
|
||||
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 70
|
||||
|
||||
```
|
||||
## clang
|
||||
### 安装
|
||||
15
nvidia jetson 常见问题.md
Normal file
@ -0,0 +1,15 @@
|
||||
## jtop 无法启动
|
||||
### 问题报错信息
|
||||
```sh
|
||||
nvidia@nvidia-desktop:~$ sudo jtop
|
||||
[sudo] password for nvidia:
|
||||
Skip for setup.py
|
||||
The jtop.service is not active. Please run:
|
||||
sudo systemctl restart jtop.service
|
||||
```
|
||||
### 解决方案
|
||||
|
||||
```sh
|
||||
sudo pip3 install --force-reinstall -U smbus2
|
||||
sudo pip3 install --force-reinstall -U distro
|
||||
```
|
||||
@ -1,27 +0,0 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEogIBAAKCAQEAlHPNVmnSIDJjDiu7SfVy2pZty/hyGufTTtxPKGX25xtAT+XH
|
||||
/NbwvoaRfh+Qt2hwkwwaAsmaCHX0M0IdcCPU/+PRjpBF0tvXpYpZE/XoQgs9imvh
|
||||
mH0LFv2oMk6R5YJYGqrqTYzHh1mq/wyCbkgdC09JnXQsoIG0EfsTH/9amplKFrM5
|
||||
b0amMS5dn1N47aTvhiMXL3BEOfmLwMrvHg6Q6ZhLF3mGkiv13n5PCx3ygw/a0qg/
|
||||
JmFoc3z14kjj5ZZPNgy6ehBvnE+9eiGqAE77w2alLABLcqtX0IMJGP9NFG1VhFQP
|
||||
2T2sxwIoTKFRZRxpTtRO7akamLye6MShROXwIwIDAQABAoIBABQUFZG6flEcf4lL
|
||||
IOm/6Ojnr7IGyGgbMtlXst0j7WEUrn4f9gychbM/QC5u1oP3/EHnQR1fZxX93imQ
|
||||
p6qjLgvuJEnD+a2rTl91dtbcS62jF4/BR6H4R6e0ZytmtRT1rDTvKQGUKOiFmDsm
|
||||
1f1Ug5kkADDrpZ2P7WsBKnUJdJe0LxHPkAxA64yZNFd1GYh3hACXhxvnlBWMDo3P
|
||||
NU84k/i//txD9W3RfE0I+9xOdHfM6iyj8WmqjvMhDxlKiWYNfa2QN/DeNGVAUTbY
|
||||
RkVRetUQMmTB4YIvYk8gqhKYSV7jTCDx2asws9q6aGPFic6tFFerhlXaKlyvBoYO
|
||||
6QihlwECgYEAtVdLceMhCGL9FcRyqmm/ZARGpgf4dQcYMWF1aK94Z3yVJ/pYIzBz
|
||||
fFPqZxNCirJwviE0ZoG4LQbRTEkU2HHmNrC7JWS1VWiXtjOlWasvjBH5HB2akSn3
|
||||
u4a2Cf+cNGeSYC9pgWO2xOaOMwJLfUccMA6jSXGtzJJY1MxKml8YKucCgYEA0ZIo
|
||||
4YuoKeQ8WAJYdd0M7MZhTXlL6Si1zDmBy8qasMfuH4ZoCiVy3lIMt8H0zF7oEN1n
|
||||
41clSVqmDZLq9MrTG2+pOKId9DXkqjAH8w8fbpR1o0CkZDeUDu44Zg1N9OMEOoX0
|
||||
4MwZ4RPLqnvW0pv0Hzx/oo5zcWiLb9sqHGX1hWUCgYBASpG579+vPIEj7YEFv/YV
|
||||
/JoblSnWO8ys/TOGCOf0MKwk/1GuMChRhOLO5nop+DeWgOk2CnmEpS0hEavtTPxk
|
||||
mWXQTRMpE6rt8wOFdfamf1zFRg2dt7ZX6tuxUclMnwe7SDPsprCOwHrbxM2EvehV
|
||||
dWsYx8/pfl02HLO6ZUqJMwKBgCPHlW00f8hvLBJGjD3LOKqwD+q/O8OZ7LfqVYuq
|
||||
kpB+AdymANtCm4LzdTJmTdoalfpTIqqAtV/5twH4RF74xeQYQ0bk/sIz9U9NFf5c
|
||||
ZZxmglMV9Tsa9g86gqyBtv6JR66KMk2y6vQvggUgUYPxllNC6/Of6HvDQpMdUuo4
|
||||
Shu1AoGAdYm+ARno5+L66QigS/WM6CYQ9OEMPmxhixN3zbcVhxrfOYDEHEa+KYgq
|
||||
d1lxEN2huZeNSx52zXR9Txk12vLVgvdivRnrOCsKU7uL3OUuctZ2nseR2Si3vzMO
|
||||
JD2qu6pwBUjmP83EqcGIuoYk2P7S7p+fIExzZ2YmCRHhH7z5C1s=
|
||||
-----END RSA PRIVATE KEY-----
|
||||
18
内网服务.md
Normal file
@ -0,0 +1,18 @@
|
||||
## truenas
|
||||
|
||||
| 服务名称 | 地址 | 账号 | 密码 |
|
||||
| :---------------- | -------------------: | :----: | ---------------------- |
|
||||
| Portainer | 192.168.31.195:9000 | admin | wujinhui@0206 |
|
||||
| jellyin | 192.168.31.195:30013 | yewuya | wujinhui |
|
||||
| TinyMideaManageer | 192.168.31.195:30057 | | wujinhui |
|
||||
| qbittorrent | 192.168.31.195:18081 | admin | wujinhui |
|
||||
| Transmission | 192.168.31.195:30096 | | |
|
||||
| moviePilot | 192.168.31.195:3000 | admin | 2GggqFaJKOVulIDuAJxOzw |
|
||||
## desktop computer hyper V ubuntu24
|
||||
|
||||
| 服务名称 | 地址 | 账号 | 密码 |
|
||||
| :-------------- | -------------------: | :------------------: | --------------- |
|
||||
| immich | 192.168.31.233:2283 | yewuya0206@gmail.com | wujinhui |
|
||||
| beancount-trans | 192.168.31.233:38001 | admin | 123456 |
|
||||
| Portainer | 192.168.31.233:9443 | admin | wujinhui@0206 |
|
||||
| gitea | 192.168.31.233:3000 | yewuya | vYpDz85edb4FJZy |
|
||||
50
学习/卡尔曼滤波.md
Normal file
@ -0,0 +1,50 @@
|
||||
已知四旋翼无人机如下条件
|
||||
1,GPS位置5hz频率刷新
|
||||
2,机体坐标系下xyz轴速度50hz频率刷新
|
||||
3,机体坐标系下xyz轴加速度50hz频率刷新
|
||||
4,无人机的姿态四元数50hz频率刷新
|
||||
要求考虑姿态四元数对速度和加速度在全局坐标系中的影响,并使用卡尔曼滤波器作为融合算法,如何调整下面代码
|
||||
```
|
||||
t_gps = 0:0.2:10; % 5Hz GPS时间向量
|
||||
t_imu = 0:0.02:10; % 50Hz IMU时间向量(速度和加速度)
|
||||
% 假设数据已经准备好,并且已经加载到MATLAB中
|
||||
gpsData = [t_gps, gps_x, gps_y, gps_z];
|
||||
imuData = [t_imu, imu_vx, imu_vy, imu_vz, imu_ax, imu_ay, imu_az];
|
||||
quaternionsData[t_imu, w, x, y, z];
|
||||
% 初始化位置
|
||||
predicted_positions = zeros(length(t_imu), 3);
|
||||
|
||||
% 假设初始位置为第一个GPS读数
|
||||
predicted_positions(1, :) = gpsData(1, 2:4);
|
||||
|
||||
% 对速度和加速度进行积分以估计位置
|
||||
for i = 2:length(t_imu)
|
||||
dt = t_imu(i) - t_imu(i - 1);
|
||||
vel = imuData(i - 1, 2:4);
|
||||
acc = imuData(i - 1, 5:7);
|
||||
|
||||
% 前向欧拉积分来更新速度
|
||||
new_vel = vel + acc * dt;
|
||||
|
||||
% 更新位置
|
||||
predicted_positions(i, :) = predicted_positions(i - 1, :) + new_vel * dt;
|
||||
|
||||
% 如果当前时间是GPS更新时间,则进行调整
|
||||
if ismember(t_imu(i), t_gps)
|
||||
gps_index = find(t_gps == t_imu(i));
|
||||
actual_position = gpsData(gps_index, 2:4);
|
||||
% 这里可以添加一个融合算法来调整位置,例如简单的取平均
|
||||
predicted_positions(i, :) = (predicted_positions(i, :) + actual_position) / 2;
|
||||
end
|
||||
end
|
||||
|
||||
% 绘制结果
|
||||
figure;
|
||||
plot3(gpsData(:,2), gpsData(:,3), gpsData(:,4), 'r.');
|
||||
hold on;
|
||||
plot3(predicted_positions(:,1), predicted_positions(:,2), predicted_positions(:,3), 'b-');
|
||||
legend('Actual GPS', 'Predicted Position');
|
||||
xlabel('X'); ylabel('Y'); zlabel('Z');
|
||||
title('GPS Position Estimation');
|
||||
grid on;
|
||||
```
|
||||
15
工作/艾航/20230906事故分析.md
Normal file
@ -0,0 +1,15 @@
|
||||
|
||||
任务ID 5032
|
||||
自检成功,task_run 执行成功,但是没响应,任务执行接口也没有调。导致一直没关库
|
||||
|
||||
任务执行完成返航,没调任务结束接口,所以还可以正常接收远程控制指令
|
||||
|
||||
由于没走任务结束流程,飞机未收到降落请求,飞机悬停在机库上方20米高度 等待5分钟超时
|
||||
超时时间未到之前,远程控制发送了一键返航指令。飞机开始降落,初步判断由于app 推流打开导致崩溃重启。
|
||||
|
||||
重启之后之前的大部分状态都丢失了,还是可以接收远程控制指令,一系列操作之后远程控制恢复任务,由于本地有5020的未执行完成的任务数据,恢复了5020的任务。
|
||||
|
||||
5020执行过程中远程控制,返航降落都正常。在视觉降落过程中由于未考虑到凌晨的情况,夜航灯没开,降落超时,前往备降点。由于执行了太多操作,电量不足,最后强制降落在了机库旁边,未能正常前往备降点。
|
||||
|
||||
|
||||
|
||||
54
工作/艾航/Ubuntu20 ROS安装使用.md
Normal file
@ -0,0 +1,54 @@
|
||||
|
||||
## 安装
|
||||
|
||||
```bash
|
||||
sudo echo "deb https://mirrors.bfsu.edu.cn/ros/ubuntu/ focal main" >> /etc/apt/sources.list.d/ros-latest.list
|
||||
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
|
||||
sudo apt update
|
||||
sudo apt install ros-noetic-desktop
|
||||
sudo apt install ros-noetic-sensor-msgs
|
||||
sudo apt install libusb-1.0-0-dev
|
||||
sudo apt install libsdl2-dev
|
||||
sudo apt install ffmpeg
|
||||
sudo apt install libcurlpp-dev
|
||||
#include
|
||||
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
|
||||
source ~/.bashrc
|
||||
|
||||
```
|
||||
## 编译
|
||||
|
||||
```bash
|
||||
mkdir -p catkin_ws/src #创建工作空间
|
||||
mv rospkg catkin_ws/src/ # 将ros包移动到工作空间中
|
||||
catkin_make # 编译
|
||||
```
|
||||
## 运行
|
||||
|
||||
需要开启三个终端
|
||||
#### 终端1
|
||||
```bash
|
||||
roscore # 启动ros核心节点
|
||||
```
|
||||
#### 终端2
|
||||
```bash
|
||||
cd catkin_ws
|
||||
source devel/setup.sh # 使环境生效
|
||||
rosrun rospkg_name 执行文件 # rospkg_name 是包名 执行文件是cmake中的执行文件名称
|
||||
```
|
||||
|
||||
#### 终端3
|
||||
```bash
|
||||
cd catkin_ws
|
||||
source devel/setup.sh # 使环境生效
|
||||
rosbag play bag.bag # 发送ros消息
|
||||
```
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
/usr/include/aarch64-linux-gnu
|
||||
/usr/lib/aarch64-linux-gnu/
|
||||
|
||||
```
|
||||
6
工作/艾航/linux openvpn 配置.md
Normal file
@ -0,0 +1,6 @@
|
||||
|
||||
|
||||
```sh
|
||||
sudo cp yourfile.ovpn /etc/openvpn/yourfile.conf
|
||||
sudo systemctl enable openvpn@yourfile
|
||||
```
|
||||
@ -5,5 +5,3 @@
|
||||

|
||||
|
||||

|
||||
|
||||
262mm
|
||||
@ -11,20 +11,11 @@ SUBSYSTEM=="usb", ATTRS{idVendor}=="2ca3", MODE="0666"
|
||||
|
||||
sudo usermod -a -G dialout $USER
|
||||
|
||||
|
||||
|
||||
|
||||
echo "deb https://mirrors.bfsu.edu.cn/ros/ubuntu/ focal main" >> /etc/apt/sources.list.d/ros-latest.list
|
||||
|
||||
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
|
||||
|
||||
echo "SUBSYSTEM=="usb", ATTRS{idVendor}=="2ca3", MODE="0666"" >> /etc/udev/rules.d/DJIDevice.rules
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
||||
@ -123,7 +114,7 @@ fsck -y /dev/sda1 # /dev/sda1 要修复的硬盘路径
|
||||
|
||||
```shell
|
||||
sudo apt-get install ros-melodic-robot-upstart #安装依赖
|
||||
rosrun robot_upstart install dji_osdk_ros/launch/dji_vehicle_node.launch #设置ros服务
|
||||
rosrun robot_upstart install ah_psdk_ros/launch/main.launch #设置ros服务
|
||||
sudo systemctl daemon-reload && sudo systemctl start dji #启动ros 服务
|
||||
rosrun robot_upstart uninstall dji #删除开机自启服务
|
||||
|
||||
36
工作/艾航/rk3568开发问题.md
Normal file
@ -0,0 +1,36 @@
|
||||
|
||||
## 设备环境
|
||||
|
||||
系统Ubuntu20.04 Linux 内核 5.10.198
|
||||
只使用了核心板的uart 和两个网口。其他都用不到。
|
||||
调整了dts 文件。关闭了一些不需要用的设备,然后重新编译固件用厂家提供的工具刷入。
|
||||
|
||||
## 开发板
|
||||
|
||||
现在在开发板上是网口串口都正常的。
|
||||
## 自制底板
|
||||
|
||||
### 网口
|
||||
网口正常识别,使用netplan 配置静态IP 成功,但是使用网口和另一个设备直连无法ping通设备,两个设备都在同一个网段。
|
||||
|
||||
```yaml
|
||||
network:
|
||||
version: 2
|
||||
renderer: NetworkManager
|
||||
ethernets:
|
||||
eth0: # 网卡名称
|
||||
dhcp4: no # 关闭dhcp
|
||||
dhcp6: no
|
||||
addresses: [192.168.110.12/24] # 静态ip
|
||||
gateway4: 192.168.110.1 # 网关
|
||||
nameservers:
|
||||
addresses: [8.8.8.8, 114.114.114.114] #dns
|
||||
|
||||
```
|
||||
### uart
|
||||
|
||||
整体上应该通了,但是和其他设备使用高波特率(921600)通信时不稳定。会报错
|
||||
```log
|
||||
tyS3: Frame error!
|
||||
ttyS3: maybe rx pin is low or baudrate is not correct!
|
||||
```
|
||||
6
工作/艾航/在做项目.md
Normal file
@ -0,0 +1,6 @@
|
||||
|
||||
|
||||
| 项目编号 | 项目名称 |
|
||||
| -------- | ------------------------ |
|
||||
| AHXM0202 | (2023年)研发项目-星基RTK无人机适配研发 |
|
||||
| AHXM0001 | (2024年)研发项目-激光雷达项目 |
|
||||
79
工作/艾航/大疆机库/大疆机库使用指北.md
Normal file
@ -0,0 +1,79 @@
|
||||
* 用数据线连接机库和遥控器进行配置。按照遥控器上的操作指引操作(接领航选择第三方服务,不要使选司空)
|
||||
* 空旷的无遮挡的地方进行机库位置标定,环境条件满足的情况下一直无法定位要检测下电离层活跃情况,需要等到电离层平静期重新标定,一般早上和傍晚都是比较平静的。
|
||||
* 机库备降点设置
|
||||
* 确保机库和无人机对频,再遥控器切到B控,遥控器和无人机对频(可选)
|
||||
* 机库要接220V市电,只有机库自身UPS是无法执行任务的
|
||||
* 下任务之前要关库、断开遥控器和机库的数据线连接、关闭配电柜门
|
||||
|
||||
第三方服务配置截图,下图是领航测试服的,正式服或者以后其他独立部署的服务地址需要联系研发
|
||||
![[Screenshot_20240425-101537[1].png]]
|
||||
|
||||
|
||||
|
||||
```json
|
||||
{
|
||||
"bid": "21c0f053-53f0-4e12-bcfc-eab208f04b48",
|
||||
"tid": "c3b76b2a-49d6-48b2-82db-bcf69e24d1d8",
|
||||
"timestamp": 1714372584862,
|
||||
"method": "ota_create",
|
||||
"data": {
|
||||
"devices": [
|
||||
{
|
||||
"file_name": "M3DT_10.01.16.04_pro.zip",
|
||||
"file_size": 407771084,
|
||||
"file_url": "https://terra-1-g.djicdn.com/cbcd35598c6a46819472eb8801a4c29e/Offline%20firmware/EA220/M3DT_10.01.16.04_pro.zip",
|
||||
"firmware_upgrade_type": 3,
|
||||
"md5": "8103298f6a525409f072349332740b05",
|
||||
"product_version": "10.01.16.04",
|
||||
"sn": "1581F6Q8D242U00CKHC0"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
```json
|
||||
{
|
||||
"bid": "c3b76b2a-49d6-48b2-82db-bcf69e24d1d8",
|
||||
"data": {
|
||||
"devices": [
|
||||
|
||||
]
|
||||
},
|
||||
"tid": "21c0f053-53f0-4e12-bcfc-eab208f04b48",
|
||||
"timestamp": 1723459212599,
|
||||
"method": "ota_create"
|
||||
}
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
"bid": "21c0f053-53f0-4e12-bcfc-eab208f04b48",
|
||||
"tid": "c3b76b2a-49d6-48b2-82db-bcf69e24d1d8",
|
||||
"timestamp": 1714372584862,
|
||||
"method": "ota_create",
|
||||
"data": {
|
||||
"devices": [
|
||||
{
|
||||
"file_name": "M3DT_10.01.16.04_pro.zip",
|
||||
"file_size": 407771084,
|
||||
"file_url": "https://terra-1-g.djicdn.com/cbcd35598c6a46819472eb8801a4c29e/Offline%20firmware/EA220/M3DT_10.01.16.04_pro.zip",
|
||||
"firmware_upgrade_type": 3,
|
||||
"md5": "8103298f6a525409f072349332740b05",
|
||||
"product_version": "10.01.16.04",
|
||||
"sn": "1581F6Q83245600BE086"
|
||||
},
|
||||
{
|
||||
"file_name": "DOCK2_10.01.16.04_pro.zip",
|
||||
"file_size": 485804702,
|
||||
"file_url": "https://terra-1-g.djicdn.com/cbcd35598c6a46819472eb8801a4c29e/Offline%20firmware/EA220/DOCK2_10.01.16.04_pro.zip",
|
||||
"firmware_upgrade_type": 3,
|
||||
"md5": "64a085646fdc597e5edb750e79ff8d80",
|
||||
"product_version": "10.01.16.04",
|
||||
"sn": "7CTDM1D00B50B2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
17
工作/艾航/大疆机库/大疆机库统计.md
Normal file
@ -0,0 +1,17 @@
|
||||
|
||||
| 名称 | 机库序列号 | 无人机序列号 | 位置 |
|
||||
| :--------- | -------------: | :------------------: | --- |
|
||||
| 青山玫瑰园 | 7CTDM6L00B8337 | 1581F6Q8D246J00G40BR | 临安 |
|
||||
| 锦北中队 | 7CTDM6L00BFW4H | 1581F6Q8D246J00G2ZJP | 临安 |
|
||||
| 森林湖中队 | 7CTDM6800BX03S | 1581F6Q8D246J00GG8PZ | 临安 |
|
||||
| 湖光山社 | 7CTDM6F00BPE12 | 1581F6Q8D246J00G94M4 | 临安 |
|
||||
| 青山社区卫生服务中心 | 7CTDM6L00BLEDX | 1581F6Q8D246J00GVTBK | 临安 |
|
||||
| 执法中心 | 7CTDM1D00B50B2 | 1581F6Q83245600BE086 | 宁波 |
|
||||
| 新碶 | 7CTDM1D00B2YK6 | 1581F6Q8D242U00CKHC0 | 宁波 |
|
||||
| 高塘 | 7CTDM1L00B1N1P | 1581F6Q8D242U00CQ97P | 宁波 |
|
||||
| 米兰 | 7CTDM1D00BPZWQ | 1581F6Q8D242S00CPTP4 | 宁波 |
|
||||
| 测试 | 7CTDM3800BC412 | 1581F6Q8D244100C7KNP | 楼顶 |
|
||||
| 云翔政务 | 7CTDM6M00B2GU1 | 1581F6Q8D245M00EJ082 | 台州 |
|
||||
| 中岩数字 | 7CTDM5900B6PN2 | 1581F6Q8D245R00G2B24 | 台州 |
|
||||
| 宁波珞珈 | 7CTDM3500BQ9D9 | 1581F6Q8D244M00CUT94 | 下沙 |
|
||||
|
||||
143
工作/艾航/大疆机库/大疆机库远程操作指令.md
Normal file
@ -0,0 +1,143 @@
|
||||
夜无涯
|
||||
## 连接mqtt 服务器
|
||||
### 下载mqtt客户端软件
|
||||
https://github.com/thomasnordquist/MQTT-Explorer/releases/download/v0.4.0-beta.6/MQTT-Explorer-Setup-0.4.0-beta.6.exe
|
||||
使用上面链接下载并安装,如果发现速度过慢,可以找我发你下载好的安装包
|
||||
### 配置参数连接服务器
|
||||
按图示顺序操作,参数保持一致
|
||||
|
||||
![[Pasted image 20240518090635.png]]
|
||||
## 控制指令发送
|
||||
### 机库指令topic 确认
|
||||
**高塘机库**
|
||||
```sh
|
||||
thing/product/7CTDM1L00B1N1P/services
|
||||
```
|
||||
其中7CTDM1L00B1N1P是高塘机库的序列号,如果需要控制其他机库,需要修改机库序列号为其他机库的序列号。
|
||||
### 消息发送
|
||||
![[Pasted image 20240518084818.png]]
|
||||
按照图示操作,填入topic 和消息内容之后点击发送即可。
|
||||
推流画质调整,直接发送相应指令即可,不需要进入远程调试模式
|
||||
无人机开关机 消息发送顺序。
|
||||
具体消息内容看最后部分
|
||||
1 打开远程调试模式
|
||||
2 等待两秒
|
||||
3 无人机开机
|
||||
4 等机库状态变成在线
|
||||
5 无人机关机
|
||||
6 关闭远程模式
|
||||
### 消息内容
|
||||
|
||||
**打开远程调试模式**
|
||||
```json
|
||||
{
|
||||
"bid": "21c0f053-53f0-4e12-bcfc-eab208f04b48",
|
||||
"tid": "c3b76b2a-49d6-48b2-82db-bcf69e24d1d8",
|
||||
"timestamp": 1714372584862,
|
||||
"method": "debug_mode_open",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
**无人机开机**
|
||||
```json
|
||||
{
|
||||
"bid": "21c0f053-53f0-4e12-bcfc-eab208f04b48",
|
||||
"tid": "c3b76b2a-49d6-48b2-82db-bcf69e24d1d8",
|
||||
"timestamp": 1714372584862,
|
||||
"method": "drone_open",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
**无人机关机**
|
||||
```json
|
||||
{
|
||||
"bid": "21c0f053-53f0-4e12-bcfc-eab208f04b48",
|
||||
"tid": "c3b76b2a-49d6-48b2-82db-bcf69e24d1d8",
|
||||
"timestamp": 1714372584862,
|
||||
"method": "drone_close",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
**关闭远程模式**
|
||||
```json
|
||||
{
|
||||
"bid": "21c0f053-53f0-4e12-bcfc-eab208f04b48",
|
||||
"tid": "c3b76b2a-49d6-48b2-82db-bcf69e24d1d8",
|
||||
"timestamp": 1714372584862,
|
||||
"method": "debug_mode_close",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
**打开增强图传**
|
||||
```json
|
||||
{
|
||||
"bid": "21c0f053-53f0-4e12-bcfc-eab208f04b48",
|
||||
"tid": "c3b76b2a-49d6-48b2-82db-bcf69e24d1d8",
|
||||
"timestamp": 1714372584862,
|
||||
"method": "sdr_workmode_switch",
|
||||
"data": {
|
||||
"link_workmode": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
**机库重启**
|
||||
```json
|
||||
{
|
||||
"bid": "21c0f053-53f0-4e12-bcfc-eab208f04b48",
|
||||
"tid": "c3b76b2a-49d6-48b2-82db-bcf69e24d1d8",
|
||||
"timestamp": 1714372584862,
|
||||
"method": "device_reboot",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
### 升级固件
|
||||
|
||||
|
||||
```json
|
||||
{
|
||||
"bid": "21c0f053-53f0-4e12-bcfc-eab208f04b48",
|
||||
"tid": "c3b76b2a-49d6-48b2-82db-bcf69e24d1d8",
|
||||
"timestamp": 1714372584862,
|
||||
"method": "ota_create",
|
||||
"data": {
|
||||
"devices": [
|
||||
{
|
||||
"file_name": "M3TD_10.01.16.07_pro.zip",
|
||||
"file_size": 407771084,
|
||||
"file_url": "https://test.minio.aihang.cn/aihang/firmware/M3TD_10.01.16.07_pro.zip",
|
||||
"firmware_upgrade_type": 2,
|
||||
"md5": "568dafc36d5403b578f9241c5e118a45",
|
||||
"product_version": "10.01.1607",
|
||||
"sn": "1581F6Q8D242U00CQ97P"
|
||||
},
|
||||
{
|
||||
"file_name": "DOCK2_10.01.16.07_pro.zip",
|
||||
"file_size": 485806750,
|
||||
"file_url": "https://test.minio.aihang.cn/aihang/firmware/DOCK2_10.01.16.07_pro.zip",
|
||||
"firmware_upgrade_type": 2,
|
||||
"md5": "ad116e1251f565b61c7553efb0e61cae",
|
||||
"product_version": "10.01.1607",
|
||||
"sn": "7CTDM1L00B1N1P"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 推流画质更改
|
||||
推流画质更改不需要打开远程调试模式。
|
||||
**内容**
|
||||
*其中7CTDM6F00BPE12 是机库序列号需要根据机库替换*
|
||||
1 是最低画质 4是最高画质
|
||||
```json
|
||||
{
|
||||
"data": {
|
||||
"video_quality": 1,
|
||||
"video_id": "7CTDM6F00BPE12/165-0-7/normal-0"
|
||||
},
|
||||
"method": "live_set_quality",
|
||||
"tid": "43c16d7d-de77-445b-9f0f-000b1d0e9d53",
|
||||
"bid": "7b0e2914-040b-4bb7-a9a7-9d6c36448ecc",
|
||||
"timestamp": 1724113520310
|
||||
}
|
||||
```
|
||||
116
工作/艾航/无人机喊话器mqtt对接.md
Normal file
@ -0,0 +1,116 @@
|
||||
### mqtt 基础配置
|
||||
|
||||
| 配置项 | 内容 | 备注 |
|
||||
| ---------- | ------------------------------------ | ---------------- |
|
||||
| mqtt 服务器地址 | mqtt.aihang.cn:1883 | |
|
||||
| username | ahmqtt | |
|
||||
| 指令发送topic | /ah/uav/${deviceId}/command/ | deviceId 为无人机序列号 |
|
||||
| 指令响应topic | /ah/uav/${deviceId}/commandResponse/ | deviceId 为无人机序列号 |
|
||||
## 指令发送内容
|
||||
|
||||
| 字段名 | 字段值介绍 | 字段类型 | 是否必填 |
|
||||
| ---------- | -------------------- | ------- | ------ |
|
||||
| deviceId | 无人机序列号 | String | 是 |
|
||||
| code | 指令code(参考指令集) | String | 是 |
|
||||
| data | 数据体(参考指令集) | JSONObj | 否 |
|
||||
| deviceType | 设备类型(无人机:uav) | String | 是 |
|
||||
| sdkType | sdk类型 msdk | osdk) | String |
|
||||
| time | 请求时间(ISO dateformat) | String | 否 |
|
||||
### 请求示例:
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "actionMount",
|
||||
"data": {
|
||||
"type": "MP",
|
||||
"code": "shout",
|
||||
"param": {
|
||||
"conten": "无人机汉化内容",
|
||||
"repeat": false,
|
||||
"volume": 80,
|
||||
"speed": 50,
|
||||
"sex": 1
|
||||
}
|
||||
},
|
||||
"sdkType": "msdk",
|
||||
"deviceId": "1ZNDH8500B72MM",
|
||||
"requestId": "04c1fbde-2123-48b5-a159-d469b978147d",
|
||||
"time": 1667467817551
|
||||
}
|
||||
```
|
||||
|
||||
### 响应体:
|
||||
|
||||
| 字段名 | 字段值介绍 | 字段类型 | 是否都有值 |
|
||||
| --------- | ------------------------------------ | ------- | ----------------------- |
|
||||
| requestId | 请求ID(由服务端生成) | String | 否(是->code==0) |
|
||||
| code | 请求结果(0成功,非0失败) | int | 是 |
|
||||
| data | 响应数据 | JSONObj | 否(是->code==0&&是获取数据的请求) |
|
||||
| msg | 备注信息(code==0,msg无用;code==1,msg为错误原因) | String | 是 |
|
||||
| | | | |
|
||||
|
||||
### 响应示例:
|
||||
|
||||
```json
|
||||
例1(请求成功无数据)
|
||||
{
|
||||
"requestId": "04c1fbde-2123-48b5-a159-d469b978147d",
|
||||
"code": 0,
|
||||
"msg": "",
|
||||
"data": ""
|
||||
}
|
||||
例2(请求失败)
|
||||
{
|
||||
"requestId": "04c1fbde-2123-48b5-a159-d469b978147d",
|
||||
"code": -1,
|
||||
"msg": "",
|
||||
"data": ""
|
||||
}
|
||||
```
|
||||
|
||||
# 指令集
|
||||
|
||||
\###操作挂载设备
|
||||
|
||||
code: actionMount
|
||||
|
||||
data: ↓
|
||||
|
||||
| 字段名 | 字段值介绍 | 字段类型 | 是否必填 |
|
||||
| ------ | -------- | -------------- | ---- |
|
||||
| type | 挂载设备类型 | String(喊话器:MP) | 是 |
|
||||
| code | 挂载设备操作指令 | String | 是 |
|
||||
| params | 挂载设备操作参数 | Obejct | 否 |
|
||||
|
||||
挂载设备类型:
|
||||
|
||||
```json
|
||||
type(String):MP 喊话器
|
||||
```
|
||||
|
||||
挂载设备类型对应操作指令:
|
||||
|
||||
```
|
||||
type = MP:
|
||||
code1:shout 喊话
|
||||
code2:stop 停止
|
||||
```
|
||||
|
||||
```
|
||||
code = shout
|
||||
param: ↓
|
||||
```
|
||||
|
||||
| 字段名 | 字段值介绍 | 字段类型 | 是否必填 |
|
||||
| ------ | ----------------- | ------- | ---- |
|
||||
| conten | 文字内容 | String | 是 |
|
||||
| repeat | 是否重复喊话 | Boolean | 是 |
|
||||
| volume | 声音大小,0-100(默认为50) | Integer | 是 |
|
||||
| speed | 喊话语速,0-100(默认为50) | Integer | 是 |
|
||||
| sex | 声音男女,0女1男(默认男) | Integer | 是 |
|
||||
|
||||
```
|
||||
code = stop
|
||||
param:null
|
||||
```
|
||||
|
||||
10
工作/艾航/星基/尺寸和包装箱设计.md
Normal file
@ -0,0 +1,10 @@
|
||||
M3 版本
|
||||
|
||||
含天线 100 * 63 * 65 mm 长宽高
|
||||
不含天线 100 * 63 * 25 mm 长宽高
|
||||
|
||||
M300/350版本
|
||||
|
||||
含天线105 * 97 * 105 长宽高
|
||||
不含天线105 * 97 * 60 长宽高
|
||||
不含支架 93 * 69 * 52 长宽高
|
||||
16
工作/艾航/星基/星基1.0外壳标准.md
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
* 外观看起来是一个整体。
|
||||
* 可以拆开全部的外壳,重新设计整体外壳。
|
||||
* 考虑电磁屏蔽,不能影响GPS天线信号
|
||||
* 对外只露出下图红框的接口和GPS天线固定座,其他全部藏在内部。
|
||||
![[Pasted image 20241023184552.png]]
|
||||
|
||||
* 天线底座连接处要做到胶圈紧贴,防止天线进水
|
||||
![[Pasted image 20241023185109.png]]
|
||||
|
||||
* 过IP55检测
|
||||
* 要有散热能力,不然夏天下图这个电脑可能会过热,soc峰值功耗大概15W
|
||||
![[Pasted image 20241023185228.png]]
|
||||
* 上图红框内的4G天线要引出,或有别的方法做到不影响4G天线的信号
|
||||
* 支架孔位和现有孔位位置一致
|
||||
* 重量400g以内,越轻越好。
|
||||
117
工作/艾航/星基/星基mavlink通信协议.md
Normal file
@ -0,0 +1,117 @@
|
||||
## 使用方法
|
||||
|
||||
根据提供的mavlink 自定义消息文件,使用代码生成工具,生成相应的代码
|
||||
|
||||
|
||||
|
||||
## mavlink_msg MISSION_HEAD
|
||||
***航线基础数据***
|
||||
|
||||
| 元素 | 名称 | 类型 | 单位 | 取值与释义 | 是否必需(默认值) |
|
||||
| ------------ | ------ | ---------- | --- | -------------------------------------------- | --------- |
|
||||
| missionId | 任务Id | uint32_t | - | 任务id | 必需元素 |
|
||||
| lineId | 航线id | uint32_t | - | | |
|
||||
| pointCount | 航点数量 | uint32_t | 个 | | 必需元素 |
|
||||
| finishAction | 结束动作 | 枚举-int | - | 0:返航<br>1:原地降落<br>2:悬停 | 必需元素 |
|
||||
| isRecord | 是否录像 | 枚举-int | | 0:不录像<br>1:录像 | 必需元素 |
|
||||
| ImgSaveType | 图片保存模式 | uint8_t[3] | - | 三个int依次表示<br>变焦<br>广角<br>红外<br>0:不存储<br>1:存储 | 必需元素 |
|
||||
|
||||
## mavlink_msg WAYPOINT
|
||||
|
||||
***每个航点的信息***
|
||||
|
||||
| 元素 | 名称 | 类型 | 单位 | 取值与释义 | 是否必需 |
|
||||
| ---------------- | ------- | ----------- | ---- | ------------------------------------------------------------------------------------- | ---- |
|
||||
| index | 航点索引 | uint32_t | - | 从0开始依次递增 | 必需 |
|
||||
| longitude | 经度 | double | 度 | 航点经度 | 必需 |
|
||||
| latitude | 纬度 | double | 度 | 航点纬度 | 必需 |
|
||||
| relativeHeight | 相对高度 | float | 米 | 相对高度 | 必需 |
|
||||
| absoluteHeight | 海拔高度 | float | 米 | 海拔高度 | 必需 |
|
||||
| speed | 航点速度 | uint8_t | m/s | 航点飞行速度 | 必需 |
|
||||
| waypointHeadMode | 偏航角模式 | 枚举-int | - | 1:跟随航线方向<br>2:锁定当前偏航角 | 必需 |
|
||||
| waypointHead | 偏航角 | int16_t | 0.1度 | 无人机偏航角 | 必需 |
|
||||
| action_count | 航点动作数量 | uint8_t | 个 | 航点动作数量统计 | 必需 |
|
||||
| action_types | 航点动作类型 | 枚举-int[10] | - | 1:单拍 <br>2:开始录像 <br>3:结束录像 <br>4:对焦 <br>5:变焦 <br>6:旋转云台 <br>7:飞行器偏航 <br>8:悬停等待 | 必需 |
|
||||
| action_param1 | 航点动作参数1 | int16_t[10] | | 数组第一个为第一个动作的参数以此类推 | 必需 |
|
||||
| action_param2 | 航点动作参数2 | int16_t[10] | | 数组第一个为第一个动作的参数以此类推 | 必需 |
|
||||
| action_param3 | 航点动作参数3 | int8_t[10] | | 数组第一个为第一个动作的参数以此类推 | 必需 |
|
||||
| action_param4 | 航点动作参数4 | int8_t[10] | | 数组第一个为第一个动作的参数以此类推 | 必需 |
|
||||
| action_param5 | 航点动作参数5 | int8_t[10] | | 数组第一个为第一个动作的参数以此类推 | 必需 |
|
||||
|
||||
#### action 单拍
|
||||
| 元素 | 名称 | 类型 | 单位 | 取值与释义 | 是否必需 |
|
||||
| ------------- | --- | ------- | --- | ----- | ---- |
|
||||
| action_param1 | | int16_t | | | 非必需 |
|
||||
| action_param2 | | int16_t | | | 非必需 |
|
||||
| action_param3 | | int8_t | | | 非必需 |
|
||||
| action_param4 | | int8_t | | | 非必需 |
|
||||
| action_param5 | | int8_t | | 相机位置 | 必需 |
|
||||
| | | | | | |
|
||||
|
||||
#### action 开始录像
|
||||
|
||||
| 元素 | 名称 | 类型 | 单位 | 取值与释义 | 是否必需 |
|
||||
| ------------- | --- | ------- | --- | ----- | ---- |
|
||||
| action_param1 | | int16_t | | | 非必需 |
|
||||
| action_param2 | | int16_t | | | 非必需 |
|
||||
| action_param3 | | int8_t | | | 非必需 |
|
||||
| action_param4 | | int8_t | | | 非必需 |
|
||||
| action_param5 | | int8_t | | 相机位置 | 必需 |
|
||||
#### action 结束录像
|
||||
| 元素 | 名称 | 类型 | 单位 | 取值与释义 | 是否必需 |
|
||||
| ------------- | --- | ------- | --- | ----- | ---- |
|
||||
| action_param1 | | int16_t | | | 非必需 |
|
||||
| action_param2 | | int16_t | | | 非必需 |
|
||||
| action_param3 | | int8_t | | | 非必需 |
|
||||
| action_param4 | | int8_t | | | 非必需 |
|
||||
| action_param5 | | int8_t | | 相机位置 | 必需 |
|
||||
#### action 对焦
|
||||
| 元素 | 名称 | 类型 | 单位 | 取值与释义 | 是否必需 |
|
||||
| ------------- | --- | ------- | --- | ----- | ---- |
|
||||
| action_param1 | | int16_t | | | 非必需 |
|
||||
| action_param2 | | int16_t | | | 非必需 |
|
||||
| action_param3 | | int8_t | | | 非必需 |
|
||||
| action_param4 | | int8_t | | | 非必需 |
|
||||
| action_param5 | | int8_t | | 相机位置 | 必需 |
|
||||
#### action 变焦
|
||||
|
||||
| 元素 | 名称 | 类型 | 单位 | 取值与释义 | 是否必需 |
|
||||
| ------------- | --- | ------- | --- | ----- | ---- |
|
||||
| action_param1 | | int16_t | | 0.1倍 | 非必需 |
|
||||
| action_param2 | | int16_t | | | 非必需 |
|
||||
| action_param3 | | int8_t | | | 非必需 |
|
||||
| action_param4 | | int8_t | | | 非必需 |
|
||||
| action_param5 | | int8_t | | 相机位置 | 必需 |
|
||||
|
||||
#### action 旋转云台
|
||||
|
||||
| 元素 | 名称 | 类型 | 单位 | 取值与释义 | 是否必需 |
|
||||
| ------------- | ------ | ------- | ---- | ----------------- | ---- |
|
||||
| action_param1 | 云台俯仰角度 | int16_t | 0.1度 | 如果取值大于1800 则不使能俯仰 | 必需 |
|
||||
| action_param2 | 云台偏航角度 | int16_t | 0.1度 | 如果取值大于1800 则不使能偏航 | 必需 |
|
||||
| action_param3 | 云台横滚角度 | int8_t | 0.1秒 | | 非必需 |
|
||||
| action_param4 | 云台旋转时间 | int8_t | | | 非必需 |
|
||||
| action_param5 | | int8_t | | 相机位置 | 必需 |
|
||||
#### action 飞行器偏航
|
||||
| 元素 | 名称 | 类型 | 单位 | 取值与释义 | 是否必需 |
|
||||
| ------------- | -------- | ------- | ------ | ------------------ | ---- |
|
||||
| action_param1 | 飞行器目标偏航角 | int16_t | 0.1度 | [-180, 180] | 必需 |
|
||||
| action_param2 | | int16_t | | | 非必需 |
|
||||
| action_param3 | | int8_t | | | 非必需 |
|
||||
| action_param4 | | int8_t | | | 非必需 |
|
||||
| action_param5 | 偏航角模式 | int8_t | 枚举-int | 0顺时针旋转 <br>1逆时针旋转 | 必需 |
|
||||
#### action 悬停等待
|
||||
|
||||
| 元素 | 名称 | 类型 | 单位 | 取值与释义 | 是否必需 |
|
||||
| ------------- | ---- | ------- | ---- | ------- | ---- |
|
||||
| action_param1 | 悬停时间 | int16_t | 0.1秒 | 飞行器悬停时间 | 必需 |
|
||||
| action_param2 | | int16_t | | | 非必需 |
|
||||
| action_param3 | | int8_t | | | 非必需 |
|
||||
| action_param4 | | int8_t | | | 非必需 |
|
||||
| action_param5 | | int8_t | | | 非必需 |
|
||||
## mavlink_msg MISSION_END
|
||||
***任务数据发送结束,收到后停止解析接收对应任务数据***
|
||||
|
||||
| 元素 | 名称 | 类型 | 单位 | 取值与释义 | 是否必需 |
|
||||
| --------- | ---- | -------- | --- | ----- | ---- |
|
||||
| missionId | 任务id | uint32_t | | | 必需 |
|
||||