《自主移动机器人技术》课件-项目1 绪论+ROS2概述与环境搭建(第1-2周)_第1页
《自主移动机器人技术》课件-项目1 绪论+ROS2概述与环境搭建(第1-2周)_第2页
《自主移动机器人技术》课件-项目1 绪论+ROS2概述与环境搭建(第1-2周)_第3页
《自主移动机器人技术》课件-项目1 绪论+ROS2概述与环境搭建(第1-2周)_第4页
《自主移动机器人技术》课件-项目1 绪论+ROS2概述与环境搭建(第1-2周)_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ROS2概述与环境搭建《自主移动机器人》2026年7月8日CONTENTS目录01

ROS2简介02

ROS2安装03

ROS2快速体验04

ROS2集成开发环境搭建CONTENTS目录05

ROS2体系框架06

ROS2技术支持与应用方向07

案例演示08

本章小结绪论1.为什么要学习《自主移动机器人》

技术应用广泛自主移动机器人技术在工业、农业、医疗、国防等领域有广泛应用,学习本课程可掌握核心技术,助力未来职业发展。

研究热点前沿自主移动是机器人领域的研究热点之一,涉及导航规划、环境感知等关键技术,学习本课程可紧跟技术发展趋势。

实践与理论结合课程不仅讲解理论知识,还通过仿真实践平台和算法实验提升动手能力,为实际应用打下坚实基础。2.学习本课程可从事的工作岗位机器人研发销售岗位可从事移动机器人设计、开发及优化工作,如无人驾驶、服务机器人等领域。技术支持与维护能胜任机器人系统的调试、维护和技术支持工作,解决实际运行中的问题。售后服务岗位可进入移动机器人生产企业,开展机器人相关售后服务。3.本课程涉及的考证及竞赛

相关资格认证学习者可通过课程内容准备机器人领域相关认证考试,如SLAM技术认证或自动化工程师资格证。

国内外竞赛参与课程内容为参加机器人竞赛(如RoboMaster、国际无人系统大赛)提供理论和实践支持。

创新项目孵化借助课程知识,学习者可参与创新项目开发,为创业或科研项目奠定基础。4.本课程学习内容及方法知识目标①了解ROS2的发展历程、组成体系与优势,理解ROS2的核心概念(节点、话题、服务、动作等)。②掌握ROS2工作空间的创建与管理,熟悉ROS2的通信机制核心,包括话题通信、服务通信、动作通信与参数服务。③理解ROS2中坐标变换(TF)的原理与作用,掌握坐标变换的广播与监听方法。④熟悉ROS2可视化工具Rviz2的基本使用,了解URDF/Xacro机器人模型描述语言。⑤了解Launch文件在启动和管理复杂ROS2系统中的应用。能力目标①能熟练搭建ROS2开发环境,并创建、编译、运行ROS2功能包。②能够使用C++或Python编写ROS2节点,实现节点间的话题、服务、动作等通信。③能够为移动机器人模型编写URDF/Xacro描述文件,并在Rviz2中正确显示与调试。④能够应用坐标变换(TF)工具,实现机器人部件间或机器人与环境间的坐标关系管理。⑤能够编写Launch文件,一键启动包含多个节点的机器人系统。⑥具备初步的ROS2系统调试与问题排查能力。思政与素质目标①培养学生规范编码、注重细节的工匠精神,形成良好的软件开发习惯。②培养学生团队协作与沟通交流能力。③培养学生利用官方文档、开源社区等资源自主学习新知识、解决新问题的能力。④培养学生对机器人技术的兴趣和探索精神,具备一定的系统思维和创新能力。⑤培养技术文档编写与版本管理(如Git)的意识和能力。5.本课程的考核方式与学习资源考核方式过程评价、期末项目考核总评成绩的组成及评定标准总评成绩=平时成绩(过程评价)(占50%)+期末考核成绩(占50%)在线资源丰富提供慕课视频、课件及仿真平台,方便学习者随时随地获取学习资料。ROS2简介01ROS2的概念与发展历程ROS2的定义

