文档更新

This commit is contained in:
yewuya 2023-05-15 19:36:41 +08:00
parent 57e90f816c
commit 24220c5453
32 changed files with 351 additions and 10 deletions

2
ROS.md
View File

@ -1,4 +1,4 @@
# ROS
## 参数服务器

7
docker.md Normal file
View File

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

36
frp使用.md Normal file
View 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的状态
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View 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地址,后面的是要软链接的地址
```

View File

@ -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
View 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 #删除开机自启服务
```

View File

@ -23,12 +23,6 @@ xsetroot -solid grey
vncconfig -iconic &
```
vnc连接
* Mac

View File

@ -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
View 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
View File

@ -0,0 +1,8 @@
* 机库在执行关库/开库过程中,不能接收新的指令,否则执行中的任务和新的指令都会马上回复成功
* 机库自身状态不对的过程中,执行指令都会秒回成功
* 发充电指令无法得知是执行了换电还是充电
* 无法获取电池仓电池状态
*

111
问题排查.md Normal file
View 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 指令类别参考接口文档

View File

@ -7,4 +7,3 @@
* 飞控部分存在问题
* 没考虑过搭飞机实际测试
* 使用phenix mini 连接高通平台高通平台充当通信链路和图像数据采集本地计算机做slam计算使用ros通信。