【ROS机器人入门】1.1 ROS概念及环境配置

文章目录

  • ROS设计目标
  • 系统要求
  • 配置步骤
    • 1. 设置安装源
    • 2. 设置ROS软件Key
    • 3. 更新软件包
    • 4. 安装完整版ROS Noetic软件
    • 5. 配置ROS环境
    • 6. 安装构建依赖
    • 7.1 安装rosdep(7.1与7.2任选其一)
      • 解决方法
    • 7. 2 安装rosdepc(7.1与7.2任选其一)
    • 8. 尝试运行海龟
  • 测试ROS
  • 历史版本的安装
    • 4. 安装完整版ROS melodic 软件
    • 5. 配置ROS环境
    • 6. 安装构建依赖
    • 7.初始化rosdep
      • 解决方法:
  • 卸载ROS
  • 参考资料

ROS=Plumbing+Tools+Capabilities+Ecosystem

ROS设计目标

代码复用:ROS的目标不是成为具有最多功能的框架,ROS的主要目标是支持机器人技术研发中的代码 重用。

分布式:ROS是进程(也称为Nodes)的分布式框架,ROS中的进程可分布于不同主机,不同主机协同工 作,从而分散计算压力 。

松耦合:ROS中功能模块封装于独立的功能包或元功能包,便于分享,功能包内的模块以节点为单位运 行,以ROS标准的IO作为接口,开发者不需要关注模块内部实现,只要了解接口规则就能实现复用,实现 了模块间点对点的松耦合连接 。

精简:ROS被设计为尽可能精简,以便为ROS编写的代码可以与其他机器人软件框架一起使用。ROS易 于与其他机器人软件框架集成: ROS已与OpenRAVE, Orocos和Player集成。

语言独立性:包括Java, C++, Python等。为了支持更多应用开发和移植,ROS设计为一种语言弱相关 的框架结构,使用简洁,中立的定义语言描述模块间的消息接口,在编译中再产生所使用语言的目标文 件,为消息交互提供支持,同时允许消息接口的嵌套使用 。

易于测试:ROS具有称为rostest的内置单元/集成测试框架,可轻松安装和拆卸测试工具。

大型应用: ROS适用于大型运行时系统和大型开发流程。

丰富的组件化工具包:可采用组件化方式集成工具和软件到系统中作为一个组件直接使用。如RVIZ (3D可视化工具),开发者根据ROS定义的接口在其中显示机器人模型等,组件还包括仿真环 境和消息查看工具等 。

免费且开源:开发者众多,功能包多

系统要求

系统:ubuntu 20.04

本人原本使用的是ubuntu22,但似乎新版本不稳定,在vm上经常宕机

ROS1 版本:ROS Noetic
Noetic(2020发布)支持python 3
Noetic之前支持python 2

配置步骤

首先在软件和更新处,勾选下面
【ROS机器人入门】1.1 ROS概念及环境配置_第1张图片

1. 设置安装源

如果是国内用户,建议使用镜像源,这样可以保证后续的下载速度。

	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'

2. 设置ROS软件Key

如果还没安装curl的话,执行下面语句

	sudo apt install curl

安装curl命令,如果你的ubuntu安装很慢,那你可能需要在ubuntu软件与更新中设置国内镜像,选择阿里、腾讯或者中科大其中一个作为你的镜像。
【ROS机器人入门】1.1 ROS概念及环境配置_第2张图片
继续输入:

curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -

3. 更新软件包

sudo apt-get update

4. 安装完整版ROS Noetic软件

sudo apt-get install ros-noetic-desktop-full

5. 配置ROS环境

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

6. 安装构建依赖

sudo apt-get install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

7.1 安装rosdep(7.1与7.2任选其一)

sudo apt install python3-rosdep

初始化rosdep

sudo rosdep init
rosdep update

但是7.1方法在rosdep初始化时,多半会抛出异常
原因是境外资源被屏蔽了