ROS2(RobotOperatingSystem2)是用于构建机器人应用程序的软件开发工具包(SDK),由一组软件库和工具组成,为开发者提供构建机器人应用所需的功能模块,支持“可插拔”方式组织模块,适用于课堂实验、科研、原型设计及最终产品开发。ROS的起源与ROS2的诞生

2007年,柳树车库(WillowGarage)发布ROS,凭借开源、免费、高复用等优势成为主流机器人软件框架。但ROS1存在设计缺陷,难以适应新需求,官方于2017年正式推出ROS2,基于全新框架保留ROS1优点并改进缺陷,目标是适应新时代需求。ROS2发行版本特点

ROS2发行版本与Ubuntu版本对应,生命周期一致,偶数年发布长支持版(5年),奇数年发布短支持版(2年);版本名称为“形容词+名词”格式,通常每年5月23日(世界海龟日)发布新版本。如2022年5月23日发布的HumbleHawksbill为首个5年长支持版,支持至2027年5月。ROS2的组成体系

01通信(Plumbing)通信是ROS2系统核心,即中间件(middleware),是内置消息传递系统,管理节点间通信细节。采用“面向接口”编程思想,接口可自定义,也提供标准接口,实现模块分离与故障隔离,提升系统维护性、扩展性和复用性。

02工具(Tools)ROS2内置launch、调试、可视化、绘图、录制回放等工具,助力开发者应对机器人软件开发挑战,如传感器与执行器异步交互问题,不仅提高开发效率,还可直接包含在发布产品中。

03功能(Capabilities)ROS生态提供丰富功能实现,涵盖设备驱动程序(如GPS)、控制器(如四足机器人步行平衡控制器)、地图系统等,开发者无需关注底层软硬件细节,可专注于自身应用程序开发。

04社区(Community)ROS社区全球化、多样化,包含学生、业余爱好者、跨国公司、政府机构等。OpenRobotics作为社区中心和中立管家,托管在线服务(如ROS官网)、管理分发版本、开发维护核心软件,并提供工程服务。ROS2在机器人领域的优势01ROS与其他机器人软件框架的比较优势ROS具有开源免费、多平台支持(Linux、Windows、macOS及嵌入式平台)、应用领域广泛(室内外、家用、汽车、水下、太空等)、全球化社区(数百万开发者)、可缩短产品上市时间(提供工具库,支持修改与集成)、广泛行业支持及业界肯定(教学、研究、竞赛主导)等优势。02ROS2较之于ROS1的改进:去中心化ROS1依赖master节点管理调度,存在单点故障风险;ROS2采用去中心化设计,节点间无需master关联,可相互发现,提升系统稳定性。03ROS2较之于ROS1的改进:全新通信底层ROS2采用DDS(数据分发服务)作为通信底层,替代ROS1自实现通信,大幅提升通信实时性、可靠性和连续性。04ROS2较之于ROS1的改进:应用场景拓展ROS1受限于单机、工作站级计算资源、无实时性要求等,对多机器人编队、小型嵌入式平台支持欠佳,产品落地难;ROS2修复上述缺陷,支持更广泛场景。ROS2在机器人领域的优势

