ROS基础

news2024/11/18 19:34:12

E: Unable to locate package ros-kinetic-turtle-tf

ROS Kinetic 学习笔记 (古月居)
https://www.bilibili.com/video/BV1hc411n7N7/

一、认识ROS

  • 大纲
    在这里插入图片描述
    在这里插入图片描述

  • ROS的总体设计
    在这里插入图片描述

  • 系统实现
    三个层次
    在这里插入图片描述
    1 主要是话题、服务通信模型的实现

    • 话题:
      在这里插入图片描述
      RPC介绍:https://zhuanlan.zhihu.com/p/187560185

    • 服务:
      在这里插入图片描述

    • 参数通信机制
      如果talker向Master更新了参数值,但是listerner没有查询,则依旧保持旧的的参数。(目前ROS1中的一个坑)
      在这里插入图片描述

    • 话题服务区别
      在这里插入图片描述

    2 ROS的文件系统
    在这里插入图片描述

    3 社区
    在这里插入图片描述

  • 初次实践

    • 软件源安装(PC端常用方式)源码安装 (ARM上安装)

    • rosinstall rosdep

    • ROS安装目录:/opt/ros在这里插入图片描述

    • bin etc include lib share(功能包接口信息-话题 服务 action)

    • 教程使用的不是bash , 而是zsh

    • roscore

      • ROS_MASTER_URI=http://xxx:11311/ 整个系统只能存在一个,分布式多主机情况下,其他主机上的节点需要知道该URI地址
    • 命令工具

    • ROS例程 turtlesim

      • 计算图 rqt_graph rosnode
      • rosout节点 : 是用来收集和记录节点调试输出信息的,它总是运行。
      • rosservice call /spawn “info”
      • rostopic pub -r 10 xxx
      • rosnode list
      • 小海龟仿真
        在这里插入图片描述
    • ROS应用框架
      在这里插入图片描述
      Nodelet API : 图片、点云等大量数据,以共享内存的方式更高效的传输。

二、ROS基础

目录:

  • 1、创建工作空间
  • 2、ROS通信编程
  • 3、分布式通信
  • 4、ROS中的关键组件

安装:https://zhuanlan.zhihu.com/p/515361781

1. 创建工作空间

src build devel install
ROS2中将devel和install文件夹合并了,devel和install功能上有所重复。
在这里插入图片描述
bash和zsh的区别:https://blog.csdn.net/qq_40520596/article/details/104642218

  • 功能包相关
    • 创建功能包 catkin_create_pkg pkg_name depend1 …
    • 编译功能包:cd ~/catkin_ws catkin_make source ~/catkin_ws/devel/setup.bash
    • 同一个工作空间不能存在相同名字的功能包,不同工作空间下可以;
  • 工作空间的覆盖
    • env | grep ros >> ROS_PAKAGE_PATH
    • sudo apt-get install ros-noetic-roscpp-tutorials >> rospack find roscpp_tutorials
    • 将roscpp_tutorials包放到工作空间src中,再使用rospack find可以发现,该包出现在catkin_ws下
    • 覆盖机制
      在这里插入图片描述

2、ROS通信编程

http://www.autolabor.com.cn/book/ROSTutorials/di-2-zhang-ros-jia-gou-she-ji.html
见PPT及相关代码。

话题

服务

Action

3、分布式通信

分布式 松耦合

在这里插入图片描述
如何实现分布式多极通信

  • 分布式通信需要设置正确的IP , 主要设置 /etc/hosts文件,定义IP地质和主机名的映射关系;
  • 保证多个主机的/etc/hosts文件的主机都有互相的IP - 主机映射关系;
  • 设置从机的ROS_MASTER_URI
    在这里插入图片描述

4、ROS中的关键组件

  • *在这里插入图片描述

  • launch文件的标签含义

  • TF坐标变换

  • Qt工具箱
    在这里插入图片描述

在这里插入图片描述

问题

  1. E: Unable to locate package ros-kinetic-turtle-tf

三、机器人系统设计

四、机器人仿真

五、机器人感知

六、机器人SLAM与自主导航

七、ROS理论与实践Moveit

八、ROS机器人综合应用

九、ROS2.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1059715.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

顾樵 量子力学I 导读(1)

波函数与薛定谔方程 薛定谔方程的获得 经典电磁波理论与德布罗意关系 波函数的性质 波函数是平方可积函数(归一化条件)波函数和波函数的导数是连续的波函数的单值的波函数在势场奇点以外的地方连续力学量的平均值与期待值 粒子动量的期望值Ehrenfests th…

采用python中的opencv2的库来运用机器视觉移动物体

一. 此次我们来利用opencv2来进行机器视觉的学习 1. 首先我们先来进行一个小的案例的实现. 这次我们是将会进行一个小的矩形手势的移动. import cv2 from cvzone.HandTrackingModule import HandDetectorcap cv2.VideoCapture(0) # cap.set(3, 1280) # cap.set(4, 720) col…

