对ROS的初步了解和环境搭建

2023-05-16

ROS的入门前的了解以及环境搭建

  • 一、 ROS的基础简介
    • 1. ROS的诞生背景
    • 2. ROS主要的功能
    • 3. 发展历程
  • 二、 ROS的安装
    • 1. ROS的安装
    • 2. ROS的测试
  • 三、ROS的一些集成开发环境的安装
    • 1. 安装终端
    • 2. 安装VScode
    • 3.测试VScode

一、 ROS的基础简介

1. ROS的诞生背景

机器人实际上是一种高度复杂的系统性实现。机器人的设计与实现包含了软件、硬件、嵌入式等的设计,是目前存在的各种软硬件的集成。为了帮助开发者不用重复开发,也就是可以充分的分工协作,遵循“不重复开发轮子的原则”建立了机器人通用的软件框架——ROS系统。
通俗来讲,就像手机充电一样,不同的手机有不同的充电线,有时相同的充电线和手机充电接口又有不同的协议。这时候开发一套软件系统,统一所有的充电协议,使得通用性更强。ROS的作用与此类似。

2. ROS主要的功能

ROS的主要设计目标

 1.  实现代码复用 ;
 2.  分布式——分散计算压力;
 3.  松耦性——便于分享;
 4.  精简——容易和其他机器人框架集成;
 5.  语言独立;
 6.  易于测试;
 7.  大型应用;
 8.  丰富的组件化工具包;
 9.  免费且开源 

3. 发展历程

发展历程在这里不进行过多的赘述,可以参考:http://wiki.ros.org/ROS/Introduction

二、 ROS的安装

因为整个学习是在linux上进行的,所以需要线安装虚拟机或者装双系统,使用ubuntu进行操作。由于主要是对ROS进行学习,就暂时不进行这两个模块的说明。如果没有特殊说明,以后的操作全部都是在Ubuntu上进行的。

1. ROS的安装

ROS的安装,可以直接到ROS的官网查看详细的安装过程,安装先择你用的系统类型及其版本,右相对应的过程。这里我们使用的Ubuntu,也给出ROS官网中对应的在Ubuntu中安装ROS Noetic的网址:
ROS官网安装过程http://wiki.ros.org/cn/Installation/Ubuntu
只要严格按照此步骤进行,安装不会出现任何问题。

注意!!!

在进行步骤 sudo apt install ros-noetic-desktop-full 时,可能会因为网络问题出现多次失败。
不过,不用担心,多次调用更新和安装的命令,直到成功即可。

2. ROS的测试