ROS2较之于ROS1的改进:技术与设计理念升级ROS2引入DDS、Zeroconf、ZeroMQ等新技术,降低维护成本,拓展功能;重构API系统,改进ROS1API设计不足。ROS2安装02安装前准备设置语言环境检查并设置系统支持UTF-8编码,通过locale命令验证,若不支持则执行sudoaptupdate&&sudoaptinstalllocales、sudolocale-genen_USen_US.UTF-8、sudoupdate-localeLC_ALL=en_US.UTF-8LANG=en_US.UTF-8、exportLANG=en_US.UTF-8等命令配置。启动Ubuntuuniverse存储库(图形化操作)打开“软件与更新”窗口,勾选“communitymaintainedfreeandopen-sourcesoftware(universe)”选项以启用社区维护的免费开源软件存储库。启动Ubuntuuniverse存储库(命令行操作)通过apt-cachepolicy|grepuniverse命令检查是否已启用,若无相关输出,执行sudoaptinstallsoftware-properties-common、sudoadd-apt-repositoryuniverse命令启用。设置软件源与安装ROS2添加ROS2apt存储库及GPG密钥先执行sudoaptupdate&&sudoaptinstallcurlgnupglsb-release命令安装必要工具,再通过命令添加GPG密钥,最后将存储库添加到源列表:echo"deb[arch=$(dpkg--print-architecture)signed-by=/usr/share/keyrings/ros-archive-keyring.gpg]/ros2/ubuntu$(source/etc/os-release&&echo$UBUNTU_CODENAME)main"|sudotee/etc/apt/sources.list.d/ros2.list>/dev/null。安装桌面版ROS2执行sudoaptupdate更新缓存,sudoaptupgrade升级已安装软件,然后通过sudoaptinstallros-humble-desktop命令安装,该版本包含ROS、RViz、示例与教程。设置软件源与安装ROS2安装基础版ROS2同样先更新缓存和升级软件,再执行sudoaptinstallros-humble-ros-base命令安装,此版本仅包含通信库、消息包、命令行工具,无GUI工具。配置环境与测试安装临时配置环境在终端中执行source/opt/ros/humble/setup.bash命令,仅当前终端生效,关闭终端后需重新配置。永久配置环境执行echo"source/opt/ros/humble/setup.bash">>~/.bashrc命令,将环境配置指令写入.bashrc文件,每次启动终端时自动配置。通过小乌龟例程测试安装打开两个终端,终端1输入ros2runturtlesimturtlesim_node启动小乌龟窗口,终端2输入ros2runturtlesimturtle_teleop_key,聚焦终端2后通过键盘方向键控制乌龟运动,若能正常控制则安装成功。安装colcon构建工具

colcon构建工具的作用colcon是用于改进编译、测试和使用多个软件包工作流程的命令行工具,能实现过程自动化,处理需求并设置环境以便于使用软件包,是ROS2中用于包构建的工具。

colcon安装命令在终端中执行sudoaptinstallpython3-colcon-common-extensions命令进行安装,安装后即可在ROS2中编写应用程序。ROS2快速体验03案例简介与工作空间创建

案例需求编写ROS2程序,要求程序运行时在终端输出文本“HelloWorld”。

工作空间创建打开终端,输入指令“mkdir-pws00_helloworld/src”创建工作空间及子目录src。

工作空间目录结构工作空间包含build(存储中间文件)、install(安装目录)、log(日志目录)、src(存储功能包源码)四个子目录。

编译命令终端下进入工作空间,执行“colconbuild”指令进行编译。HelloWorld(C++实现)

创建功能包进入ws00_helloworld/src目录,输入指令“ros2pkgcreatepkg01_helloworld_cpp--build-typeament_cmake--dependenciesrclcpp--node-namehelloworld”创建C++功能包。

编辑源文件进入pkg01_helloworld_cpp/src目录,修改helloworld.cpp文件,内容包括初始化ROS2、创建节点、输出文本“helloworld!”、释放资源。

配置文件说明package.xml包含包名、版本、依赖等信息;CMakeLists.txt定义编译规则,如源文件、依赖项、目标文件及安装规则。

编译与执行终端进入工作空间执行“colconbuild”编译,再执行“.install/setup.bash”和“ros2runpkg01_helloworld_cpphelloworld”,终端输出“helloworld!”。HelloWorld(Python实现)

创建功能包进入ws00_helloworld/src目录,输入指令“ros2pkgcreatepkg02_helloworld_py--build-typeament_python--dependenciesrclpy--node-namehelloworld”创建Python功能包。

