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

2023-05-16

文章目录

  • 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

配置步骤

首先在软件和更新处,勾选下面
在这里插入图片描述

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软件与更新中设置国内镜像,选择阿里、腾讯或者中科大其中一个作为你的镜像。
在这里插入图片描述
继续输入:

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://
在这里插入图片描述
第三个文件:

sudo gedit ./rosdep2/sources_list.py

在这里插入图片描述第四个文件:

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步的窗口上
在这里插入图片描述

历史版本的安装

原因:由于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. 将错误提示的域名进行查询:
    在这里插入图片描述
  2. 记住中国香港这个ip : 151.101.76.133

在这里插入图片描述

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

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

151.101.76.133 raw.githubusercontent.com

在这里插入图片描述

  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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【ROS机器人入门】1.1 ROS概念及环境配置 的相关文章

  • ros 样例代码和教程

    中国大学MOOC 机器人操作系统入门 课程代码示例 代码 https github com DroidAITech ROS Academy for Beginners 书 https legacy gitbook com book sych
  • Python 实现 Dijkstar 路径规划算法

    Dijstar 最短路径算法 用于计算起始点到最终点的最短路径 一般采用的是贪心算法策略 原理可以参考 图解 Open list 和 close list 环境 Terminal 需要预先安装两个库 matplotlib 和 math pi
  • SLAM-hector_slam 简介与使用

    hector slam功能包使用高斯牛顿方法 不需要里程计数据 只根据激光信息便可构建地图 所以他的总体框架如下 hector slam功能包 hector slam的核心节点是hector mapping 它订阅 scan 话题以获取SL
  • ros 中ERROR: cannot download default sources list from: https://raw.githubusercontent.com/ros/rosdist

    ros 中ERROR cannot download default sources list from https raw githubusercontent com ros rosdistro master rosdep sources
  • 无人驾驶论坛

    1 百度Apollo论坛 http www 51apollo com 2 人工智能中文资讯网 http www ailab cn
  • V-REP安装

    小知识 是当前目录 是父级目录 是根目录 1 下载V REP 官网地址 http www v rep eu downloads html 我用ubuntu16 04下载V REP PRO EDU V3 5 0 Linux tar 2 解压安
  • rosrun 和 roslaunch 的时候 TAB 的自动补全出现问题

    rosrun 和 roslaunch 的时候 TAB 的自动补全出现问题 rospack Warning error while crawling home sun boost filesystem status Permission de
  • ROS2踩坑记录

    Vscode 显示 找不到module 以此选择 设置 Python 在setting json中编辑 在 python autoComplete extraPaths 中添加额外的第三方库路径 如 opt ros foxy lib pyt
  • 线速度和角速度

    转自 https baike baidu com item E7 BA BF E9 80 9F E5 BA A6 1532652 fr aladdin https baike baidu com item E8 A7 92 E9 80 9F
  • Ubuntu下vscode配置ROS环境

    摘要 最近准备放弃用clion开发ROS使用更主流的vscode 整理一下在ubuntu18 04下的VSCode安装和ROS环境配置流程 安装 方法一 软件商店安装 个人还是推荐使用ubuntu软件下载vscode 简单不容易出错 方法二
  • ROS rosdep update 出错方法 不需要翻墙切换之类的解决方法 ‘https://raw.githubusercontent.com/ros/rosdistro/master/inde

    系统 ubuntu18 rosdep update参考的这篇文章 https blog csdn net weixin 43311920 article details 114796748 utm source app app versio
  • 在Ubuntu 14.04.2 LTS上安装Qt

    Qt是一个跨平台的应用程序框架 广泛用于开发具有GUI界面的应用软件以及命令行工具 几乎所有操作系统都可以使用Qt 如Windows Mac OS X Android等 用于开发Qt应用程序的主要编程语言是C 但是可以使用诸如Python
  • 解决ros安装 使用roscore命令测试问题

    本人安装教程完成ROS的安装后 在进行测试如图1命令 出现 解决办法输入完命令1后要输入命令2才行 即可测试成功 测试成功的界面如下
  • Ubuntu安装ROS

    原文链接 https blog csdn net qq 44830040 article details 106049992 这也是我在ubuntu里面安装ROS的第N次 以前每次安装过程都忘记总结了 导致每次安装ROS都浪费了很多的时间用
  • 最快实现一个自己的扫地机

    作者 良知犹存 转载授权以及围观 欢迎关注微信公众号 羽林君 或者添加作者个人微信 become me 扫地机介绍 扫地机器人行业本质是技术驱动型行业 产品围绕导航系统的升级成为行业发展的主旋律 按功能划分 扫地机器人分为四大系统 即导航系
  • roslaunch error: ERROR: cannot launch node of type

    今天在因为github上有个之前的包更新了 重新git clone后出现了一个问题 ERROR cannot launch node of type crazyflie demo controller py can t locate nod
  • 在 CLion 中设置 ROS 包

    我正在使用 CLion C IDE 来编辑 ROS 包 我可以通过打开CMakeLists txt文件 但是 我收到一个错误 FATAL ERROR find package catkin 失败 在工作区和 CMAKE PREFIX PAT
  • 将 CUDA 添加到 ROS 包

    我想在 ros 包中使用 cuda 有人给我一个简单的例子吗 我尝试使用 cuda 函数构建一个静态库并将该库添加到我的包中 但总是出现链接错误 未定义的引用 cuda 我已经构建了一个可执行文件而不是库并且它可以工作 请帮忙 我自己找到了
  • 在 ROS - Python 中使用来自多个主题的数据

    我能够显示来自两个主题的数据 但无法在 ROS 中实时使用和计算这两个主题的数据 用 Python 代码编写 您有想法存储这些数据并实时计算吗 谢谢 usr bin env python import rospy import string
  • 使用 CMake 链接 .s 文件

    我有一个我想使用的 c 函数 但它是用Intel编译器而不是gnu C编译器 我在用着cmake构建程序 我实际上正在使用ROS因此rosmake但基础是cmake所以我认为这更多是一个 cmake 问题而不是ROS问题 假设使用构建的文件

