ROS中阶笔记(十一):ROS 2.0html
ROS已经走过十个年头,伴随着机器人技术的大发展,ROS也获得了极大的推广和应用。尽管ROS还存在很多局限性,但没法掩盖ROS的锋芒,社区内的功能包仍是呈指数级逐年上涨,为机器人开发带来了巨大的便利。很多开发者和研究机构还针对ROS的局限性进行了改良,但这些局部功能的改善每每很难带来总体性能的提高,机器人开发者对新一-代ROS的呼声愈来愈大,ROS2.0的消息也不绝于耳。node
终于在ROSCon 2014上,正式公布了新一代ROS的设计架构(Next-generation ROS:Building on DDS),2015年8月 第一个ROS2.0的alpha版本落地,2016年12月19日,ROS2.0的beta版本正式发布,2017年12月8日,万众瞩目的ROS2.0终于发布了第一个正式版——Ardent Apalone。众多新技术和新概念应用到了新一代的ROS之中,不只带来了总体架构的颠覆,更是加强了ROS2.0的综合性能。python
一、架构的颠覆编程
二、API的从新设计windows
三、编译系统的升级api
DDS,Data Distribution Service,即数据分发服务bash
typedef struct RMW_PUBLIC_TYPE rmw_qos_profile_t { enum rmw_qos_history_policy_t history; size_t depth; enum rmw_qos_reliability_policy_t reliability; enum rmw_qos_durability_policy_t durability; }rmw_qos_profile_t;
一、功能
ament是一种元编译系统,用来构建组成应用程序的多个独立功能包,catkin编译系统进一步演化的版本。微信
二、组成网络
ament还处于开发中,目前并不稳定,也不提供并行构建的能力,未来应该会加入数据结构
一、CMake centric catkin
系统以CMake为中心,因此只包含python代码的功能包也须要由CMake进行处理,可是CMake并不支持Python setuptools中的全部功能,并且也很难在Window上进行移植。
二、Devel space
在catkin系统构建完成后,会在工做目录下生成一个devel文件夹,里边是编译好的功能包,以及环境变量的设置等等,基本上等同于ROS安装完成后的目录结构和做用。可是相信不少初学者由于devel中的环境变量而苦恼过,这确实为用户带来了一些没必要要的麻烦。
三、catkin_simple catkin_simple
是一个用于改善用户catkin体验的工具包,能够减小复杂的CMake代码,可是会存在不稳定的状况。ament也是实现了相似的功能,可是可靠性更强。
四、Building within a single CMake context
使用catkin_make命令能够一次性编译工做空间中的全部功能包,虽然方便,但若是存在相同命名的功能包时,会编译失败,ament在这方面也进行了改善。
ROS2只支持Ubuntu 16.04以上的系统
由于ROS2更新迭代快,根据时效性,看官网安装。另外对于ROS的实时性没有特别要求,建议用ROS1。
官网:https://index.ros.org/doc/ros2/Installation/Crystal/Linux-Install-Binary/#system-requirements
分别打开两个终端运行如下命令:
$ ros2 run demo_nodes_cpp talker $ ros2 run demo_nodes_cpp listener
一、建立工做空间
$ mkdir-p ~/ros2_ ws/src $ cd ~/ros2_ ws/src
二、建立功能包
手动建立:my_package/ CMakeLists.txt package.xml
三、编译(以ament为例)
$ ament build
微信公众号:喵哥解说 公众号介绍:主要研究机器学习、计算机视觉、深度学习、ROS等相关内容,分享学习过程当中的学习笔记和心得!期待您的关注,欢迎一块儿学习交流进步!同时还有1200G的Python视频和书籍资料等你领取!!!