当前位置: 首页 > news >正文

【ROS2机器人入门到实战】

ROS2机器人入门到实战教程(鱼香ROS)

写在前面

  1. 当前平台文章汇总地址:ROS2机器人从入门到实战
  2. 获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取
  3. 教程配套机器人开发平台:两驱版| 四驱版
  4. 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn

(一)​ROS2入门篇

第 1 章 ROS2介绍与安装

基础篇-Linux基础
  • 1.Linux与Ubuntu系统介绍
  • 2.在虚拟机中安装Ubuntu
  • 3.玩转Ubuntu之常用指令
  • 4.玩转Ubuntu之编程工具
  • 5.玩转Ubuntu之常用软件
入门篇-ROS2介绍安装
  • 1.ROS2前世今生
  • 2.ROS与ROS2对比
  • 3.动手安装ROS2
  • 4.ROS2初体验
进阶篇-架构与中间件
  • 1.ROS2系统架构
  • 2.中间件DDS架构

第 2章 ROS第一个节点

基础篇-编程基础
  • 1.使用gcc编译ROS2节点
  • 2.使用make编译ROS2节点
  • 3.使用CMakeList.txt编译ROS2节点
  • 4.CMake依赖查找流程
  • 5.Python依赖查找流程
  • 6.Python工具之Setup
入门篇-动手使用ROS2
  • 1.ROS2节点介绍
  • 2.ROS2功能包与工作空间
  • 3.ROS2构建工具之Colcon
  • 4.使用RCLCPP编写节点
  • 5.使用RCLPY编写节点
进阶篇-ROS2系统
  • 1.面向对象编程思想
  • 2.使用面向对象方式编写ROS2节点
  • 3.Colcon使用进阶
  • 4.ROS2节点发现与多机通信

第3章 ROS2节点通信之话题与服务

基础篇-中间件
  • 1.从底层理解通信
  • 2.通信中间件之ZMQ
入门篇-话题与服务
  • 1.ROS2话题入门
  • 2.话题之RCLCPP实现
  • 3.话题之RCLPY实现
  • 4.ROS2服务入门
  • 5.服务之RCLCPP实现
  • 6.服务之RCLPY实现
  • 7.ROS2接口介绍
  • 8.自定义接口RCLCPP实战
  • 9.自定义接口RCLPY实战
进阶篇-中间件进阶
  • 1.原始数据类型与包装类型
  • 2.通信质量Qos配置指南
  • 3.DDS进阶之Fast-DDS环境搭建
  • 4.使用DDS进行订阅发布

第4章 ROS2通信之参数与动作

基础篇-控制概述
  • 1.开环控制与闭环控制
入门篇-参数与动作
  • 1.参数(Param)通信
  • 2.参数之RCLCPP实现
  • 3.参数之RCLPY实现
  • 4.动作(Action)通信与自定义接口
  • 5.动作之CPP实现
  • 6.动作之RCLPY实现
  • 7.通信机制对比总结
进阶篇-原理进阶
  • 1.ROS参数通信原理介绍
  • 3.生命周期节点

[第5章 ROS2常用工具]

入门篇-参数与动作
  • 1. 启动管理工具-Launch
  • 2.ROS2命令行工具
  • 3.数据可视化工具-RVIZ
  • 4.常用调试小工具-RQT
  • 5.数据录播工具-rosbag2
  • 6.兼容仿真工具-Gazebo

(二)机器人学篇

第 6 章 运动学基础

基础篇-数学基础
  • 1.矩阵与矩阵运算
  • 2.MiniConda与Jupyter介绍安装
  • 3.矩阵运算实战
入门篇-机器人运动学
  • 1.空间坐标描述
  • 2.空间坐标描述实战
  • 3.姿态的不同表示
  • 4.姿态转换实战
  • 5.齐次坐标变换
  • 6.齐次坐标变换实战
  • 7. 机器人运动学介绍

第 7章 ROS运动学

入门篇-机器人运动学
  • 1.tf2介绍
  • 2.学会使用RVIZ2-TF组件
  • 3.坐标变换发布监听Python实现
  • 4.坐标变换发布监听C++实现

(三)建模仿真篇

