下半年学习规划

下半年学习规划

以往学习的比较杂乱,现在统一制定下下半年的学习规划,年底截止,完成的打钩

阅读

  • 财经类两本
  • 悬疑、科幻、历史类
    • 《明朝1566》
    • 《白夜行》
    • 《放学后》
  • 英语阅读

工程能力

  • 掌握GO编程、阅读3本相关书籍、并重构IOT通信系统
  • 掌握Docker应用、阅读1本相关书籍,时间富足可以学习Kubernetes
  • 掌握Redis、MySQL集群的使用,并深入了解
  • 掌握Python的高级使用,并参加Kaggle比赛

算法能力

  • 学习基本的机器学习知识并应用起来
    • 线性回归
    • 逻辑回归
    • 神经网络
    • 算法评估
    • 支持向量机
    • 聚类
    • 异常检测
    • 实战
  • 学习深度学习相关知识
  • 复习数据结构和算法,参考书籍算法导论

Docker使用

  Docker使用Google公司推出的Go语言进行开发实现,基于Linux 内核的cgroup,namespace,以及 AUFS 类的Union FS等技术对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等,极大的简化了容器的创建和维护。而虚拟机会虚拟出一套硬件,在其上运行一套操作系统, 因此Docker 技术比虚拟机技术更为轻便、快捷。

快速上手

安装

curl -sSL https://get.docker.com/ |sh
注意使用国内镜像源

运行

docker run --name demo -it -d centos

基本概念

镜像

镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。在构建的过程中是一层一层构建的,前一层是后一层的基础,每一层构建完就不会发生改变。
相关命令:


Usage:docker image COMMAND Manage images Commands: build Build an image from a Dockerfile history Show the history of an image import Import the contents from a tarball to create a filesystem image inspect Display detailed information on one or more images load Load an image from a tar archive or STDIN ls List images prune Remove unused images pull Pull an image or a repository from a registry push Push an image or a repository to a registry rm Remove one or more images save Save one or more images to a tar archive (streamed to STDOUT by default) tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

容器

  容器可以理解为镜像运行时的实体,可以被创建、启动、停止、删除、暂停等
相关命令:

Usage:docker container COMMAND
Manage containers
Commands:
  attach      Attach local standard input, output, and error streams to a running container
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff        Inspect changes to files or directories on a container's filesystem
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  inspect     Display detailed information on one or more containers
  kill        Kill one or more running containers
  logs        Fetch the logs of a container
  ls          List containers
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  prune       Remove all stopped containers
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  run         Run a command in a new container
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  wait        Block until one or more containers stop, then print their exit codes

注意事项:

  • 在执行命令的时候推荐用exec而不是attach,避免exit的时候容器退出
  • 可以使用inspect 命令查看容器详细信息,使用logs命令查看相关日志,用于定位错误
  • 容器与容器之间默认是无法互联的,可以使用docker-compose部署或使用link参数在运行时组网,不过建议使用docker create network命令构建网络

仓库

镜像存储分发的地方,类似于GITHUB,推荐使用阿里云做加速

其它内容

数据管理

数据卷

数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:

  • 数据卷可以在容器之间共享和重用

  • 对数据卷的修改会立马生效

  • 对数据卷的更新,不会影响镜像

  • 数据卷默认会一直存在,即使容器被删除

 docker volume create my-vol
 docker volume ls
 docker volume rm my-vol

网络连接

  • -p 映射 TCP/UDP 不一样
  • 创建网络
  • 容器互联

DockerFile的编写

  • 参考网上教程

Compose的使用

  • 使用PIP安装,安装后创建compose文件即可使用,管理起来比较方便而且默认是互联的

Kubernetes的使用

一些示例

Docker run --name test -it -d centos bash 启动交互式命令行
Docker run --name redis -it -d redis redis-server --appendonly yes -v /home/work/data/redis:/data 使用AUFS在宿主机保存Redis数据
Docker run --name test -it -d -p 23:22  centos bash 端口23 映射到22

生活

  又很久没来了,最近一个半月好像也没特别重要的事发生,去了趟丽江、大理,陪老婆孩子回了趟扬州,也提了晋升材料,平平淡淡。
  最近生活也挺枯燥的,上班、回家、哄孩子、做饭、睡觉,日子一天天过,总觉得少了点什么。刚刚出去打乒乓球浑身湿透,感觉挺好的,生命在于运动,运动中无其它杂念,也是畅快。
  上学的时候一心想赚钱,会想着什么时候能挣到自己的第一个五十万、一百万,想着什么时候能工资到五十万、一百万。现在回过头来看,反而觉得没这么重要了,简单的生活、简单的人际关系未尝不好,每个人追求的不太一样,我更倾向于精神与身体上的自由。
  今年投资很失败,累积亏损了7万左右,投资本来没什么确定性的东西,是我承受能力太差、太贪心、自制力不强,或许本不该做这件事。原本只想跑赢通胀,却输了很多时间和金钱,得不偿失了。
  竟然都8月了,一年又一年,又收获了什么呢?
  

第一次试飞

