自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

登龙的专栏

文章首发公众号「登龙」

  • 博客(103)
  • 收藏
  • 关注

原创 ROS 八叉树地图构建 - 给 octomap_server 增加半径滤波器!

为了在每帧点云中滤除噪声点,选择了半径滤波器,也用高斯滤波器测试过,但是没有半径效果好,这里记录下在 octomap_server 中增加半径滤波器的步骤,并在 launch 中配置滤波器参数。一、半径滤波器基本原理放一张汇报用的 PPT 截图:原理很简单就是判断一个点云周围(半径 R)有没有足够多(K)的邻居点,如果没有就删除这个点,否则就保留。二、基本用法我一般学习技术喜欢到官网看最原始的教程:Removing outliers using a Conditional or RadiusOu

2020-08-09 14:18:51 1595 2

原创 ROS 八叉树地图构建 - 使用 octomap_server 建图过程总结!

构建语义地图时,最开始用的是 octomap_server,后面换成了 semantic_slam: octomap_generator,不过还是整理下之前的学习笔记。一、增量构建八叉树地图步骤为了能够让 octomap_server 建图包实现增量式的地图构建,需要以下 2 个步骤:1.1 配置 launch 启动参数这 3 个参数是建图必备:地图分辨率 resolution:用来初始化地图对象全局坐标系 frame_id:构建的全局地图的坐标系输入点云话题 /cloud_in:作为建图的

2020-08-09 09:14:53 7071 6

原创 ROS 八叉树地图构建 - 安装 octomap 和 octomap_server 建图包!

项目要用到八叉树库 Octomap 来构建地图,这里记录下安装、可视化,并启用带颜色的 Octomap 的过程。一、Apt 安装 Octomap 库如果你不需要修改源码,可以直接安装编译好的 octomap 库,记得把 ROS 版本「kinetic」替换成你用的:sudo apt-get install ros-kinetic-octomap*上面这一行命令等价于安装以下的 octomap 组件:sudo apt-get install ros-kinetic-octomap ros-kineti

2020-08-09 09:07:51 5496 7

原创 2020 - 08 - 07 - 4 周的简单总结

上次是 2020 - 07 - 12 总结的工作,这次隔了一个月再次总结,其实只工作半个月,后面 2 周放假了,前 2 周的总结如下。一、工作方面1.1 持续做好工作计划之前自己在每天工作开始之前,会在有道笔记本中简单列出一天中要完成的任务,这个慢慢养成了习惯,这两周仍然会每天写下简单的计划,但是自己并没有感觉到因为被动坚持而带来的不舒服,反而仅仅是一种习惯了。1.2 Bug 总会解决的这 2 周在工作中遇到不少问题,例如程序的 Bug,某个第三方库安装不上去等等,虽然当时尝试很多种方法都失败了,

2020-08-09 08:59:39 268

原创 Ubuntu 16.04 配置开机自动挂载 NTFS 机械硬盘!

台式机有 2 个硬盘,一个固态,一个机械,每次启动 Ubuntu 后要手动从文件管理器里面挂载,并且挂载的权限都是 777,所以按照网上的方法简单配置了下自动挂载,并设置普通的权限,这是挂载一个分区的结果,目录权限设置为 755,文件权限设置为 644:下面简单介绍下过程,挺简单的,一行命令即可搞定!配置 /etc/fstab 文件打开 /etc/fstab 文件,在这个文件中配置硬盘自动挂载命令:sudo gedit /etc/fstab在末尾添加一行自己硬盘的挂载命令:UUID=723

2020-07-28 22:41:18 602

原创 从 0 开始机器学习 - 机器学习系统的设计

一、构建算法的推荐步骤当我们遇到一个问题,比如预测房价,我们想要用机器学习算法来更好的解决这个问题,推荐的步骤如下:1.1 实现一个简单的算法建议先花点时间实现一个简单能用的算法,比如线性回归预测房价,不需要一开始就花很多时间设计复杂的算法(在软件开发中叫避免过早优化),你可以先实现能用的算法,然后利用上篇文章从 0 开始机器学习 - 机器学习算法诊断中的学习曲线等诊断法来分析算法的优化方向,这样一个简单的算法就成为了优化问题的好工具!1.2 分析学习曲线有个简单的算法后,我们就可以画出学习曲线了

