Jiahonzheng's Blog

Jiahonzheng's Blog

BWU.

V-REP 路径规划算法与迷宫
项目地址:github.com/Jiahonzheng/Robotics 任务概要 在给定的迷宫场景中,找到唯一的通路,走出迷宫。 路径规划算法要求使用人工势场或RRT路径规划算法中的一种或多种算法。 作业提示: 使用Vision Sensor获取迷宫的全局地图。 构建二维全局地图与迷宫的映射关系。 使用RRT或人工势场规划出一条通路。 将通路映射到迷宫之中。 机器人巡线,走出迷宫。 完成情况 已学习并能较为熟悉使用V-REP Python Remote API接口。 已实现基于RRT路径规划算法的迷宫通路计算功能。 已实现RRT通路的剪枝功能。 已实现机器人按通路巡线的功能。 ...
V-REP 多车道巡线与避障
项目地址:github.com/Jiahonzheng/Robotics 任务概要 在给定的赛道中,实现多车道的避障和视觉巡线。 避障算法没有限定,可使用人工势场、RRT等路径规划算法。 车体大小、赛道信息以及参考资料在此处下载。 完成情况 已学习并能初步使用 V-REP Python Remote API 接口,实现 Python 与 V-REP 的功能交互。 已实现基于视觉传感器的多车道巡线功能。 已实现基于视觉传感器的多车道避障功能。 V-REP Python Remote API由于在上次实验中,我们已初步尝试 V-REP Remote API 接口的使用,积累了部分经...
前端路由实现方式
在 Web SPA 中,前端路由描述的 URL 与 UI 之间的单向映射关系,即 URL 变化引起 UI 页面的更新(无需刷新页面)。 核心问题上面我们提到,在前端路由中,当 URL 发生变化时,我们需要在不刷新页面的情况下,触发 UI 页面的更新。因此,在实现前端路由时,我们需要解决以下两个核心的问题。 如何检测 URL 是否变化? 如何改变 URL 却不引起页面刷新? 我们可以从 Hash 和 History 两种实现方式回答上述两个问题。 在 Hash 方式中,我们可以通过 hashchange 事件监听 URL 的变化,以下场景会触发 hashchange 事件:通过浏览器...
V-REP 视觉巡线小车
项目地址:github.com/Jiahonzheng/Robotics 任务概要 在Homework2的基础上,优化原有设计,并设计具有挑战性的路径。设计路径可以多样,可以是起始点在同一位置(环线),也可以不是,可含有以下各种难点: 道路断续 道路交叉 急转弯 巡线小车控制算法包括但不限于PID,但必须采用视觉巡线(不能贴地模拟光感巡线) 完成情况 已实现机器人视觉巡线功能,废弃原有的贴地传感方案。 已完成比赛路径的设计 视觉巡线由于我们在 HW2 中使用的是视觉传感器贴地模拟光感的实现方案,因此在本次作业中,我们需要使用“真正”的视觉巡线方案。在这个过程中,我们走了不少弯路,...
V-REP 光感巡线小车
项目地址:github.com/Jiahonzheng/Robotics 任务概要 参考文档中 Tutorial – Line Following BubbleRob 部分,学习: 巡线小车任务描述 自定义线路径的添加与编辑 光感巡线小车的简单逻辑与巡线效果 参考文章 Vision Sensors 章节,学习: 视觉传感器的概念 视觉传感器的参数设置 视觉传感器相关 API 学习 PID 算法原理 https://en.wikibooks.org/wiki/Control_Systems/Controllers_and_Compensators P、PI、PID控制等方案的异同 ...
V-REP 小车建模
项目地址:github.com/Jiahonzheng/Robotics 任务概要 参考文档中 Tutorial – BubbleRob Tutorial 部分,学习: 车身与轮子物理引擎的设计 动力学模型等参数的设置 传感器的添加与使用 驱动关节的设计与控制 控制脚本的编写 搭建四轮小车 搭建四轮小车,小车搭载一个单目彩色摄像头 尺寸、底盘参数可参考 DJI RoboMaster S1 进行设计 不采用麦克纳姆轮 编写简单脚本使得小车能呈S型路线行走,当碰到障碍物后能够绕行 完成情况 已初步熟悉 V-REP 软件的基本使用,如车身与轮子的物理引擎的设计、动力学模型的参数设...
UITableView 复用机制
复用机制UITableView 首先加载能够覆盖一屏幕的 UITableViewCell(具体个数要根据每个 cell 的高度而定)。 然后当我们往上滑动时(往下滑动同理),需要一个新的 cell 放置在列表的下方。此时,我们不去生成新的 cell 而是先从 UITableView 的复用池里去获取,该池存放了已经生成的、能够复用的 cell ,如果该池为空,才会主动创建一个新的 cell 。 复用池的 cell 是这样被添加至该池的:当我们向上滑动视图时(向下滑动同理),位于最顶部的 cell 会相应地往上运动,直至消失在屏幕上。当其消失在视图中时,会被添加至当前 UITableVie...
AR 虚拟按钮小游戏
项目地址:github.com/Jiahonzheng/Unity-3D-Learning 视频地址:www.bilibili.com/video/av80020277/ 课程讲义地址:https://pmlpml.github.io/unity3d-learning/12-AR-and-MR 环境配置在完成本次作业时,我在环境配置部分耽误了很多时间,以下是我最终的配置: Windows 10 1903 Unity 2019.2.17.f1 Vuforia Engine 8.6 设置 Unity首先,我们需要开启 Player Settings 选项卡中的 Vuforia AR 支持...
MySQL 与容器化
本次课程作业围绕着 MySQL 和容器化而展开的。 Hello Docker编写 Dockerfile我们需要编写 Dockerfile ,才可以构建 Docker 镜像,以下是一个简单的镜像构建文件。 123FROM ubuntuENTRYPOINT ["top", "-b"]CMD ["-c"] 在该文件中,我们指明镜像基于 ubuntu:latest 镜像,镜像启动后运行 top -b -c 命令。 执行 docker build . -t hello 命令,我们即可构建一个简单的 Docker 镜像。 运行容器在构建完容器后,我们可执行以下命令运行容器。 1docker run...
SWAPI 个人项目总结
团队地址:github.com/Just-for-Service-Computing 本人承担的工作在 SWAPI 项目中,我主要负责数据爬取、数据库构建、搭建 gin 脚手架的工作。 数据定义由于我们决定使用 Golang 实现 https://swapi.co 的数据爬取,因此我们需要定义相关的数据结构体定义。以下是 Film 结构体的定义,我们为其添加了 tag 字段,目的是为了实现结构体的序列化与反序列化。 123456789101112131415type Film struct { Title string `json:"title"` Epis...
avatar
Jiahonzheng
Mr.Tseng