MoveIt!是ROS中一个重要的集成化开发平台,由一系列移动操作的功能包组成,提供运动规划、操作控制、3D感知、运动学等功能模块,是ROS社区中使用度排名前三的功能包,目前已经支持众多机器人硬件平台。 MoveIt!中的众多功能都使用插件机制集成,其中有一个重要的功能模块——运动学插件。 今天我们就来聊下MoveIt!中的运动学求解器。 一、KDL Kinematics and Dynam
HRMRP(Hybrid Real-time Mobile Robot Platform,混合实时移动机器人平台)是笔者在2012年和实验室的小伙伴们一起从零开始设计、开发的一款机器人平台,其中大部分扩展电路、驱动和ROS相关的底层功能都是我们自己开发。该机器人平台具有软硬件可编程、灵活性强、模块化、易扩展、实时性强等特点,机器人的整体结构如下图所示。 HRMRP具备丰富的传感器和执行器,在该
Universal Robots(优傲机器人)公司是一家引领协作机器人全新细分市场的先驱企业,该公司成立于2005年,关注机器人的用户可操作性和灵活度,总部位于丹麦的欧登塞市,主要的机器人产品有:UR3、UR5和UR10,分别针对不同的负载级别。 Universal Robots早在2009年便推出了第一款协作机器人——UR5,自重18公斤,负载高达5公斤,工作半径85cm,不仅颠覆了人们对于传
上一篇介绍了ROS中的元老机器人——PR2,虽然功能强大,但价格昂贵,无法推广。所以Willow Garage又开发了一款低成本的机器人平台——TurtleBot。 TurtleBot的目的是给入门级的机器人爱好者或从事移动机器人编程开发者提供一个基础平台,让他们直接使用TurtleBot自带的软硬件,专注于应用程序的开发,避免了设计草图、购买、加工材料、设计电路、编写驱动、组装等一系列工作。借
PR2(Personal Robot 2,个人机器人2代)是Willow Garage公司设计的机器人平台,其中数字2代表第二代机器人。 PR2有两条手臂,每条手臂七个关节,手臂末端是一个可以张合的夹爪;PR2依靠底部的四个轮子移动,在头部、胸部、肘部、夹爪上分别安装有高分辨率摄像头、激光测距仪、惯性测量单元、触觉传感器等丰富的传感设备。在PR2的底部有两台八核电脑作为机器人各硬件的控制和通信中枢
诞生于2007年的ROS,发展速度之迅猛超出了所有人的预料,已经成为一个机器人领域的生态系统,可以提供机器人相关的全方位技术,从硬件到软件,从框架到功能,从驱动到应用。。。 前边三篇已经分别从通信机制、开发工具、应用功能这三个方面浅谈了笔者对ROS产品化探索的一点总结,本篇就来聊聊最后一个部分——从生态系统的角度来看,ROS可以为机器人产品化提供哪些思路。 什么是生态系统? 维基百科的解释是:生态
上篇我们讲到ROS中的开发工具,可以提高我们的开发效率,每一种工具都有其擅长之地,也有其不足之处,所以在设计、开发机器人产品的过程中,可以综合考虑,发挥每一个开发工具的优势。本篇我们来分析一下ROS中丰富的应用功能。 说起ROS中的应用功能,可就非常庞杂了,涵盖各种各样的功能包,简单做一个如下的分类: 1. 底层驱动 2. 上层功能 3. 控制模块 4. 常用组件 就这几种应用功能,我们来具体
上篇讲到,在通信机制部分,我们完全舍弃了ROS基于话题和服务的通信机制,自己又实现了一套通信系统,具体的实现主要基于Linux系统的各种通信方式,此处暂且不表,这篇我们来看下ROS另外一个重要部分——开发工具,如何在机器人产品化过程中应用。 ROS相关的开发工具有很多,大致可以分为以下几种类型: 1.ROS原生工具,比如rviz、qt工具箱、命令行工具等; 2.编译和测试工具,基于已有工具进一步
近几年,机器人和人工智能繁荣发展,曾经运行在实验室的机器人已经逐渐走入千家万户的生活。作为机器人开发利器的ROS也得到了非常广泛的应用,成为机器人领域的普遍标准。 ROS原本针对科研领域的PR2机器人开发,这种大繁荣的景象远远超过ROS的最初目标,也使得ROS的缺陷在广泛应用的同时暴露无遗: 1. 缺乏构建多机器人系统的标准方法;2. 在Windows、MacOS、RTOS等系统上无法应用或者功
2018年1月7日下午,第一届ROS Taipei年会顺利在台北举办,我有幸受邀参加了这次活动,并详细介绍了近两年来自己使用ROS进行机器人开发的具体细节。 在这次年会上,来自各地的开发者分享了ROS开发过程中的经验,并且展示了丰富多彩的机器人应用。 ROS Taipei 2018开发者年会合影 自主设计并3D打印的机械臂 自主开发的移动机器人 做工精美的机械手 我也分
我们在做机器人ROS开发时,常常会遇到相同速度控制消息的选择问题。比如说控制机器人移动的geometry_msgs::Twist消息,可以使用键盘节点发布,可以使用手柄节点发布,也可以在导航过程中由movebase发布,那么这些节点同时运行时,多个节点发布相同的速度控制话题,这个时候机器人就迷茫了,到底该听谁的呢?只能收到哪个数据就听谁的。 针对这样的问题,ROS提供了一种mux多路切换器——tw
2018年1月7日下午,第一次ROS Taipei年会顺利在台北举办,我也有幸受邀参与了这次活动,并第一次详细介绍了近两年来自己使用ROS进行机器人开发的具体细节。 在这次年会上,来自各地的开发者分享了ROS开发过程中的经验,并且展示了丰富多彩的机器人应用。 自主设计并3D打印的机械臂: 自主开发的移动机器人: 做工精美的机械手: 我也分享了创业过程中基于ROS开发的工业机器人——Kung
ROS中的参数服务器无法在线动态更新,也就是说如果Listener不主动查询参数值,就无法获知Talker是否已经修改了参数。这就对ROS参数服务器的使用造成了很大的局限,很多场景下我们还是需要动态更新参数的机制,例如参数调试、功能切换等,所以ROS提供了另外一个非常有用的功能包——dynamic_reconfigure,实现这种动态配置参数的机制。 例如下图是启动Kinect后openni功
? 上周四(9月28日),星火在线课堂举办了第一次在线课程,我有幸成为第一位分享嘉宾,与大家分享了一下MoveIt!的相关内容,直播过程中共有800多位小伙伴共同参与,该课程也永久免费开放,有兴趣的小伙伴可以继续访问该课程,参与或者回顾课程的所有内容。 课程地址:https://m.weike.fm/lecture/4867575?lecture_id=4867575 以下是课程PPT内容:
上一篇我们探索了SMACH有限状态机的基本概念和使用方法,本篇继续深入研究几个SMACH的典型应用。 一、数据传递 在很多场景下,状态和状态之间有一定耦合,后一个状态的工作需要使用到前一个状态中的数据,这个时候就需要在状态跳转的同时,将需要的数据传递给下一个状态。SMACH支持状态之间的数据传递。 先来运行例程看下效果: roscore rosrun smach_tutorials u
SMACH 是状态机的意思,是基于Python实现的一个功能强大且易于扩展的库。 smach本质上并不依赖于ROS,可以用于任意Python项目,不过在ROS中元功能包executive_smach将smach和ROS很好的集成在了一起,可以为机器人复杂应用开发提供任务级的状态机框架,此外元功能包还集成了actionlib和smach_viewer。 为避免误导,本文以下提到的SMACH均
MatLab有非常便捷的可视化编程,我们可以借助Matlab来制作一些小的可视化工具,我们在之前的博客中,使用rviz的插件功能实现过一个速度控制的小工具,今天就来探索研究如何用Matlab来实现类似的工具。 本文使用的完整代码可见:github 一、了解Matlab的可视化编程 Matlab的可视化编程非常简单,首先在命令窗口中输入“guide”命令来启动可视化编程: 然后选择默认的
众所周知Matlab是一款强大的数据处理工具,在科研、教学、商业领域广泛应用,不管你从事哪个行业的工作,多多少少都会用过或者听说过这款工具。Matlab有一个吊炸天的工具箱,几乎和哆啦A梦的口袋差不多,可以提供丰富而强大的扩展功能,其中有一个robotics工具箱,提供了一些机器人需要用到的工具,当然也包括ROS相关的工具。今天我们就来探索一下Matlab中的ROS工具如何使用吧。 一、
rviz是ROS官方的一款3D可视化工具,几乎我们需要用到的所有机器人相关数据都可以在rviz中展现,当然由于机器人系统的需求不同,很多时候rviz中已有的一些功能仍然无法满足我们的需求,这个时候rviz的plugin机制就派上用场了。上一篇我们探索了插件的概念和基本实现,这一篇通过rviz中的插件实现,来进行巩固加深。 rviz作为一种可扩展化的视图工具,可以使用这种插件机制来扩展丰富的功能,进
在ROS的开发中,常常会接触到一个名词——插件(plugin)。这个名词在计算机软件开发中是常常会提到的,具体含义可以参考百度百科的插件词条。在ROS中,插件的概念类似,简单来讲,ROS中的插件(plugin)就是可以动态加载的扩展功能类。ROS中的pluginlib功能包,提供了加载和卸载plugin的C++库,开发者在使用plugin时,不需要考虑plugin类的链接位置,只需要将plugin
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 微博 微信