随着人工智能的发展,机器人也迎来了全新的发展机遇。机器人与人工智能大潮的喷发,必将像互联网一般,再次为人们的现代生活带来一次全新的革命。 1. 历史起源 硬件技术的飞速发展,在促进机器人领域快速发展和复杂化的同时,也对机器人系统的软件开发提出了巨大挑战。机器人平台与硬件设备越来越丰富,致使软件代码的复用性和模块化需求越加强烈,而已有的机器人系统又不能很好地适应需求。 为迎接机器人软件开发面临的巨大
我们在做机器人ROS开发时,常常会遇到相同速度控制消息的选择问题。比如说控制机器人移动的geometry_msgs::Twist消息,可以使用键盘节点发布,可以使用手柄节点发布,也可以在导航过程中由movebase发布,那么这些节点同时运行时,多个节点发布相同的速度控制话题,这个时候机器人就迷茫了,到底该听谁的呢?只能收到哪个数据就听谁的。 针对这样的问题,ROS提供了一种mux多路切换器——tw
2018年1月7日下午,第一次ROS Taipei年会顺利在台北举办,我也有幸受邀参与了这次活动,并第一次详细介绍了近两年来自己使用ROS进行机器人开发的具体细节。 在这次年会上,来自各地的开发者分享了ROS开发过程中的经验,并且展示了丰富多彩的机器人应用。 自主设计并3D打印的机械臂: 自主开发的移动机器人: 做工精美的机械手: 我也分享了创业过程中基于ROS开发的工业机器人——Kung
ROS起源于2007年11月,2017年11月刚好满10岁。ROS的最初目标是在机器人领域提高代码的复用率,谁都没有想到,ROS社区中的功能包会呈指数级发展,目前已经成为机器人领域的事实标准。 ROS最初设计的目标机器人是PR2,这款机器人搭载了当时最先进的移动计算平台,而且网络性能优异,不需要考虑实时性方面的问题,主要应用于科研领域。如今ROS应用的机器人领域越来越广:轮式机器人、人形机
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工具如何使用吧。 一、
ROS Summer School如期在“热情似火”的魔都上海举办,本人也有幸参与了这次活动。 今年的Summer School可谓高手云集,先来看看强大的讲师整容,其中一定有你心中的“大神”: 活动前两天本人在深圳讲星火计划的进阶课程,遗憾没有参加,错过了不少精彩内容。(据说田博一张ppt讲半个小时!) 23号星火计划结束后,我火速前往上海。第三天上午是 张瑞雷老师的
rviz是ROS官方的一款3D可视化工具,几乎我们需要用到的所有机器人相关数据都可以在rviz中展现,当然由于机器人系统的需求不同,很多时候rviz中已有的一些功能仍然无法满足我们的需求,这个时候rviz的plugin机制就派上用场了。上一篇我们探索了插件的概念和基本实现,这一篇通过rviz中的插件实现,来进行巩固加深。 rviz作为一种可扩展化的视图工具,可以使用这种插件机制来扩展丰富的功能,进
原文链接:http://www.huodongxing.com/event/7390189565300 ROS“星火计划”2017东莞站火热招募中 玩机器人不知道ROS?你OUT啦! 机器人研发的核心技术是操作系统。ROS是目前主流的机器人操作系统之一。ROS最早起源于斯坦福大学实验室与机器人技术公司Willow Garage2007年合作的项目。ROS基于Linux系统,可靠性高
在ROS的开发中,常常会接触到一个名词——插件(plugin)。这个名词在计算机软件开发中是常常会提到的,具体含义可以参考百度百科的插件词条。在ROS中,插件的概念类似,简单来讲,ROS中的插件(plugin)就是可以动态加载的扩展功能类。ROS中的pluginlib功能包,提供了加载和卸载plugin的C++库,开发者在使用plugin时,不需要考虑plugin类的链接位置,只需要将plugin
ROS中常用的通讯机制是topic和service,但是在很多场景下,这两种通讯机制往往满足不了我们的需求,比如上一篇博客我们讲到的机械臂控制,如果用topic发布一个运动目标,由于topic没有反馈,还需要另外订阅一个机械臂状态的topic,来获得运动过程的状态。如果用service来发布运动目标,虽然可以获得反馈,但是反馈只有一次,对于我们的控制来讲数据太少了,而且如果反馈迟迟没收到,也只能傻
ROS中提供了丰富的机器人应用:SLAM、导航、MoveIt......但是你可能一直有一个疑问,这些功能包到底应该怎么样用到我们的机器人上,也就是说在应用和实际机器人或者机器人仿真器之间,缺少一个连接两者的东西。 ros_control就是ROS为用户提供的应用与机器人之间的中间件,包含一系列控制器接口、传动装置接口、硬件接口、控制器工具箱等等,可以帮助机器人应用快速落地,提高开发效率。
最近在打开Gazebo的时候,总是出现如下的错误提示,而且显示区无法显示任何模型: Warning [ModelDatabase.cc:334] Getting models from[http://gazebosim.org/models/]. This may take a few seconds. Warning [gazebo.cc:215] Waited 1seconds
今天正好有时间,尝试了一下3D地图建模,记录一下流程: 一、安装rgbdslam功能包 在工作空间中下载代码并解压: wget -q http://github.com/felixendres/rgbdslam_v2/archive/indigo.zip unzip -q indigo.zip 然后回到catkin_ws的目录下,安装依赖: rosdep inst
ROS2虽然重新设计了架构实现,但是也考虑到了与ROS1的兼容,专门开发了一个功能包——ros1_bridge,来完成ROS2与ROS1之间的通讯。但是目前ros1_bridge这个包的功能有限,还不提供python实现,而且仅支持ros2/common_interfaces repository中列出的通讯类型,如果要支持自己定义的接口,还需要自己编译ros1_bridge包。
上一篇我们小试牛刀,初步尝试了一下ROS2中的节点通信,这一篇我们来看一下ROS2中“全新”的编译系统——Ament。ROS编译系统从初期使用的rosbuild,到groovy版本之后的catkin,再到ROS2中的Ament,可谓是一波三者,虽然编译系统并不是ROS框架中的核心部分,但却是开发者最常接触的一个重要功能,了解其基本使用方法,常常可以发挥事半功倍的效果。 众
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信