自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

古月居

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

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

原创 博客迁移通知

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2013-07-15 18:03:43 51282 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 59722 17

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

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

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

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

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

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

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

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

2013-06-06 21:39:46 12468 15

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

原创 ROS实现无人驾驶控制算法(一)——pure pursuit

轨迹跟踪主要分为两类:基于几何追踪的方法和基于模型预测的方法。而pure pursuit算法就是最基本的基于几何的控制算法,因其鲁棒性高,对路径的要求低而广泛使用,也为后续的standly、LQR、MPC算法打好基础。因为纯追踪算法是基于几何模型的,因此,需要推导出车辆的运动学模型,本文采用的是阿克曼模型(差速模型也会提及)。对于阿克曼转向模型来说,只需要驱动电机控制线速度,以及前轮舵机转角控制转向,因此,需要计算前轮转向角的求导公式。3.从该路径点出发,沿着路径寻找大于前视距离的第一个点作为目标点。

2024-04-18 18:05:56 231

原创 记录的一些ROS2高级用法

对于动态参数,大家学过ROS1的话应该都应该有所耳闻吧,ROS1的动态参数的操作还需要dynamic_reconfigure,ROS2中我们直接使用declare_parameter声明参数,可以在rqt-reconfigure中动态配置,之前我们在声明时新增了一个只读的约束。我们这里参考gitee中的代码。作者最近发现ROS2目前的功能越来越完善了,其中也新增了很多比较好用的高级玩法,这里作者来一个个向大家展示。同时我们设置一个参数修改的回调通知,来根据设置的参数下发至下位机。

2024-04-17 16:21:04 167

原创 KITTI结果领先地位!Progressive LiDAR Adaptation for Road Detection——PLARD算法

在此,我们研究了利用激光雷达数据进行道路检测时遇到的困难,并提出了一种新的更有效的方法,将激光雷达信息纳入基于视觉图像的道路检测系统。使用著名的KITTI道路检测基准[16],我们对提出的PLARD系统进行了全面的实验,以评估提出技术不同部分的有效性,以及相对于基于视觉图像的道路检测系统的整体性能增益。多年来,分割技术已用于识别单目图像中的道路区域,最近,基于深度卷积神经网络(DCNN)的图像分割方法(如FCN[1]和DeepLab[2])的引入显著提高了基于视觉图像的道路检测的性能。

2024-04-17 15:48:21 536

原创 AVM 环视拼接方法介绍

以下是视频中四个相机分别拍摄的原始画面,顺序依次为前、后、左、右,并命名为 front.png、back.png、left.png、right.png .你可以看到图中地面上铺了一张标定布,这个布的尺寸是 6mx10m,每个黑白方格的尺寸为 40cmx40cm,每个圆形图案所在的方格是 80cmx80cm。投影变换的通俗理解就是:假设同一个相机分别在A、B两个不同位置,以不同的位姿拍摄同一个平面(重点是拍摄平面,例如桌面、墙面、地平面),生成了两张图象,这两张图象之间的关系就叫做投影变换。

2024-04-16 14:11:46 893

原创 KITTI结果领先地位!Progressive LiDAR Adaptation for Road Detection——PLARD算法

在此,我们研究了利用激光雷达数据进行道路检测时遇到的困难,并提出了一种新的更有效的方法,将激光雷达信息纳入基于视觉图像的道路检测系统。使用著名的KITTI道路检测基准[16],我们对提出的PLARD系统进行了全面的实验,以评估提出技术不同部分的有效性,以及相对于基于视觉图像的道路检测系统的整体性能增益。多年来,分割技术已用于识别单目图像中的道路区域,最近,基于深度卷积神经网络(DCNN)的图像分割方法(如FCN[1]和DeepLab[2])的引入显著提高了基于视觉图像的道路检测的性能。

2024-04-16 11:44:45 724

原创 python实现简单的车道线检测

