本文探讨了如何利用遗传算法训练虚拟汽车实现自动泊车。通过模拟进化过程,本项目展示了代表汽车行为的随机“基因组”如何通过一代代的更迭逐渐优化。
开发过程分为三个关键部分:
* **肌肉**:实现引擎和转向控制,使车辆能够移动。
* **眼睛**:添加传感器,以便汽车探测障碍物。
* **大脑**:定义一个函数,将传感器输入转换为转向和油门指令。
通过遗传算法,汽车的“大脑”会随时间进化。起初,车辆的动作是随机且无效的,但随着进化,它们逐渐学会了驶向停车位并避开障碍物。到第 40 代时,汽车的泊车精度已显著提高。该项目使用 TypeScript 编写,包含一个基于浏览器的交互式模拟器,允许用户实时观察进化过程。本指南旨在作为遗传算法在机器人技术和自动驾驶导航应用方面的入门教程。
**Cartopolis** 是一个开源、可步行的现实世界 3D 数字孪生项目,作为一个基于浏览器的社交地图运行。它基于 Rust 语言编写的 Bevy 引擎构建,提供了一个持久化的共享环境,用户可以在其中探索全球地理位置、与 3D 建筑模型互动,并体验实时的天气与光照效果。
主要功能包括:
* **详细数据:** 集成了官方公共登记册(如荷兰的 BAG 和 AHN),以提供精确的建筑结构、交通数据和地形信息。在这些数据集覆盖范围之外的区域,则使用 OpenStreetMap。
* **社交连接:** 用户可以通过基于距离的语音和文本、端到端加密的私人聊天以及共享地图图钉进行交流。
* **协作基础设施:** 支持 3D 对象放置、脚本编写和模块化内容导入,使其成为建筑师、规划师和当地社区的实用工具。
* **易用性:** 该项目支持自托管,完全免费且跨平台,客户端适用于浏览器(通过 WebGPU)、Windows、Linux 和 Android。
通过将现实世界的地理数据与互动社交功能相结合,Cartopolis 成为了一个用于数字空间营造的开放、去中心化的公共基础设施。
在一次令人沮丧的学校木工课经历后,作者多年来一直对 DIY 敬而远之。然而,为了给狗狗制作一扇定制栅栏,作者重拾了这项手艺。在 YouTube 教程的指导下,凭借着“边做边学”的心态,作者成功完成了栅栏的制作,随后又挑战了更具雄心的项目,包括花园高架床和客厅壁龛搁板。
这些项目让作者掌握了划线、材料采购和工具管理等基本技能。虽然早期的尝试常因急于完成收尾工作或使用变形木材而出现技术失误,但每一次成功都增强了信心。作者现在已经购置了一台专业级斜切锯,并正在建造一个定制工作台,以支持未来的创作。
回首这些经历,作者欣然接受了自己作为一名“足够好”的 DIY 爱好者的身份。与其追求完美,他们更乐于从创造功能性、改善居家环境的解决方案中获得真正的满足感。这段旅程让作者从一名新手蜕变为一名能干的业余爱好者,并为自己能够独立完成房屋维护和建造的能力感到自豪。