第 8 章 机器人建模

入门篇-机器人建模
  • 1.URDF统一机器人建模语言
  • 2.RVIZ2可视化URDF模型
  • 3.创建一个两轮差速模型
  • 4.通过JointStates控制RVIZ2关节

第 9章 机器人仿真

入门篇-机器人运动学
  • 1.机器人仿真介绍
  • 2.为机器人URDF模型注入物理属性
  • 3.在Gazebo加载机器人模型
  • 4.Gazebo仿真插件之两轮差速
  • 5.Gazebo仿真插件之IMU
  • 6.Gazebo仿真插件之激光雷达
  • 7.Gazebo仿真环境搭建
进阶篇
  • 1.Gazebo仿真插件之超声波

(四)Nav2导航篇

第 10 章 SLAM建图

基础篇-图像基础
  • 1.图像常见格式及存储
  • 2.栅格地图介绍
入门篇-SLAM建图
  • 1.SLAM前世今生
  • 2.Carto介绍及安装
  • 3.配置FishBot进行建图
进阶篇-Carto与地图
  • 1.ROS2地图加载与编辑

第 11章 Nav2导航仿真实战

入门篇-Nav2导航入门
  • 1.Nav2导航框架介绍与安装
  • 2.为FishBot配置Nav2
  • 3.使用FishBot进行自主导航
  • 4.使用Nav2导航API进行导航

(五)ROS2硬件控制篇

第 13 章 嵌入式开发之点灯开始

基础篇-嵌入式开发介绍与环境搭建
  • 1.什么是单片机MCU
  • 2.单片机开发平台
  • 3.搭建PlateFormIO开发环境
  • 4.PIO工程结构&构建方式
  • 5.第一个HelloWorld工程
  • 6.串口通信-接收实验
入门篇-从点灯开始学起
  • 1.点灯基础-看懂LED驱动电路
  • 2.完成点灯-学会GPIO输出
  • 3.完成点灯-学会GPIO输入
  • 4.电池电压测量-学会使用ADC
进阶篇-学会使用第三方库
  • 1.学会安装第三方开源库
  • 2.使用开源库驱动IMU
  • 3.学会面向对象编程-封装IMU驱动
  • 4.使用开源库驱动OLED
  • 5.通讯协议小课堂-I2C通信
  • 6.I2C通信实验-点亮OLED

第 14章 接入ROS2-MicroROS

基础篇-第一个MicroROS节点
  • 1.MicroROS介绍与服务安装
  • 2.你的第一个MicroROS节点
入门篇-在嵌入式平台实现话题与服务通信
  • 1.话题订阅-控制LED
  • 2.话题发布-上传电量信息
  • 3.服务实现-两数相加
进阶篇-MicroROS原理与使用进阶
  • 1.控制OLED-自定义消息接口
  • 2.做个时钟-系统时间同步
  • 3.无线通讯-了解传输原理
  • 4.榨干性能-使用双核进行MicroROS

第 15章 ROS2硬件实战(自制建议雷达)

  • 1.简易雷达原理介绍
  • 2.使用超声波测量距离
  • 3.使用pwm控制舵机角度
  • 4.实现循环扫描测量
  • 5.ROS雷达消息合成与分布

(六)FishBot移动机器人开发篇

第 16 章 移动机器人控制系统搭建

  • 1.移动机器人底盘结构介绍
  • 2.从H桥说起-电机驱动原理介绍
  • 3.电机控制之正反转实验
  • 4.电机控制之速度控制实验
  • 5.电机控制之使用开源库驱动多路电机
  • 6.做个遥控车-订阅ROS2 Twist
  • 7.从编码器说起-速度测量原理介绍
  • 8.脉冲测量与校准实验
  • 9.速度转换-机器人最大速度测量
  • 10.控制速度-PID控制器实现
  • 11.两轮差速机器人运动学介绍
  • 12. 实时速度计算-运动学正解
  • 13.目标速度控制-运动学逆解
  • 14.里程计计算-速度积分
  • 15.采用MicroROS发布里程计
  • 16.项目总结与扩展
  • 17.拓展-源码编译Agent

第 17章 FishBot建图与导航实现