解决方法

  1. 进入资源路径中,找到
cd /usr/lib/python3/dist-packages/
find . -type f | xargs grep "raw.githubusercontent"

第一个文件:

sudo gedit ./rosdistro/__init__.py

将下面的红色框框替换成gitee.com/zhao-xuzuo/rosdistro/raw/master
替换第二个文件:

sudo gedit ./rosdep2/gbpdistro_support.py

注意下图要保留https://
【ROS机器人入门】1.1 ROS概念及环境配置_第3张图片
第三个文件:

sudo gedit ./rosdep2/sources_list.py

【ROS机器人入门】1.1 ROS概念及环境配置_第4张图片第四个文件:

sudo gedit ./rosdep2/rep3.py

完成上述步骤后,就可以运行下面命令了

sudo rosdep init
rosdep update

7. 2 安装rosdepc(7.1与7.2任选其一)

这是国内大佬做的rosdep镜像,可以绕开连接不上服务器的困难过程。

sudo apt install python3-pip

在安装了pip之后,需要对其进行换源,使用国内源能够更快下载文件

mkdir ~/.pip
cd ~/.pip
touch pip.conf
sudo gedit ~/.pip/pip.conf

在弹出的文件中写入

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/ 
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn

安装rosdepc

sudo pip install rosdepc
sudo rosdepc init
rosdepc update

8. 尝试运行海龟

apt install python3-roslaunch

启动roscore

roscore 
rosrun turtlesim turtlesim_node

测试ROS

  1. 首先启动三个命令行(ctrl + alt + T)
  2. 命令行1键入:roscore
  3. 命令行2键入:rosrun turtlesim turtlesim_node(此时会弹出图形化界面)
  4. 命令行3键入:rosrun turtlesim turtle_teleop_key(在3中可以通过上下左右控制2中乌龟的运动) 最终结果如下所示:

控制海龟时,光标需要聚焦在第4步的窗口上
【ROS机器人入门】1.1 ROS概念及环境配置_第5张图片

历史版本的安装

原因:由于nertic较之前版本变动较大,且部分功能包未更新,在后期实践阶段可能会遇到重要功能包未更新的情况,需要ros降级。

ros系统:melodic
Ubuntu 18.04

旧版本的环境配置与上文noetic的配置前5个步骤(包括第5个)大致一样,第4,5步稍微不同,这里从第4步进行讲解。

4. 安装完整版ROS melodic 软件

sudo apt install ros-melodic-desktop-full

5. 配置ROS环境

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

6. 安装构建依赖

sudo apt-get install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep

7.初始化rosdep

sudo rosdep init
rosdep update

sudo rosdep init 可能会抛出异常
原因与noetic的7.1一样,境外资源被屏蔽了

解决方法:

  1. 将错误提示的域名进行查询:
    【ROS机器人入门】1.1 ROS概念及环境配置_第6张图片
  2. 记住中国香港这个ip : 151.101.76.133

【ROS机器人入门】1.1 ROS概念及环境配置_第7张图片

  1. 修改/etc/hosts 文件,命令:
sudo gedit /etc/hosts

添加内容,即查询到的ip(本目录第2个步骤)与域名

151.101.76.133 raw.githubusercontent.com

【ROS机器人入门】1.1 ROS概念及环境配置_第8张图片

  1. 重新执行下面命令
sudo rosdep init
rosdep update 

若在rosdep update抛出异常,基本是网络原因导致的,建议使用手机热点多尝试几次即可。

卸载ROS

sudo apt-get remove ros-noetic-*

参考资料

https://www.bilibili.com/video/BV1Ci4y1L7ZZ/?spm_id_from=333.337.search-card.all.click&vd_source=b914a8de9ea8b12ba5cb6d8edd1b346c

https://blog.csdn.net/liaolizhou/article/details/123615925

你可能感兴趣的:(ROS,机器人,自动驾驶,人工智能)