ROS和Linux中很多命令是通过命令行实现的,对Windows下长大的开发人员而言,这些命令行是陌生的。首先命令行的记忆确实没有图相化的菜单和按钮方便。大多数开发者早已习惯了Windows的图形开发界面,忽然倒退到命令行,真实很难适应。
其实安装ROS也是很头疼的。对于新手来说,要完美配置好一个ROS开发环境,更是难上加难了。对于熟悉Windows的开发人员,困难可不小。一般操作是在Windows下安装Linux虚拟机,然后再虚拟机下再安装ROS开发环境。完全版ROS有很多内容需要更新,如果网络状况不好,很可能需要一两天才能装成。
还有一些开发人员熟悉的程序只有Windows版本,如果在Windows环境中运行ROS,并深入的开发,是摆在Windows开发人员的一个大问题。
win_ros是由韩国柳真机器人公司丹尼尔·斯托尼(Daniel Stonier)领导开发的。在2012年的ROS开发者大会(ROSCon)上,丹尼尔·斯托尼有个简单的报告,介绍了“ROS on Windows”,讲解如何在Windows下使用ROS。另外我们后来看到的由扫地机器人演变来的Koboki,即TurtleBot2用的地盘,也是丹尼尔·斯托尼领导的团队开发的。
后排最右站立者为丹尼尔·斯托尼(Daniel Stonier),这位澳大利亚人在朝鲜半岛,领导一群韩国人做机器人开发,真是不可思议
到了Windows 10,微软在周年更新版(1607)后的Windows系统中,增加了一个非常特别的组件WSL(Windows Subsystem for Linux)。
顾名思义,WSL就是Windows系统的Linux子系统,这个“子系统”是Windows10系统的一部分,与Windows系统集成度非常高,比跑在应用层中的各种虚拟机更节省系统资源。当然,子系统的权限会受到很大的限制。虽然WSL不是完整的Linux系统,但依然可以做到绝大多数在完整Linux系统能做的事。
目前,WSL支持Ubuntu等很多Linux系统。另外,WSL和Windows主系统之间的文件系统是可以互相访问的。也就是说,在WSL中可以访问Windows系统的文件;在Windows系统中也可以访问WSL的文件。当然,在Windows下对WSL文件修改可能会造成权限错误。
2017年,有位博世(Bosch)无人驾驶团队的工程师让·本罗尔(Jan Bernlöhr)提供了一个在WSL安装ROS方案。这样就不需要像大多数在Windows下使用ROS的用户那样,安装一个笨重的Linux虚拟机,在虚拟机再跑ROS。
让*本罗尔在德国斯图加特大学读本科,在瑞士苏黎世大学获得博士学位,现就职于博世的无人驾驶团队。博士期间主要研究非线性系统的求解。在WSL下,可以运行ROS的核心,但是不能保证能有效的运行其他软件包,比如rviz就不一定能在WSL有效运行。
让·本罗尔(Jan Bernlöhr)
微软与新成立的Open Robotics和ROS Industrial Consortium合作,将ROS引入Windows。微软宣布推出适用于Windows的ROS1实验版(注:ROS2也全面支持Windows系统)。
微软对机器人的兴趣很早就表现出来,在比尔盖茨的领导下曾经推出机器人开发的软件系统,如2006年推出的Microsoft Robotics Developer Studio (MRDS),这个软件比柳树车库的ROS还要早,可是并不成功。随着比尔盖茨退休,MRDS的负责人离职,2014年微软的机器人团队就解散了。
Microsoft Robotics Developer Studio (MRDS)
这次,微软在其Windows 10 IoT Enterprise与ROS生态系统进行集成,再次进入机器人软件领域。微软已加入ROS工业联盟,借助Windows将ROS的先进功能扩展到制造业,并提高工业机器人推广和使用。
微软在ROSCon2018展示了一款ROBOTIS Turtlebot 3机器人,运行于ROS Melodic Morenia版本上,可以识别靠近的人。该机器人运行新版的Windows 10 IoT Enterprise,利用ROS节点进行通讯,在Windows环境中利用硬件加速机器学习。微软还展示了在Azure中运行的ROS仿真环境。
微软的介入,预示着ROS生态系统的大变动。
微软在ROSCon2018上展示的ROBOTIS Turtlebot 3机器人。