编辑源文件进入pkg02_helloworld_py/pkg02_helloworld_py目录,修改helloworld.py文件,内容包括初始化ROS2、创建节点、输出文本“helloworld!”、释放资源。

配置文件说明package.xml包含包信息与依赖;setup.py定义包名、版本、源文件与可执行文件映射等构建信息。

编译与执行终端进入工作空间执行“colconbuild”编译,再执行“.install/setup.bash”和“ros2runpkg02_helloworld_pyhelloworld”,终端输出“helloworld!”。运行优化

优化问题每次执行工作空间下的节点需调用“.install/setup.bash”指令,使用不便。

优化策略将环境变量配置指令添加到“~/.bashrc”文件,格式为“echo"source/{工作空间路径}/install/setup.bash">>~/.bashrc”。

示例操作如“echo"source/home/ros2/ws00_helloworld/install/setup.bash">>~/.bashrc”,之后启动终端无需手动刷新环境变量。ROS2集成开发环境搭建04安装VSCode

VSCode特点与优势VSCode是微软推出的轻量级代码编辑器,支持语法高亮、智能补全、插件扩展等功能,跨平台支持Win、Mac及Linux系统,适合ROS2开发需求。

下载方式官方下载地址

Ubuntu安装与卸载命令安装:双击.deb文件或执行sudodpkg-ixxxx.deb;卸载:sudodpkg--purgecode。

启动方法通过应用程序搜索VSCode启动,或在终端进入目标目录后执行code.命令。VSCode插件安装与配置推荐ROS2开发插件建议安装ROS、C/C++、Python等插件,通过侧边栏Extensions或快捷键Ctrl+Shift+X搜索安装,提升开发效率。插件安装方法打开VSCode插件窗口,搜索目标插件名称,点击“Install”完成安装,部分插件需重启VSCode生效。解决include语句异常问题cpp文件中#include"rclcpp/rclcpp.hpp"报错时,通过快速修复功能编辑includePath,添加路径/opt/ros/humble/include/**。安装终端与git工具

Terminator终端安装与启动安装命令:sudoaptinstallterminator;启动方式:应用程序搜索或快捷键Ctrl+Alt+T,支持多窗口分割与管理。

Terminator常用快捷键水平分割终端:Ctrl+Shift+O;垂直分割:Ctrl+Shift+E;关闭当前终端:Ctrl+Shift+W;复制粘贴:Ctrl+Shift+C/V。

git工具安装与基础使用单击此处添加项正文ROS2体系框架05ROS2文件系统操作系统层ROS2需依赖传统操作系统运行,目前支持Linux、Windows、Mac及RTOS等,为上层功能提供基础运行环境。中间层包含数据分发服务DDS与ROS2封装的机器人开发中间件,DDS提供去中心化通讯,支持服务质量管理机制,中间件由客户端库、DDS抽象层与进程内通讯API构成。应用层以功能包为核心,开发者构建的应用程序位于此层,功能包包含源码、数据定义、接口等内容,是ROS2应用程序的基本组织单元。功能包目录结构C++功能包含package.xml、CMakeLists.txt、src、include等目录;Python功能包含package.xml、setup.py、setup.cfg及功能包同名目录等,还可自定义launch、rviz等目录。源文件与配置文件说明

节点创建方式对比直接实例化Node对象:编码简单,但不支持在一个进程内组织多个节点,不利于提高节点通信效率;继承Node方式:推荐使用,可在一个进程内组织多个节点,提升通信效率。

package.xml包含包名、版本、作者、依赖项等信息,为colcon构建工具确定功能包编译顺序,依赖项标签有buildtool_depend、depend等,分别声明不同类型依赖。

CMakeLists.txt(C++)声明cmake最低版本、包名,配置编译规则,如引入外部依赖包、映射源文件与可执行文件、设置目标依赖库及定义安装规则等,控制C++功能包的构建过程。