FishBot建图实现
  • 1.可视化雷达点云-学会驱动雷达
  • 2.建图前准备1-了解ROS标准REP105
  • 3.建图前准备2-发布odom的TF
  • 4.建图前准备3-准备URDF
  • 5.使用SLAM_TOOLBOX完成建图
  • 6.地图保存与编辑
FishBot导航实现
  • 1.Nav2介绍与安装
  • 2.配置Navigation2参数
  • 3.编写Launch并启动导航
  • 4.进行单点与路点导航

第 18章 移动机器人导航进阶

  • 1.使用API进行导航

相关文章:

【ROS2机器人入门到实战】

ROS2机器人入门到实战教程(鱼香ROS) 写在前面 当前平台文章汇总地址&#xff1a;ROS2机器人从入门到实战获取完整教程及配套资料代码&#xff0c;请关注公众号<鱼香ROS>获取教程配套机器人开发平台&#xff1a;两驱版| 四驱版为方便交流&#xff0c;搭建了机器人技术问…...

Nuxt3框架局部文件引用外部JS/CSS文件的相关配置方法

引入外部JS&#xff1a; <script setup>useHead({script: [ {type: "text/javascript",src: https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min.js}]}) </script>useHead只能与组件的setup和生命周期钩子一起使用 如果需要将js放置body区…...

Docker 可视化面板 ——Portainer

Portainer 是一个非常好用的 Docker 可视化面板&#xff0c;可以让你轻松地管理你的 Docker 容器。 官网&#xff1a;Portainer: Container Management Software for Kubernetes and Docker 【Docker系列】超级好用的Docker可视化工具——Portainer_哔哩哔哩_bilibili 环境 …...

Java 教育局民办教育信息服务与监管平台

1) 项目背景 按照《中华人民共和国民办教育促进法》和《中华人民共和国政府信息公开条例》的相关规定&#xff0c;为满足学生和家长、社会各界获取权威信息的需求&#xff0c;着力解决服务老百姓最后一公里问题&#xff0c;达到宣传民办教育和引导家长择校的效果&#xff0…...

小迪笔记(1)——操作系统文件下载反弹SHELL防火墙绕过

名词解释 POC&#xff1a;验证漏洞存在的代码&#xff1b; EXP&#xff1a;利用漏洞的代码&#xff1b; payload&#xff1a;漏洞利用载荷&#xff0c; shellcode&#xff1a;漏洞代码&#xff0c; webshell&#xff1a;特指网站后门&#xff1b; 木马&#xff1a;强调控制…...

Pytorch D2L Subplots方法对画图、图片处理

问题代码 def show_images(imgs, num_rows, num_cols, titlesNone, scale1.5): #save """绘制图像列表""" figsize (num_cols * scale, num_rows * scale) _, axes d2l.plt.subplots(num_rows, num_cols, figsizefigsize) axes axes.flatten…...

MATLAB算法实战应用案例精讲-【目标检测】YOLOV5(补充篇)

目录 算法原理 YOLOv5数据集训练 软硬件背景: 数据集准备 配置文件 模型训练...

WPF中可视化树和逻辑树的区别是什么

在WPF中&#xff0c;用户界面元素被组织成树形结构。这种结构主要分为两种&#xff1a;逻辑树&#xff08;Logical Tree&#xff09;和可视化树&#xff08;Visual Tree&#xff09;。它们在设计上各有特点和用途。 逻辑树&#xff08;Logical Tree&#xff09; 逻辑树是WPF中…...

小迪安全笔记(2)——web应用架构搭建漏洞HTTP数据包代理服务器

Web应用环境架构类 开发语言&#xff1a;php、java、python、ASP、ASPX等程序源码&#xff1a;用的人多了&#xff0c;就成CMS了。中间件容器&#xff1a;IIS、Apache、Nginx、Tomcat、Weblogic、Jboos、glasshfish等数据库类型&#xff1a;Access、Mysql、Mssql、Oracle、Redi…...

[AI]ChatGPT4 与 ChatGPT3.5 区别有多大