假设拍摄图像的前置摄像头安装在汽车上的固定位置,这样车道线将始终出现在图像的相同区域中。我们将设置了一个区域,认为车道线处于该区域内。以下的代码设置了RGB通道阈值为220,大于220的像素将设置为黑色,这样可以将测试图片中的车道线提取出来。显然,一个成熟的自动驾驶感知算法,是不可能使用这种方法的。我们发现符合阈值的像素既包括了车道线,也包含了其他非车道线部分。这两种方法都能实现简单的车道线检测demo,注意仅仅是demo。python实现简单的车道线检测,本文章将介绍两种简单的方法。

2024-04-15 14:14:38 273

原创 ① 学习PID--先认识有什么电机和驱动

电机是一种可以在电能和机械能的之间相互转换的设备,其中发电机是将机械能转换为电能,电动机是将电能转换为机械能。发电机的主要用于产生电能,用途单一,但是电动机主要用于产生机械能,用途极其广泛。电机是一种可以实现电能与机械能之间相互转换的设备,其可分为电动机和发电机两种,前者能够把电能转换成机械能,而后者则能把机械能转换成电能。

2024-04-15 11:37:16 1054

原创 自然语言控制机械臂:ChatGPT与机器人技术的融合创新(上)

pymycobot 提供了大量的机械臂的控制接口,例如关节控制,坐标控制,配套的机械臂的夹爪控制等等,对机械臂变成的初学者是相当有好的。该项目一共分为上下两篇,本篇文章主要内容是整个人工智能系统的设计和构建的过程,未来的下一篇文章将要介绍在开发项目的过程中遇到的而困难,如何解决,以及该项目有什么扩展的性的功能。想象如果有有一天,你命令一个机械臂“帮我收拾一下桌面,将垃圾丢到垃圾桶里”,机械臂就开始听从命令,清理你的桌面的垃圾,那该是多么幸福的一件事情呀。

2024-04-14 17:08:15 1203

原创 常用传感器指标以及性能

一般来讲,摄像头除了对外发送捕获到的图像数据外,还会发送帧同步信号,行同步信号,像素时钟等信息,此外还有电源供给等等,它是由许多信号线组成的一个并行总线,并行总线在高速的数据传输过程中,是不占据优势的,因此我们需要将这些并行的信号合并为串行信号,再通过更高频率进行传输。美国自动化成像协会(AIA)推出了GigE Vision标准,该标准是基于千兆以太网通信协议开发的,经现有的以太网线实现快远距离速图像传输,能实时快速、高带宽地传输大型图像,传输速率达125MB/秒,传输距离达100米。方便实用,操作简单。

2024-04-14 17:02:21 754

原创 NICEGUI---ROS开发之中常用的GUI工具

对于ROS来说,如果不具备一定知识的人员来使用这些我们写的算法,如果说没有交互,这会让用户使用困难,所以我们需要使用GUI来完成友善的数据交互,传统的GUI方法一般有PYQT这类GUI方法,但是这类GUI工具上手门槛较高,也不太适合快速且敏捷的可视化界面开发。NiceGUI 是一个易于使用、基于Python的用户界面框架,它显示在Web浏览器里,可创建按钮,对话框,markdown,3D场景,绘图等。它非常适用于小型网页应用、仪表盘、机器人项目、智能家居解决方案和类似的场景。相关代码也已经全部在。

2024-04-13 17:53:59 422

原创 ⑤-1 学习PID--什么是PID

⑤-1 学习PID--什么是PID

2024-04-13 17:49:44 1094

原创 Matlab与ROS(1/2)---Message(三)

消息是ROS中交换数据的主要容器。主题和服务使用消息在节点之间传输数据。为了标识其数据结构,每条消息都有一个消息类型。例如,来自激光扫描仪的传感器数据通常以类型的消息发送。每种消息类型标识消息中包含的数据元素。每个消息类型名称都是一个包名称。MATLAB支持在机器人应用程序中经常遇到的许多ROS消息类型。这个例子展示了在MATLAB中创建、探索和填充ROS消息的一些方法。

2024-04-12 17:05:40 935

原创 基于mpc实现无人机轨迹跟踪ROS功能包:mav_control_rw

