<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Hold2u的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Hold2u</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Hold2u]]></copyright><item><title><![CDATA[ROS noetic 使用serial]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/121492824</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/121492824</guid><author>Hold2u</author><pubDate>Fri, 24 Dec 2021 14:27:21 +0800</pubDate><description><![CDATA[import rospy
from geometry_msgs.msg import Twist

def doMsg(data):
    rospy.loginfo(data.linear.x)

if __name__ == "__main__":
    rospy.init_node("listener_p")
    sub = Subscriber("cmd_vel", Twist, doMsg, queue_size=1)
    rospy.spin()

catkin_make 时没有.]]></description><category></category></item><item><title><![CDATA[MicroStrain 3DM-GX3-25 ROS 开发]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/121850315</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/121850315</guid><author>Hold2u</author><pubDate>Fri, 10 Dec 2021 10:32:12 +0800</pubDate><description><![CDATA[MicroStrain 3DM-GX3-25 ROS 开发]]></description><category></category></item><item><title><![CDATA[ROSRUN 报未预期的符号‘(‘附近有语法错误]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/121492701</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/121492701</guid><author>Hold2u</author><pubDate>Tue, 23 Nov 2021 14:42:56 +0800</pubDate><description><![CDATA[import rospy
from geometry_msgs.msg import Twist

def doMsg(data):
    rospy.loginfo(data.linear.x)

if __name__ == "__main__":
    rospy.init_node("listener_p")
    sub = Subscriber("cmd_vel", Twist, doMsg, queue_size=1)
    rospy.spin()

catkin_make 时没有.]]></description><category></category></item><item><title><![CDATA[Nvidia TX2(Ubuntu 18.04) 安装code-oss]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/121305496</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/121305496</guid><author>Hold2u</author><pubDate>Sat, 13 Nov 2021 16:03:02 +0800</pubDate><description><![CDATA[当前想要用Nvidia TX2来开发ROS，但是在配置环境时遇到了各种各样的问题。

Nvidia TX2作为一款arm64架构的产品，虽然都使用了Ubuntu 18.04系统，但与之前使用INTEL的工控机在配置时可以说是大不相同

这里先来说下code-oss（Vscode）配置

目前在网上查到的资料最多的是从这个网站http://`https://packagecloud.io/headmelted/codebuilds?page=15下载1.28版本，但是这个网站已经没有这些资源，后来下载了1.3]]></description><category></category></item><item><title><![CDATA[Linux中将实际环境中python安装的库转移到anaconda创建的虚拟环境中]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/117531205</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/117531205</guid><author>Hold2u</author><pubDate>Thu, 03 Jun 2021 18:16:57 +0800</pubDate><description><![CDATA[前期由于没有使用Anaconda管理python环境，编译安装了Opencv 4.5.0。现在安装了anaconda环境，想把原来安装的环境都直接拷贝过来。


]]></description><category></category></item><item><title><![CDATA[使用车牌识别hyperlpr库，报AttributeError: module ‘cv2.cv2‘ has no attribute ‘estimateRigidTransform‘错误问题]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/109179574</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/109179574</guid><author>Hold2u</author><pubDate>Tue, 20 Oct 2020 14:09:18 +0800</pubDate><description><![CDATA[HyperLPR 地址

安装hyperlpr库后，运行示例发现报了如下错误


#导入包
from hyperlpr import *
#导入OpenCV库
import cv2
#读入图片
image = cv2.imread("demo.jpg")
#识别结果
print(HyperLPR_plate_recognition(image))


Traceback (most recent call last):
  File "readlicensePlate.py", line 7, in &lt]]></description><category></category></item><item><title><![CDATA[使用Opencv为视频每一帧加入水印]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/108241234</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/108241234</guid><author>Hold2u</author><pubDate>Wed, 26 Aug 2020 15:46:38 +0800</pubDate><description><![CDATA[#include "opencv2/core/utility.hpp"
//#include "opencv2/imgproc.hpp"
//#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"

#include &lt;stdio.h&gt;

using namespace cv;
using namespace std;

int main()
{
	
	VideoCapture capture;
	capture.open.]]></description><category></category></item><item><title><![CDATA[模板方法模式]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/103058393</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/103058393</guid><author>Hold2u</author><pubDate>Wed, 13 Nov 2019 22:00:47 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS

#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;
using namespace std;
//抽象模板
class DrinkTemplate {
public:
	virtual void BoilWater() = 0;
...]]></description><category></category></item><item><title><![CDATA[适配器模式]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/103057598</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/103057598</guid><author>Hold2u</author><pubDate>Wed, 13 Nov 2019 21:17:18 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS

#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;
using namespace std;
//适配器模式就是将已经写好的接口，但是这个接口不符合要求
struct MyPrint {
	void operator()(int ...]]></description><category></category></item><item><title><![CDATA[代理模式]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/103021081</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/103021081</guid><author>Hold2u</author><pubDate>Tue, 12 Nov 2019 00:13:52 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS

#include &lt;iostream&gt;
using namespace std;
//提供一种方式来控制对其他对象的访问
class AbstractCommomInterface {
public:
	virtual void run() = 0;

};
//我已经写好的系统
class MySystem {
pu...]]></description><category></category></item><item><title><![CDATA[单例模式]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/102964985</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/102964985</guid><author>Hold2u</author><pubDate>Thu, 07 Nov 2019 23:25:30 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS

#include &lt;iostream&gt;
using namespace std;
/*
实现单利的步骤：
1.构造函数私有化
2.增加静态私有的当前类的指针变量
3.提供静态的对外接口，可以让用户获得单例对象
*/
class A
{
private:
	A() {
		a = new A;
	}
public:
	s...]]></description><category></category></item><item><title><![CDATA[抽象模式]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/102964459</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/102964459</guid><author>Hold2u</author><pubDate>Thu, 07 Nov 2019 22:42:10 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS

#include &lt;iostream&gt;
using namespace std;
class AbstractApple{
public:
	virtual void showName() = 0;
};
class  ChinaApple:public AbstractApple{
public:
	virtual ...]]></description><category></category></item><item><title><![CDATA[工厂方法模式]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/102907030</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/102907030</guid><author>Hold2u</author><pubDate>Mon, 04 Nov 2019 22:36:10 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS

#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
using namespace std;

//工厂方法模式：
//===简单工厂模式 + 开闭原则
//实现了对象创建和使用的分离

class AbstractFruit{
pub...]]></description><category></category></item><item><title><![CDATA[依赖倒转原则]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/102828095</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/102828095</guid><author>Hold2u</author><pubDate>Wed, 30 Oct 2019 21:56:28 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS

#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
using namespace std;

//类的单一性原则
//改进

class AbstractWorker
{
public:
	virtual void doBusines...]]></description><category></category></item><item><title><![CDATA[C  设计模式-迪米特法则]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/102732378</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/102732378</guid><author>Hold2u</author><pubDate>Thu, 24 Oct 2019 21:18:38 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS

#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
using namespace std;

//迪米特法则：最少知识原则

class AbstractBuilding
{
public:
	virtual void sale() ...]]></description><category></category></item><item><title><![CDATA[c++设计模式-开闭原则]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/102711527</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/102711527</guid><author>Hold2u</author><pubDate>Wed, 23 Oct 2019 21:30:47 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS

#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

//开闭原则:增加功能是通过增加代码来实现的，而不是去修改源代码来实现的
class Caculator
{
public:
	Caculator(int a, int b, string...]]></description><category></category></item><item><title><![CDATA[Leetcode 1002 c++ python]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/88999792</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/88999792</guid><author>Hold2u</author><pubDate>Wed, 03 Apr 2019 17:00:29 +0800</pubDate><description><![CDATA[题目描述

给定仅有小写字母组成的字符串数组A，返回列表中的每个字符串中都显示的全部字符（包括重复字符）组成的列表。例如，如果一个字符在每个字符串中出现 3 次，但不是 4 次，则需要在最终答案中包含该字符 3 次。

你可以按任意顺序返回答案。

示例 1：


输入：["bella","label","roller"]
输出：["e","l","l"]


示例 2：


输入：["cool...]]></description><category></category></item><item><title><![CDATA[c++11 防止死锁的一种方式]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/88763299</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/88763299</guid><author>Hold2u</author><pubDate>Sat, 23 Mar 2019 16:28:24 +0800</pubDate><description><![CDATA[struct BankAccount {
	BankAccount(int b) : Balance(b) {}
	int Balance;
	mutex Mutex;
};
void transferMoney(BankAccount&amp;a, BankAccount&amp; b, int money)
{
	lock(a.Mutex, b.Mutex);  //将锁需要锁住的临界体全部...]]></description><category></category></item><item><title><![CDATA[linux 简单命令学习]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/88370986</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/88370986</guid><author>Hold2u</author><pubDate>Sun, 10 Mar 2019 21:09:59 +0800</pubDate><description><![CDATA[(注意Linux大小写敏感)

文件1：s1 文件2：s2

cat 查看文件的具体内容

cp s1 s2 将s1复制一份变成s2

mv 改名字 mv s1 s2 将s1的名字改成s2

mv 将一个文件移动到另一个文件夹中 mv s1 example/

cd s1 打开s1 cd ./打开上级目录 cd .. 回到原始目录

ls 文件内列表 ls -l 文件夹内具体的文件信息

mkd...]]></description><category></category></item><item><title><![CDATA[python 多线程编程实现的两种方式]]></title><link>https://blog.youkuaiyun.com/Hold2u/article/details/86584666</link><guid>https://blog.youkuaiyun.com/Hold2u/article/details/86584666</guid><author>Hold2u</author><pubDate>Mon, 21 Jan 2019 21:23:29 +0800</pubDate><description><![CDATA[
import time
import threading
def get_detail_html(url):
    print(&quot;get detail html started&quot;)
    time.sleep(2)
    print(&quot;get detail html end&quot;)
def get_detail_url(url):
    print('get detail url start...]]></description><category></category></item></channel></rss>