Compare commits

..

No commits in common. "b335a4e7f6533acfd0269f0252d86b238fa13404" and "efad1a7409b5be11b0466a7dcb57735bc3265667" have entirely different histories.

131 changed files with 57 additions and 2032 deletions

1
.gitignore vendored
View File

@ -1 +0,0 @@
.obsidian/

BIN
000000d7945cc8a8.moon Normal file

Binary file not shown.

View File

@ -1,206 +0,0 @@
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>`

View File

@ -1,12 +0,0 @@
clang-format -style=可选格式名 -dump-config > .clang-format
LLVM A style complying with the LLVM coding standards
Google A style complying with Googles C++ style guide
Chromium A style complying with Chromiums style guide
Mozilla A style complying with Mozillas style guide
WebKit A style complying with WebKits style guide
Microsoft A style complying with Microsofts style guide
GNU A style complying with the GNU coding standards
ColumnLimit:     160 限制每行最大160列

View File

@ -1,18 +0,0 @@
```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)
```

View File

@ -1,12 +0,0 @@
## message
```cmake
# **_mode_** 的值包括 **FATAL_ERROR**、**WARNING**、**AUTHOR_WARNING**、**STATUS**、**VERBOSE**等。我主要使用其中的 2 个——**FATAL_ERROR**、**STATUS**。
# **FATAL_ERROR**:产生 CMake Error**会停止编译系统的构建过程**
# **STATUS**:最常用的命令,常用于查看变量值,类似于编程语言中的 DEBUG 级别信息。
message(STATUS "result:${RET}")
```

View File

@ -1,4 +1,4 @@
# LinuxUbuntu个人常用软件安装
#### Qv2ray #### Qv2ray
@ -95,6 +95,7 @@ sudo update-alternatives --config gcc
#### pyenv install 报错解决 #### pyenv install 报错解决
```
```bash ```bash
sudo apt update sudo apt update
@ -117,3 +118,5 @@ sudo apt install \
xz-utils \ xz-utils \
zlib1g-dev zlib1g-dev
``` ```
```

View File

View File

@ -12,9 +12,8 @@ sudo find / -name "libssl.so.1.1"
sudo echo "libssl path" > /etc/id.so.conf sudo echo "libssl path" > /etc/id.so.conf
sudo ldconfig sudo ldconfig
openssl version openssl
sudo echo "/usr/local/lib/libssl.so.1.1" > /etc/id.so.conf
``` ```
@ -22,7 +21,7 @@ sudo echo "/usr/local/lib/libssl.so.1.1" > /etc/id.so.conf
```bash ```bash
sudo apt update 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 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://mirrors.huaweicloud.com/python/3.8.9/Python-3.8.9.tgz wget https://www.python.org/ftp/python/3.8.9/Python-3.8.9.tgz
tar -xf Python-3.8.9.tgz tar -xf Python-3.8.9.tgz
cd Python-3.8.9 cd Python-3.8.9
./configure --enable-optimizations ./configure --enable-optimizations

7
docker.md Normal file
View File

@ -0,0 +1,7 @@
## 容器开机自启
```
docker ps -qa
docker update --restart=always 容器ID/容器名
docker update --restart=always 56f0b18af626
```

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 688 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 714 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 937 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 812 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 504 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 516 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 519 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 750 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 654 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

View File

@ -1,17 +0,0 @@
**容器开机自启**
```
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/"
```

View File

@ -1,23 +0,0 @@
### 低延迟拉流播放
```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
```

View File

@ -1,9 +0,0 @@
```sh
i2cdump -f -y 1 0x51
i2cdetect -y 1
i2cdetect -l
sudo hwclock --systohc
date -s 10:08:08
```

View File

@ -1,30 +0,0 @@
要在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的启动时自动加载。请确保你的模块编译正确并且与你的内核版本兼容。如果你的模块依赖其他模块你也需要确保这些模块已正确加载。

View File

@ -1,35 +0,0 @@
## 当前部署环境
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
```

View File

@ -1,26 +0,0 @@
```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/

View File

@ -1,17 +0,0 @@
```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
```

View File

@ -1,3 +1,5 @@
# linux 常用指令
### 基础指令 ### 基础指令
#### 查找并杀死进程 #### 查找并杀死进程
@ -40,10 +42,10 @@ ssh-keygen -t rsa -C "yewuya0206@gmail.com" #生成密钥
#### 设置代理 #### 设置代理
```sh ```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 http://127.0.0.1:7890
git config --global http.proxy 'http://192.168.110.159:7980' git config --global https.proxy https://127.0.0.1:7890
git config --global https.proxy 'http://192.168.110.159:7980' git config --global http.proxy 'socks5://127.0.0.1:7890'
git config --global https.proxy 'socks5://127.0.0.1:7890'
``` ```
#### 修改已提交的commit #### 修改已提交的commit
@ -85,35 +87,3 @@ curl -d "zoom=1" "http://192.168.5.14/api/v1/zoom"
stty -F /dev/ttySWK0 speed 115200 设置串口波特率 stty -F /dev/ttySWK0 speed 115200 设置串口波特率
cat /dey/ttyUSB0 查看串口输出 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
```