mav_control_rw 功能包是ETHZ ASL的利用mpc控制实现了旋翼式无人机的轨迹追踪算法。mpc是模型预测控制的简称,全称是Model-based Predictive Controlmpc利用一个已有的模型、系统当前的状态和未来的控制量,来预测系统未来的输出,然后与我们期望的系统输出做比较,得到代价函数,通过优化的方法,优化出未来控制量,使得代价函数最小。优化出来的控制量即算法的输出。MPC 优点善于处理多输入多输出系统(MIMO)可以处理约束,如安全性约束,上下阈值。

2024-04-12 16:55:00 1090

原创 避免使用第三方工具完成电脑环境检测

在之前配置各种深度学习环境的时候经常需要先检测一下电脑的软硬件环境,其实整个过程比较重复和固定,所以我们是否有可能一键检测Python版本、PIP版本、Conda版本、CUDA版本、电脑系统、CPU核数、CPU频率、内存、硬盘等内容这是很多Deepper苦恼的。这里会从软件开始介绍,并最终提供一套Python脚本工具来完成检测。

2024-04-11 17:36:27 681

原创 力控机器人(触觉感知)阻抗控制性能(performance specifications)与MATLAB程序实现

在机器人执行物理交互任务时,环境的不确定性和复杂性往往导致力的变化和机器人位置、速度的变化之间的相互影响,而阻抗控制可以通过模拟机器人与环境之间的交互阻抗来处理这些影响,从而实现更加精确的力控制。在阻抗控制中,机器人的运动受到环境的反作用力的影响,从而调整机器人的运动以适应环境的变化,实现精确的力控制。摆动的导纳越低,达到相同的摆动速度所需的力就越大。更高的精度和稳定性:力控机器人能够根据物体的特性和环境变化来调整力的大小和方向,从而实现更加精确的物理交互任务,并且在控制过程中具有较高的稳定性。

2024-04-11 17:32:31 656

原创 基于OptiTrack跟踪系统和Turtlebot机器人的视觉SLAM定位评估

OptiTrack是美国公司NaturalPoint公司研制的高性能光学跟踪系统,可以获取场地中物体的亚像素级位置,目前TUM等公开数据集的轨迹真值均通过OptiTrack系统获取。OptiTrack由固定在场地上方的多个Prime相机、荧光标记球、Motive处理软件组成,使用过程中,将多个荧光标记球粘在物体上,Prime相机以每秒数百帧的速率拍摄荧光标记球,Motive实时地解算出物体在场景中的位姿。OptiTrack系统的原理如图所示。

2024-04-10 17:37:52 1166

原创 【自动驾驶】路径规划算法Dijkstra与A*

在本文中,我们将主要介绍Dijkstra算法和A*算法,从成本计算的角度出发,并逐步展开讨论。我们将从广度优先搜索开始,然后引入Dijkstra算法,与贪心算法进行比较,最终得出A*算法。

2024-04-09 15:51:01 573

原创 基于opencv的视觉巡线实现

这段时间在和学弟打软件杯的比赛,有项任务就是机器人的视觉巡线,这虽然不是什么稀奇的事情,但是对于一开始不了解视觉的我来说可以说是很懵了,所以现在就想着和大家分享一下,来看看是如何基于opencv来实现巡线的。我这里以ubuntu20.04为例了。

2024-04-09 15:24:28 933

原创 小白能看懂的CyberRT学习笔记

Apollo Cyber RT 是专为自动驾驶场景设计的开源、高性能运行时框架。基于中心化计算模型,主要价值是提升自动驾驶系统的高并发、低延迟、高吞吐。Apollo 并不是一开始就使用 CyberRT,在 v3.0 之前用的都是基于 ROS 框架进行开发。但在之前的版本中发现了很多问题,随着 Apollo 的发展,对最高水平的稳健性和性能的需求, Apollo Cyber RT 应运而生,它满足了一个面向商业化的自动驾驶解决方案的基础需求。

2024-04-08 15:39:21 706

原创 常用的深度学习自动标注软件

自动标注软件是一个非常节省人力资源的操作,而随着深度学习的发展,这些自动化标定软件也越来越多。本文章将会着重介绍其中比较经典的自动标注软件。

2024-04-08 15:33:41 691

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关注的人

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