ROS中常用的通讯机制是topic和service,但是在很多场景下,这两种通讯机制往往满足不了我们的需求,比如上一篇博客我们讲到的机械臂控制,如果用topic发布一个运动目标,由于topic没有反馈,还需要另外订阅一个机械臂状态的topic,来获得运动过程的状态。如果用service来发布运动目标,虽然可以获得反馈,但是反馈只有一次,对于我们的控制来讲数据太少了,而且如果反馈迟迟没收到,也只能傻
ROS中提供了丰富的机器人应用:SLAM、导航、MoveIt......但是你可能一直有一个疑问,这些功能包到底应该怎么样用到我们的机器人上,也就是说在应用和实际机器人或者机器人仿真器之间,缺少一个连接两者的东西。 ros_control就是ROS为用户提供的应用与机器人之间的中间件,包含一系列控制器接口、传动装置接口、硬件接口、控制器工具箱等等,可以帮助机器人应用快速落地,提高开发效率。
今天正好有时间,尝试了一下3D地图建模,记录一下流程: 一、安装rgbdslam功能包 在工作空间中下载代码并解压: wget -q http://github.com/felixendres/rgbdslam_v2/archive/indigo.zip unzip -q indigo.zip 然后回到catkin_ws的目录下,安装依赖: rosdep inst
终于结束了18届高交会的功夫茶项目展示,总体来讲,展示效果不错,吸引了众多各年龄段的观众,还上了回CCTV的新闻。 在这里做一个阶段性的总结,也是自己这大半年来的所做所得。 今年4月中旬我来到深圳,和其他几个师兄创建了现在的公司——深圳星河智能科技有限公司,主打工业机器人。5月份完成了Ethercat主站部分的开发,6月份使用ROS建立了整套机器人的开发环境和可视化界面,7月份在实体机器人上
机器人通过机器视觉看到色彩斑斓的世界,但是人类最美好的不只是看到的,还有听到的,让机器人听懂人类的语音,同样是一样非常美妙的事情。 机器听觉,简单来说就是让机器人能听懂人说的话,以便更好的服务于人类。将语音——人类最自然的沟通和交换信息的媒介应用到智能机器人控制中,在机器人系统上增加语音接口,用语音代替键盘输入,并进行人机对话,不仅是将语音识别从理论转化为实用的有效证明,同时也是机器人
工业机器人是机器人中非常重要的一个部分,在工业领域应用广泛而且成熟,ROS迅猛发展的过程中,也不断渗入到工业领域,从而产生了一个新的分支——ROS-Industrial(ROS-I)。 ROS-I的官网: http://rosindustrial.org/ 一、ROS-I的目标 将ROS强大的功能应用到工业生产的过程中; 为工业机器人的研究与应用提供快捷有效的开发途径; 为工业机器
在之前的基础学习中,我们已经对moveit有了一个基本的认识,在实际的应用中,GUI提供的功能毕竟有限,很多实现还是需要我们在代码中完成,moveit的move_group也提供了丰富的C++ API,不仅可以帮助我们使用代码完成GUI可以实现的功能,还可以加入更多丰富的功能。我们继续使用《Mastering ROS for robotics Programming》中的源码作为学习对象。
MoveIt!由ROS中一系列移动操作的功能包组成,包含运动规划,操作控制,3D感知,运动学,碰撞检测等等,而且提供友好的GUI。官方网站:http://moveit.ros.org/,上边有MoveIt!的教程和API说明。 一、架构 下图是MoveIt的总体框架: move_group是MoveIt的核心部分,可以综合机器人的各独立组件,为用户提供一系列需要的动作指令和服务。从架构图中我
URDF文件完成后,可以在rviz中显示机器人的模型,如果要在gazebo中进行物理环境仿真,还需要为URDF文件加入一些gazebo相关的标签。既然是仿真,那么机器人应该像真在真实环境中一样,可以通过传感器感知周围环境,还可以根据指令进行运动。 在gazebo中可以通过插入一些插件,来仿真机器人的传感器、执行器的特性,这些插件通过<gazebo>元素中的<plugin>标
Unified Robot Description Format,统一机器人描述格式,简称为URDF。ROS中的urdf功能包包含一个URDF的C++解析器,URDF文件使用XML格式描述机器人模型。 1 URDF语法规范 参见:XML specifications 2 组件 URDF由一些不同的功能包和组件组成,下图描述了这些组件之间的联系。 3
1、什么是tf变换 ROS中的很多软件包都需要机器人发布tf变换树,那么什么是tf变换树呢?抽象的来讲,一棵tf变换树定义了不同坐标系之间的平移与旋转变换关系。具体来说,我们假设有一个机器人,包括一个机器人移动平台和一个安装在平台之上的激光雷达,以这个机器人为例,定义两个坐标系,一个坐标系以机器人移动平台的中心为原点,称为base_link参考系,另一个坐标系以激光雷达的中心为原点
ROS使用tf来决定机器人的位置和静态地图中的传感器数据,但是tf中没有机器人的速度信息,所以导航功能包要求机器人能够通过里程计信息源发布包含速度信息的里程计nav_msgs/Odometry 消息。 本篇将介绍nav_msgs/Odometry消息,并且通过代码实现消息的发布,以及tf树的变换。 1、nav_msgs/Odometry消息格式 nav_msgs/Odo
在导航过程中,传感器的信息至关重要,这些传感器可以是激光雷达、摄像机、声纳、红外线、碰撞开关,但是归根结底,导航功能包要求机器人必须发布sensor_msgs/LaserScan或sensor_msgs/PointCloud格式的传感器信息,本篇将详细介绍如何使用代码发布所需要的消息。 1、ROS的消息头信息 无论是 sensor_msgs/LaserScan,还是sensor
1、概述 ROS的二维导航功能包,简单来说,就是根据输入的里程计等传感器的信息流和机器人的全局位置,通过导航算法,计算得出安全可靠的机器人速度控制指令。但是,如何在特定的机器人上实现导航功能包的功能,却是一件较为复杂的工程。作为导航功能包使用的必要先决条件,机器人必须运行ROS,发布tf变换树,并发布使用ROS消息类型的传感器数据。同时,为了让机器人更好的完成导航任务,开发者还要根
在之前的博客中,有讲解tf的相关内容,本篇博客重新整理了tf的介绍和学习内容,对tf的认识会更加系统。 1 tf简介 1.1 什么是tf tf是一个让用户随时间跟踪多个参考系的功能包,它使用一种树型数据结构,根据时间缓冲并维护多个参考系之间的坐标变换关系,可以帮助用户在任意时间,将点、向量等数据的坐标,在两个参考系中完成坐标变换。 tf的相关设计思
上一篇博客介绍了HRMRP机器人平台的设计,基于该平台,可以完成丰富的机器人应用,以较为典型的机器人导航为例,如何使用HRMRP来完成相应的功能?本篇博客将详细介绍如何将HRMRP应用到实际的应用当中。 1. 系统架构 ROS作为一个分布式框架,从微观的角度讲,分布式体现在节点的布局和配置上,而从宏观的角度来讲,这种分布式可以体现在多机器人、多主机集成的系
1. HRMRP简介 HRMRP(Hybrid Real-time Mobile Robot Platform,混合实时移动机器人平台)机器人是我在校期间和实验室的其他小伙伴一起从零开始设计并开发的一款机器人平台,其中大部分扩展电路、驱动和ROS相关的底层功能都是我们自己做的。该机器人平台具有软硬件可编程、灵活性强、模块化、易扩展、实时性强等特点,机器人的整体结构如下图所示。
在理解了move_base的基础上,我们开始机器人的定位与导航。gmaping包是用来生成地图的,需要使用实际的机器人获取激光或者深度数据,所以我们先在已有的地图上进行导航与定位的仿真。 amcl是移动机器人二维环境下的概率定位系统。它实现了自适应(或kld采样)的蒙特卡罗定位方法,其中针对已有的地图使用粒子滤波器跟踪一个机器人的姿态。 一、测试
在上一篇的博客中,我们一起学习了ROS定位于导航的总体框架,这一篇我们主要研究其中最重要的move_base包。 在总体框架图中可以看到,move_base提供了ROS导航的配置、运行、交互接口,它主要包括两个部分: (1) 全局路径规划(global planner):根据给定的目标位置进行总体路径的规划; (2) 本地实时规划(local planne
导航与定位是机器人研究中的重要部分。 一般机器人在陌生的环境下需要使用激光传感器(或者深度传感器转换成激光数据),先进行地图建模,然后在根据建立的地图进行导航、定位。在ROS中也有很多完善的包可以直接使用。 在ROS中,进行导航需要使用到的三个包是: (1) move_base:根据参照的消息进行路径规划,使移动机器人到达指定的位置; (2) gmapping:根据激光数据(或者深
ROS学习与实操笔记
博客
泡泡
积分
勋章
ROS探索总结(七十二)—— ROS加速机器人智能化变革,从云端大脑到本地运动
ROS探索总结(七十一)—— 古月私房课 | ROS:机器人开发的神兵利器
ROS探索总结(七十)—— 古月私房课 | 基于ROS设计一款机械臂控制系统
ROS探索总结(六十九)—— 古月私房课 | 针对工业应用的ROS-I又是什么
ROS探索总结(六十八)—— 古月私房课 |“手眼”结合完成物体抓取应用
ROS探索总结(六十七)—— 古月私房课 | ROS机器视觉应用中的关键点
ROS探索总结(六十六)—— 古月私房课 | MoveIt!中不得不说的“潜规则”
ROS探索总结(六十五)—— 古月私房课 | MoveIt!编程驾驭机械臂运动控制
ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂
ROS探索总结(六十三)—— 古月私房课 | ROS机械臂开发中的主角MoveIt!
ROS探索总结(六十二)—— 古月私房课 | 如何从零创建一个机器人模型
ROS探索总结(六十一)—— 古月私房课 | 风靡机器人圈的ROS到底是什么
ROS探索总结(六十)—— 古月私房课 | ROS的过去、现在和未来
ROS探索总结(五十九)—— gazebo和rviz有具体的区别吗?哪个更好用?
ROS探索总结(五十八)—— Gazebo物理仿真平台
ROS探索总结(五十七)—— Rviz三维可视化平台
ROS探索总结(五十六)—— launch文件
ROS探索总结(五十五)—— Windows版ROS安装试用
ROS探索总结(五十四)—— ROS机器人开发案例(附ppt)
ROS探索总结(五十三)—— ROS与VREP的集成
ROS探索总结(五十二)—— MoveIt!中的运动学插件
ROS探索总结(五十一)——ROS机器人实例 (HRMRP)
ROS探索总结(五十)——ROS机器人实例 (Universal Robots)
ROS探索总结(四十九)——ROS机器人实例 (TurtleBot)
ROS探索总结(四十八)——ROS机器人实例 (PR2)
ROS探索总结(四十七)—— ROS产品化探索之生态系统篇
ROS探索总结(四十六)—— ROS产品化探索之应用功能篇
ROS探索总结(四十五)—— ROS产品化探索之开发工具篇
ROS探索总结(四十四)—— ROS产品化探索之通信机制篇
ROS探索总结(四十三)—— 功夫手:一款基于ROS的工业机器人
ROS探索总结(四十二)——twist_mux多路切换器
ROS探索总结(四十一)——Kungfu ARM(ROS Taipei 2018年会分享)
ROS探索总结(四十)——dynamic reconfigure
ROS探索总结(三十九)——MoveIt!上手指南
ROS探索总结(三十八)——有限状态机smach (2)
ROS探索总结(三十七)——有限状态机smach (1)
ROS探索总结(三十六)——Matlab中的ROS可视化应用
ROS探索总结(三十五)——Matlab中的ROS
ROS探索总结(三十四)——rviz plugin
ROS探索总结(三十三)——pluginlib
ROS探索总结(三十二)——action
ROS探索总结(三十一)——ros_control
ROS探索总结(三十)——3D地图建模
ROS探索总结(二十九)——功夫茶机器人项目总结
ROS探索总结(二十八)——机器听觉
ROS探索总结(二十七)——ROS Industrial
ROS探索总结(二十六)——MoveIt编程
ROS探索总结(二十五)——MoveIt基础
ROS探索总结(二十四)——使用gazebo中的插件
ROS探索总结(二十三)——解读URDF
ROS探索总结(二十二)——设置机器人的tf变换
ROS探索总结(二十一)——如何发布里程计消息
ROS探索总结(二十)——发布导航需要的传感器信息
ROS探索总结(十九)——如何配置机器人的导航功能
ROS探索总结(十八)——重读tf
ROS探索总结(十七)—— 构建完整的机器人应用系统
ROS探索总结(十六)—— HRMRP机器人的设计
ROS探索总结(十五)—— amcl(导航与定位)
ROS探索总结(十四)—— move_base(路径规划)
ROS探索总结(十三)—— 导航与定位框架
ROS探索总结(十二)—— 坐标系统
ROS探索总结(十一)—— 机器视觉
ROS探索总结(十)—— 语音控制
ROS探索总结(九)—— 操作杆控制
ROS探索总结(八)—— 键盘控制
ROS探索总结(七)—— smartcar源码上传
ROS探索总结(六)——使用smartcar进行仿真
ROS探索总结(五)——创建简单的机器人模型smartcar
ROS探索总结(四)——简单的机器人仿真
ROS探索总结(三)——ROS新手教程
ROS探索总结(二)——ROS总体框架
ROS探索总结(一)——ROS简介
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信