自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

古月居

怕什么真理无穷,进一寸有一寸的欢喜

  • 博客(125)
  • 资源 (11)
  • 收藏
  • 关注

原创 博客迁移通知

为方便博客内容的管理,今后本人的博客内容会在个人网站——古月居(http://www.guyuehome.com)进行更新,CSDN博客不作主要维护,感谢大家的支持。由于网站方面的能力有限,个人网站可能会存在一些问题,欢迎大家批评指正。 同时欢迎各位关注“古月居”微信公众号,第一时间了解ROS机器人的相关动态。...

2019-12-18 15:02:10 20261 8

原创 ROS探索总结(十九)——如何配置机器人的导航功能

ROS的二维导航功能包,简单来说,就是根据输入的里程计等传感器的信息流和机器人的全局位置,通过导航算法,计算得出安全可靠的机器人速度控制指令。但是,如何在特定的机器人上实现导航功能包的功能,却是一件较为复杂的工程。作为导航功能包使用的必要先决条件,机器人必须运行ROS,发布tf变换树,并发布使用ROS消息类型的传感器数据。同时,为了让机器人更好的完成导航任务,开发者还要根据

2016-01-18 22:07:23 32789 19

原创 ROS探索总结(十八)——重读tf

在之前的博客中,有讲解tf的相关内容,本篇博客重新整理了tf的介绍和学习内容,对tf的认识会更加系统。1 tf简介1.1 什么是tf        tf是一个让用户随时间跟踪多个参考系的功能包,它使用一种树型数据结构,根据时间缓冲并维护多个参考系之间的坐标变换关系,可以帮助用户在任意时间,将点、向量等数据的坐标,在两个参考系中完成坐标变换。        tf的相关设计思想,可以参见:tf设计 1

2015-12-02 23:11:10 37901 8

原创 ROS探索总结(十七)——构建完整的机器人应用系统

上一篇博客介绍了HRMRP机器人平台的设计,基于该平台,可以完成丰富的机器人应用,以较为典型的机器人导航为例,如何使用HRMRP来完成相应的功能?本篇博客将详细介绍如何将HRMRP应用到实际的应用当中。

2015-09-20 12:30:40 16231 15

原创 ROS探索总结(十六)——HRMRP机器人的设计

HRMRP(Hybrid Real-time Mobile Robot Platform,混合实时移动机器人平台)机器人是我在校期间和实验室的其他小伙伴一起从零开始设计并开发的一款机器人平台,其中大部分扩展电路、驱动和ROS相关的底层功能都是我们自己做的。该机器人平台具有软硬件可编程、灵活性强、模块化、易扩展、实时性强等特点。HRMRP具备丰富的传感器和执行器,在该平台的基础上,我们设计并实现了机器人SLAM、自主导航、人脸识别、机械臂控制等功能。

2015-09-13 15:22:10 12276 4

原创 ROS探索总结(十五)——amcl(导航与定位)

在理解了move_base的基础上,我们开始机器人的定位与导航。gmaping包是用来生成地图的,需要使用实际的机器人获取激光或者深度数据,所以我们先在已有的地图上进行导航与定位的仿真。        amcl是移动机器人二维环境下的概率定位系统。它实现了自适应(或kld采样)的蒙特卡罗定位方法,其中针对已有的地图使用粒子滤波器跟踪一个机器人的姿态。一、测试        首先运行

2013-09-27 21:10:33 68702 33

原创 ROS探索总结(十四)——move_base(路径规划)

在上一篇的博客中,我们一起学习了ROS定位于导航的总体框架,这一篇我们主要研究其中最重要的move_base包。

2013-07-25 16:26:22 83256 35

原创 ROS探索总结(十三)——导航与定位框架

导航与定位是机器人研究中的重要部分。        一般机器人在陌生的环境下需要使用激光传感器(或者深度传感器转换成激光数据),先进行地图建模,然后在根据建立的地图进行导航、定位。在ROS中也有很多完善的包可以直接使用。        在ROS中,进行导航需要使用到的三个包是:      (1) move_base:根据参照的消息进行路径规划,使移动机器人到达指定的位置;

2013-07-15 18:03:43 50753 14

原创 ROS探索总结(十二)——坐标系统

在机器人的控制中,坐标系统是非常重要的,在ROS使用tf软件库进行坐标转换。        相关链接:http://www.ros.org/wiki/tf/Tutorials#Learning_tf一、tf简介        我们通过一个小小的实例来介绍tf的作用。1、安装turtle包$ rosdep install turtle_tf rviz$ rosmake turt

2013-07-05 19:55:12 59196 17

原创 ROS探索总结(十一)——机器视觉

机器视觉在计算机时代已经越来越流行,摄像头价格越来越低廉,部分集成深度传感器的混合型传感器也逐渐在研究领域普及,例如微软推出的Kinect,而且与之配套的软件功能十分强大,为开发带来了极大的便利。ROS集成了Kinect的的驱动包OpenNI,而且使用OpenCV库可以进行多种多样的图像处理。        注:本章内容及代码均参考《ROS by Example》书中的第十章。一、图像

2013-06-24 21:24:19 55174 74

原创 ROS探索总结(十)——语音控制

如今语音识别在PC机和智能手机上炒的火热,ROS走在技术的最前沿当然也不会错过这么帅的技术。ROS中使用了CMU Sphinx和Festival开源项目中的代码,发布了独立的语音识别包,而且可以将识别出来的语音转换成文字,然后让机器人智能处理后说话。一、语音识别包1、安装        安装很简单,直接使用ubuntu命令即可,首先安装依赖库:$ sudo apt-ge

2013-06-15 22:03:03 26885 30

原创 ROS探索总结(九)——操作杆控制

对于移动机器人,键盘的控制往往满足不了我们的需求,以前看好多电影里边都是用一个摇杆来控制机器人的,简直帅爆了,正好我这里有一个操作杆,那就来尝试感受一下。        操作杆(joystick)控制会更加有操作感,ROS中的很多机器人也带有操作杆的相关代码,只需要简单的移植即可。我们使用的是赛钛客(saitek)的一款操作杆,如下图所示:        使用的移植代码是clear

2013-06-06 21:39:46 12251 14

原创 ROS探索总结(八)——键盘控制

如果尝试过前面的例子,有没有感觉每次让机器人移动还要在终端里输入指令,这也太麻烦了,有没有办法通过键盘来控制机器人的移动呢?答案室当然的了。我研究了其他几个机器人键盘控制的代码,还是有所收获的,最后移植到了smartcar上,实验成功。一、创建控制包        首先,我们为键盘控制单独建立一个包:roscreate-pkg smartcar_teleop rospy geometr

2013-06-01 17:04:12 43774 16

原创 ROS探索总结(七)——smartcar源码上传

看到前面写的博客还是帮助了很多ROS的学习者,我感到非常荣幸。其实我也是一名ROS的新手,ROS的相关资料少,上手难度大,我现在也在摸索着学习,还希望大家都将自己的学习成果在网上或者ROS群里分享。        我看到有些人在运行我前面写的smartcar程序,为了方便大家的学习,我这两天整理了一下代码,已经上传到csdn上,下载请见:        http://download.cs

2013-05-31 13:30:28 13579 7

原创 ROS探索总结(六)——使用smartcar进行仿真

之前的博客中,我们使用rviz进行了TurtleBot的仿真,而且使用urdf文件建立了自己的机器人smartcar,本篇博客是将两者进行结合,使用smartcar机器人在rviz中进行仿真。一、模型完善        之前我们使用的都是urdf文件格式的模型,在很多情况下,ROS对urdf文件的支持并不是很好,使用宏定义的.xacro文件兼容性更好,扩展性也更好。所以我们把之前的urdf

2013-05-20 19:04:19 25138 62

原创 ROS探索总结(五)——创建简单的机器人模型smartcar

前面我们使用的是已有的机器人模型进行仿真,这一节我们将建立一个简单的智能车机器人smartcar,为后面建立复杂机器人打下基础。一、创建硬件描述包roscreat-pkg smartcar_description urdf二、智能车尺寸数据        因为建立的是一个非常简单的机器人,所以我们尽量使用简单的元素:使用长方体代替车模,使用圆柱代替车轮,具体尺寸

2013-05-09 10:56:40 32795 50

原创 ROS探索总结(四)——简单的机器人仿真

前边我们已经介绍了ROS的基本情况,以及新手入门ROS的初级教程,现在就要真正的使用ROS进入机器人世界了。接下来我们涉及到的很多例程都是《ROS by Example》这本书的内容,我是和群里的几个人一起从国外的亚马逊上买到的,还是很有参考价值的,不过前提是你已经熟悉之前的新手教程了。一、ROS by Example        这本书是关于国外关于ROS出版的第一本书,主要针

2013-04-30 21:21:41 57240 57

原创 ROS探索总结(三)——ROS新手教程

前面我们介绍了ROS的特点和结构,接下来就要开始准备动手感受一下ROS的强大了。ROS官网的wiki上针对新手的教程很详细,最好把所有的新手教程都搞清楚,这是后面开发最基础的东西。尽管如此,ROS对于新手来说还是很难上手,这里,我就来总结一下我当时学习的历程,也为其他新手作为一个参考。一、ROS的安装        ROS的安装当然是我们开始动手的第一步了,这里我们使用的操作系统是

2013-04-16 21:56:23 130628 33

原创 ROS探索总结(二)——ROS总体框架

一、  总体结构       根据ROS系统代码的维护者和分布来标示,主要有两大部分:     (1)main:核心部分,主要由Willow Garage公司和一些开发者设计、提供以及维护。它提供了一些分布式计算的基本工具,以及整个ROS的核心部分的程序编写。     (2)universe:全球范围的代码,有不同国家的ROS社区组织开发和维护。一种是库的代码,如OpenCV、PCL等

2013-04-12 22:23:30 43531 8

原创 ROS探索总结(一)——ROS简介

一、历史       随着机器人领域的快速发展和复杂化,代码的复用性和模块化的需求原来越强烈,而已有的开源机器人系统又不能很好的适应需求。2010年Willow Garage公司发布了开源机器人操作系统ROS(robot operating system),很快在机器人研究领域展开了学习和使用ROS的热潮。       ROS系统是起源于2007年斯坦福大学人工智能实验室的项目与机

2013-04-12 21:30:25 66875 27

转载 使用python来调试串口

串口模块的波特率比较特别,找了几个串口工具都不支持。。。所以,干脆用python自己来写了,其实已经好奇好久了,别人的工具各种不顺手。需要pyserial的支持,兼容各种平台,不需要新编译二进制文件。 先贴一个定时发送的代码:import serialimport timeser = serial.Serial('/dev/ttyUSB0', 250000, timeout=1)print

2016-01-18 17:12:10 16000

转载 树莓派初体验,安装Ubuntu 14.04 LTS

转载自:http://www.polarxiong.com/archives/%E6%A0%91%E8%8E%93%E6%B4%BE%E5%88%9D%E4%BD%93%E9%AA%8C-%E5%AE%89%E8%A3%85Ubuntu-14-04-LTS.html一、关于树莓派动机如之前在某篇文章最后写的,发现了可以用ipv6做反向代理,以及树莓派可以安装Ubuntu 14.04后,原本只是感兴

2015-09-17 19:38:51 40445 6

原创 关于ROS学习的一些反思

距离发布上一篇ROS的博客已经过去两年了,才发现原来自己已经这么久可没有写过关于ROS的文章,想来很是惭愧。这两年时间,自己怀着程序员的梦想,研究过RTOS,探索过Linux,编写过Android应用,玩过web站点,但是回想起来,也并没有比ROS让我更加记忆深刻。两年时间,我也从来没有离开过ROS,使用ROS做过一些项目,也对ROS有了更加深刻的认识。这三天的假期时间,我认真拜读了国内开发者近年

2015-09-06 01:51:09 21648 24

转载 什么是堆和栈,它们在哪儿?

问题描述编程语言书籍中经常解释值类型被创建在栈上,引用类型被创建在堆上,但是并没有本质上解释这堆和栈是什么。我仅有高级语言编程经验,没有看过对此更清晰的解释。我的意思是我理解什么是栈,但是它们到底是什么,在哪儿呢(站在实际的计算机物理内存的角度上看)?在通常情况下由操作系统(OS)和语言的运行时(runtime)控制吗?它们的作用范围是什么?它们的大小由什么决定?哪个更快?答案一栈是为执行线程留出

2014-11-17 10:18:13 4334 5

转载 轻松搞定面试中的二叉树题目

版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/7518888树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都

2014-08-31 15:43:39 3612

转载 贪心算法

转载自贪心算法的设计思想         贪心算法在解决问题的策略上目光短浅,只根据当前已有的信息就做出选择,而且一旦做出了选择,不管将来有什么结果,这个选择都不会改变。换言之,贪心法并不是从整体最优考虑,它所做出的选择只是在某种意义上的局部最优。贪心算法对于大部分的优化问题都能产生最优解,但不能总获得整体最优解,通常可以获得近似最优解。引例 [找零钱]一个小孩买了价值少于1美元的糖,并将1美元的

2014-08-28 16:56:51 3979

转载 浅析PageRank算法

转载自http://blog.jobbole.com/23286/

2014-07-24 21:47:44 5642 2

原创 栈的应用——四则表达式求值

栈的应用有很多,四则运算是一个比较常见的应用。对于四则运算,括号内的要先运算,而且还要先乘除后加减,又要涉及到负数和浮点数,看上去简简单单的式子,其实暗藏杀机。        常用的方法是利用后缀表达式(逆波兰)进行计算。主要分为两步:        (1)将中缀表达式转化为后缀表达式(栈用来进出运算的符号):        从左到右遍历中缀表达式的每一个数字和符号,若是数字就输出,既成为后缀表达

2014-07-15 15:31:13 10015 1

原创 printf函数压栈解惑

最近开到一些

2014-06-12 09:54:07 4210

转载 epoll通俗讲解

首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。    不管是文件,还是套接字,还是管道,我们都可以把他们看作流。    之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要

2014-05-09 15:56:39 4208

原创 django练习——博客系统优化

一直准备使用Django搭建一个个人网站,最近终于开始动手,上周已经完成了基本博客功能的搭建(http://blog.csdn.net/hcx25909/article/details/24601331),不过代码基本是copy的,还是很想掌握具体的实现过程。于是,这几天在之前的基础上继续优化博客的功能和界面,将别人代码中比较好的部分移植到自己的博客当中。主要参考的个人博客系统是:http://h

2014-05-03 20:10:26 14703 6

原创 Django练习——博客系统小试

在上一篇博客Todolist的基础上(),

2014-04-27 21:33:26 7958 3

原创 Django练习——TodoList

TodoList是django入门一个比较基础的例程,主要参考如下博客,写的非常好:simple-todo: http://www.cnblogs.com/cacique/archive/2012/10/06/2713415.html       本文在pycharm环境下重新对上面代码进行了实现,并且作为初学者从这个实例代码出发,具体分析并且熟悉django的相关机制。实验p

2014-04-21 14:36:54 12701 2

原创 ubuntu14.04恢复系统默认中文字体

今天Ubuntu14.04已发布就进行了更新,在

2014-04-18 16:07:59 19188 10

原创 μC/OS-II与RT-Thread对比——任务调度

在任务调度器的实现上,μC/OS-II和RT-Thread都采用了位图调度(bitmap scheduling),任务优先级的值越小则代表具有越高的优先级,主要区别在于实现形式,是采用多级队列的形式,还是纯位图的形式。在位图调度下,每当需要进行调度时,从最低位向最高位查找出第一个置 1 的位的所在位置,即为当前最高优先级,然后从对应优先级就绪队列获得相应的任务控制块,整个调度器的实现复杂度是 O(

2014-04-17 19:53:11 24184 4

原创 pycharm+django之小试牛刀

准备好好学习一下python,就从django开始吧,顺带了解一下网站的开发。今天在windows上安装了python,django,以及酷炫吊的IDE——pycharm,学习资料主要是《the Django Book 2》,hello world的程序就不要详细叙述了,比较简单而且网上有很多例程,主要通过动态内容的实验对django开发具有一个大致的认识。一、新建工程        第一

2014-03-21 21:10:45 36949

原创 Unable to handle 'index' format version '2', please update rosdistro的解决办法

之前安装的ROS是Fuerte版本的,好久没有更新,不知不觉又出来了好几个新的版本,今天删除了Fuerte,计划安装Hydro版本的尝尝新,按照官网的安装流程,很快就可以把新版本安装上去了,但是在“rosdep update”这一步却总是报错:reading in sources list data from /etc/ros/rosdep/sources.list.dHit https:/

2014-03-17 16:46:53 4782 3

转载 rt-thread的位图调度算法分析

转自:http://blog.csdn.net/prife/article/details/7077120序言期待读者本文期待读者有C语言编程基础,后文中要分析代码,对其中的一些C语言中的简单语句不会介绍,但是并不要求读者有过多的C基础,比如指针和链表等不会要求太多,后面在分析代码时,会附带地介绍相关的知识,如果您已经精通了C语言的指针则可以略过相关的介绍。

2014-01-08 20:10:46 4189

原创 树莓派linux驱动学习之LED控制

前面我们编写了hello world的程序,接下来继续研究GPIO功能,通过GPIO来控制LED的亮灭,这在单片机中应该算是十分简单的一个程序了,但是在Linux系统中控制GPIO没有那么简单,难点就在于GPIO地址的获取,也是我一直在纠结的问题。一、GPIO地址        我看了中嵌的嵌入式开发视频,里面使用三星2440控制LED的亮灭,但是驱动程序中没有写清楚具体的底层是如何实现的

2013-11-21 14:54:03 23099 17

原创 树莓派linux驱动学习之hello world

最近想学习一下linux驱动,看了一些书和教学视频,大概了解了一下,不过要想深入,肯定需要实践。手上有几块linux的板子,最终选择了树莓派作为我的实验平台,资料比较丰富,接口也比较简单。        程序员的入门经典当然就是hello world程序了,我的第一个实验就是要搭建实验环境和工具链,通过交叉编译的方式,在上位机完成hello world驱动程序的编写,最终在板子上运行。一、

2013-11-21 14:26:25 24301 5

ROS学习tf的初级代码

ROS学习tf的初级代码 详细教程见: http://blog.csdn.net/column/details/ros-explore.html

2013-07-05

ROS使用键盘控制机器人移动

ROS使用键盘控制机器人移动 详细教程见 http://blog.csdn.net/column/details/ros-explore.html

2013-06-01

ROS中smartcar机器人的描述文件

ROS中smartcar机器人的描述文件 具体教程见: http://blog.csdn.net/hcx25909/article/details/8951833

2013-05-31

grub4dos制作多系统启动U盘所需文件打包

使用grub4dos制作多系统启动U盘(win7、ubuntu12.04) 所需要的文件打包 具体教程见: http://blog.csdn.net/hcx25909/article/details/8982208

2013-05-28

使用grub4dos制作多系统启动U盘

使用grub4dos制作多系统启动U盘(win7、ubuntu12.04) 所需要的软件和文件打包 具体教程见:http://blog.csdn.net/hcx25909/article/details/8982208

2013-05-28

Qt_画图软件设计教程

Qt_画图软件设计教程 内容很详细,适合新手学习

2013-03-26

零基础学QT编程 吴迪.pdf

零基础学QT编程,QT入门级书籍

2013-03-24

ROS链接openni库测试代码

ROS链接openni库获取kinect数据(PC端) 具体使用说明见:http://blog.csdn.net/hcx25909/article/details/8619126

2013-02-27

华为+程序规范教材

华为公司的代码规范,很详细 华为公司的代码规范,很详细

2012-10-14

LWIP中文手册

很详细的lwip中文说明

2012-10-14

K60英文芯片资料

K60的官方芯片资料,内容比较多,都是英文的,看起来比较麻烦

2012-02-09

空空如也

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

TA关注的人

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