<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[just_do_it567的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/just_do_it567</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; just_do_it567]]></copyright><item><title><![CDATA[树莓派4B点亮LED小灯]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/123660948</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/123660948</guid><author>just_do_it567</author><pubDate>Tue, 22 Mar 2022 15:11:40 +0800</pubDate><description><![CDATA[​
树莓派引脚序号如下图所示

GPIO是标准引脚，可以用来打开和关闭设备。例如，一个LED。
I2C(Inter-Integrated Circuit)引脚连接并与支持该协议(I2C协议)的硬件模块对话。这个协议通常会占用两个引脚。
SPI（串行外设接口总线）引脚可用于连接和对话SPI设备。和I2C差不多，但使用了不同的协议。
UART(Universal asynchronous receiver/transmitter，通用异步接收/发送器)是用于与其他设备通信的串行引脚。
GND是用来接地的引脚。使]]></description><category></category></item><item><title><![CDATA[激光SLAM建图过程中的问题MessageFilter [target=odom_combined ]:Dropped 100.00% of messages so far.，解决方案]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/115673347</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/115673347</guid><author>just_do_it567</author><pubDate>Tue, 13 Apr 2021 17:24:42 +0800</pubDate><description><![CDATA[最近在和师弟用kobuki底盘进行SLAM建图的过程中遇到一个比较棘手的问题，一直没有解决，直到今天我在仿真环境中也碰到了

[ WARN] [1618301922.711685031, 2351.764000000]: MessageFilter [target=odom_combined ]: Dropped 100.00% of messages so far. Please turn the [ros.slam_karto.message_filter] rosconsole logger to D]]></description><category></category></item><item><title><![CDATA[2021年阿里数据库产品C++研发岗面经]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/115051639</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/115051639</guid><author>just_do_it567</author><pubDate>Sun, 21 Mar 2021 17:10:37 +0800</pubDate><description><![CDATA[首先说一下为啥参加这次的阿里校招吧。这是一次偶然的机会，是同学的朋友在阿里数据库产品事业部，然后说有些内推名额，因为我老板不允许实习，刚开始就没同意，结果阿里的HR说可以不实习也可以等下次秋招的时候去实习，我就心动了，就把我的简历投过去了，然后就有了以下的经历：

  跟大多数公司一样，一开始肯定是性格测试和思维测试，这个测试有三轮，有个比较难得就是跟公务员考试考的那种逻辑思维题一样，时间根本不够（几乎靠蒙，哈哈哈哈哈）。

  大约三四天之后（2021年3月12号）进行第一次笔试，这次笔试...]]></description><category></category></item><item><title><![CDATA[ROS轨迹保存为tum格式,并用evo轨迹绘制]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/114672305</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/114672305</guid><author>just_do_it567</author><pubDate>Thu, 11 Mar 2021 16:46:03 +0800</pubDate><description><![CDATA[安装evo

 evo共有两种安装方式

 快捷安装 ，直接安装最新的稳定发行版；


pip install evo --upgrade --no-binary evo

 源码安装 ，下载源码进行安装；
 首先在任意文件夹下下载evo，也可以在home中直接下载


git clone https://github.com/MichaelGrupp/evo.git

 然后进入evo文件夹


pip install --editable . --upgrade --no-...]]></description><category></category></item><item><title><![CDATA[Rviz显示机器人运动轨迹]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/114303218</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/114303218</guid><author>just_do_it567</author><pubDate>Wed, 03 Mar 2021 11:07:09 +0800</pubDate><description><![CDATA[在实际操作机器人进行移动的时候，虽然直接观察机器人本身是比较直观的，但是无法查看到机器人运动过程中比较细微的变化（比如方向的变化），那么就需要将机器人的运动轨迹用可视化软件Rviz显示出来以便于观察。这个功能是利用Rviz中的Path类型实现的，只需要将机器人的位置信息已nav_msgs/Path类型的消息的形式发布到ROS系统中，然后在Rviz上订阅该类型的消息就可以显示机器人的运动轨迹了

    下面了解一下nav_msgs/Path类型数据的数据结构：


Header he...]]></description><category></category></item><item><title><![CDATA[Gazebo仿真WARN-The root link base_link has an inertia specified in the URDF, but KDL does not support]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/111592800</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/111592800</guid><author>just_do_it567</author><pubDate>Wed, 23 Dec 2020 16:22:21 +0800</pubDate><description><![CDATA[在Gazebo中进行小车仿真的过程中会出现如下警告
The root link base_link has an inertia specified in the URDF, but KDL does not support a root link with an inertia.  As a workaround, you can add an extra dummy link to your URDF

该警告的意思是根关节的base_link在urdf中具有惯性参数，但是KDL不支持，建议的解决办法是]]></description><category></category></item><item><title><![CDATA[《移动机器人开发教程》声明]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/110452554</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/110452554</guid><author>just_do_it567</author><pubDate>Tue, 01 Dec 2020 21:15:07 +0800</pubDate><description><![CDATA[最近有收到一些私信问有没有ROS源码包的代码注释或者是框架图的，在这统一回复一下
我们实验室的移动机器人开发小组正在编写一本关于小型移动机器人开发的教程，里面包含了ROS基础知识、移动机器人（从底层硬件平台的搭建，到高层核心算法的解释，以及所有典型实验操作）的讲解。可以指导ROS入门和小型移动机器人的开发。
本教材预计十二月底一月初发行第一版，后期会搭配移动机器人平台、和标准化实验场地，请大家敬请期待。

...]]></description><category></category></item><item><title><![CDATA[解决 Costmap2DROS transform timeout.问题]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/108472003</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/108472003</guid><author>just_do_it567</author><pubDate>Tue, 08 Sep 2020 17:17:52 +0800</pubDate><description><![CDATA[用gmapping_slam或者karto_slam把房屋地图建好之后
运行ROS导航navigation模块的时候会出现Costmap2DROS transform timeout.错误

问了一下做过相关内容的师兄，发现可能是因为系统时间不统一造成的，于是尝试了修改系统时间，结果真好了，大家可以参考
其实就是树莓派没有时钟模块，未联网状态下开机的时间默认为出厂时间，从而导致了系统时间早于地图的创建时间（比如系统时间时2016年某月某日，创建地图的时间是2020年某月某日），所以要将系统时间改到地图创建时]]></description><category></category></item><item><title><![CDATA[读取　/tf 话题中指定tf]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/107939441</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/107939441</guid><author>just_do_it567</author><pubDate>Tue, 11 Aug 2020 17:06:39 +0800</pubDate><description><![CDATA[大家都知道在ＲＯＳ系统中同一个话题可以被多个ｎｏｄｅ节点发送或者订阅，如下图是一个典型的ｔｆ结构
那么如何才能获得到自己想要用的那一个变换矩阵是一个非常棘手的问题，经过查阅资料，我写了下面这一个读取/tf话题中的指定ｔｆ的ｄｅｍｏ供大家一起学习讨论。
#include&lt;iostream&gt;
#include&lt;ros/ros.h&gt;
#include&lt;tf/tf.h&gt;
#include&lt;tf/transform_listener.h&gt;
#include&lt;geo]]></description><category></category></item><item><title><![CDATA[PID参数设定]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/107769018</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/107769018</guid><author>just_do_it567</author><pubDate>Mon, 03 Aug 2020 17:18:47 +0800</pubDate><description><![CDATA[在电机的控制领域，不同的电机有不同的驱动方式，其中应用最广泛的就是PID(proportion integration differentiation)控制。P、I和D分别指比例控制，积分控制和微分控制。其算法简单可靠性高，广泛应用于工业过程控制，至今有90%左右的控制回路具有PID结构。在双轮移动机器人，大多数的电机的速度控制和反馈系统如下:

在上图模型中，根据指定速度和实际速度构成控制偏差，将偏差按照比例、积分和微分通过线性组合构成控制量，对被控的电机进行控制。其控制规律为:

判断一个控制系统是否优]]></description><category></category></item><item><title><![CDATA[ROS学习——巡线(C++ 、opencv)]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/107662738</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/107662738</guid><author>just_do_it567</author><pubDate>Wed, 29 Jul 2020 14:07:56 +0800</pubDate><description><![CDATA[这个功能需要摄像头的配合，如有需要可以查看我之前的博客，
话不多说，直接上代码

#include&lt;ros/ros.h&gt;
#include&lt;sensor_msgs/Image.h&gt;
#include&lt;geometry_msgs/Twist.h&gt;
#include&lt;cv_bridge/cv_bridge.h&gt;
#include&lt;opencv2/opencv.hpp&gt;
#include&lt;opencv2/imgproc.hpp&gt;
#inclu]]></description><category></category></item><item><title><![CDATA[二轮差分模型分析及里程计计算]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/107562371</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/107562371</guid><author>just_do_it567</author><pubDate>Fri, 24 Jul 2020 15:37:43 +0800</pubDate><description><![CDATA[小型移动机器人的底盘主要有两轮差速底盘和四轮差速底盘两种，因为两轮差速底盘的控制原理以及运动模型分析比较简单，所以运用的比较多，下面主要介绍两轮差速底盘的工作原理。

如图1所示，两轮差速底盘由两个驱动轮和一个万向轮组成，两个驱动轮分别位于底盘的左右两侧，并且独立控制速度，通过不同的速度来实现底盘的转向，万向轮的作用是辅助支撑。
如图5.1所示，v所指方向为移动机器人的前进方向，vl、vr分别为左轮和右轮的线速度，l为左右两轮的轮间距。假定l、vl、vr这三个值均已知。
转向角速度W：

移动机器人线速度V]]></description><category></category></item><item><title><![CDATA[ROS学习——控制小车转向]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/107509258</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/107509258</guid><author>just_do_it567</author><pubDate>Wed, 22 Jul 2020 11:32:18 +0800</pubDate><description><![CDATA[给定一个旋转的角度，让小车进行顺时针或逆时针旋转。

#include&lt;iostream&gt;
#include&lt;string&gt;
#include&lt;ros/ros.h&gt;
#include&lt;geometry_msgs/Twist.h&gt;
#include&lt;geometry_msgs/Quaternion.h&gt;
#include&lt;nav_msgs/Odometry.h&gt;
#include&lt;tf/tf.h&gt;

#define UNIT_]]></description><category></category></item><item><title><![CDATA[ubuntu内存不足1G解决办法]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/107505161</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/107505161</guid><author>just_do_it567</author><pubDate>Wed, 22 Jul 2020 09:43:38 +0800</pubDate><description><![CDATA[最近在使用ROS的时候出现ubuntu内存不足的问题，经查阅百度，发现是由于ros的输出日志过多造成的，也就是终端显示的日志ROS会自动保存起来，时间过长就会导致log文件过多过大，造成内存不足。
解决办法：

rosclean check
rosclean purge

如果没有安装rosclean，就可以直接进行如下操作

cd .ros
rm -rf log

再次检查ubuntu内存，就发现内存足够了


...]]></description><category></category></item><item><title><![CDATA[ROS学习——控制小车前进给定距离]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/107481781</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/107481781</guid><author>just_do_it567</author><pubDate>Tue, 21 Jul 2020 09:57:34 +0800</pubDate><description><![CDATA[现在提出了一个小小的需求，就是要求控制小车前进五米。那么这个需求可以转化为一个问题，就是如何控制小车前进给定的距离，于是我编写了下面这个程序，向小车发布指令，然后使小车前进。

#include&lt;ros/ros.h&gt;
#include&lt;string&gt;
#include&lt;iostream&gt;
#include&lt;geometry_msgs/Pose.h&gt;
#include&lt;nav_msgs/Odometry.h&gt;
#include&lt;geometr.]]></description><category></category></item><item><title><![CDATA[ROS学习——读取IMU数据]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/107223025</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/107223025</guid><author>just_do_it567</author><pubDate>Thu, 09 Jul 2020 10:45:37 +0800</pubDate><description><![CDATA[在ROS工作空间的src文件夹下创建read_imu功能包，并在包内创建include、launch、src、cfg四个文件夹。
在cfg文件夹中创建param.ymal文件，并写入以下内容：
imu_dev: /dev/ttyUSB0
baud_rate: 9600
data_bits: 8
parity: N
stop_bits: 1
pub_data_topic: imu_data
pub_temp_topic: imu_temp
yaw_topic: yaw_data
link_name: base]]></description><category></category></item><item><title><![CDATA[ROS学习——读取激光雷达数据Laser]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/107222913</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/107222913</guid><author>just_do_it567</author><pubDate>Thu, 09 Jul 2020 10:42:27 +0800</pubDate><description><![CDATA[在ROS工作空间的src文件夹下创建read_laser功能包，并在包内创建include、launch、src四个文件夹。
在include文件夹中创建read_laser.h文件，并写入以下内容：
#include&lt;ros/ros.h&gt;
#include&lt;std_msgs/UInt16.h&gt;
#include&lt;string&gt;
#include&lt;iostream&gt;
#include&lt;sensor_msgs/LaserScan.h&gt;
#includ]]></description><category></category></item><item><title><![CDATA[ROS学习——读取摄像头数据image]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/107222752</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/107222752</guid><author>just_do_it567</author><pubDate>Thu, 09 Jul 2020 10:38:59 +0800</pubDate><description><![CDATA[在ROS工作空间的src文件夹下创建read_camera功能包，并在包内创建include、launch、src、cfg四个文件夹。
在cfg文件夹中创建param.yaml文件，并写入以下内容：
image_dev: /dev/video0
save_path: /home/huanyu/datasets/camera

save: false
visualization: true

在include文件夹中创建camera_manager.h文件，并写入以下内容：
#include&lt;openc]]></description><category></category></item><item><title><![CDATA[激光雷达运动畸变去除方法]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/106995327</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/106995327</guid><author>just_do_it567</author><pubDate>Sun, 28 Jun 2020 14:48:29 +0800</pubDate><description><![CDATA[激光雷达运动畸变产生的原因
在机器人运动过程中，每个激光点都在不同的基准位姿上产生。
激光扫描时伴随着机器人的运动，每个角度的激光数据都不是瞬时获得的，当激光雷达扫描的频率比较低的时候，机器人运动带来的激光帧的运动畸变是不能被忽略的。例如扫描频率是5Hz的激光雷达，一帧数据的收尾时间差是200ms，如果机器人以0.5m/s的速度沿着x方向行走并扫描前面的墙体，那么200ms后尾部的测量距离和首部的测量距离在x方向上就差10cm。所以如果不是高频扫描，这种运动畸变是不容忽视的。

去除运动畸变的原理
去除激光]]></description><category></category></item><item><title><![CDATA[ROS学习——TF&URDF]]></title><link>https://blog.youkuaiyun.com/just_do_it567/article/details/105679845</link><guid>https://blog.youkuaiyun.com/just_do_it567/article/details/105679845</guid><author>just_do_it567</author><pubDate>Wed, 22 Apr 2020 14:22:41 +0800</pubDate><description><![CDATA[TF（transform）
TF是指坐标变换（位置+姿态），是坐标系数据维护的工具。
ROS里面的tf指的是坐标转换的标准、话题、工具、接口。

tf of C++
TF相关数据类型
tf::Vector3				向量
tf::Point				点
tf::Quaternion			四元数
tf::Matrix3x3			3x3矩阵
tf::Pose				位姿
tf::Transform			变...]]></description><category></category></item></channel></rss>