ROS设计的目标之一就是易于测试
因此,在测试的时候,可以使用ROS的内置小程序直接检测ROS环境时候搭建完成,并且检测是否可以正常运行。

  1. 首先需要启动3个命令行(快捷键:Ctrl + Alt + t
  2. 在命令行1中输入:roscore
  3. 在命令行1中输入:rosrun turtlesim turtlesim_node(此时会弹出图形化界面,也就是一个含有小乌龟的窗口)
  4. 在命令行1中输入:rosrun turtlesim turtle_teleop_key(在3中可以通过键盘的上下左右控制2中乌龟的运动)

测试结果如下图所示:
测试结果及说明

三、ROS的一些集成开发环境的安装

1. 安装终端

通过对ROS环境的测试,可以看到,想要正常的运行ROS,有时需要打开很多端并且会频繁使用。
因此,在此可以安装一个比较好用的终端:Terminator。安装完成之后,就像我的上图一样,可以对终端进行分割。
安装的过程也很简单,至于要在终端键入以下命令即可:

sudo apt install terminator

然后,通过在应用程序中的搜索,可以将它添加到收藏夹。

Terminator的UI

2. 安装VScode

VSCode 全称 Visual Studio Code,是微软出的一款轻量级代码编辑器,免费、开源而且功能强大。它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件跨平台支持 Win、Mac 以及 Linux。

使用VScode边辑更为方便

  1. 下载连接:https://code.visualstudio.com/docs?start=true;历史版本的下载: https://code.visualstudio.com/updates
    注意: 下载的时候下载.deb结尾的安装包。

  2. 双击安装即可;卸载可以使用以下命令:

    sudo dpkg --purge  code
    
  3. 需要安装一些插件(快捷键:Ctrl + Shift + x 可以快速打开扩展安装的界面)
    3.1. C/C++——使用c++语言进行编写程序
    在这里插入图片描述
    3.2. 如果不喜欢中文可以安装中文语言的插件,进行一下汉化
    在这里插入图片描述
    3.3. CMake Tools——需要进行cmake编译和连接
    在这里插入图片描述
    3.4. Python
    在这里插入图片描述
    3.5. ROS——做的时ROS开发,因此ros插件是必须的
    在这里插入图片描述

3.测试VScode

  1. 创建工作空间

//demo_ws是ros的工作空间、src下放我们的功能包
mkdir -p demo_ws/src(必须得有 src)
//进入到ros的工作空间下
cd demo_ws
catkin_make

  1. 启动VScode

进入 demo_ws启动 VScode
在ros的工作空间下(这里是demo_ws中),在命令行键入 : code .
注意:这里的“code”和“.”中间有一个空格

  1. 编译ros

快捷键 Ctrl + Shift + b 调用编译,选择:catkin_make:build

可以点击配置设置为默认,修改.vscode/tasks.json 文件

{
// 有关 tasks.json 格式的文档,请参见
    // https://go.microsoft.com/fwlink/?LinkId=733558
    "version": "2.0.0",
    "tasks": [
        {
            "label": "catkin_make:debug", //代表提示的描述性信息
            "type": "shell",  //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
            "command": "catkin_make",//这个是我们需要运行的命令
            "args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
            "group": {"kind":"build","isDefault":true},
            "presentation": {
                "reveal": "always"//可选always或者silence,代表是否输出信息
            },
            "problemMatcher": "$msCompile"
        }
    ]
}

  1. 创建ros功能包

选定 src 右击 —> create catkin package

在这里插入图片描述

设置包名:
在这里插入图片描述
设置依赖:
在这里插入图片描述
最后,回车结束。

  1. C++实现和CMakeLists.txt配置
    在功能包下面的src中右键——>新建文件,建立demo01_ws.cpp文件。

cpp文件中的内容如下所示:

/*
    控制台输出 HelloVSCode !!!
*/
#include "ros/ros.h"
//注意:main 函数的参数不可以被 const 修饰
int main(int argc, char *argv[])
{
	//设置的允许中文输出
    setlocale(LC_ALL,"");
    //执行节点初始化
    ros::init(argc,argv,"HelloVSCode");

    //输出日志
    ROS_INFO("Hello VSCode!!!");
    return 0;
}

CMakeLists.txt配置:

add_executable(节点名称
  src/C++源文件名.cpp
)
target_link_libraries(节点名称
  ${catkin_LIBRARIES}
)

如果按照上述步骤进行的话,这里设置应该如下图所示:
在这里插入图片描述

  1. 编译执行

先启动命令行:
roscore
编译:ctrl + shift + B
执行: 打开终端,进入到ros工作环境,首先进行:source ./devel/setup.bash
然后在终端键入:rosrun 包名 C++节点这里是 rosrun demo_ws demo01_ws

最终命令行输出: HelloWorld!
至此,对ROS的基本了解与基本配置已经完成,接着就应该对ROS架构进行了解。

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

对ROS的初步了解和环境搭建 的相关文章

  • 科学计数法e/E?计算机?表示?

    计算机表达10的幂是一般是用E或e xff0c 即 1 03乘10的9次方 xff0c 可简写为 1 03E 43 09 的形式 1 03乘10的9次方 xff0c 可简写为 1 03E 43 09 的形式 1 03乘10的 9次方 xff
  • vscode - 添加新项目到远程仓库(gitee)

    本篇文章介绍使用VScode 把新的项目推送到远程仓库的操作 前提 xff1a 1 xff0c 一个新的项目 xff08 我这里用的是vue的项目 xff09 2 xff0c 一个新的远程仓库 xff08 我这里用的是Gitee xff09
  • vscode跳转返回快捷键

    windows系统 Alt 43 navigate back Alt 43 navigate forward Mac系统 Ctrl navigate back Ctrl 43 Shift navigate forward On Ubuntu
  • Windows和Linux之间如何传递数据|两台Linux之间如何传递数据

    摘要 xff1a 我们租用了一台服务器 xff0c 然后我们想要把我们写的项目上传到自己的Linux服务器中 xff0c 那么我们应该怎么上传呢 xff1f 如果我们想要从服务器中下载一些资料 xff0c 那么又该如何进行呢 xff1f 看
  • 【C++】多态及原理

    多态及原理 一 多态的实现1 多态的概念2 构成多态还有两个条件 xff1a 3 虚函数4 override和final关键字 二 抽象类三 多态的原理 一 多态的实现 1 多态的概念 多态是在不同继承关系的类对象 xff0c 去调用同一函
  • 【排序算法】桶排序算法原理

    桶排序 条件适用场景算法描述算法实现 桶排序又叫箱排序 xff0c 是计数排序的升级版 xff0c 它的工作原理是将数组分到有限数量的桶子里 xff0c 然后对每个桶子再分别排序 xff08 有可能再使用别的排序算法或是以递归方式继续使用桶
  • FreeRTOS(二)创建任务

    任务 一 任务的基本概念 FreeRTOS的任务可以认为是一系列独立的任务的集合 每个任务在自己的环境中运行 xff0c 并且每个时刻只有一个任务在运行 xff0c 但从宏观上看 xff0c 所有的任务都在同时执行 xff1b 不同任务的切
  • FreeRTOS(三)启动流程

    启动流程 FreeRTOS的主要两种启动流程 在 main 函数中将硬件初始化 xff0c RTOS 系统初始化 xff0c 所有任务的创建这些都弄好 最后启动 RTOS 的调度器 xff0c 开始多任务的调度 xff08 先创建 xff0
  • echarts参数详细介绍

    文章目录 title xff1a 标题grid配置项 xff1a 图标离容器的距离tootip xff1a 提示xAxis xff1a x轴yAxis xff1a y轴legend xff1a 图表旁边的文字series xff1a dat
  • 微信云开发报错(Error: ResourceNotFound.FunctionName, FunctionName 指定的资源不存在。 (9f4aff33-7528-43e2-b0db-d273d)

    在微信小程序云开发时 xff0c 上传login的时候报错 Error ResourceNotFound FunctionName FunctionName 指定的资源不存在 9f4aff33 7528 43e2 b0db d273d0d6
  • 在阿里云搭建CENTOS7系统以及图形界面

    1 搭建CentOS7操作系统服务器 首先要购买服务器 xff0c 推荐学生认证可以获得好几个月的免费服务器 略去具体的过程 阿里云默认的系统不是CentOS7 xff0c 所以需要先将操作系统改成CentOS7 在实例的基本信息中 xff
  • VSCode 配置git 环境

    VSCode 配置git 环境 安装插件 查询Git 安装路径 配置json 文件 安装插件 git history 打开 git bash 下面展示一些 内联代码片 查询git 路径 where git where git 配置json
  • 模拟实现trim 方法,去除字符串两端的空格

    思路 从字符串的两端分别遍历 xff0c 找寻第一个非空字符记录非空字符的索引截取头部第一个非空字符到尾部第一个非空字符串之间的内容 span class token keyword function span span class tok
  • git token使用

    2021年8月13日 xff0c git不再支持密码方式验证 xff0c 而是建议使用token token生成 个人设置 gt Settings gt Personal access tokens gt Generate new toke
  • 网页实现无插件RTSP 摄像头在线播放

    网页无插件RTSP 摄像头在线播放 为什么要求无插件1 xff0c flv js实现2 xff0c flv js的利弊延迟吃资源对网络要求高流可复用对声音处理比较麻烦 3 xff0c webrtc的利弊网络相关的资料少延迟低不吃资源 总结项
  • 计算机嵌入式开发技术考试错题集

    选择题 xff08 以前写的 xff0c 现在翻到了发出来 xff09 1 UTF 16采用的是双字节可变长编码 2 ARM处理器的7种类型的异常中 xff1a 最高的是 复位 xff1b 最低的是 未定义指令UND 和 软件中断SWI x
  • ROS——TF介绍及应用

    TF 的简单介绍 TF xff08 transform xff09 是一个允许用户时刻跟踪多个坐标架构的包 xff0c 能及时地维持树结构中坐标帧之间的关系 xff0c 并允许用户在任何时间点变化任何两个坐标帧之间的点和变量等 目前 TF
  • 计算机保研复习专业课篇(408+数学+部分专业课)

    1 计组 1 xff09 总线是什么 1 xff09 总线是一组能功能部件之间分时共享的公共信息传送线路 分时 共享是它的两大特点 2 xff09 分时是指同一时刻只能有一个部件向总线上发出信息 3 xff09 总线分为三大类 xff1a
  • STM32 四轴无人机的设计——代码整体设计

    1 前言 从现在开始我们要接触一个完整的工程 xff0c 所以我们要对整个工程进行分析 xff0c 将硬件设计 软件设计模块化 xff0c 一个模块一个模块的完成 xff0c 最后将各个模块融合在一起 xff0c 就是我们整个工程 模块化设
  • STM32-串口通信详解

    目录 前言 一 通信接口背景知识 1 并行通信和串行通信 2 串行通信的分类 二 STM32的串口通信基础 1 串口通信接口 2 串口通信框图 3 串口通信相关寄存器 4 波特率计算方法 三 库函数配置 1 串口配置一般步骤 总结 前言 众

随机推荐

  • 嵌入式裸机按键和CPU的中断系统学习笔记

    准备工作 一 按键介绍与硬件连接 按键介绍 按键是常见的外部中断设备 xff0c 类似于我们电路中的开关 一般的按键都有4个引脚 xff0c 这4个引脚成2对 xff1a 其中一对是常开触点 xff08 不按则断开 xff0c 按下则闭合
  • web前端——CSS实现加载页面效果

    先上图 html代码 span class token tag span class token tag span class token punctuation lt span div span span class token attr
  • docker学习之如何删除docker中的镜像

    目录 查找需要删除的镜像 直接删除 查询所有docker容器 停掉所需要删除镜像的容器 删除镜像 镜像成功删除 注意事项 xff1a 在安装调试完毕docker之后 xff0c 想要删除一些已经下载的镜像 发现怎么都删除不掉 xff0c 看
  • 德鲁周记06--VSLAM从入门到入坟

    VSLAM入门 介绍基础知识三维空间的刚体运动欧式变换四元数欧拉角 李群与李代数线性拟合相机单目相机双目相机深度相机 基本框架视觉里程计特征匹配ORB直接法对比 后端优化EKFBA Bundle Adjustment 回环检测建图 因为研究
  • imgcat

    安装 https pypi org project imgcat pip span class token function install span imgcat 使用
  • 德鲁周记12--带有颜色追踪功能的turtlebot(ROS+反向投影+camshift)

    带有颜色追踪功能的turtlebot 主要技术和算法颜色识别和追踪模块反向投影算法camshift 控制板块 xff08 ROS xff09 代码算法模块控制模块 这个是我前段时间完成的基于turtlebot实现跟随特定颜色的物体实现自主移
  • SLAM--PL-SLAM中基于线特征的初始化方法(LSD算法,LBD描述子,计算R和t)

    SLAM中基于线特征的初始化方法 线特征的初始化直线段检测算法 LSD xff1a a Line Segment Detector描述子 LBD xff1a Line detection and description计算旋转矩阵三焦点张量
  • 搭建windows下无人机软件在环仿真(SITL)仿真环境,无需任何无人机、飞控硬件,学习无人机通讯等知识

    SITL环境配置方法 APM飞控官网提供的SITL software in the loop 软件在环仿真 官网地址 通过该虚拟仿真环境可学习地面站操作 Mavlink通信协议等知识 参照此方法可构建出虚拟无人机平台 xff0c 打开电脑的
  • APM飞控SITL仿真环境 修改初始地理位置

    APM飞控SITL仿真环境 初始化设置 最近在sitl仿真时遇到了一个问题 xff0c 默认情况下仿真飞机的初始位置位于南半球 xff0c 而使用的国内卫星地图大多不提供中国以外地区的卫星地图 xff0c 所以希望设置仿真飞机的初始位置位于
  • MavLink通信协议 C++应用详细教程

    MavLink C 43 43 应用教程 0 前言 网上的各类MavLink通信协议教程 xff0c 往往只对协议本身进行介绍 xff0c 而不对开发中如何应用进行详述 有介绍应用的往往也都浅尝辄止 xff0c 讲完HeartBeat然后就
  • 状态反馈与状态观测器(学习笔记)

    状态反馈 状态反馈对闭环特征值的影响 给一个可控系统加上状态反馈之后 xff0c 不会改变系统的可控性 xff0c 而且可以对新系统的闭环特征值进行改变 xff0c 也就是极点配置 配置极点的具体方法 方法一 为了得到变换后的矩阵 xff0
  • 【ESP8266 快速入门】硬件:ESP12S/ESP12F最小系统设计及typeC自动下载电路设计

    ESP8266 ESP12S 12F 最小系统设计及typeC自动下载电路设计 0 引言 ESP8266面向物联网应用的 xff0c 高性价比 高度集成的 Wi Fi MCU 芯片ESP8266EX采用的QFN无引脚封装 xff0c 且需要
  • windows查看占用文件的进程

    前提 xff1a 在删除文件的时候可能存在文件被占用无法被删除 1 打开任务管理器 xff0c 点击性能 2 点击性能下方的资源监视器 3 点击CPU xff0c 可以看到关联句柄输入框 xff0c 输入被占用的文件夹或文件名称 xff0c
  • 各种耦合关系,耦合,紧耦合,松耦合,解耦

    松耦合和紧耦合的架构设计 性能对比 lt div id 61 34 cnblogs post description 34 style 61 34 display none 34 gt 在最近的一次大数据技术讨论会上 xff0c 有一家公司
  • git 回滚到指定版本

    1 操作步骤 git 回退到指定版本步骤 xff1a 把你想回退的版本的commit id和最新版本的commit id记下来然后用命令git reset hard 老版本的commit id再git reset mix 最新版本的comm
  • SOT:dataset

    https github com jiajunhua foolwood benchmark results blob master img recent Tracker development png benchmark large tra
  • python实现d435i深度相机测量两点之间的距离

    本文介绍python方法实现intel公司realsense系列d435i深度相机测量彩色图像上两点之间的距离 原理很简单 xff0c 就是将相机获得的彩色图像流与深度流对齐 xff0c 这样彩色图像上的每个像素就会对应一个深度值 xff0
  • MP地面站在飞行数据显示界面显示自己想显示的数据

    MP地面站显示数据 xff08 一 xff09 MP地面站是一款开源 xff0c 而且可以添加丰富功能的GCS xff0c 而关于在它的飞行界面显示数据也是十分方便 xff0c 我使用的是Mp 1 3 56版本 xff0c 可以在githu
  • 程序员面试的注意事项(二):面试需要的基础知识

    程序员面试的注意事项 二 xff09 xff1a 面试需要的基础知识 版权申明 未经博主同意 xff0c 谢绝转载 xff01 xff08 请尊重原创 xff0c 博主保留追究权 xff09 xff1b 本博客的内容来自于程序员面试的注意事
  • 对ROS的初步了解和环境搭建

    ROS的入门前的了解以及环境搭建 一 ROS的基础简介1 ROS的诞生背景2 ROS主要的功能3 发展历程 二 ROS的安装1 ROS的安装2 ROS的测试 三 ROS的一些集成开发环境的安装1 安装终端2 安装VScode3 测试VSco