<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[seaofbits的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/seaofbits</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; seaofbits]]></copyright><item><title><![CDATA[拒绝VSCode菜单列表的圆角！]]></title><link>https://blog.youkuaiyun.com/seaofbits/article/details/125713868</link><guid>https://blog.youkuaiyun.com/seaofbits/article/details/125713868</guid><author>seaofbits</author><pubDate>Mon, 11 Jul 2022 08:30:00 +0800</pubDate><description><![CDATA[背景：今天更新了VSCode之后，我发现所有的菜单列表都变成了圆角，和原始的UI设计显得非常格格不入。尤其是我还在用Win10，可能Win11用户还能接受一些， 反正我觉得不能忍受。排查：通过开发人员工具，看到菜单列表的元素的css类是，然后通过github的"仓库内代码查找"，在vscode源码里发现了关键文件menu.ts，然后发现了关键的行第290行。然后通过git blame查找引入这行修改的提交，发现了是第149187号pull request在2022年5月份引入的修改，该修改在1个月的内测结束]]></description><category></category></item><item><title><![CDATA[Ubuntu 18.04国内源apt-get update报404的一种可能错误]]></title><link>https://blog.youkuaiyun.com/seaofbits/article/details/123647256</link><guid>https://blog.youkuaiyun.com/seaofbits/article/details/123647256</guid><author>seaofbits</author><pubDate>Mon, 21 Mar 2022 22:01:02 +0800</pubDate><description><![CDATA[问题：如下，apt-get update下不下来。


$ sudo apt-get update
Ign:1 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu bionic InRelease
Hit:2 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu bionic Release
Get:3 http://mirrors.aliyun.com/ubuntu bionic InRelease [242 kB]
Ge.]]></description><category></category></item><item><title><![CDATA[ROS源码分析-week13]]></title><link>https://blog.youkuaiyun.com/seaofbits/article/details/122203851</link><guid>https://blog.youkuaiyun.com/seaofbits/article/details/122203851</guid><author>seaofbits</author><pubDate>Tue, 28 Dec 2021 21:58:01 +0800</pubDate><description><![CDATA[ROS源码分析-week13

2021SC@SDUSC

1. 本周工作目标

这周继续阅读navigation仓库里的代码。结合实际情况，本周的工作目标如下：


	阅读move_base包裹的文档和源码，明白这个包裹的作用
	
2. 阅读move_base包裹的文档和源码

我们找到官方wiki：



由文档得知，move_base包定义了一个move_base节点，通过它来实现导航的核心功能。

那么，这个包裹具体的结构是怎样的呢？先看目录结构：



可以看见文件目录相对比较简单。

我们直接.]]></description><category></category></item><item><title><![CDATA[ROS源码分析-week12]]></title><link>https://blog.youkuaiyun.com/seaofbits/article/details/122203843</link><guid>https://blog.youkuaiyun.com/seaofbits/article/details/122203843</guid><author>seaofbits</author><pubDate>Tue, 28 Dec 2021 21:57:30 +0800</pubDate><description><![CDATA[2021SC@SDUSC

1. 本周工作目标

这周继续阅读navigation仓库里的代码。结合实际情况，本周的工作目标如下：


	阅读amcl包裹的文档和源码，明白这个包裹的作用
	
2. 阅读amcl包裹的文档和源码

再次找到官方wiki：



由文档得知，amcl包裹是通过自适应蒙特卡罗粒子定位方法，来在地图中定位机器人位置的一个包。

那么，这个包裹具体的结构是怎样的呢？先看目录结构：


andy@virtual-machine:~/navigation/amcl$ tree .
.
├]]></description><category></category></item><item><title><![CDATA[ROS源码分析-week11]]></title><link>https://blog.youkuaiyun.com/seaofbits/article/details/122203834</link><guid>https://blog.youkuaiyun.com/seaofbits/article/details/122203834</guid><author>seaofbits</author><pubDate>Tue, 28 Dec 2021 21:56:54 +0800</pubDate><description><![CDATA[2021SC@SDUSC

1. 本周工作目标

这周继续阅读navigation仓库里的代码。结合上周分析，本周的工作目标如下：


	阅读costmap_2d包裹的内容
	
2. 阅读ros官方tutorials内容

首先使用tree命令观察包裹结构：


andy@virtual-machine:~/navigation/costmap_2d$ tree .
.
├── cfg
│  ├── Costmap2D.cfg
│  ├── GenericPlugin.cfg
│  ├── Infla...]]></description><category></category></item><item><title><![CDATA[ROS源码分析-week10]]></title><link>https://blog.youkuaiyun.com/seaofbits/article/details/122176428</link><guid>https://blog.youkuaiyun.com/seaofbits/article/details/122176428</guid><author>seaofbits</author><pubDate>Mon, 27 Dec 2021 17:15:40 +0800</pubDate><description><![CDATA[2021SC@SDUSC