随机推荐

  • LeetCode—232 用栈实现队列 Cpp&Python

    LeetCode 225 用队列实现栈 Cpp amp Python 一 方法与思路二 C 43 43 代码三 Python代码 一 方法与思路 使用栈实现队列的下列操作 xff1a push x 将一个元素放入队列的尾部 pop 从队列首
  • E: Unable to locate package解决办法

    问题 xff1a E Unable to locate package 解决 xff1a sudo apt span class token operator span get updade
  • Yolo框架简介

    YOLO xff08 You Only Look Once xff09 是一种基于深度神经网络的对象识别和定位算法 xff0c 其最大的特点是运行速度很快 xff0c 可以用于实时系统 现在YOLO已经发展到v4版本 论文地址 xff1a
  • Ubuntu下编辑权限只读文件的方法

    首先要注意的是只读文件一般都是系统文件 xff0c 或者软件配置文件 xff0c 修改时要尤其谨慎 本文提供两种方法 xff1a 方法一 首先安装一个插件 span class token function sudo span apt sp
  • Ros下Aruco模块的使用

    生成ARUCO ROS MARKER 链接 http chev me arucogen 首先启动ros roscore 打开相机节点 xff0c 在此提供usb相机与Realsense D435i的启动方法 xff1a roslaunch
  • 脚气、灰指甲治疗实验方案

    脚气 xff08 已临床实验 xff09 脚气 xff0c 又叫足廯 香港脚 糜烂性脚气 症状 xff1a 80 都是这种类型 常见于多汗人群 角质层被汗水浸软 xff0c 发白了以后 xff0c 走动不断摩擦表皮脱落 xff0c 露出鲜红
  • VS2015显示“正在从以下位置加载符号“的解决办法

    解决方法 xff1a VS 工具 选项 调试 符号 看到 MicroSoft符号服务器 xff0c 去掉方框中的 xff0c 确定即可 xff0c 之后就不会再调试时加载
  • 【面包】STM32学习笔记(二) --- USART 串口通信学习总结

    tip xff1a 如有错误 xff0c 希望指出 xff0c 非常感谢 xff01 目录 简介一 USART是什么 xff1f 二 问答通信方式1 USART和UART区别2 单工 半双工 全双工区别 三 代码实验1 说明2 代码初始化配
  • [论文阅读笔记] Reciprocal n-body Collision Avoidance(ORCA/RVO2)

    论文阅读 Reciprocal n body Collision Avoidance ORCA RVO2 文章目录 论文阅读 Reciprocal n body Collision Avoidance ORCA RVO2 论文地址Intro
  • 在VSCode中搭建C++编译环境

    在VSCode中搭建C 43 43 编译环境 VSCode当中搭建C 43 43 环境下载VSCode下载MinGW配置文件撰写测试小程序 VSCode当中搭建C 43 43 环境 vscode作为一款轻量级编程软件深受编程人员喜爱 xff
  • 【C++学习笔记】头文件详解

    个人整理学习用 xff0c 非教材 xff0c 有错误欢迎指正 头文件 究竟什么是头文件 xff1f 首先说明一个概念 xff0c 所谓的文件后缀并不是必须的 xff0c 在Linux下这种特点尤为明显 对于编译器来说 xff0c 无论是
  • 编程实现字符串连接函数strcat()

    按如下函数原型编程实现字符串连接函数strcat 的功能 void MyStrcat char dstStr char srcStr 输入提示信息 xff1a Input a string Input another string 输入字符
  • UDP通讯

    目录 利用DatagramSocket发送和接收UDP数据报 DatagramPacket构造方法说明 利用DatagramPacket和Datagramsocket简单实现服务器和客户端的通信 UDP协议通讯的用户状态跟踪 利用Datag
  • ubuntu 下C/C++文件编写

    1 Ubuntu下c cpp文件 1 1 cmake方式编译 cmake通常建立CmakeLists txt xff0c 通过cmake命令生成makefile文件编译工程 文件内容 xff1a span class token numbe
  • C语言基础入门:链表详解篇

    链表概述 链表是一种常见的重要的数据结构 它是动态地进行存储分配的一种结构 它可以根据需要开辟内存单元 链表有一个 头指针 变量 xff0c 以head表示 xff0c 它存放一个地址 该地址指向一个元素 链表中每一个元素称为 结点 xff
  • Linux c udp广播

    文章目录 1 对比2 代码2 1 服务端2 2 客户端 1 对比 服务端 xff1a 需要利用这个函数开发套接字的发广播权限 xff0c 并且需要客户端地址绑定为广播地址 span class token function setsocke
  • React—— HelloWorld

    React 学习笔记 Hello WorldJSX JavaScript XML 语法规则JavaScript 语法函数组件 类组件 amp 属性 props组合组件 生命周期函数 xff08 不全 xff09 amp 状态 state事件
  • Linux下makefile 编译项目

    文章目录 1 规划makefile编写2 makefile文件2 1 根目录下common mk2 2 config mk2 3 根目录makefile 2 4 其他目录下 1 规划makefile编写 a 根目录下放三个文件 xff1a
  • RPLIDAR激光雷达测试

    本文主要介绍PRLIDAR A2M8 R2激光雷达的的测试过程 关于该激光雷达的具体参数和描述 xff0c 可以直接去官网查询 本文的测试环境为Ubantu16 04 ROS xff08 kinetic xff09 关于Ubantu16 0
  • 【ROS机器人入门】1.1 ROS概念及环境配置

    文章目录 ROS设计目标系统要求配置步骤1 设置安装源2 设置ROS软件Key3 更新软件包4 安装完整版ROS Noetic软件5 配置ROS环境6 安装构建依赖7 1 安装rosdep 7 1与7 2任选其一 解决方法 7 2 安装ro