前天五四青年节提前下班,回家迫不及待的把我的四轴拿出去飞了下,毫无悬念,炸鸡了。损失不是太大,脚架断了一根,电调一个电感坏了,去网上买了根16mm碳纤管、22uh电感,等到货了再修理下。
炸鸡主要有以下几点导致的:
– 四个电机电调没有校准好,转速不太一致
– 飞控的水平没有校准好,导致飞的时候老是往一边偏
– 没有合适的长地,不太敢飞,忽高忽低,操作不方便,以后去空旷的地方比较好

组四轴无人机总结

最近组装了个四轴无人机,轴距650mm,负载4KG+,踩了一些坑,分享下。

基本组成:

  • 机架:飞越650
  • 电机:朗宇380KV
  • 电调:好赢40A
  • 飞控:PixHawk
  • GPS:Ublox M8N
  • 桨:1555碳纤桨
  • 桨座:快拆桨座
  • 电池:6S 10000MAH
  • 遥控器:FrSky X7
  • 接收机:FrSky X8R
  • 充电器:B6平衡充
  • 信号线:22AWG硅胶线
  • 电源线:14AWEG硅胶线
  • 接头:2.54mm镀金杜邦端子、杜邦外壳,XT60公头、母头
  • 焊接工具:烙铁或吹焊机、松香、焊锡、镊子(如果用烙铁买大功率点,不然焊接头不太容易)
  • 辅助设备:万用表、螺丝刀、剥线器、剪刀、钳子、皮筋(绑在钳子上可以固定接头)
  • 辅助材料:魔术贴(捆绑设备、电池)、尼龙扎带、热缩管、3M双面胶
  • 螺丝:M2 M2.5 M3螺丝,长度不定,不确定螺丝内径可以用游标卡尺或千分尺测量,也可用细线绕10圈测量,普通尺子不行
  • 电流计:非必须
  • 数传:非必须
  • OSD:非必须
  • 图传:非必须
  • 空速计:非必须

注意事项

  • 玩航模很烧钱很费时间,效果还可能不理想,还可能不让在家周围飞,量力而行
  • 国内电子设备假货泛滥,低端仿制很多,注意辨别,尤其是飞控、GPS这种设备
  • 提前设计好设备的安装位置和线长,保证机架整洁,强迫症可以忽略
  • 飞控最后安装,提前调试好,不然要来回拆卸
  • 调试指南针的时候远离一起可能干扰源,不然结果是不准确的
  • 注意安全,不到最后一步万万不可安装螺旋桨,非常危险,安装的时候注意正反桨
  • 多学习,多看文档,国内社区水平不高建议看国外论坛

附录

PixHawk飞控接线图

飞机选装方向与桨叶的安装
  • CW 顺时针螺旋桨,绿色图示
  • CCW逆时针螺旋桨 ,蓝色图示
遥控器控制类型

遥控器常见的一共有2个控制模式:
– Model1 日本手:左边的摇杆控制 Pitch俯仰 和 YAW方向,右边的摇杆控制 Throttle油门和ROLL横滚

– Model2 美国手:左边的摇杆控制 Throttle油门 和YAW方向,右边的摇杆控制 Pitch俯仰和ROLL横滚

YAW 偏航是绕Z轴旋转 Pitch是俯仰绕Y轴旋转,ROLL横滚绕X轴旋转(X轴为飞机前进方向)

解锁飞行器
  • 在解锁之前,请确保在一个空旷无人的环境进行测试,以免出现意外情况。
  • 详细检查硬件安装是否正确(特别是电调插线、飞行器固件、螺旋桨方向),确认没有问题之后,执行以下步骤
  • 打开你的遥控器发射机
  • 将电池插入到飞行器。飞控状态灯应该是红色蓝色交替闪烁(自检过程),自检中不要移动飞行器
  • Pre-Arm将自动运行,正常自检后,会 闪烁 蓝色灯 或者 绿色灯, 说明Pre-arm无错误,可以解锁。如果 闪烁黄色灯 ,请参照上一个章节 Pre-Arm 报错信息分析 指南进行排除错误
  • 设置正确模式 :将模式设置为 增稳Stabilize、 定高ATLhold 或者定点Loiter(需要室外GPS锁定) 新手推荐使用增稳或者定高
  • 解锁安全开关: 长按解锁安全开关,直到安全LED常亮状态(闪烁为锁定不输出pwm信号,常亮为解锁输出pwm信号)
  • 解锁遥控器:将遥控器油门打到最低,YAW方向达到最右,保持10秒,RGB状态灯会红蓝交替闪烁,完成解锁,松开YAW
  • 成功解锁:螺旋桨将怠速旋转起来,看起来是有点恐怖,但是这个一个安全设置,提醒已经成功解锁。可以通过MOT_SPIN_ARMED参数调整速度或者为0关闭
  • 起飞:推高油门起飞,并根据姿态去控制方向(如果新手不熟悉控制,可以先去练习飞行模拟器,以免出现炸鸡而造成人员和财产损失)
  • 如果解锁后,15秒内无任何操作,将会自动上锁,解锁后在未起飞的状态下,理想的姿态跟实际姿态相差过大会自动上锁(如大幅度打roll杆或者用手晃动飞行器)
上锁飞行器

上锁飞行器执行以下操作:
– 检查你的飞行模式开关设置为 Stabilize增稳 、定高 AltHold 或者 定点 Loiter
– 油门保持最低和方向YAW最左 (与解锁反方向)
– 按住 安全开关-直到闪烁
– 拔掉飞行器电池
– 关闭遥控器发射机