ROS机器人编程零基础入门与实践
刘伏志 朱有鹏
前言
随着科技的发展,机器人已经从科幻小说走进了人们的日常生活中,如房间里用来清洁地板的扫地机器人,餐厅中穿梭往来送餐的服务机器人,商场中引导顾客的引导机器人,园区中配送快递的无人快递配送车,道路上的自动驾驶汽车等。伴随而来的是行业对于机器人相关技术人才的需求愈加旺盛。而面对着功能各异、形态千差万别的机器人,它们之间有着什么差异?有着什么共性?应该从哪里开始了解它们?怎样才能掌握机器人开发相关的技术?
机器人操作系统(Robot Operating System,ROS)就是一个很好的入手方向,ROS是一套应用于机器人开发的软件框架,最初应用于科学研究领域,由于其强大的功能、开源的特性和良好的社区环境,逐渐被越来越多的商业公司应用到产品开发中。ROS经过了多年的发展,已经成为机器人行业的事实标准。
提到ROS的学习,人们最常听到的一个说法是“学习曲线很陡峭”,这是指ROS在入门学习阶段比较艰难。而结合相关的学习经验和众多学生的反馈,可以发现导致ROS学习入门难的几个原因如下:
第一,ROS目前主流使用的操作系统平台为Linux操作系统的发行版,例如Ubuntu,而多数非计算机专业的学生在此前并没有了解过Linux操作系统,加上Linux中的主要操作都是通过终端命令行输入指令完成的,和日常广泛使用的Windows操作系统依赖图形化界面的操作方式有很大的区别,这就导致了很多用户没法熟练地使用,而Linux操作系统是ROS运行的基础环境,不能熟练使用必然会给ROS的学习带来很大的阻碍。
第二,对于ROS中常用的工具掌握不熟练,甚至不知道有这些工具的存在,正所谓“工欲善其事必先利其器”,而“利其器”的前提则是“知有器”,ROS为开发者提供了很多用于调试和诊断问题的工具,每种工具有各自擅长分析和解决的问题,不会灵活地使用各类工具来辅助机器人的开发和调试,必然会极大地影响开发和学习的…