一、
机器人操作系统 (ROS) 是编写机器人软件的灵活框架。讲ROS必须先说一下柳树车库公司(Willow Garage),斯科特.哈森在2006年创立。
斯科特.哈森这个人非常传奇,大学是在纽约州立大学布法罗分校,研究生先在圣路易斯华盛顿大学读,然后又去了斯坦福大学(不知道这哥们为啥读了两次研究生),就在斯坦福大学,他认识了Google创始人谢尔盖·布林和拉里·佩奇等很多互联网大神。
哈森和谷歌创始人布林和佩奇一道在斯坦福大学学习,哈森所做过的一个项目就是开发Google搜索引擎原型,写了Google的很多关键代码,Google第一个爬虫软件就是他写的。谷歌刚成立,他就投资了800美元。
之后,哈森自己又开发叫e Groups的e-mail应用,哈森在斯坦福大学并没有完成学业,就中途退学了,创立了e Group公司,拉里·佩奇的哥哥卡尔·佩奇也是e Groups的创始人之一,2000年以4.32亿美元卖给了当时如日中天的互联网巨头Yahoo,成为Yahoo Groups,该产品为雅虎赢得无数用户。
有钱后,他做了两件事,第一,再次慷慨的投资了好朋友的公司Google,那时候Google才刚起步,这笔投资后来肯定为他带来了很多收益。第二,他想找点有意义的事情做,认为服务机器人有意义,就是能给人生活起居提供帮助的机器人。2006年买了柳树街68号这栋别墅,作为办公地点。
为了致敬早期在硅谷创业,在车库办公的前辈,例如苹果、微软,他把公司名字就起了Willow Garage,意思是柳树街的车库。
南北向的柳树街
二、
2010年3月2日柳树车库发布了ROS Box Turtle。
2014年,柳树车库研发机器人太烧钱,研发出的机器人又很少有人买,斯科特.哈森决定停止投入资金。这时的ROS的开发已经转交给一个独立的非盈利组织:“开源机器人基金会”(Open Source Robotics Foundation, OSRF)。
ROS将现有的、通常难以使用、不兼容的传感器、执行器等硬件整合在一起,通过将其数据流转换成消息总线,使用在硬件驱动器和计算单元之间兼容的数据类型。
它类似于中间件,可以为我们提供各种测试,验证算法,它确实很复杂,也挺值得我们去学习使用。
三、
wsl2安装使用 //备注:具体可参照微软官方文档
1.使用管理员权限打开powershell
2.启用“适用于 Linux 的 Windows 子系统”可选功能:
代码语言:javascript复制dism.exe/online/enable-feature/featurename:Microsoft-Windows-Subsystem-Linux/all/norestart
3.启用“虚拟机平台”可选组件:
代码语言:javascript复制dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all/norestart
4.下载Linux内核包,重启电脑
5.重新管理员身份打开powershell,用下面的命令将wsl2设置为默认:
代码语言:javascript复制wsl --set-default-version 2
6.打开 Microsoft Store
7.搜索安装Ubuntu 18.04 LTS
四、
wsl2安装ROS //备注:具体可参照ROS官方文档
1.添加用户名
2.设置用户密码
3.切换root用户
代码语言:javascript复制sudo su root
4.添加清华镜像源
代码语言:javascript复制sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
5.设置密钥Key
代码语言:javascript复制curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
6.更新源 更新软件
代码语言:javascript复制sudo apt-get update
代码语言:javascript复制sudo apt-get upgrade
7.安装ROS
代码语言:javascript复制sudo apt-get install ros-melodic-desktop-full
8.配置环境
代码语言:javascript复制echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
代码语言:javascript复制source ~/.bashrc
9.安装依赖
代码语言:javascript复制sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
10.初始化ROS/此处访问国外网站
代码语言:javascript复制sudo rosdep init
代码语言:javascript复制rosdep update
五、
图形化显示,可以安装图形界面然后远程登陆,可以用VcXsrv,但我这里用的是MobaXterm,非常好用推荐给大家,而且还是汉化版的,后台可回复MobaXterm,得到MobaXterm下载链接。
1.在MobaXterm里打开wsl
2.配置编辑
代码语言:javascript复制sudo vim ~/.bashrc
添加以下
代码语言:javascript复制# export DISPLAY=:0 # in WSL 1
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 # in WSL 2
export LIBGL_ALWAYS_INDIRECT=
export LIBGL_ALWASY_SOFTWARE=1
3.完成后ESC再输入:wq保存退出,然后记住 source:
代码语言:javascript复制source ~/.bashrc
4.安装x11
代码语言:javascript复制sudo apt install x11-apps
5.运行,出现“小眼睛”
代码语言:javascript复制xeyes
六、
运行小乌龟
在3个不同的窗口命令行输入:
代码语言:javascript复制roscore
代码语言:javascript复制rosrun turtlesim turtlesim_node
代码语言:javascript复制rosrun turtlesim turtle_teleop_key
然后在 turtlesim turtle_teleop_key 的窗口按方向键,小乌龟顺利跑起来了