diff --git a/ROS.md b/ROS.md index cc8c9a3..995f747 100644 --- a/ROS.md +++ b/ROS.md @@ -1,4 +1,4 @@ -# ROS + ## 参数服务器 diff --git a/docker.md b/docker.md new file mode 100644 index 0000000..5571854 --- /dev/null +++ b/docker.md @@ -0,0 +1,7 @@ +## 容器开机自启 + +``` +docker ps -qa +docker update --restart=always 容器ID/容器名 +docker update --restart=always 56f0b18af626 +``` \ No newline at end of file diff --git a/frp使用.md b/frp使用.md new file mode 100644 index 0000000..315aa7d --- /dev/null +++ b/frp使用.md @@ -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的状态 +``` + + + + + diff --git a/img/Pasted image 20230223114912.png b/img/Pasted image 20230223114912.png new file mode 100644 index 0000000..a485326 Binary files /dev/null and b/img/Pasted image 20230223114912.png differ diff --git a/img/Pasted image 20230331153159.png b/img/Pasted image 20230331153159.png new file mode 100644 index 0000000..477327a Binary files /dev/null and b/img/Pasted image 20230331153159.png differ diff --git a/img/Pasted image 20230331153400.png b/img/Pasted image 20230331153400.png new file mode 100644 index 0000000..360920c Binary files /dev/null and b/img/Pasted image 20230331153400.png differ diff --git a/img/Pasted image 20230331153426.png b/img/Pasted image 20230331153426.png new file mode 100644 index 0000000..c8854e9 Binary files /dev/null and b/img/Pasted image 20230331153426.png differ diff --git a/img/Pasted image 20230331153718.png b/img/Pasted image 20230331153718.png new file mode 100644 index 0000000..f088ade Binary files /dev/null and b/img/Pasted image 20230331153718.png differ diff --git a/img/Pasted image 20230331153752.png b/img/Pasted image 20230331153752.png new file mode 100644 index 0000000..2b24269 Binary files /dev/null and b/img/Pasted image 20230331153752.png differ diff --git a/img/Pasted image 20230331161609.png b/img/Pasted image 20230331161609.png new file mode 100644 index 0000000..5019348 Binary files /dev/null and b/img/Pasted image 20230331161609.png differ diff --git a/img/Pasted image 20230331161707.png b/img/Pasted image 20230331161707.png new file mode 100644 index 0000000..04042f6 Binary files /dev/null and b/img/Pasted image 20230331161707.png differ diff --git a/img/Pasted image 20230331162020.png b/img/Pasted image 20230331162020.png new file mode 100644 index 0000000..e69cc06 Binary files /dev/null and b/img/Pasted image 20230331162020.png differ diff --git a/img/Pasted image 20230331165136.png b/img/Pasted image 20230331165136.png new file mode 100644 index 0000000..0237539 Binary files /dev/null and b/img/Pasted image 20230331165136.png differ diff --git a/img/Pasted image 20230331171748.png b/img/Pasted image 20230331171748.png new file mode 100644 index 0000000..1fbb3b8 Binary files /dev/null and b/img/Pasted image 20230331171748.png differ diff --git a/img/Pasted image 20230508173721.png b/img/Pasted image 20230508173721.png new file mode 100644 index 0000000..efbbb02 Binary files /dev/null and b/img/Pasted image 20230508173721.png differ diff --git a/img/Pasted image 20230508173835.png b/img/Pasted image 20230508173835.png new file mode 100644 index 0000000..b464d79 Binary files /dev/null and b/img/Pasted image 20230508173835.png differ diff --git a/img/Pasted image 20230508173948.png b/img/Pasted image 20230508173948.png new file mode 100644 index 0000000..6a5d158 Binary files /dev/null and b/img/Pasted image 20230508173948.png differ diff --git a/img/Pasted image 20230508174056.png b/img/Pasted image 20230508174056.png new file mode 100644 index 0000000..e290838 Binary files /dev/null and b/img/Pasted image 20230508174056.png differ diff --git a/img/Pasted image 20230508185715.png b/img/Pasted image 20230508185715.png new file mode 100644 index 0000000..87f81e8 Binary files /dev/null and b/img/Pasted image 20230508185715.png differ diff --git a/img/Pasted image 20230508185826.png b/img/Pasted image 20230508185826.png new file mode 100644 index 0000000..0514660 Binary files /dev/null and b/img/Pasted image 20230508185826.png differ diff --git a/img/Pasted image 20230508190029.png b/img/Pasted image 20230508190029.png new file mode 100644 index 0000000..7dcb2ba Binary files /dev/null and b/img/Pasted image 20230508190029.png differ diff --git a/img/Pasted image 20230508190630.png b/img/Pasted image 20230508190630.png new file mode 100644 index 0000000..af53006 Binary files /dev/null and b/img/Pasted image 20230508190630.png differ diff --git a/img/Pasted image 20230508190706.png b/img/Pasted image 20230508190706.png new file mode 100644 index 0000000..af53006 Binary files /dev/null and b/img/Pasted image 20230508190706.png differ diff --git a/libcurl.so.4 no version information available.md b/libcurl.so.4 no version information available.md new file mode 100644 index 0000000..d2e2ca8 --- /dev/null +++ b/libcurl.so.4 no version information available.md @@ -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地址,后面的是要软链接的地址 +``` diff --git a/linux常用指令.md b/linux常用指令.md index 892338f..65a9016 100644 --- a/linux常用指令.md +++ b/linux常用指令.md @@ -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 查看串口输出 +``` \ No newline at end of file diff --git a/osdk 环境配置.md b/osdk 环境配置.md new file mode 100644 index 0000000..2e04d38 --- /dev/null +++ b/osdk 环境配置.md @@ -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 #删除开机自启服务 + +``` \ No newline at end of file diff --git a/ubuntu 下vnc的使用.md b/ubuntu 下vnc的使用.md index 1ad2d87..fc6e6d8 100644 --- a/ubuntu 下vnc的使用.md +++ b/ubuntu 下vnc的使用.md @@ -23,12 +23,6 @@ xsetroot -solid grey vncconfig -iconic & ``` - - - - - - vnc连接 * Mac diff --git a/手动编译OpenCV 和OpenCV_contrib android版本.md b/手动编译OpenCV 和OpenCV_contrib android版本.md index dcb154a..f6fb5d6 100644 --- a/手动编译OpenCV 和OpenCV_contrib android版本.md +++ b/手动编译OpenCV 和OpenCV_contrib android版本.md @@ -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", diff --git a/星基RTK.md b/星基RTK.md new file mode 100644 index 0000000..b51a76b --- /dev/null +++ b/星基RTK.md @@ -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米,录制点拍照是为杆塔正中心,复飞点拍不到杆塔 \ No newline at end of file diff --git a/星逻机库问题.md b/星逻机库问题.md new file mode 100644 index 0000000..da8d2c0 --- /dev/null +++ b/星逻机库问题.md @@ -0,0 +1,8 @@ + + + +* 机库在执行关库/开库过程中,不能接收新的指令,否则执行中的任务和新的指令都会马上回复成功 +* 机库自身状态不对的过程中,执行指令都会秒回成功 +* 发充电指令无法得知是执行了换电还是充电 +* 无法获取电池仓电池状态 +* \ No newline at end of file diff --git a/问题排查.md b/问题排查.md new file mode 100644 index 0000000..2338126 --- /dev/null +++ b/问题排查.md @@ -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 指令类别参考接口文档 diff --git a/高通无人机会议记录.md b/高通无人机会议记录.md index c5d3fbc..966782f 100644 --- a/高通无人机会议记录.md +++ b/高通无人机会议记录.md @@ -6,5 +6,4 @@ * 用的mavros * 飞控部分存在问题 * 没考虑过搭飞机实际测试 -* 使用phenix mini 连接高通平台,高通平台充当通信链路和图像数据采集,本地计算机做slam计算,使用ros通信。 - +* 使用phenix mini 连接高通平台,高通平台充当通信链路和图像数据采集,本地计算机做slam计算,使用ros通信。 \ No newline at end of file