PaQiuQiu
作为一个热衷于技术的从业者,我在这里与大家分享最新的科技动态、独到的技术观点和实践经验。
展开
-
RGB-D Slam 总结
相机运动过快的影响:其一,相机运动过快时,帧间的重叠区变小,对于特征点法来说,同名特征点变少,对于光流法和直接法来说,灰度不变假设不成立,这将导致位姿估计不准或者没法估计(可使用广角、鱼眼、全景相机,或者多放几个相机解决);实时性与SLAM结果的精度存在天然的矛盾,需要在两者间进行权衡。大多数的RGBD SLAM都是使用特征点、光流法或者直接法,较少使用特征线面等约束,原因是一般场景都能提供丰富的特征点,能适用于各种场景,而特征线面则只适用于人工场景,对于特征的使用场景,我们可以考虑使用线面提供约束条件。原创 2018-11-16 16:57:57 · 6230 阅读 · 5 评论 -
新手入门SLAM必备资料
1)SLAM需要会C和C++,网上很多代码还用了11标准的C++2)要学会用Linux3)第三要会cmake,vim/emacs及一些编程工具4)要会用openCV, PCL, Eigen等第三方库。只有学会了这些东西,才能真正上手编一个SLAM系统。如果要跑实际机器人,还要会ROS。下面将为大家推荐SLAM入门的学习书籍、SLAM公开课、SLAM学习网站、SLAM开源代码等资料大全。 http://ais.informatik.uni-freiburg.de/teaching/ws15/map原创 2022-12-04 21:40:41 · 767 阅读 · 0 评论 -
ROS入门
ROS是机器人研究领域一个广为探讨的主题。一、ROS是什么ROS(Robot Operating System)是Willow Garage公司于2007年发布的一个开源机器人操作系统,为软件开发人员开发机器人应用程序提供了许多优秀的工具和库。本质上,ROS并不是一个真正意义上的操作系统,而更像是基于操作系统之上的一个软件包,提供了众多在实际机器人中可能遇到的算法:导航...原创 2018-06-11 16:50:00 · 778 阅读 · 0 评论 -
ROS导航源码包学习——Costmap2D
costmap_2d包提供了一种可配置框架来维护机器人在占用珊格应该如何导航的信息。1>算法原理:bresenham算法:在介绍costmap_2d之前,要先介绍个算法bresenham算法,Bresenham直线算法是用来描绘由两点所决定的直线的算法,它会算出一条线段在n维光栅上最接近的点。这个算法只会用到较为快速的整数加法、减法和位元移位,常用于绘制电脑画面中的直线。是计算机图形学...原创 2019-08-02 14:00:41 · 733 阅读 · 2 评论 -
ROS导航源码包学习——AMCL
一、AMCL1>算法原理:AMCL算法根据订阅到的地图数据配合激光扫描特征,使用粒子滤波获取最佳定位点,该点称为Mp(point on map),它是相对于地图map上的坐标,也就是base_link相对map上的坐标。odom的原点是机器人启动时刻的位置(试想一下,在同一张地图上,你每次把机器人放的地方都不一样,所以odom的原点会在每次启动作业时都变一次的),而且因为传感器,打滑,...原创 2019-08-02 13:31:13 · 902 阅读 · 0 评论 -
#工程经验分享# 内存泄露排查
这里简单记录下ubuntu下进行程序内存消耗的检测,以及对于内存泄露的排查方法。//获取系统当前可用内存int GetSysMemInfo(){ int mem_free = -1; //空闲的内存 = 总内存 - 使用了的内存 int mem_total = -1; //当前系统可用总内存 int mem_buffers = -1; //缓存区的内存大小 int mem_cached = -1; //缓存区的内存大小 char name[20]; FILE *fp原创 2021-12-15 13:20:02 · 281 阅读 · 0 评论 -
ROS和ROS2.0到底该用哪个呢?
很多朋友经常问ROS1.0(下文简称ROS)和ROS2.0我到底该学习/使用哪个呢?欢迎拍砖讨论,但若是因此对您的项目或产品造成了损失,本人不负任何责任!我先给出个人的观点,再说明其中原因。对于大众学习者、普通开发者、机器人算法开发者,在2017年仍推荐使用ROS,至于以后,要看形势再作评估。对于计算机专业的学习者、强调实时性的开发者,推荐ROS2.0。原因:ROS 1.0历经10年的发展,已经积累了非常非常丰富且稳定的功能包集、各类工具和完备的教程。在未来即便是ROS2.0大行其道,仍会有机制原创 2021-12-13 16:17:28 · 4529 阅读 · 0 评论 -
ROS机器人操作系统(navigation)
1. Navigation Stack1.1 Navigation StackNavigation Stack是一个ROS的metapackage,里面包含了ROS在路径规划、定位、地图、异常行为恢复等方面的package,其中运行的算法都堪称经典。Navigation Stack的主要作用就是路径规划,通常是输入各传感器的数据,输出速度。一般我们的ROS都预装了Navigation。Nav...原创 2018-11-30 22:21:00 · 1332 阅读 · 0 评论 -
ROS机器人操作系统(slam)
1. 地图1.1 直观印象ROS中的地图很好理解,就是一张普通的灰度图像,通常为pgm格式。这张图像上的黑色像素表示障碍物,白色像素表示可行区域,灰色是未探索的区域。如下图所示, 在SLAM建图的过程中,你可以在RViz里看到一张地图被逐渐建立起来的过程,类似于一块块拼图被拼接成一张完整的地图。这张地图对于我们定位、路径规划都是不可缺少的信息。事实上,地图在ROS中是以Topic的形式维护和...原创 2018-11-30 22:11:46 · 4041 阅读 · 0 评论 -
ROS机器人操作系统(TF与URDF)
1. TF消息1.1 TransformStamped.msg上一节在介绍ROS中的TF时候我们已经初步的认识了TF和TF树,了解了在每个frame之间都会有broadcaster来发布消息维系坐标转换.那么这个消息到底是什么样子的呢?这个消息TransformStampde.msg,它就是处理两个frame之间一小段tf的数据格式.1.2 格式规范TransformStamped.ms...原创 2018-11-30 17:38:00 · 966 阅读 · 0 评论 -
ROS机器人操作系统(rospy)
1. rospy与主要接口1.1 rospy vs roscpprospy是Python版本的ROS客户端库,提供了Python编程需要的接口,你可以认为rospy就是一个Python的模块(Module)。这个模块位于/opt/ros/kineetic/lib/python2.7/dist-packages/rospy之中。rospy包含的功能与roscpp相似,都有关于node、topi...原创 2018-11-30 17:07:29 · 7097 阅读 · 0 评论 -
ROS机器人操作系统(roscpp)
1. Client Library与roscpp1.1 Client Library简介ROS为机器人开发者们提供了不同语言的编程接口,比如C++接口叫做roscpp,Python接口叫做rospy,Java接口叫做rosjava。尽管语言不通,但这些接口都可以用来创建topic、service、param,实现ROS的通信功能。Clinet Lirary有点类似开发中的Helper Clas...原创 2018-11-30 16:45:51 · 5262 阅读 · 2 评论 -
ROS机器人操作系统(常用工具)
1. Gazabo1.1 简介ROS中的工具就是帮助我们完成一系列的操作,使得我们的工作更加轻松高效。ROS工具的功能大概有以下几个方向:仿真、调试、可视化。本节课我们要学习的Gazebo就是实现了仿真的功能,而调试与可视化由Rviz、rqt来实现,我们下节再依次介绍。1.2 认识 GazeboGazebo是一个机器人仿真工具,模拟器,也是一个独立的开源机器人仿真平台。当今市面上还有其他的...原创 2018-11-26 22:11:16 · 2286 阅读 · 0 评论 -
ROS机器人操作系统(通信架构下)
1. Service1.1 Service我们知道topic是ROS中的一种单向的异步通信方式。然而有些时候单向的通信满足不了通信要求,比如当一些节点只是临时而非周期性的需要某些数据,如果用topic通信方式时就会消耗大量不必要的系统资源,造成系统的低效率高功耗。这种情况下,就需要有另外一种请求-查询式的通信模型。这节我们来介绍ROS通信中的另一种通信方式——service(服务)。1.2...原创 2018-11-26 22:00:29 · 1323 阅读 · 0 评论 -
ROS机器人操作系统(通信架构上)
1. Node & Master1.1 Node在ROS的世界里,最小的进程单元就是节点(node)。一个软件包里可以有多个可执行文件,可执行文件在运行之后就成了一个进程(process),这个进程在ROS中就叫做节点。 从程序角度来说,node就是一个可执行文件(通常为C++编译生成的可执行文件、Python脚本)被执行,加载到了内存之中;从功能角度来说,通常一个node负责者机器...原创 2018-11-21 22:20:28 · 3340 阅读 · 0 评论 -
ROS机器人操作系统(ROS文件系统)
1. Catkin工作空间与编译系统1.1 Catkin工作空间Catkin工作空间是创建、修改、编译catkin软件包的目录。catkin的工作空间,直观的形容就是一个仓库,里面装载着ROS的各种项目工程,便于系统组织管理调用。在可视化图形界面里是一个文件夹。我们自己写的ROS代码通常就放在工作空间中,本节就来介绍catkin工作空间的结构。1.1.1 初始化catkin工作空间介绍完c...原创 2018-11-21 21:16:36 · 3521 阅读 · 0 评论 -
ROS机器人操作系统——ROS介绍
AI is the new electricity.1.ROS发展史本世纪开始,关于人工智能的研究进入了大发展阶段,包括全方位的具体的AI,例如斯坦福大学人工智能实验室STAIR(Stanford Artificial Intelligence Robot)项目,该项目组创建了灵活的、动态的软件系统的原型,用于机器人技术。在2007年,机器人公司Willow Garage和该项目组合作,他...原创 2018-11-21 20:31:12 · 48960 阅读 · 6 评论