当前位置: 首页 > 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;在图像上滑动并取周围像素的平均值来…...

模型量化基础知识 - PTQ - 训练后量化

文章目录一、PTQ 是什么二、PTQ 的标准流程&#xff08;五大步骤&#xff09;✅ Step 0&#xff1a;准备 FP 模型&#xff08;Baseline&#xff09;✅ Step 1&#xff1a;插入量化节点&#xff08;Quantization Simulation&#xff09;✅ Step 2&#xff1a;校准&#xff08;Ca…...

X键位8芯M12插座的传输速率最高能到多少?

在工业以太网高速传输场景中&#xff0c;X键位&#xff08;X-coded&#xff09;M12插座是专为万兆级速率设计的圆形连接器接口。其最高传输速率可达10Gbps&#xff08;万兆以太网&#xff09;&#xff0c;符合IEEE 802.3an 10GBASE-T标准&#xff0c;并可向下兼容1000BASE-T&am…...

DICOM序列实时渲染从28fps到126fps:C++无锁队列+GPU命令缓冲复用+ROI局部重绘的工业级调优日志

第一章&#xff1a;DICOM序列实时渲染性能跃迁全景概览 现代医学影像工作流对DICOM序列的实时可视化提出严苛要求&#xff1a;从百层CT扫描到高分辨率MRI动态序列&#xff0c;传统CPU软渲染方案常遭遇帧率跌破15 FPS、交互延迟超300ms的瓶颈。近年来&#xff0c;GPU加速管线、零…...

点集相等概念表明流传2300多年使世人深信不疑的直线公理将无穷多各异直线误为同一线

黄小宁 “科学”共识&#xff1a;在初等数学领域绝对不可能有颠覆性创新&#xff0c;谁若说“已非常成熟”的初等数学存在重大错误那就说明谁有“自大狂型精神病”。 “实数集”R可几何化为R轴。与x∈R相异&#xff08;等&#xff09;的实数均可表为yxδ&#xff08;增量δ可…...

3个简单技巧让YOLO小目标检测精度提升50%:Ultralytics实战指南

3个简单技巧让YOLO小目标检测精度提升50%&#xff1a;Ultralytics实战指南 【免费下载链接】ultralytics Ultralytics YOLO &#x1f680; 项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics 你是否在为监控视频中远处行人检测不准而烦恼&#xff1f;工业质…...

如何用免费工具3步完成华硕游戏本终极性能调校:完整指南

如何用免费工具3步完成华硕游戏本终极性能调校&#xff1a;完整指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, …...

【IEEE复现】基于神经网络观测器+自适应滑模的无人船,舰艇,船舶轨迹跟踪研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

实战揭秘:抖音直播弹幕抓取的三大技术突破与完整实现方案

实战揭秘&#xff1a;抖音直播弹幕抓取的三大技术突破与完整实现方案 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取&#xff08;2025最新版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 在直播电商蓬勃发…...

效率革命:跳过java安装与配置,用快马平台秒级验证算法性能

效率革命&#xff1a;跳过Java安装与配置&#xff0c;用快马平台秒级验证算法性能 最近在优化一个数据处理模块时&#xff0c;我需要快速验证几种排序算法的性能差异。按照传统开发流程&#xff0c;至少要经历以下步骤&#xff1a; 下载并安装JDK&#xff0c;配置环境变量选择…...

别再只用Chat了!深度挖掘Cursor的‘规则’与‘上下文’功能,打造你的专属AI编程助手

解锁Cursor的隐藏力量&#xff1a;从代码助手到项目级智能架构师 在AI编程工具爆发的时代&#xff0c;大多数开发者仅仅停留在基础对话和代码补全的层面。但Cursor的真正价值远不止于此——它能够成为你项目架构的智能协作者、团队规范的自动化执行者&#xff0c;以及复杂工程问…...