1.1 数据库系统概述

思维导图: 前言: **数据库前言笔记:** 1. **数据库的价值** - 数据管理的高效工具 - 计算机科学的关键分支 2. **信息资源的重要性** - 现代企业或组织的生存和发展关键 - 建立有效的信息系统至关重要 3. **数据库的应用范围**…

Vue中如何进行移动端手势操作

当开发移动端应用程序时,手势操作是提高用户体验的关键部分之一。Vue.js是一个流行的JavaScript框架,它提供了一种简单而强大的方式来实现移动端手势操作。本文将介绍如何在Vue.js中进行移动端手势操作,包括基本手势,如点击、滑动…

闲聊四种旅游方式

十一长假,先不写那些需要深度思考的话题,先写点轻松的。 关于旅游方式,其实也是受梁斌博士一条微博的一些触动,他说他认识个朋友,自由职业,到处旅游,却从不旺季出行,非常省钱&#x…

关系型数据库设计理论及部署实现

ACID 索引实现方式 事务隔离级别 并发场景 写-写冲突 MVCC 数据库隐式字段 读视图 删表语句 insert与replace区别 Mysql相关参数 索引扫描方式 索引下推 复制日志 基于操作语句复制 基于预写日志(WAL)复制 基于行的逻辑日志复制 基于触发器的复制 主从同步 多主复制 Mysql备份 …

關聯式資料庫模型The relational data model

RELATIONAL MODEL關係模型 結構化查詢語言(SQL)基礎 foundation of structured query language (SQL) 許多資料庫設計方法的基礎foundation of many database design methodologies 資料庫研究基礎 foundation of database research 關係(Relation) …

Curve 文件存储的缓存策略

Curve 文件存储简介 Curve 文件存储的架构如下: 客户端 Posix 兼容:像本地文件系统一样使用,业务无缝接入,无侵入性; 独立的元数据集群:元数据分布式设计,可以无限扩展。同一文件系统可以在数…

Elasticsearch:什么时候应该考虑在 Elasticsearch 中添加协调节点?

仅协调节点(coordinating only nodes)充当智能负载均衡器。 仅协调节点的这种特殊角色通过减轻数据和主节点的协调责任,为广泛的集群提供了优势。 加入集群后,这些节点与任何其他节点类似,都会获取完整的集群状态&…

基于Java的医院挂号就诊系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

yolov5检测cs2中的目标

环境介绍 系统:Windows11 显卡:4070ti cuda:11.8 配置环境 python环境 安装python的虚拟环境anaconda。Free Download | Anaconda 成功安装后可以按Win键搜索anaconda,可以看到桌面版和命令行版本,我们这里直接用命令行版本…

VUE3照本宣科——响应式与生命周期钩子

VUE3照本宣科——响应式与生命周期钩子 前言一、响应式1.ref()2.reactive()3.computed()4.watch()5.代码演示 二、defineProps() 和 defineEmits()三、生命周期钩子1.onMounted()2.onUpdated()3.onUnmounted()4.onBeforeMount()5.onBeforeUpdate()6.onBeforeUnmount()7.onError…

公众号突破2个限制技巧

许多用户在注册公众号时可能会遇到“公众号显示主体已达上限”的问题。这是因为在2018年11月16日对公众号注册数量进行了调整,具体调整如下:1、个人主体注册公众号数量上限从2个调整为1个。2、企业主体注册公众号数量上限从5个调整为2个。这意味着&#…

vs2015 执行后出来空白界面的解决

为什么在visual studio上写的代码点击开始执行,出来的是空白界面?(代码没问题)? - 知乎 Visual Studio 2015 - 新建 C/C 项目 (Project)_vs2015创建一个c项目-CSDN博客

微信小程序点单左右联动的效果实现

微信小程序点单左右联动的效果实现 原理解析:   点击左边标签会跳到右边相应位置:点击改变rightCur值,转跳相应位置滑动右边,左边标签会跳到相应的位置:监听并且设置每个右边元素的top和bottom,再判断当…

Linux内存管理 | 一、内存管理的由来及思想

我的圈子: 高级工程师聚集地 我是董哥,高级嵌入式软件开发工程师,从事嵌入式Linux驱动开发和系统开发,曾就职于世界500强企业! 创作理念:专注分享高质量嵌入式文章,让大家读有所得! …

Linux系统常用指令篇---(一)

Linux系统常用指令篇—(一) 1.cd指令 Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。 语法:cd 目录名 功能:改变工作目录。将当前工作目录改变到指定的目录下。 (简单理解为进入指定目录下) 举例: cd .. : 返…

maven 初学

1. maven 安装 配置安装 路径 maven 下载位置: D:\software\apache-maven-3.8.6 默认仓库位置: C:\Users\star-dream\.m2\repository 【已更改】 本地仓库设置为&#xff1a;D:\software\apache-maven-3.8.6\.m2\repository 镜像已更改为阿里云中央镜像仓库 <mirrors>…