文档更新
7
docker.md
Normal file
@ -0,0 +1,7 @@
|
||||
## 容器开机自启
|
||||
|
||||
```
|
||||
docker ps -qa
|
||||
docker update --restart=always 容器ID/容器名
|
||||
docker update --restart=always 56f0b18af626
|
||||
```
|
||||
36
frp使用.md
Normal file
@ -0,0 +1,36 @@
|
||||
## 编辑frp 服务
|
||||
```
|
||||
sudo vi /etc/systemd/system/frpc.service
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
[Unit] #服务名称,可自定义
|
||||
Description = frp client
|
||||
After = network.target syslog.target
|
||||
Wants = network.target
|
||||
|
||||
[Service]
|
||||
Type = simple
|
||||
Restart=on-failure
|
||||
RestartSec=5s
|
||||
#启动frps的命令,需修改为您的frps的安装路径
|
||||
ExecStart =/home/nvidia/frp_0.45.0_linux_arm64/frpc -c /home/nvidia/frp_0.45.0_linux_arm64/frpc.ini #路径修改
|
||||
ExecReload=/home/nvidia/frp_0.45.0_linux_arm64/frpc reload -c /home/nvidia/frp_0.45.0_linux_arm64/frpc.ini #路径修改
|
||||
[Install]
|
||||
WantedBy = multi-user.target
|
||||
|
||||
```
|
||||
|
||||
## 配置frp服务开机自启
|
||||
```
|
||||
sudo systemctl daemon-reload # 刷新配置
|
||||
sudo systemctl start frpc # 启动clash.service
|
||||
sudo systemctl enable frpc # 设置开机启动
|
||||
sudo systemctl status frpc # 查看clash.service的状态
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
BIN
img/Pasted image 20230223114912.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
img/Pasted image 20230331153159.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
img/Pasted image 20230331153400.png
Normal file
|
After Width: | Height: | Size: 95 KiB |
BIN
img/Pasted image 20230331153426.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
img/Pasted image 20230331153718.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
img/Pasted image 20230331153752.png
Normal file
|
After Width: | Height: | Size: 98 KiB |
BIN
img/Pasted image 20230331161609.png
Normal file
|
After Width: | Height: | Size: 311 KiB |
BIN
img/Pasted image 20230331161707.png
Normal file
|
After Width: | Height: | Size: 330 KiB |
BIN
img/Pasted image 20230331162020.png
Normal file
|
After Width: | Height: | Size: 352 KiB |
BIN
img/Pasted image 20230331165136.png
Normal file
|
After Width: | Height: | Size: 500 KiB |
BIN
img/Pasted image 20230331171748.png
Normal file
|
After Width: | Height: | Size: 125 KiB |
BIN
img/Pasted image 20230508173721.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
img/Pasted image 20230508173835.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
img/Pasted image 20230508173948.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
img/Pasted image 20230508174056.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
img/Pasted image 20230508185715.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
img/Pasted image 20230508185826.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
img/Pasted image 20230508190029.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
img/Pasted image 20230508190630.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
img/Pasted image 20230508190706.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
36
libcurl.so.4 no version information available.md
Normal file
@ -0,0 +1,36 @@
|
||||
参考方法[tcl - error: curl: /usr/local/lib/libcurl.so.4: no version information available (required by curl) - Stack Overflow](https://stackoverflow.com/questions/30017397/error-curl-usr-local-lib-libcurl-so-4-no-version-information-available-requ)
|
||||
|
||||
## 问题原因
|
||||
|
||||
libcurl.so.4 软链接的文件不存在
|
||||
*先查找libcurl.so.4 文件所在路径*
|
||||
|
||||
```bash
|
||||
locate libcurl.so.4
|
||||
```
|
||||
|
||||
会得到以下输出
|
||||
|
||||
```bash
|
||||
/usr/NX/lib/libcurl.so.4
|
||||
/usr/NX/lib/libcurl.so.4.7.0
|
||||
/usr/lib/x86_64-linux-gnu/libcurl.so.4
|
||||
/usr/lib/x86_64-linux-gnu/libcurl.so.4.6.0
|
||||
/usr/local/lib/libcurl.so.4
|
||||
/usr/local/lib/libcurl.so.4.3.0
|
||||
```
|
||||
*查看当前libcurl.so.4软链接的文件路径*
|
||||
```bash
|
||||
ls -l /usr/local/lib/libcurl.so.4
|
||||
```
|
||||
会得到以下输出
|
||||
```shell
|
||||
lrwxrwxrwx 1 root root 16 9月 5 10:14 /usr/local/lib/libcurl.so.4 -> libcurl.so.4.3.0
|
||||
```
|
||||
这时候会发现链接的文件地址不存在需要删除软链接重新建立一个新的软链接
|
||||
|
||||
```bash
|
||||
sudo rm /usr/local/lib/libcurl.so.4
|
||||
sudo ln -s /usr/lib/x86_64-linux-gnu/libcurl.so.4.6.0 /usr/local/lib/libcurl.so.4
|
||||
# 前面的地址为上面查找到的libcurl.so.4地址,后面的是要软链接的地址
|
||||
```
|
||||
@ -82,3 +82,8 @@ curl -H "Content-type: application/json" -X POST -d '{"zoom":0}'[http://192.16
|
||||
|
||||
curl -d "zoom=1" "http://192.168.5.14/api/v1/zoom"
|
||||
```
|
||||
#### 串口
|
||||
```
|
||||
stty -F /dev/ttySWK0 speed 115200 设置串口波特率
|
||||
cat /dey/ttyUSB0 查看串口输出
|
||||
```
|
||||
130
osdk 环境配置.md
Normal file
@ -0,0 +1,130 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
sudo vi /etc/udev/rules.d/DJIDevice.rules
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
```
|
||||
sudo usermod -a -G dialout $USER
|
||||
|
||||
echo "deb https://mirrors.bfsu.edu.cn/ros/ubuntu/ bionic 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
|
||||
|
||||
sudo sed -i "s@http://.*archive.ubuntu.com@https://mirrors.bfsu.edu.cn@g" /etc/apt/sources.list
|
||||
sudo sed -i "s@http://.*security.ubuntu.com@https://mirrors.bfsu.edu.cn@g" /etc/apt/sources.list
|
||||
|
||||
sudo apt update
|
||||
sudo apt install ros-melodic-desktop-full
|
||||
sudo apt install libsdl2-dev ros-melodic-nmea-comms libcrypto++-dev
|
||||
sudo apt install libexosip2-dev
|
||||
|
||||
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
|
||||
source ~/.bashrc
|
||||
|
||||
```
|
||||
|
||||
## 允许root 登录
|
||||
编辑sshd_config
|
||||
sudo vim /etc/ssh/sshd_config
|
||||
找到PermitRootLogin 取消注释 然后改为yes
|
||||
重启ssh 服务
|
||||
service sshd restart
|
||||
|
||||
```
|
||||
#LoginGraceTime 2m
|
||||
PermitRootLogin yes
|
||||
#StrictModes yes
|
||||
#MaxAuthTries 6
|
||||
#MaxSessions 10
|
||||
|
||||
```
|
||||
|
||||
|
||||
## frp 配置
|
||||
|
||||
service 文件编写
|
||||
sudo vi /etc/systemed/system/frpc.service
|
||||
|
||||
```shell
|
||||
|
||||
[Unit]
|
||||
# 服务名称,可自定义
|
||||
Description = frpcs server
|
||||
After = network.target syslog.target
|
||||
Wants = network.target
|
||||
|
||||
[Service]
|
||||
Type = simple
|
||||
Restart=on-failure
|
||||
RestartSec=5s
|
||||
# 启动frps的命令,需修改为您的frps的安装路径
|
||||
ExecStart = /root/ah/frp_0.45.0_linux_arm64/frpc -c /root/ah/frp_0.45.0_linux_arm64/frpc.ini
|
||||
ExecReload= /root/ah/frp_0.45.0_linux_arm64/frpc reload -c /root/ah/frp_0.45.0_linux_arm64/frpc.ini
|
||||
|
||||
[Install]
|
||||
WantedBy = multi-user.target
|
||||
```
|
||||
开机自启
|
||||
|
||||
```shell
|
||||
sudo systemctl daemon-reload # 刷新配置
|
||||
sudo systemctl start frpc # 启动clash.service
|
||||
sudo systemctl enable frpc # 设置开机启动
|
||||
sudo systemctl status frpc
|
||||
```
|
||||
|
||||
|
||||
|
||||
## crontab 开机自启
|
||||
|
||||
```shell
|
||||
|
||||
@reboot sleep 2;bash shell.sh
|
||||
```
|
||||
## ubuntu 文件系统修复
|
||||
|
||||
```shell
|
||||
fsck -y /dev/sda1 # /dev/sda1 要修复的硬盘路径
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
### ros代码开机自启
|
||||
|
||||
|
||||
```shell
|
||||
sudo apt-get install ros-melodic-robot-upstart #安装依赖
|
||||
rosrun robot_upstart install dji_osdk_ros/launch/dji_vehicle_node.launch #设置ros服务
|
||||
sudo systemctl daemon-reload && sudo systemctl start dji #启动ros 服务
|
||||
rosrun robot_upstart uninstall dji #删除开机自启服务
|
||||
|
||||
```
|
||||
@ -23,12 +23,6 @@ xsetroot -solid grey
|
||||
vncconfig -iconic &
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
vnc连接
|
||||
|
||||
* Mac
|
||||
|
||||
@ -78,7 +78,7 @@ ABIs = [
|
||||
cmake_vars = dict(
|
||||
CMAKE_TOOLCHAIN_FILE=self.get_toolchain_file(),
|
||||
INSTALL_CREATE_DISTRIB="ON",
|
||||
WITH_OPENCL="OFF",
|
||||
WITH_OPENCL="ON",
|
||||
BUILD_KOTLIN_EXTENSIONS="ON",
|
||||
WITH_IPP=("ON" if abi.haveIPP() else "OFF"),
|
||||
WITH_TBB="ON",
|
||||
|
||||
15
星基RTK.md
Normal file
@ -0,0 +1,15 @@
|
||||
|
||||
|
||||
![[Pasted image 20230508173721.png]]
|
||||
![[Pasted image 20230508173835.png]]
|
||||
![[Pasted image 20230508173948.png]]
|
||||
![[Pasted image 20230508174056.png]]
|
||||
![[Pasted image 20230508185715.png]]
|
||||
![[Pasted image 20230508185826.png]]
|
||||
![[Pasted image 20230508190029.png]]
|
||||
|
||||
今天测了下星基 农田场景
|
||||
1 地面静置不动两分钟,水平浮动范围3cm 垂直浮动范围10cm
|
||||
2 飞机运动模式油门推满 速度18m/s 持续两分钟,星基RTK连接稳定(一直保持固定解)
|
||||
3 飞航线,平台下发任务,航线速度15m/s 的情况下,飞机点与点之间是飞的弧线,且飞不到目标点
|
||||
4 降低航线速度为5m/s 点与点之间飞直线且可以到达航点,在30米高5倍变焦的情况下,啥也拍不到,对比录制航点位置和复飞航点位置发现偏了2米,录制点拍照是为杆塔正中心,复飞点拍不到杆塔
|
||||
8
星逻机库问题.md
Normal file
@ -0,0 +1,8 @@
|
||||
|
||||
|
||||
|
||||
* 机库在执行关库/开库过程中,不能接收新的指令,否则执行中的任务和新的指令都会马上回复成功
|
||||
* 机库自身状态不对的过程中,执行指令都会秒回成功
|
||||
* 发充电指令无法得知是执行了换电还是充电
|
||||
* 无法获取电池仓电池状态
|
||||
*
|
||||
111
问题排查.md
Normal file
@ -0,0 +1,111 @@
|
||||
|
||||
|
||||
## mqtt 工具使用
|
||||
### 工具下载
|
||||
[MQTT Explorer | An all-round MQTT client that provides a structured topic overview (mqtt-explorer.com)](https://mqtt-explorer.com/)
|
||||
各环境mqtt服务器地址
|
||||
* 云南蒙自地址 112.116.71.17:1883
|
||||
* 测试地址 121.40.120.163:1883
|
||||
* 正式地址 39.174.88.210:12468
|
||||
|
||||
按照下图输入IP和端口,暂时不需要用户名和密码可以直接登录
|
||||
|
||||
![[Pasted image 20230331153159.png]]
|
||||
|
||||
订阅消息
|
||||
/ah/# 订阅所有消息
|
||||
/ah/uav/# 只订阅全部无人机消息
|
||||
/ah/hangar/# 只订阅全部机库消息
|
||||
/ah/设备类型/设备序列号/# 订阅指定设备的全部消息
|
||||
|
||||
按照下面步骤新增订阅并连接到服务器
|
||||
|
||||
![[Pasted image 20230331153426.png]]
|
||||
![[Pasted image 20230331153752.png]]
|
||||
|
||||
![[Pasted image 20230331153718.png]]
|
||||
|
||||
## app 日志查看
|
||||
日志目前都存储在自己部署的minio 云存储。
|
||||
下面是地址和账号 ”/“之前的是账号,后面是密码
|
||||
云南
|
||||
http://112.116.71.17:9000/
|
||||
device-application/s&F4dGN9Q1taErBOuBPVrd3hXhMNhsCt
|
||||
正式服务器
|
||||
http://39.174.88.210:12490/login
|
||||
device-application/s&F4dGN9Q1taErBOuBPVrd3hXhMNhsCt
|
||||
测试服务器
|
||||
http://39.174.88.209:10790/buckets/aihang/browse
|
||||
device-application/s&F4dGN9Q1taErBOuBPVrd3hXhMNhsCt
|
||||
|
||||
![[Pasted image 20230331161609.png]]
|
||||
![[Pasted image 20230331161707.png]]
|
||||
![[Pasted image 20230331162020.png]]
|
||||
![[Pasted image 20230331165136.png]]
|
||||
|
||||
|
||||
## 查问题流程
|
||||
* 当有人反馈问题时,先初步判断是否为app 相关问题,一般涉及到飞机相关的操作都有可能是app 端的问题。
|
||||
* 然后根据提供的任务ID去查日志,日志文件名称为飞机序列号+任务名称+任务ID+ 时间戳+时间戳转换出来的日期和时间。如果查不到任务ID 就需要根据问题反馈人反馈时间去找附近时间段的日志文件。
|
||||
* 找到日志文件之后一般需要解析日志文件,我用这个也可以用别的 [在线JSON转Excel工具 - UU在线工具 (uutool.cn)](https://uutool.cn/json2excel/)
|
||||
![[Pasted image 20230331171748.png]]
|
||||
一般只需要看actioninfo 这个字段的东西就行,里面都是关键信息。
|
||||
|
||||
任务整个流程为,流程为同步任务,一步出错则后续都不执行:
|
||||
* 前端页面用户下发任务
|
||||
* 后端对任务数据、天气、设备状态等进行校验
|
||||
* 后端下发开库开机 机库端返回成功
|
||||
* 后端下发遥控器开机 app 返回成功
|
||||
* 后端下发自检,app 返回自检成功
|
||||
* 后端下发任务执行,app 返回执行成功
|
||||
* 后端关闭机库
|
||||
* 任务中 就正常飞行,也可能会收到远程控制指令这时候会暂停任务,响应远程控制的指令
|
||||
* 任务结束app调用任务结束接口,接口返回成功飞机返航,三次失败就飞机前往备降点
|
||||
* 任务结束接口调用成功,后端执行开库动作
|
||||
* 开库成功后后端发送降落请求这时app 控制无人机进行降落流程
|
||||
* 降落请求长时间未响应,后端会在降落请求发送后的30分钟执行关库指令
|
||||
* 降落成功后,app进行图片传输,后端操作机库执行关库夹紧推杆动作
|
||||
* app图片传输结束后app 调用后端的飞机关机接口,整个任务流程结束
|
||||
|
||||
当用户判断出现问题时,先查对应的指令,首先看对应设备有没有收到指令,未收到则为后端或者前端问题。
|
||||
app 这边对每次收到的指令都会做出响应,无响应说明app有问题。
|
||||
app 响应且响应为成功结果,则后端或者前端有问题。如果响应结果为错误则根据报错信息查问题
|
||||
|
||||
### 暂存已知问题
|
||||
执行任务起飞后不关库 后端偶发性问题暂未定位到问题
|
||||
机库开库无人机不开机 后端偶发性问题暂未定位到问题
|
||||
降落后关库,但是关机失败,已解决,但是测试量不够不确定是否会复现
|
||||
开库开机后,app 显示传输数据完成,关闭无人机 已解决待测试
|
||||
|
||||
### app 指令接收和响应
|
||||
|
||||
#### 指令接收
|
||||
接收执行的 mqtt topic为 /ah/uav/无人机序列号/command/
|
||||
指令消息体如下,app 日志会保存下 code 和requestId的内容
|
||||
|
||||
```json
|
||||
{
|
||||
"code": "task_stop",
|
||||
"data":"",
|
||||
"sdkType": "msdk",
|
||||
"deviceId": "1ZNDH8500B72MM",
|
||||
"requestId": "1111",
|
||||
"time": 1667467817551
|
||||
}
|
||||
```
|
||||
|
||||
#### 指令响应
|
||||
接收执行的 mqtt topic为 /ah/uav/无人机序列号/commandResponse/
|
||||
消息结构如下,当code 不为0是属于指令执行异常,msg 字段会加上原因
|
||||
|
||||
``` json
|
||||
{
|
||||
|
||||
"code": 0,
|
||||
"data": "camera_vertical",
|
||||
"msg": "on",
|
||||
"requestId": "1111"
|
||||
}
|
||||
```
|
||||
|
||||
### app 指令类别参考接口文档
|
||||
@ -7,4 +7,3 @@
|
||||
* 飞控部分存在问题
|
||||
* 没考虑过搭飞机实际测试
|
||||
* 使用phenix mini 连接高通平台,高通平台充当通信链路和图像数据采集,本地计算机做slam计算,使用ros通信。
|
||||
|
||||
|
||||