ChatGPT 3.5 注册已经不需要手机了&#xff0c;直接邮箱认证就可以&#xff0c;这可真算是好消息&#xff0c;坏消息是 ChatGPT 4 还是要收费。 那么 GPT-3.5 与 GPT-4 区别有多大呢&#xff0c;下面简单测试一下。 以从 TDengine 订阅数据为例&#xff0c;TDengine 算是不太小…...

node实战——koa实现文件上传

文章目录 ⭐前言⭐koa实现文件上传⭐foxapi测试⭐总结⭐结束⭐前言 大家好,我是yma16,本文分享关于node实战——node实战——koa实现文件上传。 本文适用对象:前端初学者转node方向,在校大学生,即将毕业的同学,计算机爱好者。 node系列往期文章 node_windows环境变量配置…...

C++中的this指针

C中的this指针 this 实际上是成员函数的一个形参&#xff0c;在调用成员函数时将对象的地址作为实参传递给 this。不过 this 这个形参是隐式的&#xff0c;它并不出现在代码中&#xff0c;而是在编译阶段由编译器默默地将它添加到参数列表中。 this指针是类的指针&#xff0c…...

分析日志的一般套路

日志文件很多怎么快速查看&#xff1f; 整机日志一般会有统一的文件名命名规则&#xff08;如包含时间点&#xff09;&#xff0c;可以根据问题现象时间点大致定位到相应的文件根据日志文件的修改时间属性&#xff0c;定位到相应的文件根据时间点全文件夹搜索内容&#xff0c;…...

使用Flink处理Kafka中的数据_题库子任务_Java语言实现

2024年职业院校技术大赛-高职大数据应用开发赛项专题。 使用Flink处理Kafka中的数据_题库子任务1、2、3_Java语言实现使用Flink处理Kafka中的数据_题库子任务4、5、6_Java语言实现使用Flink处理Kafka中的数据_题库子任务7、8、9_Java语言实现...

k8s运维管理

node管理 node隔离与恢复 1.使用patch命令 #实现node隔离调度 kubectl patch node node1 -p {"spec":{"unschedulable":true}} #节点信息多了一项SchedulingDisabled node1 Ready,SchedulingDisabled <none> 7d3h v1.18.20 #解除 kubectl …...

【最新Tomcat】IntelliJ IDEA通用配置Tomcat教程(超详细)

前言 IntelliJ IDEA是一个强大的集成开发环境&#xff0c;能够大大简化Java应用程序的开发和部署过程。而Tomcat作为一个流行的Java Web服务器&#xff0c;其与IntelliJ IDEA的整合能够提供便捷的开发环境&#xff0c;让开发人员更专注于代码的创作与优化。 在配置IntelliJ IDE…...

安装2023最新版PyCharm来开发Python应用程序

安装2023最新版PyCharm来开发Python应用程序 Install the Latest JetBrains PyCharm Community to Develop Python Applications Python 3.12.0最新版已经由其官网python.org发布&#xff0c;这也是2023年底的最新的版本。 0. PyCharm与Python 自从1991年2月20日&#xff0…...

【c++随笔13】多态

【c随笔13】多态 多态性&#xff08;Polymorphism&#xff09;在面向对象编程中是一个重要概念&#xff0c;它允许以统一的方式处理不同类型的对象&#xff0c;并在运行时动态确定实际执行的方法或函数。一、什么是多态性&#xff1f;1、关键概念&#xff1a;C的多态性2、多态定…...

数据结构【DS】图的应用

图的连通性问题 最少边数 最多边数 无向图非连通 &#x1d48e;&#x1d7ce; &#x1d48e;&#x1d48f;−&#x1d7d0;∗(&#x1d48f;−&#x1d7cf;)/&#x1d7d0; 无向图连通 &#x1d48e;&#x1d48f;−&#x1d7cf; &#x1d48e;&#x1d48f;∗(&#…...

图像滤波处理

滤波处理是图像处理中常用的技术之一&#xff0c;用于去除图像中的噪声、平滑图像、边缘检测等。以下是几种常见的滤波处理方法&#xff1a; 1. 均值滤波 (Mean Filtering) 原理&#xff1a; 均值滤波使用一个固定大小的滤波器&#xff0c;在图像上滑动并取周围像素的平均值来…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...