<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://wsxq2.55555.io/</id><title>小强的博客</title><subtitle>计算机技术博客</subtitle> <updated>2026-05-15T09:50:16+08:00</updated> <author> <name>wsxq2</name> <uri>https://wsxq2.55555.io/</uri> </author><link rel="self" type="application/atom+xml" href="https://wsxq2.55555.io/feed.xml"/><link rel="alternate" type="text/html" hreflang="zh-CN" href="https://wsxq2.55555.io/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 wsxq2 </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>设计模式</title><link href="https://wsxq2.55555.io/blog/2026/01/24/design-patterns/" rel="alternate" type="text/html" title="设计模式" /><published>2026-01-24T00:00:00+08:00</published> <updated>2026-01-24T00:00:00+08:00</updated> <id>https://wsxq2.55555.io/blog/2026/01/24/design-patterns/</id> <content type="text/html" src="https://wsxq2.55555.io/blog/2026/01/24/design-patterns/" /> <author> <name>wsxq2</name> </author> <category term="软件开发" /> <summary>本文是阅读《（GoF：设计模式——可复用面向对象软件的基础》一书的笔记，对书中阐述的所有设计模式进行了总结，并额外参考了一些其他资料，结合了笔者的思考。 概述 设计模式是为了创建可复用的面向对象的软件而出现的。可复用有这么重要吗？答案是有的。可复用的软件有两大好处：一是方便快速构建类似的软件，二是能更好地适应变化。 对于前者，软件的可复用性一旦提高，就可以形成多个可复用的模块和框架，避免写大量重复的代码，以及大量地手动复制代码片段。对于后者，由于软件的需求随时可能发生变化，提前预判这些变化或者说为变化做准备非常有价值，而复用性决定了为了适应这些变化需要修改代码的量，因为复用性高则往往意味着模块化好，即模块高内聚、低耦合，自然地，应对变化也就更容易。 设计模式的核心要点如下： 对接口编程，而非对实现编程。即使用时，不要使用具体的类，而是使用抽象类，抽象类中定义了必要的接口...</summary> </entry> <entry><title>ROS2 建图和导航实战</title><link href="https://wsxq2.55555.io/blog/2025/09/02/ROS2%E5%BB%BA%E5%9B%BE%E5%92%8C%E5%AF%BC%E8%88%AA%E5%AE%9E%E6%88%98/" rel="alternate" type="text/html" title="ROS2 建图和导航实战" /><published>2025-09-02T00:00:00+08:00</published> <updated>2025-10-09T14:44:48+08:00</updated> <id>https://wsxq2.55555.io/blog/2025/09/02/ROS2%E5%BB%BA%E5%9B%BE%E5%92%8C%E5%AF%BC%E8%88%AA%E5%AE%9E%E6%88%98/</id> <content type="text/html" src="https://wsxq2.55555.io/blog/2025/09/02/ROS2%E5%BB%BA%E5%9B%BE%E5%92%8C%E5%AF%BC%E8%88%AA%E5%AE%9E%E6%88%98/" /> <author> <name>wsxq2</name> </author> <category term="ROS" /> <summary>概述 我们在 ROS1 建图和导航实战 中使用的 ROS 版本为 ROS1 noetic，基于 Ubuntu 20.04, 使用的 SLAM 算法是 gmapping 和 cartographer，而导航算法是 navigation。在其中的“下一步计划”章节中，提到了“尝试 ROS2 及其新特性”，本文即是相应的尝试。本文使用的 ROS 版本为 ROS2 humble，基于 Ubuntu 22.04，SLAM 算法为 cartographer，导航算法为 nav2。 ROS2 相关资源如下： ROS2 的设计论文：Robot Operating System 2: Design, architecture, and uses in the wild | Science Robotics ROS2 各个组件的设计思想：Design ROS2 命令行的参考手册：ros...</summary> </entry> <entry><title>Docker + ROS2 开发环境搭建指南</title><link href="https://wsxq2.55555.io/blog/2025/07/29/docker-ros2-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E6%8C%87%E5%8D%97/" rel="alternate" type="text/html" title="Docker + ROS2 开发环境搭建指南" /><published>2025-07-29T00:00:00+08:00</published> <updated>2026-05-11T10:02:44+08:00</updated> <id>https://wsxq2.55555.io/blog/2025/07/29/docker-ros2-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E6%8C%87%E5%8D%97/</id> <content type="text/html" src="https://wsxq2.55555.io/blog/2025/07/29/docker-ros2-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E6%8C%87%E5%8D%97/" /> <author> <name>wsxq2</name> </author> <category term="Docker" /> <summary>概述 本文介绍了如何使用 Docker 容器化技术搭建 ROS2 开发环境，包括官方镜像资源、相关学习资源、实践案例以及问题及解决方案等内容。通过容器化部署，可以实现环境隔离、快速部署和跨平台兼容，大大提升 ROS2 开发效率。 本文重点在于 Docker 和 ROS2 结合使用这一场景，着重说明遇到的几个案例及相关的配置文件，对于 Docker 本身的使用指南建议查阅 Docker 使用指南，关于 Docker 的安装和配置请查看其中的 相应章节 关于在 Windows 上搭建 ROS 环境的建议: 如果你想搭建过程比较简单，那么建议你使用 WSL，WSL 支持安装多个 Ubuntu 版本，包括 20.04、22.04、24.04等，这对于安装不同 ROS 版本是非常友好的。 如果你相比简单性，更看重可移植性（比如你换了个电脑）和移植的快速性，那么建议你结合 WSL 使用...</summary> </entry> <entry><title>ROS1 建图和导航实战</title><link href="https://wsxq2.55555.io/blog/2025/06/26/ROS%E5%BB%BA%E5%9B%BE%E5%92%8C%E5%AF%BC%E8%88%AA%E5%AE%9E%E6%88%98/" rel="alternate" type="text/html" title="ROS1 建图和导航实战" /><published>2025-06-26T00:00:00+08:00</published> <updated>2025-10-09T11:59:33+08:00</updated> <id>https://wsxq2.55555.io/blog/2025/06/26/ROS%E5%BB%BA%E5%9B%BE%E5%92%8C%E5%AF%BC%E8%88%AA%E5%AE%9E%E6%88%98/</id> <content type="text/html" src="https://wsxq2.55555.io/blog/2025/06/26/ROS%E5%BB%BA%E5%9B%BE%E5%92%8C%E5%AF%BC%E8%88%AA%E5%AE%9E%E6%88%98/" /> <author> <name>wsxq2</name> </author> <category term="ROS" /> <summary>概述 ROS（Robot Operating System，机器人操作系统）是一个为机器人软件开发提供的开源框架。它集成了硬件抽象、底层驱动、常用功能实现、消息传递、包管理等功能，支持模块化开发和分布式计算，广泛应用于学术和工业领域的机器人。需要注意的是，虽然它名为操作系统，实质上是个框架，也可简单理解为众多软件的集合。 ROS 中有众多开源组件可供使用，以实现一个机器人应该具备的各种功能，如自主行走、物体位姿识别、运动控制等。本文重点关注其中的自主行走部分。 机器人的自主行走一般涉及到两个部分：建图和导航。建图方面，如今通常使用 SLAM 方式，SLAM 全称是 Simultaneous Localization and Mapping，即“同时定位与建图”，它能让机器人在行走过程中自动定位和建图；导航方面，即提供一个对应场景的地图，再给定一个目标地点，机器人就能自主地规划路...</summary> </entry> <entry><title>使用 VSCode 打造多平台多语言通用的 IDE</title><link href="https://wsxq2.55555.io/blog/2025/05/26/%E4%BD%BF%E7%94%A8vscode%E6%89%93%E9%80%A0%E5%A4%9A%E5%B9%B3%E5%8F%B0%E5%A4%9A%E8%AF%AD%E8%A8%80%E7%9A%84IDE/" rel="alternate" type="text/html" title="使用 VSCode 打造多平台多语言通用的 IDE" /><published>2025-05-26T00:00:00+08:00</published> <updated>2026-03-29T17:26:15+08:00</updated> <id>https://wsxq2.55555.io/blog/2025/05/26/%E4%BD%BF%E7%94%A8vscode%E6%89%93%E9%80%A0%E5%A4%9A%E5%B9%B3%E5%8F%B0%E5%A4%9A%E8%AF%AD%E8%A8%80%E7%9A%84IDE/</id> <content type="text/html" src="https://wsxq2.55555.io/blog/2025/05/26/%E4%BD%BF%E7%94%A8vscode%E6%89%93%E9%80%A0%E5%A4%9A%E5%B9%B3%E5%8F%B0%E5%A4%9A%E8%AF%AD%E8%A8%80%E7%9A%84IDE/" /> <author> <name>wsxq2</name> </author> <summary>概述 虽然我是 vim/nvim 爱好者，但在用过 vscode 之后也不得不承认 vscode 也非常好用，甚至在某些方面比 vim 还好用，相比 vim/nvim，它有以下优势： 学习成本低：vscode 基本不需要通过专门阅读其官方文档来学习，它是直观的、容易理解的、形象的。 具备一定的定制能力：vscode 本身只是一个文本编辑器，类似记事本，也类似 vim/nvim。但它的拓展机制（类似 vim 的插件机制，后文也称之为插件）让它可以实现各种功能，从而可以按需拓展。除了拓展机制，还有其 json 格式的配置文件也非常容易阅读和理解，也容易修改。 开箱即用：vscode 基本不需要额外的配置，打开即可用，拓展方面也是安装好后基本就能用了，不需要单独配置，甚至不需要重启 vscode 就能生效。 诸多好用的细节：包括编辑器右侧的预览条、差异条、错误条，最下...</summary> </entry> </feed>