1. 本周工作目标

这周使用VSCode，来阅读一下navigation仓库里许多功能包的代码。结合实际情况，本周的工作目标如下：


	下载仓库，清点重点的包
	
	
	阅读nav_core功能包
	
2. 下载仓库，分析重点的包

首先git clone下载仓库，然后用vscode打开，发现里面有很多包：



然后用一个静态代码分析工具understand初步分析这个文件夹里包裹的依赖情况，生成依赖图如下：



可以看见，最核心的包是costmap_2d和nav_cor]]></description><category></category></item><item><title><![CDATA[ROS源码分析-week9]]></title><link>https://blog.youkuaiyun.com/seaofbits/article/details/122011140</link><guid>https://blog.youkuaiyun.com/seaofbits/article/details/122011140</guid><author>seaofbits</author><pubDate>Sat, 18 Dec 2021 13:27:48 +0800</pubDate><description><![CDATA[2021SC@SDUSC

1. 本周工作目标

这周继续阅读ros导航部分的代码，希望能大致理解导航部分ros包的架构。结合实际情况，本周的工作目标如下：


	详细分析架构图
	
	
	根据架构图，分析各部分对应的具体的代码包
	
2. 导航架构图分析

首先复习一下上一章在wiki里发现的的架构图：



我们详细分析一下这张图的各个部分：

包名
			来源
			功能
			备注
		move_base
			官方提供
			整合各种信息来源，用dijstra或者A*算法规划机器人运动路径
			]]></description><category></category></item><item><title><![CDATA[ROS源码分析-week8]]></title><link>https://blog.youkuaiyun.com/seaofbits/article/details/122011121</link><guid>https://blog.youkuaiyun.com/seaofbits/article/details/122011121</guid><author>seaofbits</author><pubDate>Sat, 18 Dec 2021 13:24:23 +0800</pubDate><description><![CDATA[2021SC@SDUSC

1. 本周工作目标

前面几周阅读了ros core部分的ros master和ros topic方面的源码，注重于一些核心、通用库的实现。本周开始，我们要进入另一部分的阅读，阅读导航库的源码，探究其实现。结合实际情况，本周的工作目标如下：


	阅读ros wiki，了解导航库源码结构
	
	
	结合文档和源码结构，搭建阅读环境
	
2. ros导航库结构

回到最开始的wiki（RecommendedRepositoryUsage/CommonGitHubOrganizati]]></description><category></category></item><item><title><![CDATA[ROS源码分析-week7]]></title><link>https://blog.youkuaiyun.com/seaofbits/article/details/121796055</link><guid>https://blog.youkuaiyun.com/seaofbits/article/details/121796055</guid><author>seaofbits</author><pubDate>Wed, 08 Dec 2021 17:12:10 +0800</pubDate><description><![CDATA[2021SC@SDUSC

1. 本周工作目标

上周没能阅读完节点“接受topic message”部分的代码，本周继续阅读。于是，本周的工作目标如下：


	根据talker and listener样例，调试阅读ros core topic的message接收部分的代码。
	
2. ros里topic message的接收

我们先看ros_catkin_ws/install_isolated/share/rospy_tutorials/001_talker_listener/listener.py文]]></description><category></category></item><item><title><![CDATA[ROS源码分析-week6]]></title><link>https://blog.youkuaiyun.com/seaofbits/article/details/121795752</link><guid>https://blog.youkuaiyun.com/seaofbits/article/details/121795752</guid><author>seaofbits</author><pubDate>Wed, 08 Dec 2021 17:04:26 +0800</pubDate><description><![CDATA[2021SC@SDUSC

1. 本周工作目标

上周只阅读了ros节点注册部分的代码，本周准备继续阅读节点收发message的代码。结合实际情况，本周的工作目标如下：


	根据talker and listener样例，调试阅读ros core topic的message收发部分代码。
	
2. ros里topic message的发送

我们先看ros_catkin_ws/install_isolated/share/rospy_tutorials/001_talker_listener/talker]]></description><category></category></item><item><title><![CDATA[ROS源码分析-week5]]></title><link>https://blog.youkuaiyun.com/seaofbits/article/details/121612908</link><guid>https://blog.youkuaiyun.com/seaofbits/article/details/121612908</guid><author>seaofbits</author><pubDate>Mon, 29 Nov 2021 16:23:40 +0800</pubDate><description><![CDATA[2021SC@SDUSC

