【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概念及环境配置 的相关文章

  • 机器人正解和逆解

    正解FK 给定机器人各关节的角度 xff0c 计算出机器人末端的空间位置 逆解IK 已知机器人末端的位置和姿态 xff0c 计算机器人各关节的角度值 挖个坑待完善

随机推荐

  • 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