setup.py(Python)描述Python功能包构建信息,包括包名、版本、功能包列表、数据文件安装路径、安装依赖、入口点等,用于定义Python功能包的构建和安装配置。文件系统操作命令

创建功能包语法:ros2pkgcreate包名--build-type构建类型--dependencies依赖列表--node-name可执行程序名称;--build-type可选cmake、ament_cmake、ament_python,--node-name自动生成源文件和配置文件。

编译功能包colconbuild:构建工作空间下所有功能包;colconbuild--packages-select功能包列表:构建指定功能包,提高编译效率。

查找功能包ros2pkgexecutables[包名]:输出所有或指定功能包下的可执行程序;ros2pkglist:列出所有功能包;ros2pkgprefix包名:列出功能包路径;ros2pkgxml:输出package.xml内容。

执行功能包语法:ros2run功能包可执行程序参数,用于运行功能包中的可执行程序,实现特定功能。ROS2核心模块通信模块是ROS2架构核心,负责机器人底盘控制、传感器数据传输、人机交互指令下发与反馈、系统模块间数据交互等,在应用程序开发中占比大。功能包应用方式二进制安装:通过sudoaptinstallros-ROS2版本代号-功能包名称安装官方或社区提供的功能包;源码安装:从github等获取源码后自行编译;自实现:开发者根据业务需求编写功能包。分布式ROS2为分布式架构,不同ROS2设备间可方便通信,对多机器人设备协同至关重要。终端命令与rqt提供丰富命令行工具调试程序、提高效率;rqt是图形化工具,功能类似命令行但交互更友好,可用于生成新乌龟等操作。其他核心模块launch文件:批量启动ROS2节点,适用于大型项目;TF坐标变换:实现机器人部件或多机器人间相对位置转换;rviz2:三维可视化工具,显示机器人模型或抽象数据。ROS2技术支持与应用方向06ROS2技术支持机制

包文档与包索引ROS核心包文档托管官方平台,含教程、API文档等;ROS包索引可查找特定功能包信息,为开发者提供基础资料查询支持。

问答与论坛ROS问答模块有超60000个问题及答案,开发者可搜索或提问技术问题;ROS论坛用于了解社区动态,发布公告、新闻和讨论共同爱好,不适合提技术问题。

问题跟踪器与ROSCon问题跟踪器供用户提交BUG报告或新功能请求,需提供详细信息;ROSCon是年度开发者大会,为各层次开发者提供交流、学习平台,促进ROS社区发展。ROS2应用方向

01导航与机械臂领域Nav2项目继承自ROSNavigationStack,实现移动机器人从A点安全移动到B点,具备路径规划等功能;Movelt包含运动规划等功能,可构建机械臂高级行为,应用于多数市面机械臂。

02无人驾驶与无人机领域AutowareFoundation是支持自动驾驶的开源项目,在企业与学术间创造协同效应;PX4是开源飞行控制软件,为无人机开发者提供灵活工具,助力定制化解决方案开发。

03其他应用领域OpenCV为计算机视觉应用提供基础架构,加速机器感知在商业产品中的使用;microROS弥合微控制器与一般处理器差距,使ROS能直接应用于机器人硬件;ROS-Industrial将ROS功能扩展到工业硬件和应用。案例演示07小乌龟例程演示

启动终端与节点打开两个终端,终端1输入指令“ros2runturtlesimturtlesim_node”启动小乌龟窗口;终端2输入指令“ros2runturtlesimturtle_teleop_key”启动键盘控制节点。

控制乌龟运动确保光标聚焦在终端2,通过方向键控制乌龟在窗口内移动,验证ROS2节点间通信及基础功能是否正常运行。HelloWorld程序演示

C++版本实现创建C++功能包,编辑源文件初始化ROS2节点并输出“helloworld!”,编译后执行“ros2runpkg01_helloworld_cpphelloworld”,终端显示对应文本。

Python版本实现创建Python功能包,编写节点代码调用日志接口输出信息,编译后执行“ros2run

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论