View File

@ -1,15 +0,0 @@
## 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
```

View File

@ -11,11 +11,20 @@ SUBSYSTEM=="usb", ATTRS{idVendor}=="2ca3", MODE="0666"
sudo usermod -a -G dialout $USER 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 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-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 echo "SUBSYSTEM=="usb", ATTRS{idVendor}=="2ca3", MODE="0666"" >> /etc/udev/rules.d/DJIDevice.rules
``` ```
@ -114,7 +123,7 @@ fsck -y /dev/sda1 # /dev/sda1 要修复的硬盘路径
```shell ```shell
sudo apt-get install ros-melodic-robot-upstart #安装依赖 sudo apt-get install ros-melodic-robot-upstart #安装依赖
rosrun robot_upstart install ah_psdk_ros/launch/main.launch #设置ros服务 rosrun robot_upstart install dji_osdk_ros/launch/dji_vehicle_node.launch #设置ros服务
sudo systemctl daemon-reload && sudo systemctl start dji #启动ros 服务 sudo systemctl daemon-reload && sudo systemctl start dji #启动ros 服务
rosrun robot_upstart uninstall dji #删除开机自启服务 rosrun robot_upstart uninstall dji #删除开机自启服务

27
yewuyatencent Normal file
View File

@ -0,0 +1,27 @@
-----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-----

View File

@ -1,18 +0,0 @@
## 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 |

View File

@ -34,10 +34,6 @@ export PATH=$CMAKE_HOME:$PATH
```shell ```shell
sudo apt-get install -y gcc-7 g++-7 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
``` ```
查看已安装的版本 查看已安装的版本
@ -52,13 +48,6 @@ 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-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 --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 --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 ## clang
### 安装 ### 安装

View File

@ -1,50 +0,0 @@
已知四旋翼无人机如下条件
1GPS位置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;
```

View File

@ -1,15 +0,0 @@
任务ID 5032
自检成功task_run 执行成功,但是没响应,任务执行接口也没有调。导致一直没关库
任务执行完成返航,没调任务结束接口,所以还可以正常接收远程控制指令
由于没走任务结束流程飞机未收到降落请求飞机悬停在机库上方20米高度 等待5分钟超时
超时时间未到之前远程控制发送了一键返航指令。飞机开始降落初步判断由于app 推流打开导致崩溃重启。
重启之后之前的大部分状态都丢失了还是可以接收远程控制指令一系列操作之后远程控制恢复任务由于本地有5020的未执行完成的任务数据恢复了5020的任务。
5020执行过程中远程控制返航降落都正常。在视觉降落过程中由于未考虑到凌晨的情况夜航灯没开降落超时前往备降点。由于执行了太多操作电量不足最后强制降落在了机库旁边未能正常前往备降点。

View File

@ -1,54 +0,0 @@
## 安装
```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/
```

View File

@ -1,6 +0,0 @@
```sh
sudo cp yourfile.ovpn /etc/openvpn/yourfile.conf
sudo systemctl enable openvpn@yourfile
```

View File

@ -5,3 +5,5 @@
![image-20210630103122631](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210630103122631.png) ![image-20210630103122631](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210630103122631.png)
![image-20210630103210404](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210630103210404.png) ![image-20210630103210404](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210630103210404.png)
262mm

View File

@ -1,36 +0,0 @@
## 设备环境
系统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!
```

View File

@ -1,6 +0,0 @@
| 项目编号 | 项目名称 |
| -------- | ------------------------ |
| AHXM0202 | (2023年)研发项目-星基RTK无人机适配研发 |
| AHXM0001 | (2024年)研发项目-激光雷达项目 |

View File

@ -1,79 +0,0 @@
* 用数据线连接机库和遥控器进行配置。按照遥控器上的操作指引操作(接领航选择第三方服务,不要使选司空)
* 空旷的无遮挡的地方进行机库位置标定,环境条件满足的情况下一直无法定位要检测下电离层活跃情况,需要等到电离层平静期重新标定,一般早上和傍晚都是比较平静的。
* 机库备降点设置
* 确保机库和无人机对频再遥控器切到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"
}
]
}
}
```

View File

@ -1,17 +0,0 @@
| 名称 | 机库序列号 | 无人机序列号 | 位置 |
| :--------- | -------------: | :------------------: | --- |
| 青山玫瑰园 | 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 | 下沙 |

View File

@ -1,143 +0,0 @@
夜无涯
## 连接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
}
```

View File

@ -1,116 +0,0 @@
### 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
typeStringMP 喊话器
```
挂载设备类型对应操作指令:
```
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
```

