From 44e127967a4a94c927656daccd6216cc90aa9fb7 Mon Sep 17 00:00:00 2001 From: yewuya Date: Tue, 16 May 2023 20:30:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- M300降落测试.md | 36 -- Pico 配置.md | 11 - README.md | 5 +- ROS.md | 25 +- WSL相关指南.md | 22 - amvlab 环境配置.md | 12 - app反馈.md | 6 - conda 切换虚拟环境.md | 7 - docker.md | 7 - frp使用.md | 36 -- frp配置.md | 93 ---- how it works.md | 18 - lantronix--minifly wifi配置.md | 12 - log 实训.md | 165 ------ matlab破解方法.md | 18 - msdk 御2 自主降落.md | 8 - osdk 环境配置.md | 130 ----- phenix mini 开发环境.md | 50 -- phenix mini 无人车编队.md | 22 - phenix mini 移植px4 1.12的无人车代码.md | 21 - phenix mini 远程开发环境搭建.md | 161 ------ px4使用外部定位器(VR定位器).md | 32 -- px4飞控常见报错及解决办法.md | 7 - qv2rayuse.md | 23 - ubuntu Qv2ray安装和使用.md | 44 -- ubuntu xrdp.md | 30 -- ubuntu 下vnc的使用.md | 45 -- vs code 远程开发教程.md | 59 --- wsl2 卸载和转移安装路径.md | 38 -- zerotier使用.md | 46 -- zerotier内部使用.md | 9 - ...计量大学现代科技学院本科毕业设计(论文).md | 221 -------- 书单.md | 18 - 买衣服尺码.md | 32 -- 云计算学习知识.md | 5 - 交接内容.md | 139 ----- 公路车选择.md | 14 - 出题.md | 477 ------------------ 大疆自主降落.md | 23 - 大疆自主降落对焦问题.md | 11 - 大疆自主降落无人机会议纪要.md | 144 ------ 宣讲会演讲稿.md | 82 --- 室内变电站无人机巡检.md | 28 - 峰飞航空猎头沟通结果.md | 8 - 年度项目获奖感言.md | 13 - 投资策略.md | 11 - 无人机自主降落方案.md | 9 - 星基RTK.md | 15 - 星逻机库问题.md | 8 - 校招职位.md | 50 -- 第三方RTK.md | 98 ---- 第三方RTK飞行可能出现问题及解决方案.md | 96 ---- 翻墙使用指南.md | 46 -- 自主降落开发日志.md | 34 -- 自我介绍.md | 80 --- 视觉降落流程.md | 3 - 计算机书.md | 99 ---- 试用期工作总结.md | 20 - 远程桌面.md | 19 - 配置单.md | 15 - 问题排查.md | 111 ---- 高通无人机会议记录.md | 9 - 62 files changed, 10 insertions(+), 3126 deletions(-) delete mode 100644 M300降落测试.md delete mode 100644 Pico 配置.md delete mode 100644 WSL相关指南.md delete mode 100644 amvlab 环境配置.md delete mode 100644 app反馈.md delete mode 100644 conda 切换虚拟环境.md delete mode 100644 docker.md delete mode 100644 frp使用.md delete mode 100644 frp配置.md delete mode 100644 how it works.md delete mode 100644 lantronix--minifly wifi配置.md delete mode 100644 log 实训.md delete mode 100644 matlab破解方法.md delete mode 100644 msdk 御2 自主降落.md delete mode 100644 osdk 环境配置.md delete mode 100644 phenix mini 开发环境.md delete mode 100644 phenix mini 无人车编队.md delete mode 100644 phenix mini 移植px4 1.12的无人车代码.md delete mode 100644 phenix mini 远程开发环境搭建.md delete mode 100644 px4使用外部定位器(VR定位器).md delete mode 100644 px4飞控常见报错及解决办法.md delete mode 100644 qv2rayuse.md delete mode 100644 ubuntu Qv2ray安装和使用.md delete mode 100644 ubuntu xrdp.md delete mode 100644 ubuntu 下vnc的使用.md delete mode 100644 vs code 远程开发教程.md delete mode 100644 wsl2 卸载和转移安装路径.md delete mode 100644 zerotier使用.md delete mode 100644 zerotier内部使用.md delete mode 100644 中国计量大学现代科技学院本科毕业设计(论文).md delete mode 100644 书单.md delete mode 100644 买衣服尺码.md delete mode 100644 云计算学习知识.md delete mode 100644 交接内容.md delete mode 100644 公路车选择.md delete mode 100644 出题.md delete mode 100644 大疆自主降落.md delete mode 100644 大疆自主降落对焦问题.md delete mode 100644 大疆自主降落无人机会议纪要.md delete mode 100644 宣讲会演讲稿.md delete mode 100644 室内变电站无人机巡检.md delete mode 100644 峰飞航空猎头沟通结果.md delete mode 100644 年度项目获奖感言.md delete mode 100644 投资策略.md delete mode 100644 无人机自主降落方案.md delete mode 100644 星基RTK.md delete mode 100644 星逻机库问题.md delete mode 100644 校招职位.md delete mode 100644 第三方RTK.md delete mode 100644 第三方RTK飞行可能出现问题及解决方案.md delete mode 100644 翻墙使用指南.md delete mode 100644 自主降落开发日志.md delete mode 100644 自我介绍.md delete mode 100644 视觉降落流程.md delete mode 100644 计算机书.md delete mode 100644 试用期工作总结.md delete mode 100644 远程桌面.md delete mode 100644 配置单.md delete mode 100644 问题排查.md delete mode 100644 高通无人机会议记录.md diff --git a/M300降落测试.md b/M300降落测试.md deleted file mode 100644 index 7742980..0000000 --- a/M300降落测试.md +++ /dev/null @@ -1,36 +0,0 @@ -# M300降落测试 - -## 无人机相对降落板不同角度 - -## 无人机相对降落板不同距离的误差 - -## 无人机相对降落板不同方向的误差 - -## 无人机相对降落板不同高度的误差 - -## 不同光照条件下的降落测试 - -## 不同风力的降落测试 - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Pico 配置.md b/Pico 配置.md deleted file mode 100644 index b155a9a..0000000 --- a/Pico 配置.md +++ /dev/null @@ -1,11 +0,0 @@ -Pico 配置 - -LTAI5tDmuBc9sA3CDso9bwe3 - -MzzUtOfOKx7CK3rFoSckNvujkQGBF3 - -MzzUtOfOKx7CK3rFoSckNvujkQGBF3 - -yewuyadeimagewall - -oss-cn-hangzhou \ No newline at end of file diff --git a/README.md b/README.md index 8d9c12b..ad4b87f 100644 --- a/README.md +++ b/README.md @@ -1 +1,4 @@ -* 用于记录日常工作中遇到的问题和解决方法 \ No newline at end of file +* 用于记录日常工作中遇到的问题和解决方法 + +## 技术 +[[ROS]] diff --git a/ROS.md b/ROS.md index 995f747..ec026d1 100644 --- a/ROS.md +++ b/ROS.md @@ -1,22 +1,9 @@ - - -## 参数服务器 - -### 设置参数 - -```c++ -ros::NodeHandle n; -n.setParam("camera/session", to_string(session)); -``` - -### 获取参数 - -```c++ -ros::NodeHandle n; -string session_s; -n.getParam("camera/session", session_s); - -``` +[[ros python]]] +[[ros cpp]] +[[ros 命令]] + + + diff --git a/WSL相关指南.md b/WSL相关指南.md deleted file mode 100644 index 313ba40..0000000 --- a/WSL相关指南.md +++ /dev/null @@ -1,22 +0,0 @@ -# WSL相关指南 - -## 修该WSL最大内存 - -WSL2默认可以使用的内存大小为主机的80%,对于Linux而言即使装了桌面,一般的开发也没必要给这么多内存,分多了,反而有可能卡主机的Windows -操作: -1.打开Windows资源管理器,地址栏输入 %UserProfile% 回车,在该目录下创建一个文件, 名字为 .wslconfig ,写入内容示例如下 (我电脑16GB内存,分给WSL内存4GB,另外设置交换分区4GB) - -```sh -[wsl2] -memory=2GB -swap=4GB -localhostForwarding=true -``` -cmd执行 wsl --shutdown 关闭WSL,再重新打开即可 - - - -## wsl文件位置 - -资源管理器中输入:`\\wsl$` - diff --git a/amvlab 环境配置.md b/amvlab 环境配置.md deleted file mode 100644 index 6886aeb..0000000 --- a/amvlab 环境配置.md +++ /dev/null @@ -1,12 +0,0 @@ -# amvlab 环境配置 - -```sh -source /home/aihangtec/Prometheus/devel/setup.bash -export GAZEBO_PLUGIN_PATH=$GAZEBO_PLUGIN_PATH:$/home/aihangtec/Prometheus/devel/lib -export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:$/home/aihangtech/Prometheus/Simulator/gazebo_simulator/models -export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:$/home/aihangtec/Prometheus/Simulator/gazebo_simulator/amov_models -source /home/aihangtec/prometheus_px4/Tools/setup_gazebo.bash /home/aihangtec/prometheus_px4 /home/aihangtec/prometheus_px4/build/amovlab_sitl_default -export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/aihangtec/prometheus_px4 -export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/aihangtec/prometheus_px4/Tools/sitl_gazebo - -``` \ No newline at end of file diff --git a/app反馈.md b/app反馈.md deleted file mode 100644 index c2244a1..0000000 --- a/app反馈.md +++ /dev/null @@ -1,6 +0,0 @@ -录制和复页面飞切换 - -小范围连续转弯效果不好 - -![image-20210222154911901](C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210222154911901.png) - diff --git a/conda 切换虚拟环境.md b/conda 切换虚拟环境.md deleted file mode 100644 index 2c875bb..0000000 --- a/conda 切换虚拟环境.md +++ /dev/null @@ -1,7 +0,0 @@ -# conda 切换虚拟环境 - -```shell -conda env list //显示所有环境 -conda activate my_test //切换到my_test环境 -``` - diff --git a/docker.md b/docker.md deleted file mode 100644 index 5571854..0000000 --- a/docker.md +++ /dev/null @@ -1,7 +0,0 @@ -## 容器开机自启 - -``` -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 deleted file mode 100644 index 315aa7d..0000000 --- a/frp使用.md +++ /dev/null @@ -1,36 +0,0 @@ -## 编辑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/frp配置.md b/frp配置.md deleted file mode 100644 index d574350..0000000 --- a/frp配置.md +++ /dev/null @@ -1,93 +0,0 @@ -# frp配置 - -下载文件 - -```shell -wget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz -tar -zxvf frp_0.35.1_linux_amd64.tar.gz -cp -r frp_0.35.1_linux_amd64 frp -cd frp -ls -a - -``` - -服务器端配置frps.ini文件内容如下 - -```shell -[common] -bind_port = 7000 # 云服务器服务端口 -dashboard_port = 7500 # 网页控制台端口 -token = 123456 # 密码 -dashboard_user = yewuya # 控制台账号 -dashboard_pwd = 1689458474Wu # 控制台密码 -vhost_http_port = 10080 -vhost_https_port = 10443 -``` - -服务端配置完成之后运行 - -``` -nohup ./frps -c frps.ini & -``` - -保持程序后台运行 - -客户端配置frpc.ini 文件内容如下 - -```shell -[common] -server_addr = 101.200.41.107 # 云服务器IP -server_port = 7000 # 云服务器服务端口 -token = 123456 # 密码 - -[ssh] # 服务名称 -type = tcp # 传输类型 -local_ip = 127.0.0.1 # 本地IP -local_port = 22 # 本地服务的端口 -remote_port = 6000 # 云服务器对应的端口 - -[rdp] -type = tcp -local_ip = 127.0.0.1 -local_port = 3389 -remote_port = 6001 -``` - -### frp客户端开机自启 - -创建服务文件 - -```sh -sudo vi /etc/systemd/system/frpc.serivce -``` - -文件内容如下 - -```sh -[Unit] -Description=Frp Client -After=network.target -Wants=network.target - -[Service] -Restart=on-failure -RestartSec=5 -ExecStart=/home/yewuya/frp/frpc -c /home/yewuya/frp/frpc.ini # 为fpc和frpc.ini的文件路径 - -[Install] -WantedBy=multi-user.target - -``` - -开启开机自启服务相关命令 - -```sh -systemctl daemon-reload # 刷新服务列表 -systemctl enable frpc # 设置frpc开机自启 -systemctl disable frpc # 关闭frpc开机自启 -systemctl start frpc # 启动frpc服务 -systemctl stop frpc # 关闭frpc服务 -``` - - - diff --git a/how it works.md b/how it works.md deleted file mode 100644 index 2961484..0000000 --- a/how it works.md +++ /dev/null @@ -1,18 +0,0 @@ -# how it works - -### What data is recorded - -* We need to reproduce the flight path, so we need the GPS coordinates of each time of the drone - -* We need to make sure the photos are the same, so we need to record the gimbal angle, the drone heading, and the camera activity at each time. - -### How to control the drone - -* We can control the drone to move in each direction by controlling the speed of the drone in the x, y and z axes, and then we can calculate the distance between the current GPS coordinates of the drone and the coordinates we want to reach, and substitute the result into the control algorithm to control the aircraft to any GPS coordinates in real time. - -### How to control the camera - -* The route we record is actually a very dense set of GPS coordinates, which we call waypoints, and each waypoint contains a lot of data, not just GPS coordinates. We can determine whether the camera needs to work based on the camera activity stored in the waypoint, and if it needs to work, control the drone to stay in place, adjust the gimbal angle and execute the camera task, and then continue to the next waypoint after the execution is completed. - - Translated with www.DeepL.com/Translator (free version) - diff --git a/lantronix--minifly wifi配置.md b/lantronix--minifly wifi配置.md deleted file mode 100644 index f3076ef..0000000 --- a/lantronix--minifly wifi配置.md +++ /dev/null @@ -1,12 +0,0 @@ -# lantronix--minifly wifi配置 - -* PC先连接AP 的wifi 名称:RSTSWARM2 密码:RST12345678 -* 更改WiFi 的网络设置如图所示 - -![ip配置](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/ip%E9%85%8D%E7%BD%AE.png) - - - -* 浏览器访问飞机的IP地址,飞机的IP地址为192.168.2.1XX。XX为飞机上标签的后两位。如标签为026 则飞机的IP为192.168.2.126。网页的账号:admin 密码:PASSWORD -* 登录之后即可根据页面配置定位器的WiFi数据,可配置参数太多,就不列举了,自行检索。 - diff --git a/log 实训.md b/log 实训.md deleted file mode 100644 index bda996a..0000000 --- a/log 实训.md +++ /dev/null @@ -1,165 +0,0 @@ -# log 实训 - -## log简介 - -**log的定义**:日志是将软件运行的状态、过程等信息,输出到不同的介质中(例如:文件、控制台、显示屏等),并进行显示和保存。为软件调试、维护过程中的问题追溯、性能分析、系统监控、故障预警等功能,提供参考依据。可以说,日志的使用,几乎占用的软件生命周期的至少 80% 的时间。 - -**log的重要性**:对于操作系统而言,由于其软件的复杂度非常大,单步调试在一些场景下并不适合,所以日志组件在操作系统上几乎都是标配。完善的日志系统也能让操作系统的调试事半功倍. - -**log的作用:** - -* *** 确定程序的运行路径 *** 一个函数有没有被调用,一个 if 块有没有被执行,一个 while 循环执行了几次,到了哪一步中断了,都可以通过 输出出相关信息来查看。 - -* *** 查看变量的状态 *** 程序自身的报错会告诉你发生了什么错误,但你还需要找出为什么会发生错误。**通过 log输出出错语句涉及到的相关变量的值和类型**,可以帮助分析出错原因。 - -* *** 找出出错位置 *** 往往错误的原因并不在报错的位置,所以多输出一些标记,多 输出不同位置的变量值,**查看变量在运行过程中值的变化情况**,可以观察是在哪里发生了问题。 - -## px4 log使用 - -#### 代码添加log输出 - -在飞控开发过程中可以使用以下代码进行log调试,根据不同的错误级别在相应的部分插入相应的信息。不同的信息代表不同的情况,info一般用来表示重要功能完成了。warn表示发生异常但不影响系统使用,err代表使用已经影响到了系统的工作必须马上解决问题。 - -```c++ -PX4_INFO("输出需要的数据"); -PX4_WARN(" 输出警告信息"); -PX4_ERR("输出错误信息" ); - -``` - -在代码的需要的位置插入这三种log输出代码,原则如下: - -**多输出一些辅助信息**,方便自己查看,不然一堆数据看花眼。一般输出时会标注上**变量名,再输出变量类型,以及变量的值** - -**在出错行之前输出**。报错行涉及的一些变量,把他们的数值和类型,全都输出出来,看看和预期是否一致。 - -**一行做一件事 **。如果你出错的一行里连续调用了多个函数或运算,要分开写,分开输出。 - -### nsh调试 - -debug方式主要分仿真器调试和真机调试,一般都是先进行软件仿真调试,再进行真机调试。二者调试时的终端都会输出log信息。根据输出的log信息可以快速定位问题所在。也可以在把编译生成的固件写入飞控之后,飞控连接[QGC地面站][http://qgroundcontrol.com/ ]之后打开mavlink console也可以运行自己所写的module.仿真器和QGC地面站都可以输入help来查看有效的命令和语法.这里以px4_simple_app为例,下图是在jmavsim仿真器运行px4_simple_app时所输出的log信息。 - -![image-20210122161137944](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210122161137944.png) - -![image-20210122154447764](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210122154447764.png) - -### 日志分析 - -#### logger - - - -px4 的logger会把订阅的uorb消息记录成.ulg文件存在SD卡中.logger可以订阅任何uorb消息并且可以进行配置选择需要的消息主题和频率.logger输出保存ulog文件也可以通过mavlink向客户端发送ulog数据.这两个后台任务可以同时进行. - -**logger实现** - -使用两个线程: - -- 主线程以固定速率运行(如果以-p参数启动的话,则轮询主题),并检查数据更新 -- 写入线程,将数据写入文件 - -两个线程之间有一个可配置大小的写入缓存区。 - -logger默认情况下飞机解锁之后就会开始记录日志,飞机锁定之后停止记录日志.也可以在终端使用logger on手动开启.logger off停止记录.日志记录的主要内容为飞行数据和debug信息.记录的日志文件可以用于对飞机的系统和飞行性能的评估、调整和事故分析.日志的格式是ulog.记录的日志文件会存储成.ulg文件存在SD卡中.可以安装使用pyulog查看日志信息. - -**logger 命令** - -``` -logger <命令> [参数...] - 命令: - start - [-m ] 后端模式 - 可选: file|mavlink|all, 缺省: all - [-e] 启动后立即开始记录,直到上锁(否则只在解锁后开始记录) - [-f] 记录直到关闭为止(包含 -e) - [-t] 使用日期/时间命名日志目录和文件 - [-r ] 记录速率,单位:Hz,值为0则不限速 - 缺省: 280 - [-b ] 记录缓存大小,单位:KiB - 缺省: 12 - [-q ] mavlink模式下uORB队列大小 - 缺省: 14 - [-p ] 轮询主题而不是以固定速率运行(记录速率和主题间隔将被忽略) - 可选: - - on 立即开始记录,覆盖解锁(日志系统必须在运行中) - - off 立即停止记录,覆盖锁定(日志系统必须在运行中) - - stop - - status 打印状态信息 -``` - -**pyulog安装方法** - -```shell -git clone https://github.com/PX4/pyulog.git - -cd pyulog - -python setup.py build install -``` - -pyulog常用命令 - -```shell -ulog2csv sample.ulg //将sample.ulg文件转成.csv文件这些文件可以使用excel打开 -ulog_messgaes sample.ulg //查看ulog中的uorb的消息 -ulog_info sample.ulg //显示sample.ulg记录的信息 -ulog_params sample.ulg //查看sample.ulg文件的参数 -``` - -下方是ulg文件转成csv后的几个比较重要的文件和所记录的信息。 - -airspeed_0.csv 存放了飞行的指示空速和滤波前后的真空速 - -vehicle_attitude_0.csv 存放了四元数及pqr - -vehicle_attitude_setpoint_0.csv 存放了期望的姿态角及四元数、油门信息 - -tecs_status_0.csv 存放了滤波后的高度、速度、加速度信息及期望的高度、速度、加速度信息以及跟总能量有关的一些参数 - -actuator_outputs_0.csv、actuator_outputs_1.csv 存放了输出混控器的pwm信号,其中0是main out 1是aux out分别由主处理器和协处理器输出 - -actuator_controls_0_0.csv 存放了输入混控器的归一化数据 - -ekf2 两个文件中存放着互补滤波的数据更新 - -home_position_0.csv 存放着地面站所在位置 - -日志记录的消息主题也可以自己定义的,通过创建SD卡中的etc/logging/logger_topics.txt文件可以自定义记录需要的日志消息主题.一旦使用这个文件就会自动替换全部的默认主题.文件内容格式如下. - -```text - -``` - -topic_name 就是所要订阅的消息主题的名称 - -interval 是消息之间的间隔.如果指定了,则定义该主题的两条日志消息之间的最小间隔,单位为ms。如果不指定,则以全速率记录该主题. - -instance是消息的实例,如果不指定就记录该消息主题的所有实例,指定就记录相应的实例.如果不指定就记录该消息主题的所有实例. - -例子如下 - -```text -sensor_accel 0 0 -sensor_accel 100 1 -sensor_gyro 200 -sensor_mag 200 1 -``` - -使用前的记录的数据 - -![image-20210122174608467](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210122174608467.png) - -替换后的数据 - -![image-20210122174633579](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210122174633579.png) - - - - - - - diff --git a/matlab破解方法.md b/matlab破解方法.md deleted file mode 100644 index e280853..0000000 --- a/matlab破解方法.md +++ /dev/null @@ -1,18 +0,0 @@ -# matlab破解方法 - -## 安装 - -解压安装包,双击setup安装,高级选项选择我有安装密钥 - -**09806-07443-53955-64350-21751-41297** - -选择许可证文件文件路径 - -许可证/license/license_standalone.lic - -一直下一步完成安装 - -安装完成后复制Crack/libmwlmgrimpl.dll文件到安装路径**`C:\Program Files\Polyspace\bin\win64\matlab_startup_plugins\lmgrimpl`** - -替换原先的文件即可。 - diff --git a/msdk 御2 自主降落.md b/msdk 御2 自主降落.md deleted file mode 100644 index 09b446b..0000000 --- a/msdk 御2 自主降落.md +++ /dev/null @@ -1,8 +0,0 @@ -# msdk 御2 自主降落 - -获取视频流并进行人脸识别(在iOS端实现的) https://github.com/zyphs21/VisionDetect - -msdk获取避障信息代码(有效值为0.3到5m不在这个范围的数据无效) 主要是下视避障计算的结果(障碍物的距离)https://github.com/dji-sdk/Mobile-SDK-Android/blob/master/Sample%20Code/app/src/main/java/com/dji/sdk/sample/demo/flightcontroller/FlightAssistantPushDataView.java - -msdk直播推流代码(推流延迟大概在1-3s) https://github.com/dji-sdk/Mobile-SDK-Android/blob/master/Sample%20Code/app/src/main/java/com/dji/sdk/sample/demo/camera/LiveStreamView.java - diff --git a/osdk 环境配置.md b/osdk 环境配置.md deleted file mode 100644 index 2e04d38..0000000 --- a/osdk 环境配置.md +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - -``` -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/phenix mini 开发环境.md b/phenix mini 开发环境.md deleted file mode 100644 index 8c083db..0000000 --- a/phenix mini 开发环境.md +++ /dev/null @@ -1,50 +0,0 @@ -# phenix mini 开发环境 - -* 下载代码 - -git clone http://192.168.195.106/root/flight_control.git - -解压gcc 和modules - -modules 文件夹移入.git 文件夹 - -gcc 文件夹移入etc/文件夹下(这部已经完成不需要做) - -编辑.profile 文件 - -打开终端输入如下命令(rst为用户名自行替换) - -``` -vi /home/rst/.profile -``` - -在最后一行插入以下内容(其中rst为用户名,要根据自己用户名进行替换) - -```shell -export PATH=/etc/gcc-arm-none-eabi-7-2017-q4-major/bin:$PATH -``` - -保存退出之后运行一次.profile文件使修改生效终端执行如下命令 - -```sh -source .profile -``` - -之后使用cd进入到flight_control文件夹即可编译 - -编译命令 - -```cmake -make px4fmu-v4_default -``` - - - - - -windows 安装使用 MobaXterm 选择session vnc 输入IP和端口号之后输入密码 - -Mac 使用自带的屏幕共享 输入IP 192.168.3.124:5901 最后面的5901是端口号 - - - diff --git a/phenix mini 无人车编队.md b/phenix mini 无人车编队.md deleted file mode 100644 index a17fd0c..0000000 --- a/phenix mini 无人车编队.md +++ /dev/null @@ -1,22 +0,0 @@ -# phenix mini 无人车编队 - -### 之前进展 - -* 找到了phenix mini 控制无人车的方法,但是物料还未到达无法实施 -* 根据资料和参考之前的硬件连接方法,使用phenix mini 的uart接口连接定位器,经过测试连接时没反应,后续需要何鹏鑫帮忙分析下定位器原理图,正确连线引出需要的数据 - -### 待解决问题 - -* phenix mini 控制小车移动 -* phenix mini和定位器之间的通信 - -### 未来计划 -#### phenix 控制小车移动 -* 重写px4无人车混控器,修改小车模式的混控器使之能够控制麦克纳姆轮的小车(4月13日) -* px4无人车的位置控制可能也需要修改 - -#### phenix mini 和定位器之间的通信 -* 等待何鹏鑫帮忙找到合适方法把定位器发送的数据用uart接口引出 -* phenix mini 的mavlink intsance 数量已达四个需要删掉两个以供定位器使用,选出两个instance并删除,删除之后配置phenix mini 的mavlink 使得phenix可以正常接收定位器的数据和指令 -* 修改phenix mini 的代码使之使用lighthouse定位系统的坐标作为当前的位置并以此进行位置控制 -* 重写PC端的发送程序,之前的发送程序不适合给phenix mini 使用 \ No newline at end of file diff --git a/phenix mini 移植px4 1.12的无人车代码.md b/phenix mini 移植px4 1.12的无人车代码.md deleted file mode 100644 index 5bc4f5c..0000000 --- a/phenix mini 移植px4 1.12的无人车代码.md +++ /dev/null @@ -1,21 +0,0 @@ -# phenix mini 移植px4 1.12的无人车代码 - -* phenix mini 是基于PX4 1.7.3修改而来的 - -phenix mini在切换到无人车模式后不论哪种车型都没有PWM输出。 - -后发现使用PX41.11和1.12版本固件的飞控可以输出PWM,只是因为PX4没有支持麦克纳姆轮的车型无法做到控制无人车正常移动 - -刚开始以为是因为混控器方面的问题就参考1.12版本的混控器配置文件,把1.12的混控器配置文件移植到phenix mini 移植之后发现也没有PWM输出。后查阅资料发现px41.7.3 版本的无人车模式存在bug,有无人车模式但是没有PWM输出,同时PX4官方也没有把无人车的代码加入到集成测试中,所以也不清楚具体问题出在哪里。如下链接是关于这个问题的相关讨论 - -[no pwm output in rover mode · Issue #10221 · PX4/PX4-Autopilot (github.com)](https://github.com/PX4/PX4-Autopilot/issues/10221) - -[NO PWM SIGNAL OUT - Pixhawk (Rover) - Discussion Forum, for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink](https://discuss.px4.io/t/no-pwm-signal-out-pixhawk-rover/5920) - -和无人车相关的代码有lib中的ROMFS/px4fmu_commom文件夹下的内容 - -![image-20210426182153765](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210426182153765.png) - -其中mixer中是不同机型的混控器配置文件init.d文件夹是不同机型的初始化配置 - -Src/lib文件夹下的mixer,output_limit ,pwm,src/modules文件夹下的px4iofirmware,rover_pos_control,这些代码都和无人车的控制相关,可能还有部分未列出的,由于1.7.3和1.12的版本时间间隔过长等原因,导致这两个版本的代码风格和软件架构发生了挺多变化,很多东西不是一脉相承的,增加了移植的难度,而且由于不清楚究竟是哪部分原因导致的1.7.3版本无人车模式没有PWM输出,所以可能需要把无人车相关的全部代码都移植到phenix mini中去,或者选择找到PWM没有输出的原因,修复这个BUG,这两者所消耗的时间并不清楚,可能找出bug比移植更加耗费时间。 \ No newline at end of file diff --git a/phenix mini 远程开发环境搭建.md b/phenix mini 远程开发环境搭建.md deleted file mode 100644 index 5d75c18..0000000 --- a/phenix mini 远程开发环境搭建.md +++ /dev/null @@ -1,161 +0,0 @@ -# phenix mini 远程开发环境搭建 - -## 虚拟局域网 - -官网[ZeroTier – Global Area Networking](https://www.zerotier.com/) - -Linux下载安装 - -```sh -curl -s https://install.zerotier.com | sudo bash -``` - -其他平台官网下载安装包安装 - -网络id 1c33c1ced015b57c - -Linux 使用如下命令添加 - -```sh -sudo zerotier-cli join 1c33c1ced015b57c -``` - -mac 打开软件后找到图标点击join network 输入网络ID 点击join即可,其他默认 - -windows类似操作 - -![image-20210511184416883](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210511184416883.png) - -加入网络后需要管理员进行配置,可以私信通知管理员配置 - -## VNC远程访问ubuntu 图形化界面 - - windows 推荐使用Mobaxterm 安装好之后点击session --vnc 输入IP和端口号即可 - -Mac 使用自带的屏幕共享 输入IP:端口号即可 - -之后输入密码就可以访问服务器的图形界面 - -## 开发环境配置 - -访问gitlab 服务器找到flight control 项目下载代码 - -[项目 · 仪表板 · GitLab](http://192.168.195.106/) - -解压modules.zip - -modules 文件夹移入.git 文件夹 - -.git 文件夹是隐藏文件,需要键盘按 ctrl + H 显示 - -也可以直接打开终端执行如下命令 - -```shell -git clone http://192.168.195.106/root/flight_control.git -cd flight_control/ -unzip modules.zip -cp -r modules .git/ -``` - -编辑.profile 文件 - -打开终端输入如下命令(rst为用户名自行替换) - -``` -vi /home/rst/.profile -``` - -在最后一行插入以下内容(其中rst为用户名,要根据自己用户名进行替换) - -```shell -export PATH=/etc/gcc-arm-none-eabi-7-2017-q4-major/bin:$PATH -``` - -保存退出之后运行一次.profile文件使修改生效终端执行如下命令 - -```sh -source .profile -``` - -之后使用cd进入到flight_control文件夹即可编译 - -编译命令 - -```cmake -make px4fmu-v4_default -``` - - - -## vs code远程开发 - -#### 远程插件配置 - -安装插件 Remote Development重启vs code - -按图示顺序点击+号 - -![截屏2021-05-11 下午6.08.21](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/%E6%88%AA%E5%B1%8F2021-05-11%20%E4%B8%8B%E5%8D%886.08.21.png) - -按照这个格式: ssh 用户名@服务器IP -A 输入 - -例子 ssh wujinhui@192.168.195.106 -A - -![image-20210511180052204](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210511180052204.png) - -选择第一个默认地方保存即可 - -![image-20210511180312646](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210511180312646.png) - -也可以点击设置按钮选择配置文件进入详细配置,这个一般不需要进行配置 - -Host 名称 - -Host name 服务器IP - -User 用户名 - -Port 端口号 默认22 - -![image-20210511181303382](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210511181303382.png) - -点击如图图标新建窗口 - -![截屏2021-05-11 下午6.29.20](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/%E6%88%AA%E5%B1%8F2021-05-11%20%E4%B8%8B%E5%8D%886.29.20.png) - - - -选择继续 - -![image-20210511180506265](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210511180506265.png) - -输入密码 - -![image-20210511180621756](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210511180621756.png) - -登录进入之后就可以本地使用vs code一样进行操作了 - -#### 代码编译 - -打开终端,也可以使用快捷键打开,不同平台不太一样,自行搜索 - -![image-20210512154537012](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210512154537012.png) - -输入编译命令 - -```makefile -make px4fmu-v4_default -``` - -等待编译完成即可 - -编译完成的文件需要通过sftp 下载到本地,编译生成的固件路径 /build/px4fmu-v4_default/px4fmu-v4_default.px4 - -windows 个人推荐 [MobaXterm free Xserver and tabbed SSH client for Windows (mobatek.net)](https://mobaxterm.mobatek.net/) - -Mac个人推荐 [electerm/electerm: 📻Terminal/ssh/sftp client(linux, mac, win) (github.com)](https://github.com/electerm/electerm) - -下载到本地之后使用QGC把固件写入飞控当中 - - - diff --git a/px4使用外部定位器(VR定位器).md b/px4使用外部定位器(VR定位器).md deleted file mode 100644 index ddb0bbf..0000000 --- a/px4使用外部定位器(VR定位器).md +++ /dev/null @@ -1,32 +0,0 @@ -# px4使用外部定位器(VR定位器) - -### 定位数据发送到PX4 - -* 定位数据使用mavlink发送数据包为 ATT_POS_MOCAP,频率30Hz 通过串口发送 - -### 代码编译设置 - -* px4 版本 1.7.3 -* 将如下代码复制到cmake/configs/nuttx_px4fmu-v4z-default.cmake这个路径中去 - -```cmake -set(PARAM_DEFAULT_OVERRIDES "{\\\"SYS_MC_EST_GROUP\\\": 1}") -``` - -![image-20210414095940692](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210414095940692.png) - -* 编译生成固件刷入飞控 - -### QGC参数配置 - -* SYS_MC_EST_GROUP 选择local_position_estimator - -![image-20210414093631393](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210414093631393.png) - -* LPE_FUSION 只选择fuse vision position - -![LPE_FUSION](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/LPE_FUSION.png) - -* ATT_EXT_HDG_M 选择vision - -![ATT_EXTHDG_M](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/ATT_EXTHDG_M.png) \ No newline at end of file diff --git a/px4飞控常见报错及解决办法.md b/px4飞控常见报错及解决办法.md deleted file mode 100644 index 4afb13c..0000000 --- a/px4飞控常见报错及解决办法.md +++ /dev/null @@ -1,7 +0,0 @@ -# px4飞控常见报错及解决办法 - - - -* # Power redundancy not met: 0 instead of 1 - -setting COM_POWER_COUNT to 0 \ No newline at end of file diff --git a/qv2rayuse.md b/qv2rayuse.md deleted file mode 100644 index b08523b..0000000 --- a/qv2rayuse.md +++ /dev/null @@ -1,23 +0,0 @@ -# qv2ray - -* Register an account at this site - https://j01.space/waf/rAOIEGWKZSRb2iwU2 -* Copy subscription link - -![image-20210201112412756](C:\Users\ASUS\Desktop\mymarkdown\images\image-20210201112412756.png) - -* Paste the subscription link and update it - -Click on the group and set the group as a subscription link, copy the subscription link to the specified location, and finally click ok - -![image-20210201112720673](C:\Users\ASUS\Desktop\mymarkdown\images\image-20210201112720673.png) - -![image-20210201113017450](C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210201113017450.png) - -* Test the delay and enable it - -Right click on the group and find the test delay. Select the proxy server according to the latency information, this result is only the latency not the network speed, the network speed should be measured by yourself. After selecting the server, click Start. - - - -![image-20210201134114883](C:\Users\ASUS\Desktop\mymarkdown\images\image-20210201134114883.png) \ No newline at end of file diff --git a/ubuntu Qv2ray安装和使用.md b/ubuntu Qv2ray安装和使用.md deleted file mode 100644 index e8ad4f4..0000000 --- a/ubuntu Qv2ray安装和使用.md +++ /dev/null @@ -1,44 +0,0 @@ -# ubuntu Qv2ray安装和使用 - -## 安装 - -下载 - -* v2ray core - -https://github.com/v2fly/v2ray-core/releases/download/v4.34.0/v2ray-linux-64.zip - -* 安装qv2ray - -打开terminal运行以下命令安装qv2ray - -```sh -sudo snap install qv2ray -``` - -* 配置v2ray core - -[下载](https://github.com/v2fly/v2ray-core/releases/download/v4.34.0/v2ray-linux-64.zip)并解压v2ray core 至任意位置,但不能和qv2ray执行文件在统一路径下。 - -双击打开qv2ray 依次点击 首选项==》内核设置 - -1号位置的路径是解压后的文件夹中的v2ray文件 - -2号位置的路径是解压后的文件夹所在的路径 - -## 使用 - -v2ray订阅链接在购买服务的网站上有提供,不同网站的订阅链接的具体位置不太一样,不过一般都是首页,会找到一个订阅设置相关的页面,里面会有各种订阅方式的订阅 链接 例如ssr v2ray clash之类的。找到并复制v2ray订阅链接 - -依次点击 分组 ---》订阅设置---》此分组是一个订阅---》再在订阅链接的位置粘贴v2ray 订阅链接。之后更新订阅链接即可。 - -回到主页面之后选择线路并启动即可。 - -![image-20210201134114883](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210201134114883.png) - -![image-20210904093105978](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210904093105978.png) - - - -![image-20210201134114883](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210201134114883.png) - diff --git a/ubuntu xrdp.md b/ubuntu xrdp.md deleted file mode 100644 index 616a39e..0000000 --- a/ubuntu xrdp.md +++ /dev/null @@ -1,30 +0,0 @@ -# ubuntu xrdp - -### ubuntu服务器安装 - -``` -sudo apt autoremove xrdp -sudo add-apt-repository ppa:martinx/xrdp-hwe-18.04 -sudo apt-get update -sudo apt-get install xrdp xorg -sudo adduser xrdp ssl-cert -sudo reboot -``` - -### Windows客户端 - -使用远程桌面连接.搜索栏直接搜索即可.打开之后输入Ubuntu服务器的IP地址即可 - -xrdp 延迟测试 - -网线直连平均延迟小于1ms,rdp画质分辨率都开最高极限带宽 - -| 连接方式 | 延迟 | 带宽 | 画质等级 | 实际效果 | -| ---------------------- | ---- | ------- | --------- | --------------------------- | -| 网线直连局域网 | <1ms | 100Mbps | 1920*1080 | 延迟还行,降一档分辨率会更好 | -| 同一WiFi局域网 | 10ms | 20Mbps | 1280*720 | 延迟比较大,但用着还可以 | -| 云服务器(北京的服务器) | 40ms | 5Mbps | 1024*768 | 基本无法使用,延迟太大 | -| | | | | | - -![rdp延迟](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/rdp%E5%BB%B6%E8%BF%9F.png) - diff --git a/ubuntu 下vnc的使用.md b/ubuntu 下vnc的使用.md deleted file mode 100644 index fc6e6d8..0000000 --- a/ubuntu 下vnc的使用.md +++ /dev/null @@ -1,45 +0,0 @@ -# ubuntu 下vnc的使用 - -vnc安装 - -vnc更换桌面 - -vnc启动 - -```shell -vncserver -geometry 1920x1080 -``` - - - -```sh -#!/bin/sh -unset SESSION_MANAGER -unset DBUS_SESSION_BUS_ADDRESS -startxfce4 & -[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup -[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources -xsetroot -solid grey -vncconfig -iconic & -``` - -vnc连接 - -* Mac - -启动screensharing,输入IP和端口号输入密码 - -* Windows - -启动mobaxterm 找到vnc 输入IP和端口号输入密码 - -* Ubuntu - -安装vnc viewer - -* - -* - - - diff --git a/vs code 远程开发教程.md b/vs code 远程开发教程.md deleted file mode 100644 index f05ccf3..0000000 --- a/vs code 远程开发教程.md +++ /dev/null @@ -1,59 +0,0 @@ -# vs code 远程开发教程 - -#### 远程插件配置 - -安装插件 Remote Development重启vs code - -按图示顺序点击+号 - -![截屏2021-05-11 下午6.08.21](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/%E6%88%AA%E5%B1%8F2021-05-11%20%E4%B8%8B%E5%8D%886.08.21.png) - -按照这个格式: ssh 用户名@服务器IP -A 输入 - -例子 ssh wujinhui@192.168.195.106 -A - -![image-20210511180052204](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210511180052204.png) - -选择第一个默认地方保存即可 - -![image-20210511180312646](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210511180312646.png) - -也可以点击设置按钮选择配置文件进入详细配置,这个一般不需要进行配置 - -Host 名称 - -Host name 服务器IP - -User 用户名 - -Port 端口号 默认22 - -![image-20210511181303382](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210511181303382.png) - -点击如图图标新建窗口 - -![截屏2021-05-11 下午6.29.20](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/%E6%88%AA%E5%B1%8F2021-05-11%20%E4%B8%8B%E5%8D%886.29.20.png) - - - -选择继续 - -![image-20210511180506265](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210511180506265.png) - -输入密码 - -![image-20210511180621756](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210511180621756.png) - -登录进入之后就可以本地使用vs code一样进行操作了 - -#### 代码编译 - -打开终端 查看 - -输入编译命令 - -```makefile -make px4fmu-v4_default -``` - -等待编译完成即可 \ No newline at end of file diff --git a/wsl2 卸载和转移安装路径.md b/wsl2 卸载和转移安装路径.md deleted file mode 100644 index 3462947..0000000 --- a/wsl2 卸载和转移安装路径.md +++ /dev/null @@ -1,38 +0,0 @@ -# wsl2 卸载和转移安装路径 - -## 查看已安装wsl2 - -```sh -wsl -l --all -v -``` - -## 导出wsl2系统为tar文件到D盘 - -```sh -wsl --export Ubuntu-18.04 d:\wsl-ubuntu18.04.tar -``` - -## 卸载wsl2 系统 - -```sh -wsl --unregister Ubuntu-18.04 -``` - -## 重新导入wsl2系统并安装在D盘 - -```sh -wsl --import Ubuntu-18.04 d:\wsl-ubuntu18.04 d:\wsl-ubuntu18.04.tar --version 2 -``` - -## 设置导入后的系统的默认登陆用户为安装时用户名 - -```sh -ubuntu1804.exe config --default-user yewuya -``` - -## 删除tar文件 - -```sh -del D:\wsl-ubuntu18.04.tar -``` - diff --git a/zerotier使用.md b/zerotier使用.md deleted file mode 100644 index 0938ecc..0000000 --- a/zerotier使用.md +++ /dev/null @@ -1,46 +0,0 @@ -# zerotier使用 - -## 安装 - -Windows直接下载 - -Linux执行以下命令自动安装 - -```sh -curl -s https://install.zerotier.com | sudo bash -``` - -## 加入网络 - -```sh -zerotier-cli join 9bee8941b576f25f -``` - -## 创建moon节点 - -### 服务器安装zerotier - -```sh -curl -s https://install.zerotier.com | sudo bash -``` - -### 创建并编辑moon.json - -```sh -cd /var/lib/zerotier-one -zerotier-idtool initmoon identity.public > moon.json -vi moon.json -"stableEndpoints": ["110.40.176.117/9993"] #找到并修改为以上内容 -``` - -## 加入moon节点 - -```sh -zerotier-cli orbit d7945cc8a8 d7945cc8a8 -``` - - - -### truenas scale 使用 - - 参考[zyclonite/zerotier - Docker Image | Docker Hub](https://hub.docker.com/r/zyclonite/zerotier/) \ No newline at end of file diff --git a/zerotier内部使用.md b/zerotier内部使用.md deleted file mode 100644 index bab3ab8..0000000 --- a/zerotier内部使用.md +++ /dev/null @@ -1,9 +0,0 @@ -[[# zerotier内部使用 - -官网[ZeroTier – Global Area Networking](https://www.zerotier.com/) - -账号developers@robsense.com - -密码robsense2015 - -开发服务器IP 192.168.195.106 \ No newline at end of file diff --git a/中国计量大学现代科技学院本科毕业设计(论文).md b/中国计量大学现代科技学院本科毕业设计(论文).md deleted file mode 100644 index 0cb81fe..0000000 --- a/中国计量大学现代科技学院本科毕业设计(论文).md +++ /dev/null @@ -1,221 +0,0 @@ -# 中国计量大学现代科技学院本科毕业设计(论文) - -## 基于Android的无人机自动巡检 - -**郑 重 声 明** - -​ 本人呈交的毕业设计论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。 - -## 摘要 - -​ 随着无人机技术的发展,无人机在各个领域都发挥了巨大的作用,但是无人机的保有量年年升高,无人机操作员的数量却一直增长缓慢,培养一个优秀的无人机操作员需要一两年的时间,而生产一架无人机只需要一天甚至更短的时间。无人机操作员的培养是困难的,但是如果通过软件实现无人机自动巡检,通过软件代替人操作之后,在软件开发完成之后,软件就会取代人的作用,且软件的复制是极为迅速的,可以迅速填补无人机操作员的空缺。 - -​ 本文设计了一款实现简单,同时效果不错的无人机自动化巡检软件,通过使用该软件巡检人员只需要录制一遍标准的航线,之后就可以通过装载航线实现全自动的巡检,将大大提高无人机巡检的效率,同时减小了对无人机操作员的要求,无人机操作员只需要会基本的无人机操作就可以完成巡检工作。 - - ## Abstract - -​ With the development of drone technology, drones play a huge role in various fields, but the number of drone ownership rises year after year, the number of drone operators has been growing slowly, and it takes one or two years to train a good drone operator, while it takes only one day or even less to produce a drone. The training of drone operators is difficult, but if automatic drone inspection is achieved through software, after the software replaces human operation, the software will take over the role of human after the software development is completed, and the software is extremely fast to replicate and can quickly fill the vacancies of drone operators. - -​ This paper designs a simple to implement, while the effect is good UAV automatic inspection software, by using the software inspectors only need to record the standard route once, after which they can achieve fully automatic inspection by loading the route, will greatly improve the efficiency of the UAV inspection, while reducing the requirements of the UAV operator, the UAV operator only needs to know the basic UAV operation can complete the inspection work. - - - -## 目次 - - - -### 绪论 - -#### 引言 - -无人机技术的发展,无人机的优势,无人机数量远大于飞手数量,飞手培养难度大 - -​ 无人机(Unmanned Aerial Vehicle),即无人驾驶飞行器,通常被称为无人驾驶飞机或无人驾驶飞机系统,是不需要人类飞行员操作的飞机,是一种由空气动力或电力驱动的航空器,人可以在地面通过无线电遥控或预编的程序来控制其飞行。 - -​ 无人机分为三个大类,多旋翼无人机,固定翼无人机,无人机直升机,其中无人直升机最大的优势是灵活性强,可以随时随地垂直起飞和在空中悬停,但是其结构复杂,维护困难,同时成本较高;固定翼无人机在军用和民用领域应用较广泛,其飞机尺寸一般较大,其主要优点是飞行速度快、时间长、距离远、负载量大,缺点是不能定点悬停,因此相对多旋翼无人机和无人直升机其灵活性和功能性会大大降低。多旋翼无人机结构简单,操纵灵活,成本较低,在现阶段应用十分广泛。 - -​ 随着技术的发展无人机在工业巡检发挥着越来重要的作用,现在无人机巡检已经广泛应用到各种巡检场景之中,如电网巡检,风力发电巡检,输油管道巡检,无人机在这些场景中的应用大大提高了巡检的效率,为了经济的发展做出了贡献 。 - -#### 研究目的与意义 - -​ 随着无人机在巡检方面的应用的范围和规模越来越大,产生了自动化巡检的需求,现如今无人机的保有量已经达到数十万架,而合格的无人机操作员只有几万人,并且无人机操作员的培养是缓慢的,一个合格的无人机操作员可能要一两年的时间,但是一架无人机可能一个小时就生产出来了。无人机操作员的培养是困难的,但是如果通过软件实现无人机自动巡检,通过软件代替人操作之后,在软件开发完成之后,软件就会取代人的作用,且软件的复制是极为迅速的,可以迅速填补无人机操作员的空缺。本文的目的就是设计一款无人机的自动化巡检app。 - -### 相关技术分析 - -#### Android开发 - -Android是一种基于Linux的自由及开放源代码的操作系统,Android 分为四个层,从高层到低层分别是应用程 序层、应用程序框架层、系统运行库层和 Linux 内核层。谷歌公司推出了开源的Android 系统,现在应用非常广泛,开发环境不会受到各种条条框框的限制,开发者任意修改开放的源代码来实现与开发各种实用的手机App软件,具有高级图形显示、界面友好等特点。Android 系统因其免费开源的特性受到广大个人开发者和企业的青睐,同时网上存在大量的应用实例和开发经验,因此选择android 作为开发平台,可以减小我们的开发难度。 - -#### 无人机 - - - -#### 大疆SDK - - - - - -### 系统分析与设计 - -#### 需求分析 - -​ 为了能够实现无人机的自动化巡检,需要实现能够在录制过程中实时记录无人机的飞行数据,同时保存下来,在复飞的时候能够根据这些信息进行复现录制时无人机的飞行轨迹和动作。同时为了后期数据分析,优化效果需要有日志记录的功能。故本次毕业设计的需求共有以下四种,航点数据记录,航点数据处理,飞行控制,飞行日志记录。 - -##### 航点数据记录 - -​ 要想要实现复飞中能够准确的复现录制时的飞行轨迹和无人机动作,就需要最大可能的记录飞行的数据,需要记录的数据主要包括无人机的实时GPS信息和无人机的航向,同时还需要记录无人机的云台相机的数据,包括是否拍照,是否录像。根据GPS信息可以记录无人机的飞行轨迹,根据云台相机信息可以记录无人机在什么时候怎么拍照的。通过以上信息就可以复现无人机录制时候的飞行轨迹个和飞行动作。 - -##### 航点数据处理 - -​ 由于无人机的GPS更新频率只有10HZ 这个频率的数据并不能满足飞行控制的需求,且记录的数据不够平滑,直接使用原始数据来控制无人机的飞行会导致无人机的飞行不够平稳,飞行过程中会存在抖动。同时由于无人机记录的GPS信息是大地坐标系:也叫经纬高坐标系(LLA: Longitude Latitude Altitude),是无法直接用于导航控制的,所以需要将航点文件的中的坐标部分转换成站心坐标系:也叫东北天坐标系(ENU: East North Up),故航点数据处理一共要执行三个操作,首先是将航点文件记录的GPS信息由大地坐标系转成东北天坐标系,之后对转化后的数据做一次数据平滑的操作,最后对航点数据进行插值处理,手动提高控制频率。 - -##### 飞行控制 - -​ 因为要复现录制过程中完整的飞行轨迹,所以无人机的飞行控制不能使用waypoint模式也就是航点模式,航点模式飞行虽然更加稳定,但是航点模式有个缺陷就是航点与航点之间是直线飞行,且航点之间的距离有最小限制,实测结果最小距离在3M的时候效果会比较出色,但是这样就无法实现完全复现录制时的全部飞行细节,所以无法通过waypoint模式来实现飞行控制,DJI SDK 提供了另外一种飞行方式,可以通过发送虚拟摇杆命令的形式控制无人机的飞行,这个模式可以满足需求。 - -​ 由于在巡检过程中还需要无人机执行拍照或者录视频的动作来采集数据,所以需要无人机无人机在自动复飞的时候也可以准确复现无人机的拍照动作,同时由于无人机拍照或者录视频需要在指定地点拍出来的东西才有价值,所以需要精准控制无人机的拍照位置,保证无人机自动复飞时候的拍照点和录制时候的拍照点位置误差很小,这样自动复飞任务才有价值。 - -##### 飞行日志记录 - -​ 由于无人机在飞行过程中很难由人眼或其他设备直接近距离观察无人机的飞行状况,无人机也有时会发生事故或者飞行不稳定。为了分析事故的原因,就需要把无人机在飞行过程中产生的数据记录下来,可以根据数据分析无人机发生事故的原因,同时也可以根据无人机的飞行数据对无人机的控制进行调优,优化无人机的飞行状况。 - -#### 可行性分析 - -* 航点数据记录 通过DJI SDK可以以10HZ的频率获取到无人机的飞行信息,同时也可以获取到当前无人机的云台角度和相机状态。 -* 航点数据处理 可以写一个函数,实现对数据的转换和处理 -* 飞行控制 通过DJI SDK的虚拟摇杆命令可以模拟遥控器发出的控制指令,从而达到控制无人机飞行的效果,同时可以通过DJI SDK的action实现无人机的拍照控制 -* 飞行日志记录 可以自定义日志文件并保存到本地 -* 综上所述整个系统是可以实现的。 - -#### 系统总体设计 - -​ 根据需求分析,整个系统存在两个核心,一个是录制航线,一个是航线复飞,记录的数据可以实现录制航线的复现,这就需要对数据进行选择和处理,同时要设计一个简单可靠的控制器,实现对无人机的飞行控制。这个飞行控制系统可以根据采集到的数据对实现无人机对录制航线的精准复现。创建三个activity 分别是recordactivity(录制界面),reflyactivity(复飞界面),normalactivity(普通界面),recordactivity负责实现飞行数据的记录和存储,reflyactivity负责实现飞行数据的处理和复飞任务的执行,normalactivity是传统飞行界面。 - -#### 功能模块设计 - -##### 飞行界面设计 - -​ 首先创建基础的飞行界面,这些基础的飞行界面要能显示无人机的飞行过程的中关键信息,之后在基础的飞行界面上根据不同的任务界面为不同的任务界面添加不同的组件。recordactivity在基础界面上加入设置航点文件名称、开始录制、停止录制的按键,reflyactivity在基础界面上加入选择航点文件、加载航点文件、开始执行复飞任务、停止复飞任务四个按键,normalactivity只显示基础界面。 - -##### 位置控制器 - -​ 由于无人机要精准复现无人机录制时的飞行轨迹且通过使用大疆SDK可以直接控制无人机的速度,可以直接选用简单好用的位置控制器,且不需要使用串级PID因为内环的速度控制已经由大疆SDK实现,只需要使用位置控制器PID输出期望速度直接发送给无人机就可以实现对无人机的位置控制了。 - -##### 航点数据获取和存储 - -​ 根据控制器的设置,实现位置控制器需要输入当前坐标和期望坐标,这就需要记录无人机的实时的GPS信息并保存下来,同时因为无人机要拍照和录视频所以需要记录无人机的航向、云台相机角度、是否拍照、是否录像。保存了这些参数就可以实现对无人机飞行控制和拍照控制了。这些数据可以通过DJI SDK提供的API接口获取。 - -​ 为了存储这些数据可以设计一个list 数据,将录制中的所有信息按时间顺序存入数组中,在停止录制之后将数组中的数据转成json文件存储到本地文件。 - -##### 航点数据读取和处理 - -​ 用户在点击选择文件按钮之后会弹出小窗显示文件列表,在选中文件之后小窗消失并提示选中航点文件的名称,用户点击装载之后执行对航点数据的读取和处理。 - -​ 航点数据的读取通过将文件从json格式重新恢复成自定义的list数组。这部分是由于无人机的基础数据更新频率只有10HZ,数据频率太低会导致在复飞时无人机的飞行不够平稳,根据这一情况,需要对航点做优化处理。且由于GPS 信息记录的是大地坐标系:也叫经纬高坐标系(LLA: Longitude Latitude Altitude),是无法直接用于导航控制的,所以需要将航点文件的中的坐标部分转换成站心坐标系:也叫东北天坐标系(ENU: East North Up),将GPS坐标转成东北天坐标系之后就用于导航控制了。 - -##### 飞行轨迹复现 - -​ 在用户点击开始按键之后将在装载过程中处理好的飞行数据传入复飞控制函数中,复飞函数中循环读取航点数据,并将读取到数据放入位置控制器中实现对无人机的飞行轨迹的复现,同时当读取到其他航点模式时执行拍照动作或者录视频的动作。 - -### 系统实现 - -#### 总体架构 - - - -#### 功能模块实现 - -##### 飞行界面 - -​ 无人机的飞行界面需要显示很多信息,一般包括如下几点 - -显示相机的实时画面 -显示无人机的状态(飞机遥测数据、电池电量、信号强度等)。 -允许用户查看和改变产品设置 -无人机具有的基本功能,如自动起飞、降落、回家。 - -​ 制作一个无人机的飞行应用程序需要先提供这些基础的核心功能,然后才能在这个基础上添加独特的功能,DJI UX SDK提供了具有这些核心功能的UI元素,因此可以用来加快开发时间。通过使用默认的UX SDK 不需要添加其他的代码就可以创建一个基础的飞行界面,效果如下图所示 - -![defaultScreen.png](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/6416702b-1997-4565-9153-6d7c419fc7e4.png) - -​ 通过使用大疆的提供的DJI UX SDK来实现各个界面的基础飞行布局之后,再根据不同的界面需求添加不同的按键,录制节目添加设置文件名称,开始录制,停止录制三个按键,复飞节目添加选择航点文件,装载航线,开始,停止四个按键。普通模式只使用基础的飞行布局。 - -##### 位置控制器 - -​ 使用pid 控制器实现对无人机的位置控制,通过读取无人机的当前位置以及期望位置,将两个值做差,得出的结果放入到pid 控制器中,得出的结果就是期望速度,通过DJI SDK 发送给无人机即可实现对无人机的位置控制。 - -##### 航点数据获取和存储 - -​ 在录制界面中添加三个按键,分别是设置文件名称,开始录制,停止录制。用户先点击设置文件名称,如果创建的文件名称和之前的文件名重复则创建失败,提醒用户重新创建,当用户点击开始录制时需要无人机处于飞行状态否则无法开始,提醒用户起飞无人机后重新开始。用户点击停止录制时,会根据用户设置的文件名自动创建相应的文件,并将航点数据存储到本地。如下图所示。 - -![image-20210519104158537](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210519104158537.png) - -​ 创建自定义航点数据类mylatlng用存储航点数据,包含的数据类型有Lat、lng、alt、uavyaw、WaypointActionType,其中WaypointActionType有四个种类,分别是STAY、STOP_RECORD、START_TAKE_PHOTO、START_RECORD。使用大疆SDK大疆SDK的LocationCoordinate3D获取当前无人机的经度纬度高度,创建相机状态的监听,获取相机的状态,当相机不在拍照时设置WaypointActionType为STAY,拍照时设置为START_TAKE_PHOTO,开始录视频时为START_RECORD,在录制视频期间时保持WaypointActionType为STAY,当视频录制结束时设置WaypointActionType为STOP_RECORD。记录数据时当相机没有活动时数据保持最大频率的记录,也就是10HZ,当相机发生活动时强制记录一条航点信息。点击停止录制时会自动把数据转成json格式并写入本地文件中。 - -##### 航点数据读取和处理 - -​ 通过选择制定的文件,将指定文件路径的航点文件转成json文件,并将json文件转成自定义的list数组文件。这样就完成了航点数据的读取。读取完成的数据还需要进一步处理才能满足飞行控制的要求,首先要对航点数据进行数据平滑的处理,这里使用的是加权滑动平均法。简单来说,滑动平均法把前后时刻的一共2n+1个观测值做平均,得到当前时刻的滤波结果。滑动平均法还有一个升级版本,也就是我们要用的加权滑动平均法。实际场景中,每个观测值的重要程度不同,忽略每个观测值的置信度直接平均不能得到精确的结果,所以就需要给观测值加权。加权滑动平均法的公式如下: - -![[公式]](https://www.zhihu.com/equation?tex=p_%7Bt%7D%3D%5Cfrac%7B%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%7B%28x_%7Bt-i%7D%2Aw_%7Bt-i%7D%2Bx_%7Bt%2Bi%7D%2Aw_%7Bt%2Bi%7D%29%2Bx_%7Bt%7D%2Aw_%7Bt%7D%7D%7D%7B2n%2B1%7D) - -![[公式]](https://www.zhihu.com/equation?tex=w_%7Bt%7D) 为 ![[公式]](https://www.zhihu.com/equation?tex=t) 时刻的权重。(6)式表示的是把每个观测值乘以权重后再平均。这种方法适用于观测值本身带有置信度的情况。使用加权滑动平均法,将每个航点的前后三个航点代入到公式中得到处理之后的数据。在使用加权滑动平均法之后还需要使用差值的方法对处理后的航点文件的每个航点之间插入中位数,原因是原始数据只有10HZ的频率,10HZ的控制频率对无人机来说有点太低了,所以需要插入中位数来实现航点数据翻倍的效果,使用加倍后的航点数据可以使无人机的控制频率达到20HZ。处理后的航点数据在飞行之后的 - -##### 飞行轨迹复现 - - - - - -### 系统测试 - -#### 测试的重要性及目的 - -​ 软件测试是程序的一种执行过程,目的是尽可能发现并改正被测试软件中的错误,提高软件的可靠性。它是软件生命周期中一项非常重要且非常复杂的工作,对软件可靠性保证具有极其重要的意义。通过测试也可以发现软件的不如,可以根据测试结果进行优化。同时无人机软件涉及到无人机的飞行控制,若软件在无人机的飞行期间发生故障,会造成无人机的失控,无人机的失控可能会对周围环境和人员造成巨大伤害。故需要完成软件测试才算是完成软件的开发任务。 - -#### 测试的方法及流程 - -​ 由于本软件的主要功能是录制无人机航线并通过自动复飞复现录制的航线,涉及到无人机的飞行,故测试要首先在大疆提供的DJI assistant2软件中的无人机模拟器中进行,在模拟器中测试完成之后在进行室外的真机测试。 - -​ 测试时首先在验证软件的各个按键是否有效,以及软件是否存在闪退现象,之后使用软件测试无人机在模拟器中的飞行情况,主要包括使用本软件操控无人机时是否正常,在确认无人机在模拟器中正常飞行之后,进入录制模式,录制航线,航线要求足够复杂,要涉及到实际飞行中的各个情况,包括直线,曲线,爬升,降低,转向,以及这些动作的组合,同时要设计不同的拍照点,不同的拍照形式,无人机悬停时拍照,无人机飞行中拍照,同一位置拍多张照片。在录制完测试航线之后,进入复飞模式,加载测试航线,执行复飞任务,观察两次飞行的轨迹是否重合,观察是否在相同的位置拍照。同时查看软件在复飞过程中是否存在bug。在复飞任务正常执行完成之后,读取log日志,通过查看日志判断无人机飞行数据是否正常。 - -​ 在模拟器测试通过之后,需要前往室外测试点进行测试,首先在一片空旷的地方进行测试,在空旷的地方尽可能的设计复杂的航线进行测试,在复飞过程中暂时只能根据肉眼观察复飞效果,复飞结束之后根据日志信息和两次飞行的照片对比分析复飞过程中是否存在问题。空旷场地测试完成之后即可进行无人机真正的作业环境进行测试,根据作业环境的工作流程录制相应的航线并复飞,根据两次飞行过程中采集到信息来分析软件功能是否正常。 - -### 总结与展望 - -#### 本文的主要工作 - -本文主要通过DJI 提供的Mobile SDK 和UX SDK在android平台上开发了一款用于无人机自动巡检的app。对无人机的组成和应用控制无人机飞行原理以及移动端应用开发过程进行了深入的研究,所做的主要工作如下: - -* 无人机的飞行控制 - - 根据DJI SDK 可以直接对无人机发送速度控制指令的方法设计了一个简单的位置控制器,实现了对无人机位置的控制,并通过这个位置控制器实现了对无人机飞行轨迹的控制,同时使用DJI SDK action 的方法实现了对无人机的云台相机的控制,并将两种控制方式结合起来实现了对录制的飞行轨迹的复现。 - -* 无人机的数据采集和处理 - - 根据设计的控制的需要对无人机的飞行数据进行采集和存储,并且对数据做了一定处理,首先将数据从大地坐标系转换为东北天坐标系,之后又对数据进行了平滑处理,主要用到的方法是加权滑动平均法,之后对数据做了插值处理,通过插值的方法间接提高了对无人机的控制频率,通过对数据的一系列处理,使得无人机的飞行变得更加平稳。 - -* 无人机自主飞行测试 - - 将在开发工具中编写好的应用部署安装到 Android 系统的智能手机上,利用大疆提供的无人机模拟飞行 PC 软件 DJI assistant2,连接无人机和电脑,手机和遥控器,在应用中录制航线并复飞录制的航线,同时也在户外真实环境下进行了类似的测试。 - -### 不足与展望 - -​ 本研究内容利用大疆的无人机结合其提供的移动开发平台 Mobile SDK 和 Android应用的开发知识开发出一款可以通过录制标准航线并加载航线实现自动化巡检的应用。但鉴于本人能力和水平的限度、时间紧迫、资料有限,取得阶段性的成果的同时,软件还有很多技术细节和想法有待加强和完善,还有许多待完善的功能,如设置云端登录账号,航点文件存储到云端便于随时读取。对无人机飞行日志的自动化分析和上传。同时本应用还可以开发IOS版本以覆盖到更多的使用人群。 - -## 参考文献 - - - - - -## 作者简历 - -## 学位论文数据集 - - - - - - - diff --git a/书单.md b/书单.md deleted file mode 100644 index c82cab6..0000000 --- a/书单.md +++ /dev/null @@ -1,18 +0,0 @@ -# 书单 - -| name | type | -| -------------------------- | ---- | -| 黑客与画家 | | -| 文明的冲突和世界秩序的构建 | | -| 穷查理宝典 | | -| 禅与摩托车修理的艺术 | | -| 西西弗神话 | | -| 国富论 | | -| | | -| | | -| | | - - - - - diff --git a/买衣服尺码.md b/买衣服尺码.md deleted file mode 100644 index 6d298be..0000000 --- a/买衣服尺码.md +++ /dev/null @@ -1,32 +0,0 @@ -# 买衣服尺码 - -胸围 - -肩宽 - -臀围 - -| 名称 | 尺寸(厘米) | -| ---------------- | :----------: | -| 肩宽 | 48 | -| 胸围 | 90 | -| 臂围 | 28 | -| 臀围 | 97 | -| 衬衫袖长 | 57 | -| 短袖袖长 | | -| 七分袖袖长 | | -| 长袖袖长 | | -| 夹克短袖长袖衣长 | | -| 西装正装衣长 | | -| 中长款外套衣长 | | -| 长款外套衣长 | 100 | -| 高腰腰围 | | -| 中腰腰围 | 80 | -| 低腰腰围 | | -| 大腿围 | 49 | -| 小腿围 | 33 | -| 脚围 | | -| 九分裤裤长 | | -| 长裤裤长 | 86 | -| 脚长 | 260mm | -| 脚型 | 正常足 | \ No newline at end of file diff --git a/云计算学习知识.md b/云计算学习知识.md deleted file mode 100644 index 2b1b38f..0000000 --- a/云计算学习知识.md +++ /dev/null @@ -1,5 +0,0 @@ -# 云计算学习知识 - -C/C++/Java/C#/Python/Go/PHP等编程语言 - -虚拟化、计算、网络、存储、安全、监控运维、操作系统、数据库、系统自动化、分布式架构、开源等; \ No newline at end of file diff --git a/交接内容.md b/交接内容.md deleted file mode 100644 index 3f6a195..0000000 --- a/交接内容.md +++ /dev/null @@ -1,139 +0,0 @@ -# 交接内容 -## DJI MSDK 复飞 -### 开发环境 -* Android studio最新版 -* Java 1.8 -* DJI SDK 4.14 DJI UXSDK 4.14 -* 开发平台Windows/Mac OS -### 功能要求 -* 可以记录保存航线到本地 -* 加载录制的航线可以自动复线记录航线的内容 -* 不同的无人机可以使用同一航点文件 -* 支持RTK -* 支持各个大疆机型 -### 实现方法 -#### 录制复飞流程图 -![image-20210608153932140](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210608153932140.png) - -#### 任务控制 - -具体代码参考reflywidgetactivity.java的missionctrl函数 - -![image-20210608154218300](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210608154218300.png) - -#### 数据存储 - -在Mylatlng文件中自定义list 数组,用于存储航点信息。需要存储的数据有无人机的GPS信息(lat,lng,alt),偏航角度uavYaw,航点模式waypointactiontype,相机焦距camera_length,云台角度pitch。在Recordwidgetactivity文件中,有个admission 函数,用于往空的数组中添加航点数据,开始录制时保持最大频率(10hz)记录数据,持续调用admission函数。当停止录制时,将list数组转成json格式并写入到txt文件,文件存储路径由savePath参数决定。当读取航点时,只需要把过程逆向即可,读取txt文件内容,转成list数组保存。 - -#### 数据处理 - -* 数据平滑:使用滑动平均法进行优化航点使之更加平滑 -* 航点数据插值:航点数据插值间接提高控制指令的发送频率 - -#### 参数配置 - -具体代码在reflywidgetactivity.java的btn_start_drone.setOnClickListener这个按键监听事件中 - -* 打开虚拟摇杆 -* 设置无人机坐标系为大地坐标系 -* 设置虚拟摇杆rollpitch控制为速度 -* 设置yaw控制为角度 -* 设置垂直方向(throttle)为速度 -#### 坐标系转换 - -由于GPS坐标系无法进行导航,所以需要将GPS坐标系转成北东天坐标系。具体转换方法看GpstoEnu.java文件 - -### 后续改进 -* 添加了变焦功能但是还未验证 -* 大型飞机复飞时不太稳定,如M300,需要进行优化,优化方向有两个,使用waypoint V2进行M300的任务控制,和优化控制器的设计,对PID进行调参,或者使用更有效的控制器。 -## DJI MSDK 自主降落 -### 功能要求 -* 使用机载相机检测停机坪,检测到后自动控制无人机降落到停机坪中。 -### 实现方法 -* 将获取到的图传数据流转码成YUV数据供aruco模块使用,视频流转码参考代码https://github.com/DJI-Mobile-SDK-Tutorials/Android-VideoStreamDecodingSample -* 使用opencv的aruco作为目标检测的方法 -* 将aruco检测计算的结果放入控制器计算得出结果,发送给无人机 -* 高度还剩一米时调用DJI SDK一键降落的API进行降落 -* 对相机进行标定,将标定得到的相机内参传写入应用中。具体表达方法看标定方法那个文档。 -### 实现难点 -* 问题:相机自动对焦会改变相机内参,导致标定得出的参数无法长时间使用。 -* 解决方案:设置自动对焦距离为一个固定的值。 -* 问题:使用打印机打印出来的标定板和检测板都不能满足标定和检测要求,原因是黑色不够黑。 -* 解决方案:使用KT板打印制作标定板和检测板。 -### 后续改进 -* 已经实现了降落的功能,但是还只是demo阶段,只能实施降落部分,没有飞行界面,没有任务管理。这部分的工作可以参考DJI MSDK复飞的代码来实现。 -* 紧急停机按键存在问题,在使用紧急停机按键时可以夺回遥控器对无人机的控制,但是app会闪退,由于我手中没有飞机,无法协助解决,杭电同学也不清楚如解决。 -## phenix mini 无人车编队 -### 功能要求 -* 使用phenix mini飞控控制麦克纳姆轮小车在lighthouse定位系统下实现可视化scratch编队编程。 -* phenix mini可以接收来自定位器的定位数据和控制指令 -* phenix mini可以对接收到的命令做出响应 -* phenix mini可以控制麦克纳姆轮小车移动 -* 定位器能够通过通过接收来自PC的控制信号转发给phenix mini 飞控 -### 实现难点 -* 按照lighthouse文档配置飞控相关参数,在无人机模式下phenix mini和pixhawk4都可以实现对定位数据的接收解码,在无人车模式下两者都不可以 -* phenix mini 不支持无人车模式,需要移植最新版的飞控到phenix mini,相关工作已交给陈鹏华 -* 在使用pixhawk4 1.12版本固件的时候,修改了编译配置文件和一些启动脚本,重新编译PX4 1.12版本的固件,使之在无人车模式下QGC能够显示LPE相关参数,参数按照lighthouse文档进行设置,进行测试时报错:lpe:timeout.具体原因未知。 -* 根据官方文档在接入外部定位数据只提供给了多旋翼和垂直起降固定翼。 -https://docs.px4.io/master/en/ros/external_position_estimation.html -https://docs.px4.io/master/en/advanced/switching_state_estimators.html - -## lighthouse 室内定位系统使用和配置调参 -* 定位器使用,电脑连接Wi-Fi:RSTSWARM2 密码:RST12345678 -* 设置电脑IP为192.168.1.234。 -* 子网掩码为255.255.0.0 -* 网关为192.168.1.1 -* 启动scratch脚本和server IP即可实现对无人机的控制。 - - -## phenix mini 远程开发服务器 -### vnc -* 安装VNC -sudo apt install tigervncserver -* 配置VNC - -启动vnc - -```sh -vncserver -``` - -第一次启动按照提示输入密码,这个密码是用于登陆VNC的密码 - -后续想修改VNC密码可以使用如下命令实现 - -```sh -vncpasswd -``` - -修改xstartup文件内容 - -```sh -vi /home/用户名/.vnc/sxtartup -``` - -将内容替换为如下内容 - -```sh -#!/bin/sh -unset SESSION_MANAGER -unset DBUS_SESSION_BUS_ADDRESS -startxfce4 & -[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup -[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources -xsetroot -solid grey -vncconfig -iconic -``` -重新启动VNC就可以使用VNC访问远程访问图形化界面了。 - -### zerotier -* 账号:developers@robsense.com -* 密码:robsense2015 -* robsense是用于phenix远程开发的虚拟局域网。 -### gitlab -* 账号:root -* 密码:robsense2015 -* 访问地址(处于zerotier虚拟局域网中):192.168.195.106 - - - diff --git a/公路车选择.md b/公路车选择.md deleted file mode 100644 index 28931c2..0000000 --- a/公路车选择.md +++ /dev/null @@ -1,14 +0,0 @@ -# 公路车选择 - -| 名称 | 价格 | 购买链接 | -| ----------- | ---- | ------------------------------------------------------------ | -| 斯特拉king | | | -| 斯特拉95 | | | -| 迪卡侬RC500 | | [迪卡侬铝架公路弯把平把竞速赛车禧玛诺RC500碟刹公路自行车OVBRC-tmall.com天猫](https://detail.tmall.com/item.htm?spm=a230r.1.14.16.56ad5bdbsVFJQg&id=586248086063&ns=1&abbucket=18) | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | - diff --git a/出题.md b/出题.md deleted file mode 100644 index 104af55..0000000 --- a/出题.md +++ /dev/null @@ -1,477 +0,0 @@ -# 面试题 - -## 1 - -### 题目 - -H2O生成 - -现在有两种线程,氧 oxygen 和氢 hydrogen,你的目标是组织这两种线程来产生水分子。 - -存在一个屏障(barrier)使得每个线程必须等候直到一个完整水分子能够被产生出来。 - -氢和氧线程会被分别给予 releaseHydrogen 和 releaseOxygen 方法来允许它们突破屏障。 - -这些线程应该三三成组突破屏障并能立即组合产生一个水分子。 - -你必须保证产生一个水分子所需线程的结合必须发生在下一个水分子产生之前。 - -换句话说: - -如果一个氧线程到达屏障时没有氢线程到达,它必须等候直到两个氢线程到达。 -如果一个氢线程到达屏障时没有其它线程到达,它必须等候直到一个氧线程和另一个氢线程到达。 -书写满足这些限制条件的氢、氧线程同步代码。 - -### 答案 - -```c++ -class H2O { -public: - int cntO;// 氧气的计数 - int cntH;// 氢气的计数 - mutex m; - condition_variable cv; - - H2O() { - cntO = 0; - cntH = 0; - } - - void hydrogen(function releaseHydrogen) { - unique_lock l(m); - cv.wait(l, [this]() - { - // 氢气最大是2 - return this->cntH < 2; - }); - // releaseHydrogen() outputs "H". Do not change or remove this line. - releaseHydrogen(); - ++cntH; - // 已经构成 H2O ,重置计数器 - if (cntH + cntO == 3) - { - cntH = 0; - cntO = 0; - } - cv.notify_one(); - } - - void oxygen(function releaseOxygen) { - unique_lock l(m); - cv.wait(l, [this]() - { - // 氧气最大是1 - return this->cntO < 1; - }); - // releaseOxygen() outputs "O". Do not change or remove this line. - releaseOxygen(); - ++cntO; - // 已经构成 H2O ,重置计数器 - if (cntH + cntO == 3) - { - cntH = 0; - cntO = 0; - } - cv.notify_one(); - } -}; -``` - -## 2 - -### 题目 - -用图画出无人机姿态控制的串级反馈控制系统 - -### 答案 - -![image-20210513201926139](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210513201926139.png) - -进程间通信消息队列 - - - -## 3 - -### 题目 - -请你说一下多线程,线程同步的几种方式 - -### 答案 - -进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发; - -线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部的并发;线程是操作系统可识别的最小执行和调度单位。每个线程都独自占用一个虚拟处理器:独自的寄存器组,指令计数器和处理器状态。每个线程完成不同的任务,但是共享同一地址空间(也就是同样的动态内存,映射文件,目标代码等等),打开的文件队列和其他内核资源。 - -线程间通信的方式: - -1、临界区: - -通过多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问; - -2、互斥量 Synchronized/Lock: - -采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问 - -3、信号量 Semphare: - -为控制具有有限数量的用户资源而设计的,它允许多个线程在同一时刻去访问同一个资源,但一般需要限制同一时刻访问此资源的最大线程数目。 - -4、事件(信号),Wait/Notify: - -通过通知操作的方式来保持多线程同步,还可以方便的实现多线程优先级的比较操作 - -## 4 - -### 题目 - -编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefg” 函数头是这样的: -//pStr是指向以'\0'结尾的字符串的指针 -//steps是要求移动的n - -```c++ -void LoopMove ( char * pStr, int steps ) -{ - //请填充... -} -``` - -### 答案 - -```c++ -void LoopMove ( char *pStr, int steps ) -{ - int n = strlen( pStr ) - steps; - char tmp[MAX_LEN]; - strcpy ( tmp, pStr + n ); - strcpy ( tmp + steps, pStr); - *( tmp + strlen ( pStr ) ) = '\0'; - strcpy( pStr, tmp ); -} -``` - -## 5 - -### 题目 - -把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 - -输入描述 - -第一行是测试数据 - - 输出描述 - -对输入的每组数据M和N,用一行输出相应的K。 - - 输入例子 - -``` -1 -7 3 -``` - - 输出例子 - -``` -8 -``` - -### 答案 - -```c -#include - -int fun(int m,int n) //m个苹果放在n个盘子***有几种方法 -{ - if(m==0||n==1) //因为我们总是让m>=n来求解的,所以m-n>=0,所以让m=0时候结束,如果改为m=1, - return 1; //则可能出现m-n=0的情况从而不能得到正确解 - if(n>m) - return fun(m,m); - else - return fun(m,n-1)+fun(m-n,n); -} - -int main() -{ - int T,m,n; - scanf("%d",&T); - while(T--) - { - scanf("%d%d",&m,&n); - printf("%d\n",fun(m,n)); - } -} -``` - -## 6 - -### 题目 - -给定一个经过编码的字符串,返回它解码后的字符串。 - -编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 - -你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 - -此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。 - -示例 1: - -输入: - -``` -s = "3[a]2[bc]" -``` - -输出: - -``` -aaabcbc -``` - -输入: - -``` -s = "3[a2[c]]" -``` -输出: - -``` -accaccacc -``` - -初始代码 - -```c++ -class Solution { -public: - string decodeString(string s) { - - } -}; -``` - -### 答案 - -```c++ -class Solution { -public: - string getDigits(string &s, size_t &ptr) { - string ret = ""; - while (isdigit(s[ptr])) { - ret.push_back(s[ptr++]); - } - return ret; - } - - string getString(vector &v) { - string ret; - for (const auto &s: v) { - ret += s; - } - return ret; - } - - string decodeString(string s) { - vector stk; - size_t ptr = 0; - - while (ptr < s.size()) { - char cur = s[ptr]; - if (isdigit(cur)) { - // 获取一个数字并进栈 - string digits = getDigits(s, ptr); - stk.push_back(digits); - } else if (isalpha(cur) || cur == '[') { - // 获取一个字母并进栈 - stk.push_back(string(1, s[ptr++])); - } else { - ++ptr; - vector sub; - while (stk.back() != "[") { - sub.push_back(stk.back()); - stk.pop_back(); - } - reverse(sub.begin(), sub.end()); - // 左括号出栈 - stk.pop_back(); - // 此时栈顶为当前 sub 对应的字符串应该出现的次数 - int repTime = stoi(stk.back()); - stk.pop_back(); - string t, o = getString(sub); - // 构造字符串 - while (repTime--) t += o; - // 将构造好的字符串入栈 - stk.push_back(t); - } - } - - return getString(stk); - } -}; -``` - -## 7 - -### 题目 - -输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 - -输入: - -``` -matrix = [[1,2,3],[4,5,6],[7,8,9]] -``` - - -输出: - -``` -[1,2,3,6,9,8,7,4,5] -``` - -输入: - -``` -matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] -``` - -输出: - -``` -[1,2,3,4,8,12,11,10,9,5,6,7] -``` - -初始代码 - -```c++ -class Solution { -public: - vector spiralOrder(vector>& matrix) { - - } -}; -``` - -### 答案 - -```c++ -class Solution { -private: - static constexpr int directions[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; -public: - vector spiralOrder(vector>& matrix) { - if (matrix.size() == 0 || matrix[0].size() == 0) { - return {}; - } - - int rows = matrix.size(), columns = matrix[0].size(); - vector> visited(rows, vector(columns)); - int total = rows * columns; - vector order(total); - - int row = 0, column = 0; - int directionIndex = 0; - for (int i = 0; i < total; i++) { - order[i] = matrix[row][column]; - visited[row][column] = true; - int nextRow = row + directions[directionIndex][0], nextColumn = column + directions[directionIndex][1]; - if (nextRow < 0 || nextRow >= rows || nextColumn < 0 || nextColumn >= columns || visited[nextRow][nextColumn]) { - directionIndex = (directionIndex + 1) % 4; - } - row += directions[directionIndex][0]; - column += directions[directionIndex][1]; - } - return order; - } -}; -``` - -## 8 - -### 题目 - -static的用法(定义和用途) - -### 答案 - -1)用static修饰局部变量:使其变为静态存储方式(静态数据区),那么这个局部变量在函数执行完成之后不会被释放,而是继续保留在内存中。 - -2)用static修饰全局变量:使其只在本文件内部有效,而其他文件不可连接或引用该变量。 - -3)用static修饰函数:对函数的连接方式产生影响,使得函数只在本文件内部有效,对其他文件是不可见的(这一点在大工程中很重要很重要,避免很多麻烦,很常见)。这样的函数又叫作静态函数。使用静态函数的好处是,不用担心与其他文件的同名函数产生干扰,另外也是对函数本身的一种保护机制。 - -## 9 - -### 题目 - -const的用法(定义和用途) - -### 答案 - -const主要用来修饰变量、函数形参和类成员函数: - -1)用const修饰常量:定义时就初始化,以后不能更改。 - -2)用const修饰形参:func(const int a){};该形参在函数里不能改变。 - -3)用const修饰类成员函数:该函数对成员变量只能进行只读操作,就是const类成员函数是不能修改成员变量的数值的。 - -被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。 - -## 10 - -### 题目 - -一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 - -机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 - -问总共有多少条不同的路径? - -![img](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/robot_maze.png) - -``` -输入:m = 3, n = 7 -输出:28 -``` - -初始代码 - -```c++ -class Solution { -public: - int uniquePaths(int m, int n) { - - } -}; -``` - -### 答案 - -```c++ -class Solution { -public: - int uniquePaths(int m, int n) { - vector> f(m, vector(n)); - for (int i = 0; i < m; ++i) { - f[i][0] = 1; - } - for (int j = 0; j < n; ++j) { - f[0][j] = 1; - } - for (int i = 1; i < m; ++i) { - for (int j = 1; j < n; ++j) { - f[i][j] = f[i - 1][j] + f[i][j - 1]; - } - } - return f[m - 1][n - 1]; - } -}; -``` - - - - - diff --git a/大疆自主降落.md b/大疆自主降落.md deleted file mode 100644 index 22ee072..0000000 --- a/大疆自主降落.md +++ /dev/null @@ -1,23 +0,0 @@ -# 大疆自主降落 - -### 之前进展 - -* Aruco 已经可以正常检测目标,根据粗略测试结果误差在5cm左右 -* 视频流解码已完成 - -### 未来计划 - -* 预计本周末可以进行真机测试 -* 根据测试结果进行改进,优化延迟和检测精度 -* 目前目标检测都是在A4纸大小的面积上进行,后续可以定制一块符合停机坪大小的降落板,更大的降落板会提高目标检测的准确性和可检测的最大距离 - - - -## 2021-7-19 - -* 使用lens类配置相机参数 -* M300使用变焦镜头进行降落目标物识别 -* - - - diff --git a/大疆自主降落对焦问题.md b/大疆自主降落对焦问题.md deleted file mode 100644 index 206d46c..0000000 --- a/大疆自主降落对焦问题.md +++ /dev/null @@ -1,11 +0,0 @@ -# 大疆自主降落对焦问题 - - - -* 设置对焦点 - -![image-20210510110942508](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210510110942508.png) - -* 设置对焦距离 - -![image-20210510111255744](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210510111255744.png) \ No newline at end of file diff --git a/大疆自主降落无人机会议纪要.md b/大疆自主降落无人机会议纪要.md deleted file mode 100644 index 3990330..0000000 --- a/大疆自主降落无人机会议纪要.md +++ /dev/null @@ -1,144 +0,0 @@ -# 大疆自主降落无人机会议纪要 - -#### 进展 - -* 完成视频流数据的解析和降落点的检测,但是还存在一些问题 -* 完成了控制器的设计,方同学需重新审核一下即可进行模拟器测试 - -#### 未解决问题 - -* 相机自动对焦之后会导致参数变化,导致需要重新标定参数,但是自主降落只是功能 - - - -```java - // 配置速度控制指令发送 - private static BaseProduct product; - private float virtualroll = 0f; - private float virtualpitch = 0f; - private float virtualyaw = 0f; - private float virtualthrottle = 0f; - private Timer sendVirtualStickDataTimer; - private SendVirtualStickDataTask sendVirtualStickDataTask; - - //设置虚拟摇杆 - FlightController flightController = getFlightController(); - - public static synchronized BaseProduct getProductInstance() { - product = DJISDKManager.getInstance().getProduct(); - return product; - } - - public static boolean isAircraftConnected() { - return getProductInstance() != null && getProductInstance() instanceof Aircraft; - } - - public static synchronized Aircraft getAircraftInstance() { - if (!isAircraftConnected()) { - return null; - } - return (Aircraft) getProductInstance(); - } - - public static FlightController getFlightController() { - Aircraft aircraft = getAircraftInstance(); - if (aircraft != null) { - return aircraft.getFlightController(); - } - return null; - } - - public static boolean isProductModuleAvailable() { - return (null != getProductInstance()); - } - - public static boolean isAircraft() { - return getProductInstance() instanceof Aircraft; - } - - public static boolean isFlightControllerAvailable() { - return isProductModuleAvailable() && isAircraft() && (null != getAircraftInstance() - .getFlightController()); - } - private class SendVirtualStickDataTask extends TimerTask { - - @Override - public void run() { - if (isFlightControllerAvailable()) { - getAircraftInstance() - .getFlightController() - .sendVirtualStickFlightControlData(new FlightControlData(virtualpitch, - virtualroll, - virtualyaw, - virtualthrottle), - new CommonCallbacks.CompletionCallback() { - @Override - public void onResult(DJIError djiError) { - - } - }); - } - } - } -// 完成配置速度控制指令发送 - - -//开始发送速度控制指令 - private void start_auto_landing(){ - if(flightController == null){ - if(flightController == null)Toast.makeText(MainActivity.this,"无人机未连接请连接无人机后重新打开app",Toast.LENGTH_SHORT).show(); - }else{ - long starttime = System.currentTimeMillis(); - Toast.makeText(this,"开始任务",Toast.LENGTH_SHORT).show(); - flightController.setVirtualStickModeEnabled(true, new CommonCallbacks.CompletionCallback() { - @Override - public void onResult(DJIError djiError) { - if (djiError != null) { - Toast.makeText(MainActivity.this,"err->"+djiError.toString(),Toast.LENGTH_SHORT).show(); - } - } - }); - flightController.setFlightOrientationMode(FlightOrientationMode.AIRCRAFT_HEADING, new CommonCallbacks.CompletionCallback() { - @Override - public void onResult(DJIError djiError) { - Toast.makeText(MainActivity.this,"err->"+djiError.toString(),Toast.LENGTH_SHORT).show(); - - } - }); - flightController.setVirtualStickAdvancedModeEnabled(true);//打开虚拟摇杆高级模式 - flightController.setRollPitchControlMode(RollPitchControlMode.VELOCITY);//设置rollpitch控制为速度 - flightController.setYawControlMode(YawControlMode.ANGLE);//设置yaw控制为角度 - flightController.setVerticalControlMode(VerticalControlMode.VELOCITY);//设置垂直方向速度为速度 - flightController.setRollPitchCoordinateSystem(FlightCoordinateSystem.GROUND);//设置坐标系为大地坐标系 - long endTime = System.currentTimeMillis(); - if (null == sendVirtualStickDataTimer) { - sendVirtualStickDataTask = new SendVirtualStickDataTask(); - sendVirtualStickDataTimer = new Timer(); - sendVirtualStickDataTimer.schedule(sendVirtualStickDataTask, 0, 50); - } - } - } -//结束发送速度控制指令 - private void stop_auto_landing (){ - if(flightController != null){ - getAircraftInstance().getFlightController().setVirtualStickModeEnabled(false, new CommonCallbacks.CompletionCallback() { - @Override - public void onResult(DJIError djiError) { - if (djiError != null) { - Toast.makeText(MainActivity.this,"err->"+djiError.toString(),Toast.LENGTH_SHORT).show(); - } - } - }); - } - Toast.makeText(MainActivity.this,"复飞停止",Toast.LENGTH_SHORT).show(); -// 虚拟摇杆停止 - if(sendVirtualStickDataTimer != null){ - sendVirtualStickDataTimer.cancel(); - sendVirtualStickDataTimer = null; - sendVirtualStickDataTask = null; - } - } -``` - - - diff --git a/宣讲会演讲稿.md b/宣讲会演讲稿.md deleted file mode 100644 index 80dabdd..0000000 --- a/宣讲会演讲稿.md +++ /dev/null @@ -1,82 +0,0 @@ -# 宣讲会演讲稿 - -## 若联科技简介 - - - -​ [^1]在物联网和人工智能浪潮中 - -[^1]:yewuya - -*无人机 - -​ 除了商业版产品,我们通过发布个人版产品开源自身领先技术,建设全球开发者社区,优选技术IP和行业应用,促进技术与市场高效对接,实现开放创新 。 - -​ [^2]在物联网和人工 - -[^2]: yewuy11a - -若联科技同时还取得了以下成就: - -•浙江省5G产业联盟成员单位 - -•联合中国移动、华为共同成立5G无人机创新实验室 - -•已完成数个5G网络下的无人机编队项目 - -•主打2B市场客户和无人机移动边缘计算核心技术 - -•地方和全国性媒体重点报道 - -公司核心团队介绍 - -首先是我们公司的金总,同时是公司的CEO和CTO他从事无人机行业多年,在行业内积累了 大量资源和经验。 - -还有就是我们的两位首席科学家,分别是IOT首席科学家袁袁博士和AI首席科学家余教授,其中袁博士在加入若联之前是华为的5G研究员,曾参与过5G标准的制定,加入若联之后在通信技术这方面继续深耕,产出了很多成果,其中包括多项无人机编队通信技术专利. - -核心技术 - - - - - -核心产品 - - - -. - -## 5G时代的特征 - -下面我们开始进入正题开始讲解技术内容,在讲5G之前大家先看一个视频,看视频,其实我们的通信技术也是这样的,为了应对通信需求的不断提高,我们要不断的制定新的标准和技术来实现更高的通信效率 - -我们再看下一个视频,这个视频呢主要讲的是在5G网络下无人机和机器狗协同巡检.在5G网络的支持下,可以实现各种硬件的协同工作,比如这个视频里,无人机和在工厂上空进行巡检,发现异常后数据就发送给机器狗,机器狗就可以根据收到的信息进入工厂内部查找具体原因. - -下面是5G网络对比其他通信技术的优势 - -5G应用场景,照着念即可 - - - - - - - - - - - -## 无人机编队飞行要求及展示 - - - -## 无人机编队技术关键点 - - - -## 无人机编队技术行业应用 - - - - - diff --git a/室内变电站无人机巡检.md b/室内变电站无人机巡检.md deleted file mode 100644 index 514919f..0000000 --- a/室内变电站无人机巡检.md +++ /dev/null @@ -1,28 +0,0 @@ -# 室内变电站无人机巡检 - -## 室内环境 - -### 大致情况 - -![1](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/1.png) - -![2](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/2.jpg) - - - -![3](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/3.jpg) - -### 参数要求 - -无人机在变电站中 - - - - - - - - - - - diff --git a/峰飞航空猎头沟通结果.md b/峰飞航空猎头沟通结果.md deleted file mode 100644 index 4129a7b..0000000 --- a/峰飞航空猎头沟通结果.md +++ /dev/null @@ -1,8 +0,0 @@ -# 峰飞航空猎头沟通结果 - -* 公司接受了德国投资一亿美元(未公开) -* 公司和军方存在合作(未公开) -* 周末不加班,平时任务重的话会加班,有调休 -* 薪资15K 90%的可能性拿到 -* 飞控算法工程师岗位,直接发offer ,可选签三方(猎头说签三方比较麻烦) - diff --git a/年度项目获奖感言.md b/年度项目获奖感言.md deleted file mode 100644 index 71b57c4..0000000 --- a/年度项目获奖感言.md +++ /dev/null @@ -1,13 +0,0 @@ -# 年度项目获奖感言 - -感谢同事和领导的帮助和支持主要感谢 - -何鹏鑫:带领我熟悉项目。在刚开始的时候带领我推进项目的进度,后来由于有更重要的事情要做,就离开了这个项目 - -马时俊:这个项目最后变成了一个控制类的问题,由于我本身经验不是很多,向马时俊请教了许多控制方面的问题,告诉了我许多调参的经验和控制学知识,对改善飞机的飞行情况起到了很大的帮助 - -金总:这个项目最后的整体方案的使用的技术方向就是金总定下来的,没有这个正确的方向后面的都是无用功,在其他方面也给了我很大的支持。 - -这个项目遇到的最大的困难就是一直不清楚甲方的真正需求,我参与这个项目之后我和何鹏鑫花了将近一个月时间才算搞明白这个项目究竟要实现什么样的目的。在弄清楚需求之后后面的开发相对来说比较容易了,都是技术上可以想办法解决的,只要朝着这个方向去做就可以了。但是如果需求不清楚,你花了大功夫做出来的东西甲方可能根本用不上。搞清楚需求是开发前必须要做的事情 - -通过这个项目,我在对无人机的应用层面开发方面有了一定的经验,同时也学到了一些控制工程方面的知识。 \ No newline at end of file diff --git a/投资策略.md b/投资策略.md deleted file mode 100644 index 39113e5..0000000 --- a/投资策略.md +++ /dev/null @@ -1,11 +0,0 @@ -| 方案占总投资比例比例 | 方案名称 | 具体产品 | 所占方案比例 | 实际每月金额 | 实际每周金额 | -| -------------------- | -------- | -------------------------- | :----------: | ------------ | ------------ | -| 40.00% | 有知有行 | 我要稳稳的幸福(且慢跟投) | 20% | 120 | 30 | -| | | 中证500(160119) | 40% | 240 | 60 | -| | | 中证红利(090010) | 40% | 240 | 60 | -| 20.00% | 自己 | 沪深300(100038) | 50% | 200 | 50 | -| | | 半导体(007300) | 15% | 60 | 15 | -| | | 交银精选混合(519688) | 35% | 140 | 35 | -| 40.00% | 也谈钱 | 长赢指数(且慢跟投) | 50% | 500 | 125 | -| | | 富国天惠成长混合(003494) | 25% | 150 | 37.5 | -| | | 兴全趋势投资(163402) | 25% | 150 | 37.5 | \ No newline at end of file diff --git a/无人机自主降落方案.md b/无人机自主降落方案.md deleted file mode 100644 index e1e36cb..0000000 --- a/无人机自主降落方案.md +++ /dev/null @@ -1,9 +0,0 @@ -# 无人机自主降落方案 - - - - - -Android官方提供了写C/C++的方法,马时俊那个识别算法用的是python写的,不改过他是通过 py mavros来订阅的视频数据。Android写python可以通过第三方的办法实现。但是python程序要重写部分,把视频源改成通过sdk获取的视频源。马时俊说这个可能不太好改,其次改完了可能也没法正常用,因为之前是TX2,现在是Android平台,这两个平台架构不太一样。同样的程序改成功了可能 也没法正常运行。 -我觉得应该找一个会C++ 和python的机器视觉, - diff --git a/星基RTK.md b/星基RTK.md deleted file mode 100644 index b51a76b..0000000 --- a/星基RTK.md +++ /dev/null @@ -1,15 +0,0 @@ - - -![[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 deleted file mode 100644 index da8d2c0..0000000 --- a/星逻机库问题.md +++ /dev/null @@ -1,8 +0,0 @@ - - - -* 机库在执行关库/开库过程中,不能接收新的指令,否则执行中的任务和新的指令都会马上回复成功 -* 机库自身状态不对的过程中,执行指令都会秒回成功 -* 发充电指令无法得知是执行了换电还是充电 -* 无法获取电池仓电池状态 -* \ No newline at end of file diff --git a/校招职位.md b/校招职位.md deleted file mode 100644 index 0a80c27..0000000 --- a/校招职位.md +++ /dev/null @@ -1,50 +0,0 @@ -# 校招职位 - -有赞 10.30截止 - -![image-20201028092904031](C:\Users\yewuya\AppData\Roaming\Typora\typora-user-images\image-20201028092904031.png) - - - -云从 - -![image-20201028092843246](C:\Users\yewuya\AppData\Roaming\Typora\typora-user-images\image-20201028092843246.png) - - - -依图 10.31截止 - -![image-20201028092800487](C:\Users\yewuya\AppData\Roaming\Typora\typora-user-images\image-20201028092800487.png) - - - -新华三 - -![image-20201028092626715](C:\Users\yewuya\AppData\Roaming\Typora\typora-user-images\image-20201028092626715.png) - -恒生电子 - -![image-20201028094534718](C:\Users\yewuya\AppData\Roaming\Typora\typora-user-images\image-20201028094534718.png) - -数梦工场(宣讲会)简历投邮箱 - -同盾科技(校招没有) - -涂鸦智能 - -图森未来(北京上海) - -商汤科技 - -![image-20201029095804728](C:\Users\yewuya\AppData\Roaming\Typora\typora-user-images\image-20201029095804728.png) - - - -地平线机器人(上海南京)嵌入式 - -寒武纪(上海西安)人工智能 - -陆金所(上海)前后端 人工智能 - -远景能源(上海)![image-20201029100944393](C:\Users\yewuya\AppData\Roaming\Typora\typora-user-images\image-20201029100944393.png) - diff --git a/第三方RTK.md b/第三方RTK.md deleted file mode 100644 index a0ecabd..0000000 --- a/第三方RTK.md +++ /dev/null @@ -1,98 +0,0 @@ - -# 第三方RTK飞行可能出现问题及解决方案 - -## 问题1:RTK丢失或者RTK由固定解变为浮动解 - -### 问题造成影响 - -定位精度下降,影响高精度巡检的效果,甚至可能炸机,对于通道巡检之类的低精度巡检问题不是很大 - -### 对应措施 - -高精度巡检建议直接返航回到对应机库,通道巡检可以继续执行任务。 - -## 问题2:RTK(GPS)无法获取定位数据 - -### 问题原因 - -* 人为干扰 -* 特殊天气 -* 巡检设备本身电磁辐射太强 -* 第三方RTK模块电源不足 -* 第三方RTK模块损坏 - -### 问题造成影响 - -无法执行任何任务,还有很大可能炸机。 - -### 对应措施 - -* 飞机悬停直到干扰结束或者没电。 -* 飞机拔高到一定高度尝试摆脱干扰范围,不行的话,飞回返回原来高度。 -* 飞机前后左右飞行(不安全,可能会撞到障碍物) -* 飞机原地降落,可能会炸机,加上视觉识别可以降低一些炸机概率,不过单目相机做定位有点困难. -* 飞行中记录飞机的所有数据,无GPS后根据记录的数据倒飞回起飞位置,由于没有GPS定位,只能靠加速度计导航会导致倒飞定位比较差,可能会炸机,而且实现起来比较麻烦 -* 第三方RTK出问题,但是机载GPS正常的话可以执行返航. - -## 问题3:机载电脑死机 - -### 问题原因 - -* 代码问题 -* 散热不行机载电脑过热 -* OSDK本身有问题导致代码崩溃 -* 程序太多,负载太大,OSDK设备性能跟不上 - -### 问题造成影响 - -无法继续任务,此时如果遥控器已经断开,会飞机只能一直悬停. - -### 可选措施 - -* 遥控器和飞机连接还未断开的情况下可以遥控器接管控制权,根据任务距离判断是否继续执行任务.超出遥控器范围直接返航. -* 由开机模块断电重启OSDK设备,恢复任务(OSDK设备供电还是飞机供电,但是要走开机模块中转一下) - -## 问题4:空中电池断电(只坏了一块) - -### 问题原因 - -电池自身出问题了. - -### 问题造成影响 - -飞机还能继续飞行但不建议继续任务. - -### 可选措施 - -* 返航 - -## 问题5:服务器(工控机)连接断开 - -### 问题原因 - -* 服务器停机 -* 工控机网络连接断开或者死机 -* OSDK设备网络连接断开 - -### 问题造成影响 - -可以继续执行任务,但可能无法完成降落. - -### 可选措施 - -* 直接返航 -* 继续执行任务到达机库上方执行降落前尝试连接机库WiFi在局域网内控制机库开库完成降落 - - -### 暂时只想到这么多,后续想到再说 - diff --git a/第三方RTK飞行可能出现问题及解决方案.md b/第三方RTK飞行可能出现问题及解决方案.md deleted file mode 100644 index e6688c9..0000000 --- a/第三方RTK飞行可能出现问题及解决方案.md +++ /dev/null @@ -1,96 +0,0 @@ - - -# 第三方RTK飞行可能出现问题及解决方案 - -## 问题1:RTK丢失或者RTK由固定解变为浮动解 - -### 问题造成影响 - -定位精度下降,影响高精度巡检的效果,甚至可能炸机,对于通道巡检之类的低精度巡检问题不是很大 - -### 对应措施 - -高精度巡检建议直接返航回到对应机库,通道巡检可以继续执行任务。 - -## 问题2:RTK(GPS)无法获取定位数据 - -### 问题原因 - -* 人为干扰 -* 特殊天气 -* 巡检设备本身电磁辐射太强 -* 第三方RTK模块电源不足 -* 第三方RTK模块损坏 - -### 问题造成影响 - -无法执行任何任务,还有很大可能炸机。 - -### 对应措施 - -* 飞机悬停直到干扰结束或者没电。 -* 飞机拔高到一定高度尝试摆脱干扰范围,不行的话,飞回返回原来高度。 -* 飞机前后左右飞行(不安全,可能会撞到障碍物) -* 飞机原地降落,可能会炸机,加上视觉识别可以降低一些炸机概率,不过单目相机做定位有点困难. -* 飞行中记录飞机的所有数据,无GPS后根据记录的数据倒飞回起飞位置,由于没有GPS定位,只能靠加速度计导航会导致倒飞定位比较差,可能会炸机,而且实现起来比较麻烦 -* 第三方RTK出问题,但是机载GPS正常的话可以执行返航. - -## 问题3:机载电脑死机 - -### 问题原因 - -* 代码问题 -* 散热不行机载电脑过热 -* OSDK本身有问题导致代码崩溃 -* 程序太多,负载太大,OSDK设备性能跟不上 - -### 问题造成影响 - -无法继续任务,此时如果遥控器已经断开,会飞机只能一直悬停. - -### 可选措施 - -* 遥控器和飞机连接还未断开的情况下可以遥控器接管控制权,根据任务距离判断是否继续执行任务.超出遥控器范围直接返航. -* 由开机模块断电重启OSDK设备,恢复任务(OSDK设备供电还是飞机供电,但是要走开机模块中转一下) - -## 问题4:空中电池断电(只坏了一块) - -### 问题原因 - -电池自身出问题了. - -### 问题造成影响 - -飞机还能继续飞行但不建议继续任务. - -### 可选措施 - -* 返航 - -## 问题5:服务器(工控机)连接断开 - -### 问题原因 - -* 服务器停机 -* 工控机网络连接断开或者死机 -* OSDK设备网络连接断开 - -### 问题造成影响 - -可以继续执行任务,但可能无法完成降落. - -### 可选措施 - -* 直接返航 -* 继续执行任务到达机库上方执行降落前尝试连接机库WiFi在局域网内控制机库开库完成降落 - diff --git a/翻墙使用指南.md b/翻墙使用指南.md deleted file mode 100644 index 4479098..0000000 --- a/翻墙使用指南.md +++ /dev/null @@ -1,46 +0,0 @@ -# 翻墙使用指南 - -主要目的是多提供几个翻墙服务商,防止现在在用的跑路。更详细的操作步骤之前有写过。 - -## 翻墙工具 - -Linux 使用 qv2ray [Qv2ray](https://qv2ray.net/) - -其他平台全都用clash - -Windows [Releases · Fndroid/clash_for_windows_pkg (github.com)](https://github.com/Fndroid/clash_for_windows_pkg/releases) - -mac [Releases · yichengchen/clashX (github.com)](https://github.com/yichengchen/clashX/releases) - -## 翻墙服务商 - -**据我了解这些都是相对知名的大平台跑路概率较低** - -cheapv2ray[CheapV2ray (cv2.cheap)](https://cv2.cheap/) - -​ 几鸡-学习助理 [ ![几鸡-学习助理](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKYAAABvCAIAAADpDSxcAAAgAElEQVR4nO29aZBlx3Ue+J28+31rVb3a116q90aj0dh3giRAkKApSiN7NBpF2COPQpYVM2N5PDHSD0+MFSNHyBH2RMwfz9jhRXTQlERS3CCZoEiCoAigARBAs9FooNeq7trrvVdvf3fNMz/eq6pXb6muFQQBfz+q3s17bubJPDczT55zMi8N3v+P0AgGgdEGLYncIb2JngGAOmXSmN58swMxc0OGd+TwTuw1/OxQcTTV5U4ccmMyNaa3z7hja8ci6gNneoYHLKL1bJjhuMGlK/nLV/OyVQTcnEkr1OYEqgmdG9vUUt1ACl9qAPfYhUwlXq/NeuO35k6N0mau/d+UmJrudCAmAsBtBN/8PAjgTUpEI4fgGgdtBb9K0YbDdsQEgG1TOTRq93YbtqkEIRdLwfxydWbB8QNZezIZ13RNFMt+pRq2ZtKfMp56qM/QldbaW6Z67nT36KD9w1cWXU8212Wdo/Z1p8H7f69Do4CYARzvvXVu+NrX3nmkGhhdVuHs4I0f3riL27y+W+pPd3jrW7o7AYZOALset+nFG4YQJKLKaL8RtUQQ8nLOn1l0Q3lHDrn1iu5YnTt199OTsTPH4poqmtLLleDVC9lCyX/wTPdAr0lEoeQbt0qvvr0S1nkFgIil/K1PDbXKuwmL6ep3fzS/sV3aDkgb39NVkbfhG8Bd/TceHH3/ambwxRtnGsg2vEu6SgcGtL4uFUAmH9yY9xyvNattj/O6SndPWoeHTdMQALm+nF5w375SLlXlRloGYGj04OnYwWFTrI6BzChVghffzC+v+A25bmuc70Tf3KyKwOiAGY2o2ZyXLwV3H4tPjkcaR+ON/DKAprvvXS+88U5ubMgydVGuhicOx/tTZgdWG7PCa2+n37teuCOHjReNIm+m6rYKv3ziZUXwT6aPXVqcaMo1qld8qfR3Rx6/yzb19dfZ8+WPLpSnF300YxvdPWKKZx+MJ6LN847ryxfO55dWNmSuCDz7ULK/W2/Nx/Pl83+TXSkGG0tbL7ErpkZtpVAO8qWwVfA9CXV0wNQ1KpSDqVnH9RrftjqxZYhPP5TqTuhEdXE2y3MLCELpetI21e0+mSt433hhZjPNpmVAapnLGyaAu/qnFMEAQhZMGyZ4grx3+KpidI2Nn1aUDSXqmvjE2eh3XinkS1JR0DAgb5hyai3faYJ//O5oq7wBGJr4xLn4136YDcJ1+hMHrLbyrjHz8Jn483+TBSAIRAhlfYK3DHriXHIwpRMRM88tuy+9ma+6q9Mq4fShyLkTcSHqtTt7LPzB+exS1mtqqIfOJHuS9dK3L+s6VEWoVvMssBXEo5ppKK4neaP6tUH/wIYJXgVRk5K5+gCPJNK1i6RZBgAiXp3gHz/wzmRqnuNHoLSppKrQcw/FFQGAyk740oXyXCZoyBmbC743qQ72aJ0qGbWUs0dsQaSplCsGNxfcQ8ObjYF9XdrhUWt8wBju0wVRJu+/+X5pbtl76v6utReFiIb7zKcfFN/5cSaUALi/R7/3ZLxRhJahfOK+7u+8tHzycGRswJLMs4vOzdnq6IC1Sen7DSL86mdHg4Dfu5F/61IObVRaNAmeBh/4x6u3NwhekPz75/5Lrcol1/jKxSdCVtYICfzQ2HsnTpwj0VE2a3Bc+ZUf5oIGtXSiX5scNcKQ37lZXcqFtXIHu9WhlAYgGRUHhu48k9UQhkyEtb7YFsy8cZ3Dtxfd0X6zqU8y49WL+UIp6O3SRvvN3i4NLb3WD2SjUtaU888RzPzi+aXpmcraKqWVpPavcfAk0Lo6KplCJpUYQNRwzw5ef2PuyBrh8TF9eOweUJuxtxWmIUb7dNsgTaVMISTgk+eitZYaH9Cv3HYcjyOmmBwxdtB8SrthpglN2RLR2ECbV4oID5yKE9XpmRktEm1Swj8k8gZARH3dxvRMBatSbOGsrnSrLakA1bo7pcuJgViuduOeoet+qF5YPADQ6Qn9gWPmtmr71NkorS7QgfXOowg6Pm59ePpK42ixJvgPCW93hOPKhgF8VYobSAiAEht5uOVZAhEIguR4crmeRBiOZ0YTy4C498SAqmxP11hrNKLWwbKW/uFt1g8zb41IxrVqNVwp+KtyJjT8WoO6iUXs/czYsd7bfZH6so8I/dF8X/w6a8d3z5/jhzM3r1iRBEtfVXUGbNt2nWqqt1eIdROEZL45NR0xjWIh192T6kn1NmYyMzuH0IOiKQKDg8ONtwqFQrVaBYlyqdgVj5YqTiwRh5TJru4NZMVyMb9iWpbrOoauV10vFo0GvtuT6kXdGAcAjhcszEyRolfLxf6B/q7uVGMmcwuLEVPzQigcdKf6NtyaXygV84qqGQpGxg9uLLq0vLQQsSxfUl9PwrAiu2hOALAt9dH7enNFP5v3Grs7AG4Y59c6KzWPAYBk8cK1e7OV6IZUDjraM7aDMJRCEa7rDA0NWXYkDMNK1XWdauBvWHNLyZVKxQsCRZCUsimTYrlSLOR8z3Mcp+lWEIYsw1BK3w9CGXq+XywU/CBoNk/IMJRhPp8rVx3PqQZ+UCiVfN+XYV3b5HpuMgj8IPBVXRPUPMLlcvlKsRDKUBHN9jLT0BVFkFA9z2u6JUHVSpU5FIpoqvWOIQRtsOE09HOuz/GggQf/V9rUFq8J/+6Bayd6bxuqTwRmyMQnSe/F3uFDO1/WF7sfSt7agpl/8MrS7flq7Wrjvfp/FQDXHQG1lOZx3pfa63PHfzp/pMssmarnBppUjCfvCnWts+dpa+zt5uEPCMwt8t5rtjvnt4MXLZNzZxaqDRlsdFfUdOeBB//JurS36Bxsf6e9c3AvXLHNdtD/6ort1NpbcR2pDVnVTXYNgm+r2TUu5FrSm1LbuWI3lMj8P/29T2nqHVxGzaxvqadtpzt2fDV3mnmLOJn5//uT71Udf2eu2LXXmNaJW4qpO4vbZdJArLbeaCf4O7ByB74bLLXNxCz/99/5fEv6RxNf/dbLswu51auGVr5DH0Nja3MDXfsQgTU7dmsmAMCty+tV5yM1JbadWeor+JYc2hAzEbfP5OOMVffCVlu7/osbJ5BWYqqpnO0zaWtRqVMzbV3wrXfas/JfBd8CWhd82/SmRNog+M2I180KGyA2E2RHwXcgbnNnE8F3zuwjAWYOgiAI1l31TGB0euOpc89pR7wqeN5c8O26u2g1zrVhpVnw2xrnO/BNxL84690dgIimpm9Xq402otVJc7PW3tY4v5ZhB71+PYP1TNR1Gt7wq+UhRm0Fvx1do7kybdYlH1mpM/PoyFCnZU2Dd6ndgqhdaAPaEKMx3KFBs+ugz4PAjRr7BsF31Pe2tpADQC3q6CbEH0EQkWEYHe4BaBR852VVsyjaNuD2FnItc/lOxnlsRrzFCf7jgo1NXe/mm7b2HkzwGyDa3KCtCB7Yjwn+Y4E2fYz3d4LfQCw2UG9D8NQo+K2x0vZt/VgJnjb+pqafvD6Htz64HcHTZiv4tqaYToLvyMrWVvCdhql9Abcx9n0I0Vbwmy7ksO1xHhvHebWzstbqhOmsqQHbsNTWiLYvkW89/1e+7zNz4Adf/KXPG7r+3e/94JlPPwXglVdfqzoOgMGBAcd1KpXqxXcunT51MhqJ+L5fKpc93zt3993L6fTI8FA0GgUgpXz7wkVVVU6fOnn5vfc9zz9z16nldPrGzalDBw9apvnOu+8eGB/v6+u9cPEdlnz3mdNXrl4rlctnz9x1+b0rBybGbXubsa0EgBTymenUwahuKctpD6pImlQJoQNFV96ad4CaKrZRn2dWIJNJozupzyw6fV2aEGRqQjLrhiDJVR8aoezK6bnKhiJXNbs1fV5lAqGtVZYsHbZJtgo3xHJBMqOvSyxlJYAuG26IkR4B0HIhFESmhlBiIRfaOjxGUHf5kyAIgf6kWMyFkjHcpWgaASi7khhb74rMvLC4tLS4lEwmVlZyN29OpzOZ969cjUTswcGBhx68f41ydm7unUuXJ8bHb926PXn4YKXqZDLZ4eHBWzMz1aozMNBfI3vxpb+5/957ALr07nu2bQ3097/8yvnsSu65zz5TLldefOnHn3v2mef/6ruJROLkiWOGbtycmvZ8/+jk4Zd+/LKiiPHx0a2yvqFRMWreqoaWFDEQVIVIE0IgooseS/hZf42saSEXl+WeMB9aB0xDjPcbiqZogkkVlYqvagJeaNui21RmV4L2pVLdZ8h1f3ktscUJM9QtDIMG40JTcP56sFKUqbgwVaq4fKhXOCEu3vTPHNBkVNgGDXQpFZd7E6JYkOmQ/YKsdfeuCB0f03SVxnrV6UywuBIeG9KuLASh5P64iJpbjaEjopGhQc91gzAcGxs5eGD82NHJcrny6MMPNlF6nm9Z1vd/+KPf/Lu/cXNq2vf9fKHQ29sjQ9nX32foxiqZZ5rmn33tL8bHRkeGh6LRSLlS0TRtbm7+8vtXFEUhIk3TKpVKLBb75refHxkeHh0esm3b89zx8XFdu3M0d5umB6acQwAWr1U7LFZXpbBxIVdQogUligUPC03RNQxU6/8bSum4gm/0pLV2dwIMjcouE2ggLlaKUjLSBRlKLjikqzg6pEYsAqjiwQu44nPJ4YDBsj7BA1AV8iUUyczsOJjo03qSygmdihVZKEt1CyHJazh3z9nbM7OJRHx0ZKQxiqZYLL386vnab13XbduaGBt98vFHr9+4aRqGbVu91dTycqanp1tVlCCs94NHHnrw5VdfGxoYfOC+e19+9TWAH3/skWvXrs/Mzo0MDxmG8cr514aHhg4dPPDKq+dTPT3nzp45//obN6amHn74waWlZT8IdL39FpmtwDKF70sQqQKuL3WVQBSEHIZsm4rnS10TFSdsEDwB0BTUtukoCmkKOZ60TcUPWFWo6oZbcsUC1P/w77dZ7TMAPjygmDZ5FalaIpMNMyWeHFWu3g4ADMXF0IDy08v+2IAiQ05YIgCbKmUqXCiE1RAVp5Yn2waNDypqgFhcvHLJG0wIzSRdR7UsoxFFR/DdP/8XW2ymmdm5gf5+RRFLS8s9Pd2qqhYKxXg81pY4Xygk4nEAjuOEYRiJ7DaYcPd48LO/X3OeaipNjpg+Q1dFRMPcShA3KVMMe5NavuCxEMmYMIS4eMvxnA276U4fjly8Vh7oUgdSuq4LL6Rszo1F1IghXn+vhFpsYJuxo32IBG+4TyDQTFZSBokYKW5o6DSWEm4VYymVgbIrX73sT/SKxbysONxls2UQiF2Ps5VGZZkqLjyXSwHmbvkT/Ypk3FoMD/UrhqHki6HVwTzVFiPDQ7Uf/f31KNJO8gZQkzcA09zqxpcPBPVlkmEo6SU3YisyIEunpXwQtZQwZAYxQ1FFvhCqAl6jaAgy5O6kpmrkBnD90PFZIZJExXIgBEnZoD937vFqQyqaBF/1QUA1y832nFVMLddDTjNlRqmjJnZ9vr7LO1MKayVdX1yNH5Vt1Y3OSL8IMPxlqD3o/eT2nt0r7JoHN8Bb75cBRsMW2nRuLXSYZ5fcBvJ10VyaqgDIMgBv9UaH1VazPNev2+1Wae3xWwivabjaZC3X6pvZDpw5ONNIvwD20f0JWRr5y5duFgrFnlRPJp3JrKwcOzLp+8G1G9ePTk7OzS2MjI5k7Ufnc3jgEL1yjaMGuqPIVeAFSFgoe0jauJVB1cODh2k6jf4E9PzrN69e6komTdPI5fLHjh1hySCMjox8/Rvfmjx86OnHjokGHlAeQ2RyyxWgdpctttE7tvZGza6d4Fcp2glebTfNtwi+40KuhXiD4Le+gt8aFBv51xAWASD3quj/wsVL7ybi8dHR4denplzXi0Wj2ezKcjodjUQLxaIyv3DVYGaaz+PtadZVTPSi6hEBSwVky3xkgBbzHDNpahmXZuXLV3E3X/Mq5ZmZWdMyi8VSKENN0ybGxt6+8LNbt2cKxdKj95+INvCA/i9sg/9V/wk1pba6vLZ33gmwHd+M2rhoa3mgzQTfWfA7Md102iTZHqWriJ2FcxsAosdRum4aRqqne2x0NBqNTox1W5ZVqVSOTB4eHxvN5fKabgRFYqA3hmNDiJvUl4CUuLKAyQHMrVDSRjlGSRsxk/viZOs43D3ulhPZ5Iph6MvL6fGx0es3pi5fufrwA/ffdfpkGMoozzbxAHNoG1Vof9DNJt0dd2jtBpW+8zi/YYKn/kf+YPVeJ4tYu0GgveBbErlD+moiy3Dh/L9sW2p7pL+PoATpQigY+JVtPLiH2CkPD3zuD2YX8vWLfQym7kRfT2zabIx2gt+/CX771vbUJxGU4GVgj2/72b3CnvCw2blWaOnxW5hVtzrOtx4CtpngNyTt3QS/TahRqNE7k+0rdshDyyv+czjQrB4i0Y65LWzMYaCD16dpUcer2uOu5f0Lj3atTfW+0yLklteA2qW35rxK0tYHv2G3ysZbXO/FG/t223q0W/53yhCr9n1qZvTjgg5zHNX7+xbG+S0s5FAfKVoXck27VTbk0henvrjYctdsK3XUihXLrzWlLgWDi8F2dN2PGtrJ7AOZ4JvW5RuyPj6sHB3a4m6xDmBmZsmsV37QdOd99+RSqSUAdBVhGP6CxDi0h6q2O0WneUTrMDfv2QTfZiEHQOXVbr9R8M3lVarVwPcNXQslK4oiZWhZtuM4mq4XCwUiaJoumVVBjufHoxHHC3RVWa15oyHARlD34XPnjSuKsrtX7UMKaiflTQS/enTgJsSbreDbjPMA1Oj6UVjNWnrjftB3L18uVHxbOOmsc/jAyFIm3d3bD6+qRbumb1yzdLFSdOIRg1TdqbjJeKTqVu8+cyaZ7N7ASWwC8YNIX4Cb0RSKmlRzs35MYBsiaq21aVsrSPuBrd0Ozg7oSLmerv76w22GIGbJcsNuetuO+V42Gk26QV4CfX19AIeKnkgkorZp2RZpli44keqdn53TLdu0TNepNucblFFdgl8GMN4rRsfN1rNAPsJ49sFEqfTzH722dHAbgBPHOjoPBlKPNl4ePdxA2XTmV3UZ1foRU3urqvtzC87rF9YuSdcjTz9OH83ZYbfoJHIC7ZFQOvrNxB6ewVL65gsr//pLjSmjdx3PGeqNm1OjIyPdXV3Xrl93Xa+vr/fm1LRhGJqqapqWXclG7IhlW8vLaQBHJg/NzS2UyqWhwUHbtufm56ORyInjx/aKyQ8J2ot8bd7nMNwDvZnZP/L3GzIGABiJPezn2oHR5G/9uvvuVf3owXApUxtdXvjrH/z4J68k4vEjk4dVVSXCG2++9f6Va8NDA4ODAysruUwmq+v6yZPHXz3/mu8H8fivfPlPv3r61Akwffv5v0pnMn19vZ/8xBPlcvlXvrgdj9mHGx17OdWNZbuXC4MEIoO1bLH2rzaO7FFHZ89XupPWQ+cKf/bt+N/5PEIJoFgs2padza4k4vHl5XQ0FnVd1/e9fKEQiUQURWSy2bHREUWIUqnS39fruu6RyUO3Z2Yff/Thxx97+N33rnQlE729qUcfeWhPmPyQoIPICagf97F7mdPG+bzxzt71c6JgMe28edF++N7qj19TBvsjwFNPPvHZzzz9gxdfGhsb+dyzz/z4Jy8PDfaPjow4jtPd093Xmzpy+HChWDxwYOK+c2ej0agilN5U6vChg8vL6WQyeejARCRij4+O2tbP8yzmPcem6tseieQDWIcFc4v5f/+nANwL79ZSun7rvzsyeRjA3/2NX6+lPP2ppzo9fvxo/UTi++87t7+MfgiwVY39Q474f/sF857Ta5eka+pA3yb0H2d8RESuJGLWffWvv3ieV4swv3DxnRs3pj777NPvzmsxE5aGostVD6koVTyMduN2lssujafg+kjFkC7CDUCAEBCEgQS2FWb/i4LOIq/bcfbb0L3H+bue981vPf+rv/JLjuP88z/+l//9r/3t//ynX5Vjf0dT0BOl12+wbWCkm3MV6CpuLvFgF716DTeW2NTx+FHxpZ/Iu0bp6gJPDtC5A/TUiT0WObf6SPcSq2rxpuggcmYwQ4YolXbPRMc6qiqMHWzz2QzXrt0YHxt968LP7jp1UrL8Ly98/4lPPqfYNJ3hmSwnbLw7y3GL5lZw9zgsnW4u85EB+sxd4vx1nl3hoSSiJiZ6qVDFQm6PZcMsq6ETIKjn28HXvIVotDYetJqcbcXSSKWOJ4AB7UW+Km964zVx+VJDbMVGDzc3ObypIbGBuPOzDMJzn+jE2c5w8sS65eRP/u3/WygUEl0pRSBbpoQFVcGtDAYSyFVgavj8WZQcFB0MdWFygFIxSIbjQRGo+tD22nZXlc63iy+GkLUPOoDBNb/J+t+15NbUFqJVwkbqCWv4M32PCRabHIPcaWBnhCGqlQ539wYEUGUfizBNwzTrJ0r31feu4EAvAFiru8m6o+iOAsD46gnrsX3b3OLCk5CrDi2qx4xwY7jDpoFiVDeUNOzUpqZgiWroBhxqVHONt5d6p4EdkJLk2rcEqX6KFDOEqO99UgQ0HY6zMWtuvtwQedd8l8LWbz/uCq7rvXXhwqGDB3tTPf/m3/3HGzdu/vLf+4PXbypnxmgqzX6AgQRly0hGYKpYLPDtDJ48QT+6zPdMkKXjlWt8YpiuL3Io8bfuEQd693IuD3lTH1KD4GmjR6z+djT5TFuc3QCYWLLcfDbv3MsbC43ZeOIpMGFhHiMjYIHvfBNnTsGM4OYtzM9tVsKGWhEmRtHXi/Nv1Znc6zgI13UzmaxtWame7kql4vn+q1e8i/NmyYEiMJXmhyfx8lUWhHsmKFvGVJovz6Lk4P15TtqYWuZUFFNptjQK99PJt6GvNwjNElrAwodrku7IQAE8DgXApKhgl4MNA8Jqv18bL9ASdtiKrS3SJAMSAcAhiFAsQtcwn0EqbNC/tmCd7e9CNIbSPg7mhmH09PToul6tVq9dvykEjRs3uo6eXKngQIpKLgg4OkhBiAN9lJ/mIwNUcfHMXXR1gTMljHRTxEDEgCbgb3O73JbQfuSup3arsTP24ZUwTHu3D1tHl7xlXYhK6MdEpCxLkmU+KN9yFgC0C6nY6lJgayJ3HMwvwvcxOws3hJRwPMBHuYy5+Q7PtIzwICxksVxAfTDflyWvYegP3n9v7ff/86/+uOnuc2c3XD7R4CR7uMHl+9/cj31CvS+2mZUB0KDebYlIhSsEWvaXPfarQSBAN5zbEcUE1/bHdZzIt4gt9/Kf/rReTCZbl9bCYovSvoV3ba8n702Qza6UyuWx0ZHaZRCyH0IRIEIQQlfhh3B8RAyEEkGIiEEMuD6bGsououb+2WGaBFf/+W5l+lJlqq6Lu+lGZXzJX1fad1n25iLnhh+b6mg71+D2GDOzs0vL6WNHJj3f/4N/+n8eP3Y0OXrfS0t3j/bQyWEqe9xl09ffkA8dpk+coH/2F7I/AcmImWDGsSH6/iX+pXPi/XkeSNJYDz95fCffIb0j2kzkW1LaV4eFTZX2O2IzkfPqCrExJLqZLUYzl80MbPbsnoexFoulrmSyVCozcHP6Vl9v78hEYaQbp0ehKXxxBoMJTsVAhO+9w4pAyUFXBEGIfBWmRof7MZfjrgjiFrqjH7i19Q5Keyfi9vc7YTORr30KEsDqN3daDC8NHvDmu1u43PMPJx0/dnQll7Mt2zD0f/FHf5jJZg+dfOQ+oremeHKANIVVBZ88JTJFVhU8cIgEYbKfzt/giRT5IVIxHOyjfIVvZzCQ2FvWoJGqQfWwelhWB6V9baZv7b1Nq7VWpT2uRjYzvAHYwly+Og7TmplvFyP8Zpd7hq5ksvbjrtMn1xLHegjA8aHVEgc2FP3pU/XLE8MEAD10ekdHfG0Og/SnIvd50pd7vjYFCFBIMUlv/YxbE3bnSduBvvgxhgrFJF0Tyv44V4ggVFIViM3P0NydyHt7IYFiAVDgOrBtRCKoVqCbUFVkC/CbPwH4cYaC0Cq+AG46pg1Ag0lqTSdvdbKskbQSr16yfZRi53Y5sAMAxkZw7AwUgcwS3noHh8bhhyit4Nw9sGN4/yr6e1F1oTAS3VhYhqUjnsT5t2EIqAoko1yGaiAWxXvX9ltp/9CCwoLi3wAaxLm+JOKG/9yOhjuKvCETBiN6N0hs0shbXJdLBD5YqTvZGGBGLApXQvNg6nB9FIuI2tA0eD5sG0EIWwcxLB3LOYyMYW4GLBCLoFhebYOOBX4096Txqj1vbULcxszYmXRDbhIcgNVN2rbhdEdm33W83DJX8nCrHHiEEiUN4YVifs68PSfqR0ISvfceAOgaViqQIUoVpFKYncNAP6ZuwwuQSUMy8kUQkC8CwGIaDMxntli/j+ietM5W+yb1/Q7YnEpunocKgJmdfNabeU/JzetUM05JEKkWwYoCkMxFJ0CgwJNQpdI1HFV0sm1UfKiEdB4JHfMqslmEDEWBEAhCBBIs76S0f9zQKK0WyZkHEXkAQR7VSxAxkAB7YAFvCaoJioNUlN/qnOGWoBbmpmRhWc9M27R+OnsuFJZC6mpegsi0NADMVNETnpcz+49pdgw5BwMJRPOoLKK3H5Ucjp7E8jIMBY5E6GNmdrtN8nEFAbXjA2OovAv2oPbAW4QaQViEmgCXoCUgDGw+xG9BR1Lp2mu2QrS6p9mTCIQSsXUhlILnkww1hDqxoLrlxPRKlQBy5jYmJsCMmzeRzSOVQLUKy8bUdUABG6g4qDYeUfgBLcp/sREWsfTvIX2QBm8OMOD4EBokAwL+W3Wnxu7WxqqhEBExcy4UnhkzonFNU+MxG4CshiGD4M0vr3Qpvu6UVUEKUVRDeXFWvzq1+vUWwk0AQKHBysZoFuo+LOL9W7Oysr6/VR3sUxJx3/erVScWi5ZKJQAkRHTTM3uZkavUOTNUmBoxIAhFh5mRsAlArsxE9d+7wh0VN/YBgD0AYBcApLMeW9D0yE7UQKhE5EsOEr1KtCeOQBhR9qsAJDOpSjyRcnKLycFhlX32qu7ynAFJgJ6yqnrctnEopbYAABBuSURBVGLwfXSnUMpDN+ExblzbkH3EhmlC0yAlyu6ugyebcfuLv0k6SJAsBQBiX3w2/xu/9J//7KuBHzz26MNf+8a3erq6q071j/7ZPzUM4/m35adP0Z+f57PjdCPNt9I81kPPnRVv3JDfeosvz/FINz19iuIWv/Q+f/IE/fUlns/x58+Kr74mQ0ZPFL96v7j/0F47WvZEad8OVF9ymBpS7Fgk0buSXkhYESf0GMiVqpppB74vNTtwXS/gVDRa5CE3PWdAKopwuiN2yUUkDt+FHYFlI51/Z0R9r5cBJNTYE864vrwAMwoZgBjDg3jnKjx3DzU4fdRU+yz3WgElAOAwHB0ZWVxaHhocHB8bNQxjJZebPHywUqkahnErzaGk778rry1RXxxzK7B0BrBYgOOzpoAZ782zoeHoIE1neCCB5SJsA5oKS4GpUXq3b2ztdekguTWlnbZij+2kBnY64msdqhvvNS37rau3neBWqVQyjZvnTh8Dh4oRcQO+dvX6WxcvFwqFsbHxx++a0FVV9A1787d0hbiSk4uOQBZhCFIQhlC1U15wagYAgfPARQiCWoCuwfEwtwzP35yb7cK7WfZmKiQ2VDIWjSYT8bn5hRPHjh48MPH6G2+6nju3wvcepEuz/I+fFb1xms1y4jRlSgxAU3C4nwYT6I6iP0GX5zhX4cl+ypR4IEFBiPsP0nwOtgF1lz1cREPzMZJFcAeDK7f8aqbqlF5LU2COYlNrKwDVSiRcFoeOnrg1fTs3dbUUT8UTyVJuQYt0R3SjEooTw+m8cKqhr8V6nEKmNxFZVM1u6RgGHN+zawpFLZDPazCv1t48yfDc1fS919f0o4dkcb3raWNDhqH/8z/8P2qXTzz2CIBPPfVk7XKoa52BvjgBONhHAJ46QVqDMJ+tb3rB4y0by/1d7rwWGvRDzN5mC/SdgwAFwoDQNt9MqDIgjKihWdcvvD4U0eYLWRDBiFumBSJNVWZvT/fbqisoEk+yVwWR1AyvUtFVxTMEnMZW2EGsxK7eg5E/+9e7ebwGTd0qD9pu9ytpUGzA3B+DBAEEEoCyecOqEmRHohDK8JGTfiF9/PiEIkQ0GmOAwP09XeeefLqYzd49PKi4jqJqQGiYppsPDVUJLQXOzoMCWVHY/nl+EiEIQlX9AM18JCD2eHdO22Lu0MshVAFGJvvoxCgSJ2EZaIiFIMLEUB9bBipV+D5pAKBomqIpANNAT3jf6R2++UJA11nbzpc2NkW1Wv2TL315JZe7/7l/9BdvyEeO0LszGO5GKgZdwc9uY6XM4ymaSvP/8LjSJRauX79x6/Zt7dDf/uG78t6DlClCEfACjPZAMhkq3pyWhorf/bRSmwX2ACRwJ2f2nhSz+W0VqG1sEFAUEDGjXC7blgmiMAjLlUo8HhOJGCIWhEClCASaqipCAEShJ+2oUHZWDaqbZvcIzHBcJ9XTowokLFxbRMHhHp9uLKI/gaQNPyTJKFShKpievn312vWenm7VgKXj2gJLwNKQipKu4naWBxMoO0h00W5Vtmb8/A1QKnEgiURXfQMPEem6ViiViUhVlEQiXo9VUhSsrftXRw4F0lOEae3o40S1oWTzDRzbgW1bv/s7/4AIQoi7x8kPwYyIUWfV8cEMRUARUAXGu87ce+6sqqpE9NDhmmERlg5mqAJlFwmbPnMXaypi+xjn+vOBqoDnZ2eGRkbXwtB0XV/9Atia/sUAXNfLZdORVILDsKaPK8Rh4JG20yAxAu3p9gBldbyJW81yMpvm0IYJpTWsMam2T98lCNz2tOw9hGSmOwZChUFgLV5fKK/Ehg9EojEiapB0bQHGrudll5fKizNdMatUUtxiMbFqcg+LGdHbv2MWhdjj5YrjuIoitIZPFTJzLXE3X7LbEwhBQuzvmLGVQVP1PS+mKTE351376RIZsKJs2NBMEgqHoedU/GpJ88o2gjGVKlrcX15kyWtvkvOz1zJ/+YPWemiHDtknB4PLzaf1bij77Bek8yLwhzuqXXt8/4cvSsknjx9988LPbMv67GeeDsPwP/ynL8ei0cWlpZHhoVwun0r1pNOZaCTi+f49d5/JZDO6bszNz5ummU5nDF0vFIvxeHxxcen3/ud/uIe8ff01b3Z5S5Fhp0bEfYf264APtZLLWmAiMhRhwIe7Ip1s1Q+dQKoEWxAJoatCIeGFMsxlbISC1scAM2YGXYqqGwglhGDHId0I08vsOOxVAcBOgFTSNEgBhOw7pOrsu3AK8B3IPd6f9rN3LiXi8c88/SnX86SUS8vLvanUxNhYV1dysL9vcHDA0A3JcmZ21jBMMOu6bhpmKtXje55t26meHgIq1Wqqp2dsZHhveVuDrcPSiZn9ELpKoWRVULrhQ3POHlspN0AlPyirJgkiUiQJdqskA5cVTzG00FGYDUEeaWFiAKGvyrDqeyjnYlp96jd0xRuI8/yyfuQEpA+hiFi88v31zi26xkBE0SRYgxJypSC6xsOl6zz7s/2oz+//k9+r/Th+7Oha4rPPfKqJbPLwoaaU2vFRHwAGYtSfJKGDfSr58D0eSymGwF9f/oC2bqn2qcfcStGpVAbGDxEhDKUMpSVICOG7ru+UAyHMSFxR1SAInEo5Ytuh61QWbobZOQReXCXkV2Su6F58W9gRloAMG1cicukaAMpHQQqHLiTLhasI92NX5y8GlsucLtejhRQBTcFCPtzhOndHUCPVueJy2hd2bW+Kqiprh3KHqmJEE7peV4WEEItX3tYUKJVyorvHMWIsS3G4RD4ArrrhhpiIVfhVADWH7MccllKKKPkNSQwEUAGEiDSYARNWbP8O61KFEJqmKbFU414hKblSqaqqYhjrWq4QZMSSRlh2co5dXIgQ1Z2BqmiNcSHTJP1OhyJqJkJ7r2ry4cczfX9a0qe3RBq5B/jsPrGhgllRFDOeXEvy/SCTySeTUcMwGo21RGQleoJ00Uwm/WpeXz0+R0l1dz33G213lyljd29ePAftPzX20QxqrkGJQEmABIQJEDgAByANzo11Gt7HiU8FAEWzVi1oQRCm07menvXxvBHRZE966WYyHncK2TWRF/zil65/qcmUfzgy1mue/svlxU3K/rXBEf5use0a7SMa1AwAMPrBAlof9D6ikKHAW4Q+vkHk+wkVRJoVrUUZSCmLxVJfX7fSQZ0wTFMYdiQaWQzl6hFLCIU6YXdXJQfsA2CWWb9UDd1KGAKIK4qhahbBFKrP0mPWhcgFwYrnVmWoOR+jry7UUZmGMOBMAQoTQDoA8Ft3emzPoAIM1SQiZriul0zGN9kATESxrl4hqoq+brDUoslzicmp6sqg1VsIyobQvrf0xtrdMzE7biWlW3VIWERLvnc0Ev1ZubLitdP1PtLwFzRvuaYbBcDa18jW2mFdbVIP9u2fCq+WKw7i3bUL0zTvvN9btxbnZxVVBQKAmPmCTK9kSoKUK+WbtTMvGqqBn+SKWqFiCyHBphAB471SQds7B9ovEKrvm5WZLamruleKjuwXG2o2s2KrMT9EJJZQOisdzOz7vlMpB5VSZvpWT0Sv+dZKLKdtL+x8epIEXBm6MgSwvkDZixNjwlyh+JXvkKlro0PuhcvWJx40z56UUtaWD0IIKaWUslGTksxgFg0vHDMzcxAEnSzwQRgqQhBRKKUg2v0ZCEpPUjt0WOaKSk+3PztPqiIsA0bUfbP564H7BLW4vGzrWqE0XVokVwRBIlBsW9W0tc0MAAfLvuWKtJbRNdGb6tYDXwkFoDDzm4YXtgskshTDvpMKZgmFzZ13d//i8+7582qf776syrLiXb5u/ps/+vJX/vzWzIxlWd3J5PTtmTAMf/cf/I+2ZUUiEWb+d//hT6ZvzxydnNR1bXk5nclmx0dH09mVMAiOHzv6ymuvZTLZxx55+MqVq1O3bh+YGHvogfvfu3I11dN94tixv/7hi/edu6dQKHzh85/bMc8ASFOVWBxMpGtkmfB8qKr4AKODVMWpZqenqXdg/MmT02//lIs5z60EirDjMRCVi2XTNHzhxw9P6O9PG1Z3YW5eMsdMjRlONPXpux57Ruk4Ntyf7N68+OALO/+ggT6SS/0vMYRpfzHCgQnFkFLOLSxIKQM/8Hw/n8/n84VyuVIoFA8dPJDOZJaWMwREbKtYKq/kcocOHohGolev30gk4pLlxPhYPBpL9XRfU4RpGqqq2batKoqu63Pz87mV3BOPPfIX3/zOjhmuV3khHSxs5m3ab6iqEJDSX170Dx6VhazGslKVJmS5WlXiceRzhaISUVVNFwbByWZMga6oQYIq0b74iQdAipQ7X0Dv5llo3aQtyLIiiyx9aT3xpBDixLFjL3z/B4auHz508NSpE9euXs9kspquAehNpQb6++bm54eHh5KJRF9v6u0LFycPH1IVJfCDWCTyo/eu9qZ6VnK5eDxummZvKjU40H/xnUvT07c/9+zTL79y/s23Luw0BAgAzLvu8oe29JlXdWTfZnKAfvWeScV3AxKRkQPezPWaRlbzmgeSFap/8UoZHA/np0MmoevdwyPGwIFY/wjtWgsLguCP/q+dOk85lFf/78or+dL3SpEvfjr6y58honBVSyCi2nRODRPwatXqv9dSalu0aulSMrNUVVVKXnNv16b8WrY7ns7/+H/77VIuuxVKSgyK6B0GyLYI5Z03+6nJ46dK2TRcp1wtIJFAKCFAQiVBBGIhSNUgRKiQPnlcN0xFVaFokb6h3ct71xA0+mtWV8V4wlTHh2uSaLLhiI1MNkqLVqM8mm4pSn0LbmM4w24kvYbw6t8Ei7e3QimGTorTz+yyuE5Q/dxtU4Fpg5lqS8OWr+LVtHEPXiV0OQQYFPZPKJ2n8A8IRGQNKRaU3p8zI9uDboi+o+wXSImxVyDDhJmEy3KmUWPfR2OzupLNByGrCtW+lk4bNzut7o+qxzmGUipCRPrGVfUDiMfeBr729W888fhjP7yevDSL+w7S6zfk4X7KVXD3GH3/Ek/0IlMCgONDVHbxxXMoFPKarn/7O3/5yFNf/I8/oXsm6NIMawoO9dO1RT7Qi3dmMNwFx0fShuPj8WPicP8exTAxc+DDKbOswDDZK5NqY1+Phd4IVTd0QwhDU9BgJefaIX6NYXAAAMcLWMpINCo+TDbwP//q11988SUA89HPz63wchEAza4gU+ShLuSqXPFoIc/5CmwdVxb48aOUWVz68pe/MjM7N3n2mfmcfSsDBhwf787yXI4TNrk+Kh6uzPNYiuZyHDHk4f49qrLv8cLl+u8iADBmWoj2MUROjUatlXy5e/y01mBDrWkrTROYUy0Xp95JxOzQqzTqQT93PPnE4w8+cH8sFksklJ/dZlPD06dQctATQ9LC40eRr0IVUAUYMDUkLJhDQ//wd367UChMTsYODCFdhKmhUMVIN5ghGa4PVUEgISXcAKM70aWaoUw+qvZuVX3bg/I6QAVDSnQNHFC1O4zVTrWcvnERQOg7+8fQDtDbm7r07uXn/+q7v/1bv3lmrPlFTMXAzDeX2Tbw5hTuO0CpGGnx2De++a0DByYOHDr8wkW2dUylOWnTlXlcW+Ln7qa3pnlygApVjPbQ9DLnKzh3YNd2t/5JJbLHO+x3gP8feYGFMXFEGb4AAAAASUVORK5CYII=) ](https://j01.best/user) [j01.best](https://j01.best/user) - -​ 首页 — 跑路云 [ ![首页 — 跑路云](data:image/png;base64,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) ](https://paoluz.link/user) [paoluz.link](https://paoluz.link/user) - -​ 💬1 - 用户中心 - ByWave [ ![💬1 - 用户中心 - ByWave](data:image/png;base64,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) ](https://bywave.io/clientarea.php) [bywave.io](https://bywave.io/clientarea.php) - -​ CNIX [ ![CNIX](data:image/png;base64,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) ](https://cnix-gov-cn.com/user) [cnix-gov-cn.com](https://cnix-gov-cn.com/user) - -​ Anrun | Liwei Group [ ![Anrun | Liwei Group](data:image/png;base64,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) ](https://console.anrun.online/#/dashboard) [anrun.online](https://console.anrun.online/#/dashboard) - -​ ARK [ ![ARK](data:image/png;base64,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) ](https://ark.to/) [ark.to](https://ark.to/) - -​ - -​ Nexitally [ ![Nexitally](data:image/png;base64,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) ](https://nexitally.com/?language=cn) [nexitally.com](https://nexitally.com/?language=cn) - - - -**这个是一些翻墙服务商的测速对比,里面也有这些服务商的官网,不过这个博客链接需要翻墙才能访问** - -[DuyaoSS-机场测速 [SS/SSR/V2Ray\] 【电信】纯测速图 更新中 - DuyaoSS-机场测速和简介](https://www.duyaoss.com/archives/1/) - -### 翻墙使用步骤 - -* 首先前往上述提到的服务商,购买服务,其次找到服务商提供的订阅链接,不同的应用使用不同的订阅链接,不同的平台的订阅链接可能也不一样,具体参考各个服务商网站提供的使用指南。 -* 其次将订阅链接复制到客户端的指定位置不同平台的位置不太一样,自行查找。订阅更新完成之后就可以选择相应的节点开始使用翻墙服务了。 \ No newline at end of file diff --git a/自主降落开发日志.md b/自主降落开发日志.md deleted file mode 100644 index 3718354..0000000 --- a/自主降落开发日志.md +++ /dev/null @@ -1,34 +0,0 @@ -# 自主降落开发日志 - -## 2021-7-13 - -### 进展 - -* 在一个单独的app上可以自动执行无人机基于aruco 的自主降落 - -* 完成了初步移植工作 - -### 问题 - -* 视频流解码使用的是surfaceview 与现有的UX SDK 的FPV widget冲突,surfaceview只有显示的时候才能渲染,隐藏surfaceview时无法初始化DJICodecManager - -## 2021-7-22 - -### 进展 - -* 完成了M300的初步适配 - -### 问题 - -* M300可以挂载双云台或者单云台,需要获取云台当前的状态,是否多云台,和云台挂载的位置。双云台都挂载的时候需要获取所使用相机所在的位置。 - -**获取多云台连接状态** - -![image-20210722104805265](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210722104805265.png) - -**获取云台** - -![image-20210722104933952](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210722104933952.png) - - - diff --git a/自我介绍.md b/自我介绍.md deleted file mode 100644 index 4ba3861..0000000 --- a/自我介绍.md +++ /dev/null @@ -1,80 +0,0 @@ -# 自我介绍 - -* 飞控算法工作内容 - -与硬件、软件、结构等同事共同确定飞行器的主要参数,包括重量、动力、续航、功能,从而确定飞行器类型、确定各执行器和传感器的性能指标。 - -与嵌入式工程师沟通系统架构,确定程序中算法任务的执行频率、各个传感器调用方法、存储方法。 - -如果团队人多,根据人数拆解算法工作,比如几个人做组合导航,几个人做控制,组合导航里姿态和位置拆不拆开,高度分不分离出来。 - -如果只有一个人,先测传感器数据,最主要的是惯导,看输出值有无问题,如果有飞行器,直接上机,在真实的振动环境下看是否需要加低通滤波等处理,还包括气压计、超声波、毫米波、摄像头、GPS这些传感器也都需要测试。 - -写标定算法,标定加速度计、陀螺仪、磁力计(如有)。 - -写状态显示算法,如有LED时,什么颜色代表什么状态。 - -确定数据融合方案,现在主流的都是卡尔曼滤波,然后开始设计算法,在飞控板上调试,看姿态、位置、高度、速度等状态量估计值是否合理。 - -写控制算法,最简单常用的就是PID,在简单的环境下试飞、调参。 - -增加复杂环境下的逻辑处理,比如使用超声波测高时,飞行器飞过楼梯怎么处理,如果是倾转旋翼,倾转过程如何控制等。 - -FDI算法设计,用于隔离异常,比如GPS丢星。 - -如有任务设备,简单调试,比如控制相机曝光,操作执行机构。 - -功能开发,比如航线规划后飞自动任务,避障,跟踪,定点环绕,固定区域巡逻等。 - -跟踪大量试飞测试,确保稳定性。 - - - - - -​ 面试官好,我叫吴金辉,中国计量大学现代科技学院的计算机专业的学生,在校期间在学好专业课的同时在大一大二参加了两年中国国际飞行器设计挑战赛(CADC),大一主要是跟着学长学习,大二的时候我作为组长带领同学和学弟们参加比赛。我参加的项目是垂直起降载运,大致规则是,设计一个不超过两个电机的飞行器,但不能使用直升机,需要飞行器做到在起降区中装载货物按照一定的轨迹飞行之后,将货物投放到一个0.4M直径的圆筒中,由于起降区面积比较小飞行器只能垂直起降。这就导致只能设计一些非传统的机型,在此期间也接触并制作很多种无人机,尾坐式垂直起降,倾转旋翼无人机,变距四轴,最后根据机型的测试结果的综合考虑,选用了变距四轴无人机作为最终的方案。最终也取得了不错的成绩,拿到了两个国家一等奖,团队总成绩排名第二的好成绩。两年的参赛经验让我学到了很多东西,也让我对无人机这方面产生了浓厚的兴趣。由于大一大二的时候能力有限,参加比赛的时候更多的是对现有飞控的参数的调整和一些自定义的配置,修改一下混控器这些简单的操作。我在大三的时候主动去了解了一些无人机飞控开发的内容,同时也去了一家无人机公司实习。实习的公司是杭州若联科技,公司的主要业务是无人机集群灯光秀和工业无人机。我在实习期间也参与了一些项目,在实习期间参与了一些项目也学到了许多东西。通过这些项目的实战,让我对无人机系统有着更深入的了解。也积累了更多的经验。 - - - - - -请问为什么pid不需要建模呢?是因为参数最后依据实际情况来整定吗?可是开源飞控几乎都不需要调参,不管搭配很么鸡架什么电机什么桨,都能飞得不错,难道pid的参数与这些都无关吗?那与什么有关系呢? - -PID控制是只需要目标设定和反馈值就可以,反馈值可以用状态估计算法得到,有了这两个,pid就控制误差趋于零即可。开源飞控几乎不需要调参是因为,鲁棒性相对好些,机架或者电机之类的影响不会使性能差距很大(但是如果变化很大的话还是能感觉出来参数不合适的),所以一组参数就可以获得良好性能。所以,本身pid控制器就不是基于模型调出来的,当你飞行器变化一些参数,影响没有那么大。 - - - - - -遥控信号丢失判定决策 - -电池电压判定和决策 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/视觉降落流程.md b/视觉降落流程.md deleted file mode 100644 index b44a56f..0000000 --- a/视觉降落流程.md +++ /dev/null @@ -1,3 +0,0 @@ -# 视觉降落流程 - -![image-20210702085613779](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210702085613779.png) \ No newline at end of file diff --git a/计算机书.md b/计算机书.md deleted file mode 100644 index e5bcaf0..0000000 --- a/计算机书.md +++ /dev/null @@ -1,99 +0,0 @@ -# 计算机书 - -``` -Code Complete (2nd edition) by Steve McConnell -The Pragmatic Programmer -Structure and Interpretation of Computer Programs -The C Programming Language by Kernighan and Ritchie -Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein -Design Patterns by the Gang of Four -Refactoring: Improving the Design of Existing Code -The Mythical Man Month -The Art of Computer Programming by Donald Knuth -Compilers: Principles, Techniques and Tools by Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman -Gödel, Escher, Bach by Douglas Hofstadter -Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin -Effective C++ -More Effective C++ -CODE by Charles Petzold -Programming Pearls by Jon Bentley -Working Effectively with Legacy Code by Michael C. Feathers -Peopleware by Demarco and Lister -Coders at Work by Peter Seibel -Surely You're Joking, Mr. Feynman! -Effective Java 2nd edition -Patterns of Enterprise Application Architecture by Martin Fowler -The Little Schemer -The Seasoned Schemer -Why's (Poignant) Guide to Ruby -The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity -The Art of Unix Programming -Test-Driven Development: By Example by Kent Beck -Practices of an Agile Developer -Don't Make Me Think -Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin -Domain Driven Designs by Eric Evans -The Design of Everyday Things by Donald Norman -Modern C++ Design by Andrei Alexandrescu -Best Software Writing I by Joel Spolsky -The Practice of Programming by Kernighan and Pike -Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt -Software Estimation: Demystifying the Black Art by Steve McConnel -The Passionate Programmer (My Job Went To India) by Chad Fowler -Hackers: Heroes of the Computer Revolution -Algorithms + Data Structures = Programs -Writing Solid Code -JavaScript - The Good Parts -Getting Real by 37 Signals -Foundations of Programming by Karl Seguin -Computer Graphics: Principles and Practice in C (2nd Edition) -Thinking in Java by Bruce Eckel -The Elements of Computing Systems -Refactoring to Patterns by Joshua Kerievsky -Modern Operating Systems by Andrew S. Tanenbaum -The Annotated Turing -Things That Make Us Smart by Donald Norman -The Timeless Way of Building by Christopher Alexander -The Deadline: A Novel About Project Management by Tom DeMarco -The C++ Programming Language (3rd edition) by Stroustrup -Patterns of Enterprise Application Architecture -Computer Systems - A Programmer's Perspective -Agile Principles, Patterns, and Practices in C# by Robert C. Martin -Growing Object-Oriented Software, Guided by Tests -Framework Design Guidelines by Brad Abrams -Object Thinking by Dr. David West -Advanced Programming in the UNIX Environment by W. Richard Stevens -Hackers and Painters: Big Ideas from the Computer Age -The Soul of a New Machine by Tracy Kidder -CLR via C# by Jeffrey Richter -The Timeless Way of Building by Christopher Alexander -Design Patterns in C# by Steve Metsker -Alice in Wonderland by Lewis Carol -Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig -About Face - The Essentials of Interaction Design -Here Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky -The Tao of Programming -Computational Beauty of Nature -Writing Solid Code by Steve Maguire -Philip and Alex's Guide to Web Publishing -Object-Oriented Analysis and Design with Applications by Grady Booch -Effective Java by Joshua Bloch -Computability by N. J. Cutland -Masterminds of Programming -The Tao Te Ching -The Productive Programmer -The Art of Deception by Kevin Mitnick -The Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan -Paradigms of Artificial Intelligence Programming: Case studies in Common Lisp -Masters of Doom -Pragmatic Unit Testing in C# with NUnit by Andy Hunt and Dave Thomas with Matt Hargett -How To Solve It by George Polya -The Alchemist by Paulo Coelho -Smalltalk-80: The Language and its Implementation -Writing Secure Code (2nd Edition) by Michael Howard -Introduction to Functional Programming by Philip Wadler and Richard Bird -No Bugs! by David Thielen -Rework by Jason Freid and DHH -JUnit in Action -``` - diff --git a/试用期工作总结.md b/试用期工作总结.md deleted file mode 100644 index dc05fd2..0000000 --- a/试用期工作总结.md +++ /dev/null @@ -1,20 +0,0 @@ -# 试用期工作总结 - -## 工作学习情况 - -实现了无人机自主降落功能,在御2无人机上完成测试后,移植到M300上。并接入自动飞行平台,在执行任务返航后会自动降落至贴有降落标识物的机库上。 - -初步完成了基于UWB的无人机室内导航定位app,在室内使用UWB标签进行无人机的定位。任务模式使用录制复飞的方式进行,实时记录无人机的各种信息,复飞时根据录制的信息进行轨迹/位置控制。app基本框架搭完成,在进行功能验证和功能完善。 - -协助英俊进行现有复飞软件的应用层适配和bug修复 - -## 收获体会 - -将之前所学的知识,在实际项目中使用,并进行功能验证。自身之前所学东西得到了验证,同时熟悉了基于大疆无人机开发的工作流。并与之前所使用的PX4无人机开发工作流进行对比。两者各有优缺点。 - -之前的工作属于个人单打独斗,现在和团队一起进行协同工作,工作效率和工作体验都好了很多。 - -## 未来个人发展定位 - -个人定位偏向无人机的导航控制,使用各种方式实现无人机在不同环境下的定位导航,并在此基础上实现无人机的自动巡检功能。主要学习方向为slam,无人机导航算法,无人机飞控算法。 - diff --git a/远程桌面.md b/远程桌面.md deleted file mode 100644 index bb50f71..0000000 --- a/远程桌面.md +++ /dev/null @@ -1,19 +0,0 @@ -# 远程桌面 - -## rustdesk - -| 项目 | 公司电脑 | 家里电脑 | UWB 电脑 | -| ---- | ---------- | -------- | -------- | -| id | 29 078 604 | | | -| 密码 | wujinhui | | | -| | | | | - -## 向日葵 - - -| 项目 | 公司电脑 | 家里电脑 | UWB 电脑 | -| ---- | ---------- | -------- | -------- | -| id |496 782 610 | | | -| 密码 | wujinhui | | | -| | | | | - diff --git a/配置单.md b/配置单.md deleted file mode 100644 index d518df9..0000000 --- a/配置单.md +++ /dev/null @@ -1,15 +0,0 @@ -# 配置单 - -| 品类 | 型号 | 价格 | -| ---- | ----------------------- | ---- | -| CPU | AMD3600散片 | 979 | -| 主板 | 华擎 B450 | 799 | -| 散热 | 玄冰400 | 85 | -| 内存 | 威刚XPG ddr4 3000 8G *2 | 558 | -| 显卡 | 微星万图师1660/GTX 1030 | 2499 | -| SSD | SN550 1T | 0 | -| HDD | 无 | 0 | -| 机箱 | vector 1 | 539 | -| 电源 | EVGA 650W GM电源 | 799 | -| 合计 | | 4480 | - diff --git a/问题排查.md b/问题排查.md deleted file mode 100644 index 2338126..0000000 --- a/问题排查.md +++ /dev/null @@ -1,111 +0,0 @@ - - -## 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 deleted file mode 100644 index 966782f..0000000 --- a/高通无人机会议记录.md +++ /dev/null @@ -1,9 +0,0 @@ -# 高通无人机会议记录 - -* 计算能力较弱,只能进行简单的slam代码 -* 网络连接不够稳定大概100M带宽,延时挺高几百毫秒 -* 只用到相机和通信部分 -* 用的mavros -* 飞控部分存在问题 -* 没考虑过搭飞机实际测试 -* 使用phenix mini 连接高通平台,高通平台充当通信链路和图像数据采集,本地计算机做slam计算,使用ros通信。 \ No newline at end of file