1. 本周工作目标

这周继续ros通信部分的源码，侧重点在于注重"topic是怎么注册的？publisher是怎么注册的？"。结合实际情况，本周的工作目标如下：


	根据talker and listener样例，调试阅读ros core topic注册部分代码
	
2. ros里topic publisher的注册

我们先看ros_catkin_ws/install_isolated/share/rospy_tutorials/001_talker_listener/ta]]></description><category></category></item><item><title><![CDATA[ROS源码分析-week4]]></title><link>https://blog.youkuaiyun.com/seaofbits/article/details/121197076</link><guid>https://blog.youkuaiyun.com/seaofbits/article/details/121197076</guid><author>seaofbits</author><pubDate>Sun, 07 Nov 2021 21:00:45 +0800</pubDate><description><![CDATA[2021SC@SDUSC

1. 本周工作目标
本周阅读ros通信部分的代码。结合实际情况，本周的工作目标如下： 探究ros消息的类型转译实现...
]]></description><category></category></item><item><title><![CDATA[ROS源代码分析-week3]]></title><link>https://blog.youkuaiyun.com/seaofbits/article/details/121023265</link><guid>https://blog.youkuaiyun.com/seaofbits/article/details/121023265</guid><author>seaofbits</author><pubDate>Fri, 29 Oct 2021 07:00:00 +0800</pubDate><description><![CDATA[2021SC@SDUSC

1. 本周工作目标
这周继续阅读代码，从roscore转向应用程序的层次。结合实际情况，本周的工作目标如下：

阅读ros官方tutorials内容

2. 阅读ros官方tutorials内容
我们看ros官方给出的toturials的内容...]]></description><category></category></item><item><title><![CDATA[ROS源码分析-week2]]></title><link>https://blog.youkuaiyun.com/seaofbits/article/details/120889162</link><guid>https://blog.youkuaiyun.com/seaofbits/article/details/120889162</guid><author>seaofbits</author><pubDate>Thu, 21 Oct 2021 16:25:45 +0800</pubDate><description><![CDATA[2021SC@SDUSC

1. 本周工作目标

在上周完成了代码的下载、编译之后，这周要正式建立代码的阅读环境了。结合实际情况，本周的工作目标如下：


	建立VSCode代码调试环境
	
	
	通过调试初步阅读ROS Master的源码
	
2. 建立VSCode阅读环境

对于这种“相对小众又灵活”的调试需求，最适合的工具就是VSCode了。这里选用的调试解决方案是：在Windows宿主中启动VSCode，用SSH连接虚拟机进行调试。

网上有很多类似的配置教程，这里略过了详细的配置了。配置过程中遇.]]></description><category></category></item><item><title><![CDATA[ROS源码分析-week1]]></title><link>https://blog.youkuaiyun.com/seaofbits/article/details/120713940</link><guid>https://blog.youkuaiyun.com/seaofbits/article/details/120713940</guid><author>seaofbits</author><pubDate>Mon, 11 Oct 2021 23:08:51 +0800</pubDate><description><![CDATA[2021SC@SDUSC

1. 本周工作目标
本周正式开始阅读ROS（ROS 1 Noetic）的源码。按照综述的计划，本周着手开始阅读ROS Master部分的源码。结合实际情况，本周的工作目标如下：

寻找一些专业书籍，了解更多的详细信息

下载ros源码，了解源码结构

从源码编译ROS Master，为后续调试阅读做准备

关于ROS1和ROS2，有点像Python2和Python3的过渡，二者并不兼容，后者将是前者的替代。ROS1最后一个LTS版本（Noetic）将在2025年结束支持...]]></description><category></category></item><item><title><![CDATA[ROS源码分析]]></title><link>https://blog.youkuaiyun.com/seaofbits/article/details/120572810</link><guid>https://blog.youkuaiyun.com/seaofbits/article/details/120572810</guid><author>seaofbits</author><pubDate>Thu, 30 Sep 2021 23:53:24 +0800</pubDate><description><![CDATA[2021SC@SDUSC

背景

ROS，全称Robot Operating System，是一个开源的机器人“元操作系统”。虽然它名字叫OS，但是其实他的角色更像一个framework，提供硬件抽象、低级设备控制、常用功能的实现、进程之间的消息传递和包管理。

分工

经过初步的资料查阅，我们了解到了系统的大致架构，系统可以分为两部分：一是ros核心框架，二是ros功能包、工具和插件等。在核心框架中定义了核心代码以及其他部分代码编程的规范，所以核心框架是我们必须要首先阅读的，也是最困难的，在阅读完核心框]]></description><category></category></item></channel></rss>