View File

@ -1,10 +0,0 @@
M3 版本
含天线 100 * 63 * 65 mm 长宽高
不含天线 100 * 63 * 25 mm 长宽高
M300/350版本
含天线105 * 97 * 105 长宽高
不含天线105 * 97 * 60 长宽高
不含支架 93 * 69 * 52 长宽高

View File

@ -1,16 +0,0 @@
* 外观看起来是一个整体。
* 可以拆开全部的外壳,重新设计整体外壳。
* 考虑电磁屏蔽不能影响GPS天线信号
* 对外只露出下图红框的接口和GPS天线固定座其他全部藏在内部。
![[Pasted image 20241023184552.png]]
* 天线底座连接处要做到胶圈紧贴,防止天线进水
![[Pasted image 20241023185109.png]]
* 过IP55检测
* 要有散热能力不然夏天下图这个电脑可能会过热soc峰值功耗大概15W
![[Pasted image 20241023185228.png]]
* 上图红框内的4G天线要引出或有别的方法做到不影响4G天线的信号
* 支架孔位和现有孔位位置一致
* 重量400g以内越轻越好。

View File

@ -1,117 +0,0 @@
## 使用方法
根据提供的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 | | | 必需 |

View File

@ -1,23 +0,0 @@
**作者:** 吴金辉 **日期:** 2024-03-27
## 技术指标发展阶段
| 技术指标 | 初期阶段 | 中期阶段 | 成熟阶段(参考的大疆参数) | 现阶段 |
| --------------- | ------------------ | ------------------- | ------------------- | --------------------------- |
| 飞控软件的航点飞行定位精度 | 比较平稳的到达目标点误差在1m左右 | 无风或者微风情况下定位精度达到0.5m | 大部分天气情况下达到0.1m的定位精度 | 无风微风环境下航点定位误差0.2m~1m不等 |
| 飞控软件的各种安全措施 | 有办法及时手动获取飞机控制权即可 | 常见异常情况需要处理 | 能想到的情况都要有对应的处理逻辑 | 只有通过遥控器切档可以夺取控制权 |
| 不同天气情况下的飞控稳定性测试 | 无风天气测试 | 各种常见天气情况测试通过 | 极端天气测试通过 | 只进行了无风天气测试 |
| 星基板卡的RTK定位稳定性 | 电离层平静期可以连接RTK | 电离层不是非常活跃的时也可以连上 | 大部分情况都可以稳定连接 | 电离层活跃期很难连上。电离层平静期也不是100%连上。 |
| 对接领航平台的业务逻辑实现 | | | | 现有规划业务逻辑实现了,预计下周测试 |
| 封装SDK | | | | 还不确定以什么样的形式 |
### 注释
- 对于飞控软件的航点飞行定位精度这里使用的是无人机自身的RTK数据不是星基板卡的RTK数据。
- 对于星基板卡的RTK定位稳定性这里指满足板卡的要求的现场环境卫星方位角20米无遮挡之后的连接测试
- 飞控软件的各种安全措施主要是触发避障时RTK连接断开时低电量等情况的处理
## 下一步的计划
### 飞控算法
现在版本的飞控算法流程跑通了整体效果比最初版本好不少如果底层算法不改的情况下后续就是花大量时间调参优化效果。不过我个人认为现在这套算法的上限比较低想达到大疆那种级别应该是不行的。后续想换成MPC模型预测控制不过需要先学习一段时间才行。
### 星基板卡
* 千寻的意思是整个星基服务受太阳和电离层活跃程度影响的在比较活跃的情况下是很难连上RTK的但是也可以换个别的厂家的板卡试试看
* 根据我们自己简单测试的情况,底板的供电电路,无人机,都会产生电磁辐射影响星基板卡天线的搜星质量,不过缺乏专业检测仪器无法量化这个指标。这方面后续也要调整下。
### 完善飞控细节
* 异常安全措施,航线任务断点续飞,对外开放接口等功能也还需要花时间完善。

View File

@ -1,16 +0,0 @@
## 商品描述
星基飞控,使用基于北斗高精定位技术并使用高精定位补偿技术,在无网络环境无地面站的环境下,实现高精度定位。同时基于高精度定位数据实现了一套航点飞行算法。用于满足山区等无网络环境地区的高精度巡检需求。
![[Pasted image 20240419134421.png]]
## 技术参数
| 型号 | 星基 | |
| ----------------- | -------------------- | --- |
| 悬停精度(无风或者微风环境) | 0.1m | |
| 位置数据精度(在高精度定位生效时) | 3厘米+ 1ppm | |
| 最大可承受风速 | 10m/s | |
| 电源电压 | 24V | |
| 功率 | 20w | |
| 适配机型 | 大疆行业系列无人机需支持PSDK挂载 | |
| IP防护等级 | | |
| 工作环境温度 | - -20°C 至 50°C | |

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