<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[java0fu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/java0fu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; java0fu]]></copyright><item><title><![CDATA[Daily coding:寻找重复数]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106356799</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106356799</guid><author>java0fu</author><pubDate>Tue, 26 May 2020 16:24:18 +0800</pubDate><description><![CDATA[给定一个包含n + 1 个整数的数组nums，其数字都在 1 到 n之间（包括 1 和 n），可知至少存在一个重复的整数。假设只有一个重复的整数，找出这个重复的数。

示例 1:


输入: [1,3,4,2,2]
输出: 2

示例 2:


输入: [3,1,3,4,2]
输出: 3

说明：

不能更改原数组（假设数组是只读的）。
只能使用额外的 O(1) 的空间。
时间复杂度小于 O(n2) 。
数组中只有一个重复的数字，但它可能不止重复出现一次。

代码1（C++）：


class Sol...]]></description><category></category></item><item><title><![CDATA[Daily coding:寻找两个正序数组的中位数]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106313931</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106313931</guid><author>java0fu</author><pubDate>Sun, 24 May 2020 13:31:03 +0800</pubDate><description><![CDATA[给定两个大小为 m 和 n 的正序（从小到大）数组nums1 和nums2。

请你找出这两个正序数组的中位数，并且要求算法的时间复杂度为O(log(m + n))。

你可以假设nums1和nums2不会同时为空。

示例 1:


nums1 = [1, 3]
nums2 = [2]

则中位数是 2.0

示例 2:


nums1 = [1, 2]
nums2 = [3, 4]

则中位数是 (2 + 3)/2 = 2.5

代码1：


class Solution:
    de...]]></description><category></category></item><item><title><![CDATA[Daily coding：最小覆盖子串]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106305650</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106305650</guid><author>java0fu</author><pubDate>Sat, 23 May 2020 20:45:12 +0800</pubDate><description><![CDATA[给你一个字符串 S、一个字符串 T，请在字符串 S 里面找出：包含 T 所有字符的最小子串。

示例：


输入: S = "ADOBECODEBANC", T = "ABC"
输出: "BANC"

说明：

如果 S 中不存这样的子串，则返回空字符串""。
	如果 S 中存在这样的子串，我们保证它是唯一的答案。
代码：


lass Solution:
    def minWindow(self, s: 'str', t: 'str') -&gt; 'str':
        from colle.]]></description><category></category></item><item><title><![CDATA[ROS笔记十（基于Python、Kinetic）：rviz基础——快速配置并渲染点云和摄像机图像数据]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106232466</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106232466</guid><author>java0fu</author><pubDate>Wed, 20 May 2020 16:07:03 +0800</pubDate><description><![CDATA[前言：

rviz（ROS visualization）：用于机器人、传感器和算法的通用3D可视化系统。rviz能够绘制多种类型的数据流。特别是三维的数据。在ROS中所有类型的数据都被关联到一个参考坐标系上。

1.准备工作：

本文以上一个笔记遥控操作turtlebot为例子，准备工作：打开四个终端：一个运行roscore：


roscore

一个运行键盘驱动：


rosrun teleopbot key_publisher.py 

一个运行keys_to_teleop_with_rate.py.]]></description><category></category></item><item><title><![CDATA[ROS笔记九（基于Python、Kinetic）：gazebo中通过键盘输入控制turtlebot机器人移动和转向]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106217080</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106217080</guid><author>java0fu</author><pubDate>Tue, 19 May 2020 23:52:53 +0800</pubDate><description><![CDATA[前言：

Twist消息能描述所有的3D运动，在控制差分驱动的平面运动机器人时，只需要使用其中的两个参数：线性速度（前进/后退）和绕竖直轴的角速度。所以只需要简单地发送线速度（米每秒）和角速度（弧度每秒）命令。这里需要两个程序：一个程序用来监听键盘地敲击事件然后通过ROS消息发布出去，另一个订阅这个ROS消息并输出一个Twist消息，从而实现键盘输入控制机器人地自由移动。

1.键盘驱动：

使用Python的termios和tty库将终端设置成原始模式并捕获键盘敲击事件，然后将事件以std_msgs/st]]></description><category></category></item><item><title><![CDATA[ROS笔记八（基于Python、Kinetic）：gazebo初探——实现turtlebot移动并避开障碍]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106189053</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106189053</guid><author>java0fu</author><pubDate>Mon, 18 May 2020 17:06:10 +0800</pubDate><description><![CDATA[前言：代码实现在gazebo7仿真环境中turtlebot机器人的随机移动并避开障碍物。

1.创建新的工作空间：

创建工作空间文件树：


$ mkdir -p ~/wanderbot_ws/src
$ cd ~/wanderbot_ws/src
$ catkin_init_workspace

创建一个“wanderbot”程序包：


$ cd ~/wanderbot_ws/src
$ catkin_create-pkg wanderbot rospy geometry_msgs sensor_ms]]></description><category></category></item><item><title><![CDATA[ROS笔记七（基于Python、Kinetic）：通信机制——动作（action）]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106148794</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106148794</guid><author>java0fu</author><pubDate>Fri, 15 May 2020 21:13:40 +0800</pubDate><description><![CDATA[前言：

动作使用话题实现，其本质上相当于一个规定了一系列话题（目标、结果、反馈等）的组合使用方法的高层协议。相较于服务的同步通信机制，动作机制则是异步的。动作适用于大部分请求/响应式交互场景，尤其是执行过程不能立即完成。

catkin_ws工作空间下my_code程序包里的文件目录结构：



1.定义一个动作服务器：














...]]></description><category></category></item><item><title><![CDATA[ROS笔记六（基于Python、Kinetic）：自定义动作类型]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106147192</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106147192</guid><author>java0fu</author><pubDate>Fri, 15 May 2020 19:09:18 +0800</pubDate><description><![CDATA[前言：

动作使用话题实现，其本质上相当于一个规定了一系列话题（目标、结果、反馈等）的组合使用方法的高层协议。相较于服务的同步通信机制，动作机制则是异步的。动作适用于大部分请求/响应式交互场景，尤其是执行过程不能立即完成。

1.创建动作类型的源文件：

在my_code包下创建action目录，用于存放动作源文件。下面定义一个满足定时器需求的动作Timer.action:


...]]></description><category></category></item><item><title><![CDATA[ROS笔记五（基于Python、Kinetic）：通信机制——服务(server)]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106128735</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106128735</guid><author>java0fu</author><pubDate>Thu, 14 May 2020 21:53:29 +0800</pubDate><description><![CDATA[前言：

服务是另一种在节点之间传递数据的方式。服务其实就是同步的跨进程函数调用，让一个节点调用运行在另一个节点中的函数。服务适用于偶尔并且在有限时间里完成的通信情况。

1.定义一个服务端：


q


...]]></description><category></category></item><item><title><![CDATA[ROS笔记四（基于Python、Kinetic）：自定义服务类型]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106125288</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106125288</guid><author>java0fu</author><pubDate>Thu, 14 May 2020 18:14:05 +0800</pubDate><description><![CDATA[前言:

同消息定义一样，服务定义只是一个消息类型列表。不同的是服务调用同时具有输入和输出。

点击查看自定义消息类型

1.创建服务类型的源文件：

在my_code报下创建srv目录，用于存放服务源文件。下面定义一个WordCount服务，文件名WordCount.srv:


string words
---
uint32 count

"---"表示输入和输出的分割，string作为服务调用的输入，uint32作为服务调用的输出。

2.告知构建系统有新服务的定义：

向package.xml文件中]]></description><category></category></item><item><title><![CDATA[ROS笔记三（基于Python、Kinetic）：自定义消息类型]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106123628</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106123628</guid><author>java0fu</author><pubDate>Thu, 14 May 2020 17:36:48 +0800</pubDate><description><![CDATA[前言：

一个消息定义文件包含一系列的构成此消息的类型。这些类型可以是ROS内建消息类型比如std_msgs包中定义的或是自己定义的消息类型。定义消息后，需要catkin_make编译。

1.创建消息类型的定义文件：

在my_code报下创建msg目录，用于存放消息源文件。下面定义一个Complex消息，文件名Complex.msg:


float32 real
float32 imaginary

2.告知构建系统有新消息的定义：

向package.xml文件中添加以下代码即可：


...]]></description><category></category></item><item><title><![CDATA[ROS笔记二（基于Python、Kinetic）：通信机制——话题（topic）]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106104937</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106104937</guid><author>java0fu</author><pubDate>Wed, 13 May 2020 21:09:49 +0800</pubDate><description><![CDATA[前言：

话题实现了一种发布/订阅的通信机制，这是一种在分布式系统中常见的数据交换方式。节点在发送数据到话题上之前，必须先声明话题名和发送到该话题的消息所具有的类型。

1.声明一个话题
...]]></description><category></category></item><item><title><![CDATA[ROS笔记一（基于Python、Kinetic）：创建工作空间及ROS程序包]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106098545</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106098545</guid><author>java0fu</author><pubDate>Wed, 13 May 2020 15:59:34 +0800</pubDate><description><![CDATA[前言：

在编写ROS代码之前，首先为这些代码建立工作空间。

创建之前先确认是否将ROS全局设置的脚本加入.bashrc文件中。如果没有，可以手动添加：


source /opt/ros/kinetic/setup.bash

1.创建catkin工作空间并初始化：


mkdir -p ~/catkin_ws/src

catkin_ws为工作区路径，可任意命名


cd ~/catkin_ws/src


catkin_init_workspace

catkin_init_workspace命..]]></description><category></category></item><item><title><![CDATA[百度搜索资源提交链接]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106083314</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106083314</guid><author>java0fu</author><pubDate>Tue, 12 May 2020 19:31:06 +0800</pubDate><description><![CDATA[使用说明

1. 链接提交工具是网站主动向百度搜索推送数据的工具，本工具可缩短爬虫发现网站链接时间，网站时效性内容建议使用链接提交工具，实时向搜索推送数据。本工具可加快爬虫抓取速度，无法解决网站内容是否收录问题
	2. 百度搜索资源平台为站长提供链接提交通道，您可以提交想被百度收录的链接，百度搜索引擎会按照标准处理，但不保证一定能够收录您提交的链接
地址：https://ziyuan.baidu.com/linksubmit/url
...]]></description><category></category></item><item><title><![CDATA[启动roscore报错：ImportError:No module named 'defusedxml'解决方案。]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106081845</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106081845</guid><author>java0fu</author><pubDate>Tue, 12 May 2020 19:19:04 +0800</pubDate><description><![CDATA[问题描述：



解决方案：

1.查看系统python解释器指向：


ls -al /usr/bin/python

下面是笔者的情况：指向python3.5



2.修改软链接指向python2.7


sudo rm -rf /usr/bin/python
sudo ln -s /usr/bin/python2.7 /usr/bin/python


...]]></description><category></category></item><item><title><![CDATA[ROS包创建问题：The 'catkin-pkg==0.4.18' distribution was not found and is required by the application解决方法。]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106080397</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106080397</guid><author>java0fu</author><pubDate>Tue, 12 May 2020 17:15:13 +0800</pubDate><description><![CDATA[问题描述：



解决方案：


pip install catkin-pkg==0.4.18



安装完成后便可创建ROS程序包。


]]></description><category></category></item><item><title><![CDATA[catkin_make后输出：ImportError: No module named 'catkin_pkg'解决方案.]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106078519</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106078519</guid><author>java0fu</author><pubDate>Tue, 12 May 2020 16:13:19 +0800</pubDate><description><![CDATA[问题描述：



解决方案：

1.打开catkin_make文件：


sudo gedit /opt/ros/kinetic/bin/catkin_make


2.将脚本解释器改为“#!/usr/bin/python2”即可




]]></description><category></category></item><item><title><![CDATA[ROS全局设置脚本加入.bashrc中：source  /opt/ros/kinetic/setup.bash]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106076290</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106076290</guid><author>java0fu</author><pubDate>Tue, 12 May 2020 15:02:58 +0800</pubDate><description><![CDATA[摘要：在ros中创建一个catkin工作区之前需要将ros全局设置的脚本加入.bashrc文件中。

1.基于Ubuntu14.04下的ros的indigo版本：


source /opt/ros/indigo/setup.bash

2.基于Ubuntu16.04下的ros的kinetic版本：


source /opt/ros/kinetic/setup.bash

加入后在终端输入gedit .bashrc即可查看：






...]]></description><category></category></item><item><title><![CDATA[Python学习turtle库绘制系统时间并用Pyinstaller打包为可执行文件。]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106021732</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106021732</guid><author>java0fu</author><pubDate>Sat, 09 May 2020 16:52:57 +0800</pubDate><description><![CDATA[概述：turtle库绘制当前系统时间，并且用Pyinstaller打包为可执行文件

代码：


import turtle
import time
#函数定义绘制数码管直线
def drawLine(draw):
    turtle.penup()
    turtle.fd(5)
    turtle.pendown() if draw else turtle.penup()
    turtle.fd(40)
    turtle.penup()
    turtle.fd(5)
    turtl]]></description><category></category></item><item><title><![CDATA[Pycharm中安装wordcloud等库失败问题以及终端通过pip安装的Python库如何添加到Pycharm解释器中。]]></title><link>https://blog.youkuaiyun.com/java0fu/article/details/106013934</link><guid>https://blog.youkuaiyun.com/java0fu/article/details/106013934</guid><author>java0fu</author><pubDate>Sat, 09 May 2020 10:57:26 +0800</pubDate><description><![CDATA[概述：这里介绍笔者在学习wordcloud库时安装过程中所遇到的问题和解决方案

1.在Pycharm中安装wordcloud出现的问题如下图所示



2.解决方法：在终端中通过wordcloud安装包安装方式，wordcloud的安装包下载链接：https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud



选择与自己Python版本想对应的即可，这里笔者Python是3.8的所以选择图中标记的，版本选择不匹配将会安装错误，如下图所示：



下载完成后]]></description><category></category></item></channel></rss>