2020-07-27 22:40:38 179

原创 Ubuntu Install kitti2bag

项目需要测试建图效果,但是目前我们自己的语义分割训练的效果不是太好,外参矩阵标定的精度也不高,所以打算使用 KITTI 数据集作为测试,为此需要将 KITTI 数据集转为 bag 包方便回放,这里要安装一个 kitti2bag 的工具,记录下安装过程,并不是一步到位。1. 更新 pip 安装 kitti2bag安装前提示我更新 pip,我用的 Python2.7 使用的是 pip:pip install --upgrade pip安装 kitti2bag:pip install kitti2bag

2020-07-27 22:36:45 1532 1

原创 ROS 机器人技术 - 解决不同工作空间存在相同功能包的问题

昨天把一个工作空间的 lidar_camera_fusion 包拷贝到另外一个工作空间编译,但是名字没有改变,导致 source后系统存在 2 个 lidar_camera_fusion 包,使用的时候总是错误地启动另外一个。解决方式:把其中一个包的配置信息改变即可,要改变的文件有CMakeLists.txtpackage.xml在 CMakeLists.txt 中更改项目名和输出的可执行文件名:project(更换项目名称)add_executable(更换可执行文件名称 src/l

2020-07-27 22:36:08 921

原创 ROS 机器人技术 - 编写一个 launch 启动多个节点

1. 增加 source 到 bashrc 中为了不用在小车的 Ubuntu 上每次都 source 自己的工作空间,我把自己的 workspace 加到 ~/.bashrc 文件末尾:然后重启 shell,之后就会自动 source 我得工作空间,可以使用 roscd 直接进入指定包中:roscd pkg_name2. 编写启动 launch每次调试小车,都要分别启动很多节点,比如融合、建图、Loam、Rviz 等,所以我把这些节点全部配置在一个 launch 中启动,直接一行命令启动,这样调

2020-07-27 22:35:28 811

原创 ROS 机器人技术 - 添加一个 TF 帧

在实际的机器人中往往有很多个传感器,比如我们组目前用的小车上就有相机,雷达,IMU 等,为了能够在 TF 系统中找到传感器之间的转换,就需要把每个传感器的坐标系加到系统的 TF 树中,方法很简单,下面一起来学习下。一、TF 树的注意事项在实际使用和调试 TF 的时候一定要时刻记住:TF 树中的一个节点可以有多个子节点,但是只能有一个父节点,并且 TF 树中不能出现回环!一个典型的 TF 树如下:这个 TF 树中有 3 个坐标系:world:世界坐标系turtle1:乌龟 1 的坐标系,父节点

2020-07-27 22:34:25 277

原创 ROS 机器人技术 - 广播与接收 TF 坐标

上次我们学习了 TF 的基本概念和如何发布静态的 TF 坐标:ROS 机器人技术 - TF 坐标系统基本概念ROS 机器人技术 - 静态 TF 坐标帧这次来总结下如何发布一个自定义的 TF 坐标转换,并监听这个变换。一、编写 TF 广播者进入上次创建的 learning_tf2 包中:roscd learning_tf2在 src 下新建一个 turtle_tf2_broadcaster.cpp 文件,代码如下:#include <ros/ros.h>// 存储要发布的坐

2020-07-27 22:31:01 590

原创 ROS 机器人技术 - ROS 与 PCL 的点云类型转换

<p>在图像和点云的融合节点中,做了一个点云格式的转换:</p><ul><li>ROS 点云 sensor_msgs::PointCloud2 -> PCL 第一代点云 pcl::Point

2020-07-27 22:27:12 590

原创 Ubuntu 修复不能访问正确挂载机械硬盘的问题

<p>老师给新买了台电脑,但是只有 100G 固态,所以需要给主机加装了一个机械硬盘,但是装好后到 Ubuntu 内不能正确挂载:</p><p><img src="https://dlonng.os

2020-07-27 22:20:59 759

原创 Ubuntu install sublime-text3

<p>我工作中频繁使用 sublime,目前的版本有点低,看起来很丑,所以简单地升级下,记录下步骤:</p><h3 id="1-卸载旧版本">1. 卸载旧版本</h3><pre><code cla

2020-07-27 22:16:36 392

原创 Ubuntu 16.04 安装 NVIDIA 显卡驱动!

<p>新买的电脑装的的英伟达独立显卡,虽然 Ubuntu 上有开源 Nvida 驱动可以用,但是界面总是卡卡的,所以安装了下官方的驱动,瞬间丝滑无比,以下是我的方法,简单粗暴。</p><h3 id=

2020-07-27 22:15:51 410

原创 从 0 开始机器学习 - 机器学习算法诊断

今天跟大家分享下如何诊断一个算法是否存在偏差或者方差的问题,以及如何选择优化算法的方向。一、如何确定下一步的计划?当我们设计了一个机器学习算法,比如线性回归或逻辑回归,并且算法已经能够正常工作,只是效果还不是太好,那用什么方法来提高算法的性能或者准确度呢?或者说在想办法提升性能之前,有没有一种方法来告诉我们下一步对我们设计的机器学习算法该采取什么步骤,比如:获得更多的训练样本尝试减少特征的数量尝试获得更多的特征尝试增加多项式特征尝试减少正则化程度尝试增加正则化程度...上面 6 种思

2020-07-16 16:24:54 218

原创 数据结构与算法 - 时空复杂度分析

这周主要总结了时间复杂度的学习,跟小伙伴们分享下,欢迎指正。一、为何需要分析算法复杂度挺多同学本科都学习过数据结构和算法这门课,但是有没有想过这门课到底是解决什么问题?科学家设计这些数据结构和算法是要干嘛?其实,最终的目的只有一个:让我们写的代码在计算机上运行的速度更快,使用的内存更省!,可是如何才能知道我们写的代码使用多少运行时间和内存呢?这就需要分析算法时间复杂度和空间复杂度,只有学会分析这 2 者,才能知道我们设计的算法到底有没有性能的提升,不然你费了很大功夫想了一个算法,却发现运行速度慢如乌龟

2020-07-16 16:13:08 260

原创 ROS 机器人技术 - 静态 TF 坐标帧

上次总结了 ROS 机器人技术 - TF 坐标系统基本概念,这次学习下如何发布静态坐标转换,静态 TF 官方教程在这里。一、我在项目中应用 TF 的方法先说下这个静态坐标转换在我项目中的应用,我在建图的时候需要一个 rslidar -> world 的 TF 变换,但是系统 TF 树中只有师兄 lego_loam 的 base_link -> world的转换,所以为了获取 rslidar -> world,我用 Kinetic 提供的工具手动发布了一个静态的 TF:# 欧拉角ro

2020-07-08 23:52:34 983

原创 ROS 机器人技术 - rosbag 详细使用教程!

在 ROS 系统中,可以使用 bag 文件来保存和恢复系统的运行状态,比如录制雷达和相机话题的 bag 包,然后回放用来进行联合外参标定。这里记录下我学习官方的 rosbag 教程的笔记:ROS rosbag我常用的几个操作虽然命令很多,但是我目前在工作中常用的命令就如下几个:1. 录包录制所有话题:rosbag record -a录制指定话题,设置 bag 包名:rosbag record -O bag_name.bag /topic1_name /topic2_name /xxx有时候

2020-06-28 23:49:19 3925

原创 我常用的 VSCode CC++ 插件!

我平常用 vscode 码字,经常使用一些 C/C++ 插件,这里整理下分享给大家,不过插件开启太多会造成 vscode 卡顿,所以如果内存不太够,建议关掉一些不必要的插件。一、主题和图标以下这些主题都还不错:Atom One Dark ThemeMaterial ThemeMonokai ProOne Dark ProOne Dark Theme(我用这个)One Monokai ThemeSublime Material Theme这个图标看着比较舒服:vscode-icon

2020-06-25 23:23:05 1399

原创 Ubuntu 常用的录屏、截图、Gif 软件!

项目汇报要录制一些视频和截图、Gif 等,于是就收集了一些好用的软件,安装方法如下,使用方法都很容易就不介绍了:1. 录屏 SimpleScreenRecorder(建议)sudo add-apt-repository ppa:maarten-baert/simplescreenrecordersudo apt-get updatesudo apt-get install simplescreenrecorder2. 录屏 kazam(不能在 Win 上播放!)sudo add-apt-re

2020-06-23 23:31:40 716

原创 从 0 开始机器学习 - 神经网络反向 BP 算法!

最近一个月项目好忙,终于挤出时间把这篇 BP 算法基本思想写完了,公式的推导放到下一篇讲吧。一、神经网络的代价函数神经网络可以看做是复杂逻辑回归的组合,因此与其类似,我们训练神经网络也要定义代价函数,之后再使用梯度下降法来最小化代价函数,以此来训练最优的权重矩阵。1.1 从逻辑回归出发我们从经典的逻辑回归代价函数引出,先来复习下:$$J(\theta) = \frac{1}{m}\sum\limits_{i = 1}^{m}{[-{y^{(i)}}\log ({h_\theta}({x^{(i)

2020-06-19 23:21:21 329

原创 Word 设置页码从指定页开始的详细步骤!

「设置页码从指定页开始」这个功能一直是很多同学写论文头疼的问题,今天刚好写了个机器学习小论文的作业,这里把我设置页码从第三页正文开始的步骤分享给大家,其实非常简单:先给封面、目录、正文等分 3 节再设置页脚1. 先分节要想设置页脚从指定页开始,必须要分节,把一个文档分为不同的节,这样页脚就不会一直连续了!比如我要给封面和目录分节,那么我点击封面底部进入编辑状态,然后点击「页面布局 -> 下一页」即可插入分解符。2. 选择是否链接前一节相同的节可以把当前页的页脚链接到上一页,但是不同的

2020-06-17 08:41:42 6277

原创 Ubuntu16.04 更新 ruby-2.6!

博客预览需要用 ruby,当前是 2.3 版本:ruby -v需要更新 2.6,方法如下,先添加仓库:sudo add-apt-repository ppa:brightbox/ruby-ngsudo apt-get update删除低版本的 ruby:sudo apt-get purge --auto-remove ruby安装 ruby-2.6 版本:sudo apt-get install ruby2.6 ruby2.6-dev搞定!...

2020-06-16 00:11:25 1052 1

原创 配置 Git 不用每次 push 都输入密码!

如果每次 pull 或者 push 都要输入密码很浪费时间,直接执行以下的命令:git config --global credential.helper store然后执行一次 push 操作,输入一次密码之后,你的用户名和密码就会被保存到 ~/.git-credential 文件中,你可以在 push 后打开这个文件看看:vim ~/.git-credential...

2020-06-16 00:02:43 617

原创 解决 rubygems.org 无法访问的问题!

我的博客用的 Bundle,每次要 bundle install 可能会遇到无法访问的问题:解决方法 Ruby China 官网有,替换一下镜像源就可以了:这里记录下我的过程,方便以后直接配置:1. 更新 gem没加 sudo 提示我需要 root 权限,所以我加了权限:sudo gem update --system查看下更新的版本 2.7.7 没问题:gem -v2.7.72. bundle config 修改 ruby-china 镜像官网说的使用 Gemfile 和 Bu

2020-06-15 23:51:24 2536

原创 Ubuntu 设置固定 IP 最简单的方法!

因为鼠标共享软件需要使用网络连接,台式机的 IP 总是变化导致笔记本每次重启都要重新配置 IP,所以我给 ubuntu 设置了固定 IP,方法很简单,直接在系统设置里面配置就可以了。1. 查看默认网络配置打开系统「Setting」,打开「Network」:我连接的有线网络:启动终端,「ifconfig」查看下掩码:这里记录下你的配置,后续要用到:IPv4:ip 地址Default Route:网关地址Mask:255.255.255.0DNS:我这有 2 个DNS2. 手动添加

2020-06-15 23:09:23 1558

原创 Autoware 标定工具 Calibration Tool Kit 联合标定 Robosense-16 和 ZED 相机!

一、安装 Autoware & ZED 内参标定 & 外参标定准备之前的这篇文章:Autoware 进行 Robosense-16 线雷达与 ZED 双目相机联合标定! 记录了我用 Autoware 标定相机和雷达的过程,虽然用的不是 Calibration Tool Kit 工具,但是博客里面的以下章节也适用本次的 Calibration Tool Kit :一、编译安装 Autoware-1.10.0二、标定 ZED 相机内参3.1 联合标定准备如果你是第一次看这篇 Ca

2020-06-11 10:56:38 2193 6

原创 Autoware 进行 Robosense-16 线雷达与 ZED 双目相机联合标定!

项目要标定雷达和相机,这里记录下我标定过程,用的速腾 Robosense - 16 线雷达和 ZED 双目相机。一、编译安装 Autoware-1.10.0我没有安装最新版本的 Autoware,因为新版本不带雷达和相机的标定工具,我安装的是 1.10.0 版本!1.1 下载 Autoware-1.10.0 源码不建议官方的 git check 安装方式,因为不熟悉 git 可能会遇到问题,直接在GitLab 仓库选择 1.10.0 版本下载即可:1.2 编译 Autoware-1.10.0编

2020-06-09 21:44:57 2289 4

原创 ROS 机器人技术 - 解决 ROS_INFO 不能正确输出 string 的问题!

一、输出「??」项目调试一个节点,打印 ROS 信息时发现设置的节点名称都是问号:ROS_INFO("[%s]: camera_extrinsic_mat", kNodeName);看了下代码发现是自己把节点名称设置为 const,但是没有正确初始化 const 变量,导致输出了「??」,C++ 语法都忘记了,太菜了,以下是第一种初始化 const 的方法:// 1. 先在类中定义private: const std::string kNodeName;// 2.

2020-06-07 14:16:14 2815

原创 2 个步骤为 VSCode 配置工程头文件路径!

我用 VSCode 来 Coding,这个编辑器需要自己配置头文件路径,就是自动建立一个 c_cpp_properties.json 文件来管理头文件路径,然后需要用哪些库就手动加上即可,方法很简单,如下:1. 生成 c_cpp_properties.json 文件按「F1」启动指令输入框,输入 C/C++,选择第一项 Edit Configuration:然后会自动生成一个 Json 文件:2. 添加头文件路径我们只需要再红框的 IncludePath 内加上需要的头文件路径即可,比如我的工

2020-06-05 14:08:09 7658

原创 从 0 开始机器学习 - 神经网络识别手写字符!

一、问题描述今天登龙跟大家分享下使用前馈神经网络识别 10 种类型手写字符的方法,不太了解神经网络基础的同学,可以查看我上一篇文章:从 0 开始机器学习- 深入浅出神经网络基础我们的目标就是用一个已经训练好的神经网络来预测下面这 10 类手写字符 [0 - 9]:每个字符是一个 20 X 20 = 400 像素的图片:OK!我们直接开始,先来看看我们用的神经网络的架构。二、神经网络架构我们在使用神经网络之前需要进行参数的训练,也就是训练权重矩阵,这篇博客就不详细展开如何训练了,后面单独写一篇

2020-05-25 09:53:35 435

原创 从 0 开始机器学习 - 逻辑回归识别手写字符!

之前的逻辑回归文章:从 0 开始机器学习 - 逻辑回归原理与实战!跟大家分享了逻辑回归的基础知识和分类一个简单数据集的方法。今天登龙再跟大家分享下如何使用逻辑回归来分类手写的 [0 - 9] 这 10 个字符,数据集如下:下面我就带着大家一步一步写出关键代码,完整的代码在我的 Github 仓库中:logistic_reg一、加载手写字符数据1.1 读取数据集raw_X, raw_y = load_data('ex3data1.mat')# 5000 x 400print(raw_X.sh

2020-05-21 10:01:41 531

原创 从 0 开始机器学习 - 深入浅出神经网络基础

今天跟大家分享下我学习神经网络的一些个人总结,希望能通过这篇博客帮助新手直接搞懂神经网络!一、神经网络解决什么问题?之前跟大家分享过多项式回归预测房价和逻辑回归分类数据的例子,在这两个问题中我们假设问题的输入特征很少:预测房价的输入特征:卧室数量、房屋面积、房屋楼层逻辑回归分类数据的输入特征:2 类数据,即 2 分类问题在预测房价的例子中,我们的假设函数有 3 个输入特征:hθ(x)=θ0x0+θ1x1+θ2x2+θ3x3h_\theta(x) = \theta_0x_0 + \theta

2020-05-08 21:49:38 298

原创 从 0 开始机器学习 - 正则化技术原理与编程!

之前学习了线性回归,逻辑回归和梯度下降法,今天学习的这个技术能够帮助我们训练的模型对未知的数据进行更好的预测 - 正则化技术!快来一起学习学习,学习使我快乐 (▽)!一、正则化是什么?正则化(Regulariation)这 3 个字听起来挺高大上的,其实就是一种解决机器学习过拟合问题的技术,使用这项技术可以让我们在训练集上训练的模型对未知的数据也能很好地拟合。机器学习模型对未知数据的拟合能...

2020-05-01 18:53:54 303

原创 登龙的算法课:LeetCode Top 面试题 - 整数反转

一、题目描述(@LeetCode)给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21如果反转后的整数溢出 32 位 int 范围则返回 0。二、解题思路利用取模和取整运算来分离每个位置,然后累加:123 % 10 = 3...

2020-04-22 22:35:24 290

原创 从 0 开始机器学习 - 逻辑回归原理与实战!

之前的文章学习了线性回归,这次来跟大家分享下我对逻辑回归的一些理解。一、什么是分类问题?这个其实很好理解,就比如你手里有一个苹果和一个橘子,我们的分类问题就是可以描述为如何写一个算法让计算机认出哪个是苹果,哪个是橘子。分类问题的输出是不连续的离散值,比如设定程序输出 1 表示苹果,0 表示橘子。但我们之前学习的线性回归的输出是连续的,如预测房价,肯定不能用 0 和 1 来表示房价。所以记住...

2020-04-18 22:17:34 326

原创 从 0 开始机器学习 - 手把手用 Python 实现梯度下降法!

机器学习课程也上了一段时间了,今天就带大家从 0 开始手把手用 Python 实现第一个机器学习算法:单变量梯度下降(Gradient Descent)!我们从一个小例子开始一步步学习这个经典的算法。一、如何最快下山?在学习算法之前先来看一个日常生活的例子:下山。想象一下你出去旅游爬山,爬到山顶后已经傍晚了,很快太阳就会落山,所以你必须想办法尽快下山,然后去吃海底捞。那最快的下山方法是什...

2020-04-09 18:24:26 296

原创 Mac 10.13 安装 Python-3.6.8 和 IPython-Notebook

机器学习的作业要求 Python-3.6 的环境,记录下配置 mac 的配置过程。一、安装 Python-3.6.8我用的 3.6.8 版本,你也可以安装其他版本,方法相同。1.1 查看 Mac CPU 位数uname -aDarwin MacdeAir 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018;...

2020-04-03 17:20:29 572

原创 从 0 开始机器学习 - 一文入门多维特征梯度下降法!

今天登龙跟大家分享下我对多维特征的读取、缩放和多变量梯度下降算法的理解,文章不长,有理论也有实际的代码,下面开始,Go!一、如何表示多维特征?1.1 特征缩放实际项目中在读取多维特征之前需要先对数据进行缩放,为什么呢?因为在有了多维特征向量和多变量梯度下降法后,为了帮助算法更快地收敛,还需要对选用的特征进行尺度缩放,其实就是缩小特征值,将多个特征的值都缩小到同样大小的区间,通常是缩小到 [...

2020-04-02 18:05:25 655 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除