开源不只在改变我们与世界互动的方式,它也在改变世界与我们互动的方式。体现这一点的案例便是:开源机器人。
机器人在我们的世界中正在扮演越来越重要的角色,尽管我们还没有实现在电视剧 Jetson 中的机器人管家那样的乌托邦式的未来,机器人学已经在许多领域取得了进展,这在五十年前是完全无法想象的。
机器人复兴的***受益者毫无疑问是制造业,不过我们也看到机器人正在进入主流生活方式当中。我们许多人都拥有用来扫地、清理雨水槽和割草等等的机器人。
如今,随着自动驾驶汽车、无人驾驶飞机和其他交通技术的进步,机器人和交通工具之间的界限逐渐变得模糊了。
不过说实话,我们中的许多人之所以对机器人学感兴趣,仅仅是因为它很好玩!而好消息是,你不需要成为一名电子工程师,就能像享受个人爱好一样享受机器人学。很幸运,我们已经有不少的开源项目。即使最没有经验的初学者也能在它们的帮助下上手。
硬件开源项目
机器人是一个物理实体,因此,使用它的代码和硬件都需要获得许可。幸运的是,有几个开源硬件平台可供学习制造机器人。下面这几家是你或许你想要了解的:
Sparki 是一家在任何意义上都完全开源的机器人学平台。它上面的电路图、3D 建模文件和其底层的源代码都是开源的。Sparki 被设计用来帮助从小学生到成年人的学习者们制造出价格合理的初级机器人。它提供距离传感器、加速度计、红外通讯、罗盘、光传感器、循线器(line-follower)等。Sparki 机器人靠轮子行走,不过它还有一个用脚行走的近亲 Hexy the hexapod,该项目也是一个开源平台项目。
机器人不仅能走路,有时他们还会飞。有几家开源无人飞行器利用了像 OpenPilot 或 Ardupilot 系统这样的项目。例如,ArduPilot Copter 无人机可以被组装成直升机、四旋翼飞行器或者其他配置,它既可以自己动手 DIY,也可以从若干制造商那里购买元件套装和部件。
TurtleBot 是另一家机器人平台,它既提供来自几家制造商的元件套装,也提供完全开源的说明书。这可以帮助你用上网笔记本电脑、Kinect 体感外设和 Kobuki 移动平台来建造自己的机器人,或者在 iRobot Create 开发平台上建造机器人。
软件开源项目
机器人可不只是一套金属骨架。它需要某种智能才能听从直接命令或自己做出某些初步决定,以便为它的主人服务。这里是几个有趣的机器人软件方面的开源项目。
对初学者入门而言,LeJOS 或许是一个好的机器人软件项目。它实质上是乐高 Mindstorms 机器人固件的一种替代物。你可以依靠它来用 Java 编程语言为乐高机器人编程。
Rock,即「机器人 建造工具包」,是一种基于 Orocos RTT (Real Time Toolkit, 实时工具包)的软件框架。它被设计成可扩展的,并包括一些已有应用程序的驱动程序。
ROS,即「机器人操作系统」,是一个用来为机器人写软件的框架,它包括多种用来简化编程过程的工具和库。它被设计用来为协作研发服务,拥有模块化组件和全球性社区。在中国,已经有 ROS 中文社区的存在。
在你开始随意装配硬件之前,你需要定一个计划。在现实世界中,机器人的运行受到重力、地形、天气等限制。在纸上设计了看起来不错的机器人,并不意味着在现实中可行。所以,为什么不先对你的机器人进行功能性模拟呢?
机器人模拟器
Gazebo 是著名的非盈利开源组织 Apache 许可采用的完整模拟解决方案,有着先进的 3D 图形、虚拟感应器功能,还有一个应用广泛的命令行工具集合。此外,Gazebo 还能在云中运行模拟,支持多种插件和数种建立模型常用的机器人平台。
Morse(模块化开源机器人模拟引擎 the Modular OpenRobots Simulation Engine)是 BSD 协议开源项目,是一款通用的多机器人仿真平台,主要特点是能控制实际仿真的自由度,可以自由设计符合自己需求的组件模型。它提供了大量可配置的传感器和执行器模块,高度的可扩展性,提供人与机器人的交互仿真。Morse 使用 Python 编程,也可使用 Blender 游戏引擎进行渲染。Morse 专注于学术型机器人模拟,目前有5所学校和科研机构使用。
V-REP 是 GPL 协议许可的虚拟机器人实验平台,在 Windows 系统、Mac 、Linux 系统上都能运行。V-REP 支持多种编程方式( (嵌入式脚本、插件、附加组件、ROS节点、远程客户端应用编程接口、或自定义的解决方案)和语言(C/C++、Python、Java、Lua、Matlab、Octave、和Urbi),既能模拟先进的物理情境,也能模拟从近距离传感器和视觉传感器上获得的数据。