基于ROS机器人项目开发从零开始 - 01

其实基于机器人机械臂,计算机视觉算法的内容已经写了很多了。但是如何把离散化的知识和零件有机的平凑在一起,需要硬件连接,需要软甲通讯,需要系统的集成 --- 呼之欲出的就是,我们需要一个操作系统呀!这个操作系统可以在硬件搭建前期帮助软件做仿真优化,也能很好的集成系统,减少开发时间。这就是ROS系统。

1. 什么是ROS

ROS - Robot Operating System; 机器人操作系统。但是它和传统window,linux,unix系统有些区别,我个人理解是ROS其实是对Linux内核做了一层包裹,用户能更好的在ROS中开发上位机应用平台,更专注在产品的应用,ROS所做的,就是一个和下层硬件的通讯系统。

同时,除此之外,ROS当中还有一系列开发工具,rosbag,rqt_graph, Gazebo,Rviz... 后面在实际的使用过程中,我会展开对这些工具的使用

基于ROS机器人项目开发从零开始 - 01_第1张图片

2. ROS LTS 和版本

很多人可能和我一样,不知道怎么开始ROS的使用或学习。在安装ROS的过程中,遇到了一些困惑或困难,我总结一下应该是下面几个部分。

- LTS 称为long term service,选择这类的版本,软件会有持续的维护和更新,这类产品在网上会有更多的案例,如果遇到问题会有更多的解决办法,比较一般人遇到新的OS,报错的时候都会很无助

- ROS有许多的发行版,可以根据EOL和对应的系统(Ubuntu,Window,Linux)来选择对应的版本。目前我安装的是Noetic在Ubuntu 20.04

基于ROS机器人项目开发从零开始 - 01_第2张图片

 - 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的问题,所以可以考虑清华源的镜像。可以在软件和更新中选择下载的地址 

基于ROS机器人项目开发从零开始 - 01_第3张图片

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

基于ROS机器人项目开发从零开始 - 01_第4张图片

reference: ROS入门笔记(二):ROS安装与环境配置及卸载(重点) - 知乎 (zhihu.com)

基于ROS机器人项目开发从零开始 - 01_第5张图片

------------------------------------------------------------

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)

基于ROS机器人项目开发从零开始 - 01_第6张图片

 

你可能感兴趣的:(ROS,机器人,算法,算法,python,人工智能,硬件工程)