其实基于机器人机械臂,计算机视觉算法的内容已经写了很多了。但是如何把离散化的知识和零件有机的平凑在一起,需要硬件连接,需要软甲通讯,需要系统的集成 --- 呼之欲出的就是,我们需要一个操作系统呀!这个操作系统可以在硬件搭建前期帮助软件做仿真优化,也能很好的集成系统,减少开发时间。这就是ROS系统。
1. 什么是ROS
ROS - Robot Operating System; 机器人操作系统。但是它和传统window,linux,unix系统有些区别,我个人理解是ROS其实是对Linux内核做了一层包裹,用户能更好的在ROS中开发上位机应用平台,更专注在产品的应用,ROS所做的,就是一个和下层硬件的通讯系统。
同时,除此之外,ROS当中还有一系列开发工具,rosbag,rqt_graph, Gazebo,Rviz... 后面在实际的使用过程中,我会展开对这些工具的使用
2. ROS LTS 和版本
很多人可能和我一样,不知道怎么开始ROS的使用或学习。在安装ROS的过程中,遇到了一些困惑或困难,我总结一下应该是下面几个部分。
- LTS 称为long term service,选择这类的版本,软件会有持续的维护和更新,这类产品在网上会有更多的案例,如果遇到问题会有更多的解决办法,比较一般人遇到新的OS,报错的时候都会很无助
- ROS有许多的发行版,可以根据EOL和对应的系统(Ubuntu,Window,Linux)来选择对应的版本。目前我安装的是Noetic在Ubuntu 20.04
- ROS官方推荐的平台为Ubuntu,Noetic推荐移植在Ubuntu操作系统上;我目前使用的是window,所以需要安装一个virtualbox;一般8核,8G,100G以上的配置都可以,最好有Intel GPU,AMD的也可以,不要紧。(安装virtualbox Share Folder | Virtualbox | Ubuntu | Windows 10 | Ubuntu 20.04 | Virtualbox Shared Folder | Vboxsf - YouTube)
- 选定了版本和环境之后,可能你会有不同的ROS源镜像,个人是直接google ROS installation;但是因为网速的原因,可能在有些朋友系统上会在下载过程中遇到一些run outtime的问题,所以可以考虑清华源的镜像。可以在软件和更新中选择下载的地址
3. 安装ROS NOETIC
- 添加源地址文件到Ubuntu系统源列表中
- -可以在网上搜索清华的,交大的 或中科大的
- -系统在安装的过程中,会根据源列表去hit网站,抓取数据
$ sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
- 添加秘钥key
-- 添加秘钥是为了满足Ubuntu的安全机制,需要给系统提供一个公钥
$ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
- 如果成功后,可以直接安装ROS
-- 确保Debian系统包和索引是最新的
$ sudo apt-get update
-- apt-get安装ROS,推荐安装desktop-full的版本,含有ROS所有的模块,如果不想,也可以安装ROS CORE,后续根据需要再安装对应的模块
$ sudo apt-get install ros-kinetic-desktop-full
- 初始化ROS
-- 目的是为了安装ROS相关的一些依赖
$ sudo rosdep init
$ rosdep update
- 设置环境变量
-- 设置环境变量的目的是为了减少工作量,使每次打开Terminal的时候,可以自动读取ROS master或者ROS package的变量
$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
##后续catkin_create_pkg之后,每个workspace都会有对应的环境变量,也需要用这个方法进行添加
$ source ~/.bashrc
- 安装rosinstall
$ sudo apt-get install python-rosinstall
至此我们已经成功的安装了ROS操作系统
4. 测试ROS
打开一个terminal
$ roscore
打开另一个terminal
$ rosrun turtlesim turtlesim_node
再打开一个terminal, 可以看到这是ROS在不同进程之间的通行方式,不同的terminal程序之间可以进行通讯
$ rosrun turtlesim turtle_teleop_key
reference: ROS入门笔记(二):ROS安装与环境配置及卸载(重点) - 知乎 (zhihu.com)
------------------------------------------------------------
date: Jun 12 2022
最近想安装moveit,然后利用里面planning的功能对UR5进行运动规划,来判断机器人的工作空间,安装moveit参考的是Getting Started — moveit_tutorials Noetic documentation (ros-planning.github.io) (慎重!)
里面一上来就是要用大家最恨的rosdep update;果不其然,报错了;随后又用了rosdep init, 果然又是.....may shutdown; 随后惊人的事情发生了,进入cd /opt/ros/noetic/bin中发现ros相关的库(roscore...)已经不见了;随后按照下面重新安装才恢复正常
sudo apt-get install ros-noetic-desktop-full
也不能怪官网吧,谁知道这个rosdep在国内是这个尿性呢?所以查了一番资料之后,咱们可以用中国镜像来进行更新:rosdepc (c stands China)
本文之后,世上再无rosdep更新失败问题!如果有....小鱼就... (qq.com)