- 博客(78)
- 资源 (59)
- 收藏
- 关注
原创 实验20:Rviz:三维可视化显示平台
本文介绍了ROS中的三维可视化工具Rviz,它能将机器人开发中的各类数据(如传感器信息、环境数据等)以图形化方式直观呈现。通过具体案例展示了如何使用Rviz可视化彩色相机图像、三维相机点云和激光雷达数据,并对比了Rviz(数据可视化)与Gazebo(数据仿真)的功能差异。Rviz作为开放式可视化平台,可大幅提升机器人开发效率,支持自定义扩展显示效果。文中还提供了相关配置方法和运行命令,帮助开发者快速上手使用。
2026-04-12 20:44:30
18
原创 实验19:Gazebo:三维物理仿真平台
本文介绍了ROS机器人开发中Gazebo仿真平台的使用方法。Gazebo是一个支持动力学引擎的三维物理仿真平台,可模拟机器人及环境,并添加物理属性,帮助开发者验证算法、优化设计。文章详细讲解了Gazebo的安装配置、XACRO模型文件优化方法(包括宏定义、文件包含、可编程接口等),以及如何在Gazebo中加载机器人模型并进行运动仿真。同时介绍了下一代仿真平台Ignition,并提供了完整的机器人模型代码示例。通过键盘控制,开发者可以在仿真环境中测试机器人运动,为实物开发奠定基础。
2026-04-12 20:42:34
33
原创 实验18:URDF:机器人建模方法
摘要:ROS使用URDF(统一机器人描述格式)进行机器人建模,通过XML文件描述机器人的硬件结构、驱动系统、传感器系统和控制系统。URDF的核心是link(连杆)和joint(关节),link描述刚体的外观和物理属性,joint定义运动类型和连接关系。建模时需明确机器人的组成部分,并使用visual和collision标签分别处理视觉效果和碰撞检测。URDF支持六种关节类型,包括旋转、滑动和固定等。通过分析URDF文件和可视化工具,可以验证机器人模型结构。示例展示了移动机器人的URDF建模过程,包括功能包结
2026-04-12 20:29:55
19
原创 实验17:TF:机器人坐标系管理神器
摘要:ROS中的TF(Transform)系统是管理机器人坐标系关系的核心工具。文章介绍了机器人系统中常见的坐标系类型(如基坐标系、世界坐标系、工具坐标系等),并通过小海龟跟随示例演示了TF的实际应用。详细讲解了TF命令行操作、静态TF广播、TF监听等功能实现方法,解析了海龟跟随功能的实现原理(基于坐标系向量计算)。最后展示了通过Python代码实现坐标系动态广播和海龟跟随控制的具体过程,为机器人系统中的坐标系管理提供了实用解决方案。
2026-04-12 20:28:08
20
原创 实验16:Launch:多节点启动与配置脚本
ROS Launch文件是ROS2系统中用于批量启动和配置节点的Python脚本工具。它支持多节点启动、命令行参数配置、资源重映射、参数设置等功能,能有效简化复杂机器人系统的启动流程。通过Launch文件可以一次性启动多个节点,设置ROS参数,加载参数文件,实现节点间通信话题的重命名,并支持文件包含机制。相比手动逐个启动节点,Launch文件提供了更高效、可配置的系统启动方案,是ROS开发中重要的"粘合剂"工具。典型应用包括启动RViz可视化工具、修改仿真参数、管理命名空间等场景。
2026-04-12 20:25:46
17
原创 实验15:DDS(Data Distribution Service):机器人的神经网络
本文摘要: 《ROS2入门21讲》介绍了ROS2的核心通信机制DDS(数据分发服务)。DDS是一种为实时系统设计的分布式通信标准,采用以数据为中心的发布/订阅模型,相比点对点、Broker和广播模型具有明显优势。在ROS2架构中,DDS作为底层通信基础,通过中间件层实现多厂商兼容,并提供丰富的QoS(服务质量)策略,包括通信可靠性、历史数据缓存等配置选项。文章通过命令行和代码示例展示了DDS的配置方法,并指出DDS的加入使ROS2通信系统更加灵活高效,能适应不同机器人应用场景的需求。DDS已在航空航天、自动
2026-03-16 09:38:52
27
原创 实验14:分布式通信(Distributed Communication):多计算平台的任务分配
摘要:本文介绍了ROS分布式系统的应用,通过将机器人任务分配到多个计算平台(如树莓派和笔记本电脑)来减轻计算压力。文章详细讲解了分布式网络的搭建方法,包括树莓派系统安装、ROS2环境配置以及远程桌面设置。测试表明,在局域网内配置相同ROS_DOMAIN_ID的设备可无缝实现话题、服务等通信功能,且无需修改代码。通过小海龟控制、视觉识别等案例验证了分布式系统的有效性,展现了ROS在机器人开发中的便捷性。
2026-03-16 09:37:36
141
原创 实验13:参数(Parameter):机器人系统的全局字典
ROS参数机制:全局共享的动态数据管理 ROS参数系统提供了一种类似全局变量的数据共享机制,通过键值对形式存储配置信息,可在多个节点间共享和动态修改。参数支持实时监控,当参数值变化时相关节点可立即感知。该系统适用于机器人开发中的动态配置场景,如视觉识别中的阈值调整、相机参数设置等。通过命令行工具或程序接口,用户可以方便地查询、修改、保存和加载参数配置。典型案例包括小海龟仿真器的背景色调整和机器视觉中的动态阈值设置,显著提升了系统配置的灵活性和易用性。
2026-03-16 09:36:01
26
原创 实验12:动作(Action):完整行为的流程管理
摘要:本文介绍了ROS中动作通信机制的应用与实现。动作通信适用于需要长时间执行且需要进度反馈的机器人行为控制,如送餐、分拣等任务。该机制基于客户端/服务器模型,底层由话题和服务实现,支持同步通信和进度反馈。文章通过小海龟运动和机器人画圆两个案例,详细说明了动作接口定义、代码实现及命令行操作方法,展示了如何通过动作机制实现机器人行为的精确控制与监控。
2026-03-16 09:32:28
22
原创 实验11:通信接口(Interface):数据传递的标准结构
ROS系统中的通信接口是节点间数据交互的关键标准,包括话题、服务和动作三种机制。接口定义了数据的标准结构(如.msg、.srv、.action文件),确保不同语言的节点能相互理解。通过预定义接口(如图像数据、速度指令),ROS实现了模块化开发,降低程序间依赖性,避免重复开发。实际应用中需在CMakeLists.txt和package.xml中配置接口,编译时会自动生成对应语言的数据结构。典型案例展示了服务接口(请求/响应)和话题接口(单向发布)的定义与调用方法,体现了ROS"减少造轮子"
2026-03-16 09:29:48
255
原创 实验10:服务(Service):节点间的你问我答
本文介绍了ROS中的服务通信机制,与话题通信不同,服务采用客户端/服务器模型实现同步通信。服务通信通过请求-应答方式实现"你问我答"的数据交互,适用于需要即时响应的场景。文章通过加法求解器和机器视觉识别两个案例,详细讲解了服务端和客户端的实现流程,包括初始化节点、创建服务对象、处理请求和应答等关键步骤。最后对比了话题和服务的适用场景,并提供了ROS服务相关命令行操作参考。
2026-03-12 11:29:57
27
原创 实验9:话题(Topic):节点间传递数据的桥梁
摘要:ROS中的话题通信机制实现了节点间的数据交互,采用发布/订阅模型支持多对多异步通信。话题作为数据传输桥梁,需要定义统一的消息格式。通过三个案例展示了话题的实际应用:HelloWorld演示基础通信、机器视觉识别实现功能解耦、以及利用标准驱动优化相机节点。文章还介绍了话题命令行操作,并指出话题通信适合周期性数据传输但不适用于所有场景,为后续讲解其他通信方式留下思考空间。
2026-03-12 11:25:50
24
原创 实验8:节点(Node):机器人的工作细胞
本文介绍了ROS2中节点的概念与实现方法。节点是机器人系统中的基本功能单元,可以分布在不同的硬件载体上,通过编程实现特定任务。文章通过四个案例展示了节点的实现流程:从简单的HelloWorld打印到复杂的机器视觉识别功能,分别演示了面向过程和面向对象的编程方式。节点之间需要建立通信机制才能协同工作,这是构建完整机器人系统的关键。文中还介绍了节点的命令行操作方法和常见问题处理,为ROS2开发提供了实用指导。
2026-03-12 11:19:35
31
原创 实验7:功能包(Package):功能源码的聚集地
ROS2功能包是管理机器人功能模块的重要机制。功能包通过将不同功能代码(如控制、感知等)分别存放,提高代码复用性和共享便利性。创建功能包使用ros2 pkg create命令,需指定构建类型(C++用ament_cmake,Python用ament_python)和包名。C++功能包包含package.xml和CMakeLists.txt文件,Python功能包则包含package.xml和setup.py文件。编译使用colcon build命令,并通过source加载环境变量。这种模块化管理方式显著提升
2026-03-12 11:07:12
20
原创 实验6:概念总览之工作空间(Workspace):开发过程的大本营
本文介绍了ROS2开发中的工作空间概念及其使用方法。工作空间是存放项目开发文件的文件夹,包含src(代码)、build(编译)、install(安装)和log(日志)四个子目录。用户可创建多个独立工作空间,通过命令行或手动方式建立。创建工作空间后,需使用rosdep工具安装依赖,用colcon命令编译,最后设置环境变量使系统识别功能包。整个过程包括创建、编译和配置三个主要步骤,为ROS2应用开发提供基础工作环境。
2026-03-12 11:05:32
20
原创 实验5:ROS2开发环境配置
摘要:ROS机器人开发需要配置开发环境,推荐使用VSCode和Git工具。Git作为版本管理软件,由Linux之父开发,广泛应用于代码管理。安装Git只需一行命令。课程源码可通过Git克隆下载。VSCode是微软推出的轻量级强大编辑器,支持多系统,通过插件扩展功能,适合ROS2开发与调试。官网提供下载,安装后可配置插件优化开发体验。
2026-03-11 17:58:51
157
原创 实验4:ROS2命令行操作
本文介绍了Linux终端操作和ROS2命令行工具的基本使用。在Linux部分,重点讲解了cd、pwd、mkdir等常用文件操作命令。ROS2部分则通过小海龟仿真示例,展示了节点运行(ros2 run)、节点信息查看(ros2 node)、话题操作(ros2 topic)、服务调用(ros2 service)以及动作控制(ros2 action)等核心功能,并介绍了数据录制(ros2 bag)的方法。文章强调无需死记硬背所有命令,掌握常用操作即可满足基本需求。
2026-03-11 17:57:19
21
原创 实验3:ROS2系统安装
第一句指令将启动一个蓝色背景的海龟仿真器,第二句指令将启动一个键盘控制节点,在该终端中点击键盘上的“上下左右”按键,就可以控制小海龟运动啦。(2)在打开的网站中将“raw.githubusercontent.com”复制到查询栏中进行搜索,可以看到域名对应的IP地址信息。在Windows系统下复制的内容无法粘贴到VMware虚拟机中的Linux(ubuntu)系统中的解决办法?如果“Hello World”字符串在两个终端中正常传输,说明通信系统没有问题。至此,ROS2就已经在系统中安装好了。
2026-03-11 17:55:13
276
原创 实验2:Ubuntu22.04系统网络配置及换源
摘要:本文介绍了虚拟机网络配置的基本知识,包括三种网络连接模式(桥接、NAT、仅主机模式)的特点与配置方法。详细说明了在Ubuntu系统中修改Netplan配置文件(01-network-manager-all.yaml)实现静态IP设置的步骤,包含接口配置、IP地址、网关和DNS服务器设置等内容。同时提供了网络服务重启和配置验证的方法,并建议通过修改/etc/apt/sources.list文件实现Ubuntu换源,以提高apt-get安装速度。文章还指出在Win10主机中可查看VMnet1和VMnet8
2026-03-11 17:52:17
733
原创 实验1:Ubuntu22.04系统安装
Ubuntu是一款2004年推出的开源操作系统,每6个月发布新版本,提供免费升级服务。其版本编号(如22.04)表示年份和月份发布信息,其中每两年4月发布的LTS(长期支持)版本提供5年维护(如22.04LTS),而非LTS版本仅维护18个月。Ubuntu广泛应用于软件开发、人工智能等领域。安装过程包括下载镜像、创建虚拟机、设置硬盘和镜像路径等步骤。开发者建议优先选择LTS版本以获得更稳定的系统支持。
2026-03-11 17:50:10
173
原创 实验:基于容器创建镜像
c, --change=[]: 提交的时候执行 Dockerfile 指令;查看所有的容器docker ps -a,docker ps查看运行容器,-p, --pause=true: 提交时暂停容器运行。-m, --message="": 提交消息;-a, --author="": 作者信息;
2023-06-07 16:44:38
314
原创 VMware Workstation中安装FusionCompute 6.5.1_VRM
本文介绍VMware Workstation中安装FusionCompute 6.5.1_VRM的详细过程
2022-10-12 16:33:01
2612
2
原创 VMware Workstation中安装FusionCompute 6.5.1_CNA
本文介绍VMware Workstation中安装FusionCompute 6.5.1_CNA的详细过程
2022-09-18 16:53:19
1493
原创 13、Jupyter notebook制作幻灯片PPT
13、Jupyter notebook制作幻灯片PPT1、打开jupyter notebook,新建1个文档2、在新建的文档中,点击“View/CellToolbar/Slideshow”莱单,进入幻灯片撰写方法,单元格Cell变成如下的样子:在单元格Cell的右上角有一个SlideType下拉列表框,代表ppt每个页面的类型,有如下几种选项:幻灯片(Slide) 幻灯片(Sub-Slide) 片段、碎片(Fragment) 跳过(Skip) 代码(Notes)...
2022-05-04 00:41:23
2749
原创 12、Jupyter notebook交互式控件开发
12、Jupyter notebook交互式控件开发1、什么是Jupyter notebook内核jupyter notebook后台运行了一个内核。当我们运行一段代码时,该代码在内核中运行,而不是在浏览器中运行。运行结束后,结果回显到单元格下面。删除单元格,并不会使内核状态发生变化。2、单元格的执行顺序单元格的执行顺序一般是从上到下的,当然你可以单独执行指定的单元格。 单元格左侧的中括号表示执行顺序。3、对内核的操作如果你想要重置一些数据,内核可以停
2022-05-04 00:40:59
738
原创 11、Jupyter notebook matplotlib绘图
11、Jupyter notebook matplotlib绘图1、绘图要使用matplotlib绘图,首先需要你的机器上已经安装了matplotlib,进入python环境,执行import matplotlib.pyplot as plt# -*- coding: utf-8 -*-import numpy as npimport matplotlib.pyplot as pltx = np.linspace(0, 10, 1000)y = np.sin(x)
2022-05-04 00:40:20
1796
原创 10、Jupyter notebook实现斐波那契数列
10、Jupyter notebook实现斐波那契数列1、使用jupyter实现斐波那契数列斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34下面是一种斐波那契数列的写法:...
2022-05-03 17:19:42
836
原创 9、Jupyter notebook魔法命令
9、Jupyter notebook魔法命令1、魔法命令IPython内核中有用一些魔法命令,这些指令独立于python语法,只能在jupyter notebook中使用,魔法命令可以完成一些特殊的功能。如显示图片,执行主机中的shell命令。魔法命令可以有两种:行魔法命令(linemagic):以"%"为前缀,且全部指令(包含主要参数)不可以换行。单元格法术(cellmagic)**:以"%%"为前缀,整个单元格都是魔法命令,单元格第一行必须是"%%"...
2022-05-03 17:18:23
1540
原创 7、保存和检查点(Save and Checkpoint)
7、保存和检查点(Save and Checkpoint)1、保存和检查点(Save and Checkpoint)写文章,写代码,最害怕的是辛辛苦苦写了1个小时,却因为断电、或者其他异常,刚写的东西丢失了。所以,经常Ctrl + S是一个好习惯。按下Ctrl + S后,jupyter notebook会调用“保存和检查点(Save and Checkpoint)”命令来保存您的文档。这里有一个新概念,什么是检查点?每次创建新文档时,都会创建一个检查点文件和jupyter
2022-05-03 17:05:36
2169
原创 6、Jupyter notebook编辑模式和命令模式
6、Jupyter notebook编辑模式和命令模式1、JupyterNotebook单元格的两种模式JupyterNotebook有了两种不一样的输入方式。命令模式编辑模式2、命令模式jupyter的命令模式相当于快捷键,用过vim的同学,就比较容易理解。快捷键与jupyter Notebook指令关联,如jupyter notebook有一个删除单元的命令,快捷键d和这个命令关联,那么在命令模式下,按d键,就可以删除整个单元格了。命令模式...
2022-05-03 17:00:18
1817
原创 5、jupyter notebook单元格
5、jupyter notebook单元格每一个输入框就是一个单元格,可以录入4种数据,如下图:这4种格式是:Code: 显而易见,就是说敲代码的区域,可以执行的代码。Markdown:写注释,笔记的地方,不可以执行。RawNBConvert:它是一个可将你的笔记本电脑转化成另一种文件格式(例如html语言)的命令行专用工具。Heading: 这就是你加上标题的区域,那样你能将不一样的章节目录分离,让文档看上去更整齐清楚,可以用Markdown的##来...
2022-05-03 16:56:15
1367
原创 4、jupyter notebook运行文档
4、jupyter notebook运行文档1、ipynb是什么文件?我们在文档中随便输入一些python代码后,点击保存,会生成一个ipynb文件,这一文档究竟有什么用。**ipynb文档**是一个文本文件,它以JSON的格式存储了notebook的內容。2、运行jupyter notebook hello world程序在输入框中,可以录入python代码,如下:点击运行按钮后输出“hello”,执行结构直接被显示在文档中了,非常方便,可以说...
2022-05-03 16:48:47
1690
2
原创 3、jupyter notebook初使用
3、jupyter notebook初使用1、jupyter notebook的使用jupyter的使用非常简单,像新建普通文档一样,就可以新建一个jupyter notebook文档。现在你了解jupyter notebook是什么了,并且安装好了,开始应用吧!要运行你的JupyterNotebooks,只需在命令行键入下列指令:jupyternotebook进行以后,JupyterNotebooks就会打开浏览器,详细地址是: http://local...
2022-05-03 16:40:08
195
原创 2、jupyter notebook安装
2、jupyter notebook安装jupyter notebook是一个比较非常好的web式编辑器,可以运行在window、mac、linux系统上。首先确定安装了python,命令行中执行启动python如果成功,说明安装过python。然后在命令行执行jupyter安装命令:pip install jupyterpip会自动下载jupyter对应的依赖文件,然后安装完成。安装时间较长,请耐心等待,咖啡是等待的最好伴侣。安装成功后,打开新
2022-05-03 16:32:38
893
实验:CentOS7配置Python爬虫环境.docx
2022-02-09
实验:IPv6路由的配置与验证.docx
2021-11-22
实验:基于SNMP的Jan16公司网络管理.docx
2021-11-22
基于静态路由的公司与分部互联
2022-02-15
基于端口安全的公司网络组建
2022-02-15
为公司创建部门VLAN
2022-02-15
基于STP的可靠网络配置.rar
2022-02-15
基于默认路由及浮动路由的公司与分部互联.rar
2022-02-15
公司技术部和财务部计算机的互联与隔离——跨交换机VLAN的配置
2022-02-15
实验:使用基本ACL限制公司网络访问.docx
2021-11-09
公司使用EASY IP方式访问互联网
2022-05-04
基于IPv6静态路由的公司与分部互联.rar
2022-05-04
基于IPv6汇总路由的公司与分部互联.rar
2022-05-04
基于SNMP的公司网络管理.rar
2022-05-04
公司网络自动化运维配置.rar
2022-05-04
基于单区域OSPF协议互联的公司网络搭建.rar
2022-02-15
基于单臂路由的公司网络搭建.rar
2022-02-15
基于RSTP的可靠网络配置.rar
2022-02-15
公司基于VRRP的ISP双出口备份链路配置.rar
2022-02-15
基于CHAP认证的公司与分部安全互联.rar
2022-02-15
公司使用动态NAT访问互联网.rar
2022-02-17
公司基于VRRP的负载均衡出口链路配置.rar
2022-02-15
使用静态NAT对外发布公司官网.rar
2022-02-17
基于PAP认证的公司与分部安全互联.rar
2022-02-15
使用静态NAPT对外发布公司官网.rar
2022-02-17
使用基本ACL限制公司网络访问.rar
2022-02-17
使用链路聚合提高公司局域网带宽.rar
2022-02-15
使用扩展ACL限制公司网络访问.rar
2022-02-17
基于PPPoE认证的公司出口配置.rar
2022-02-15
基于VLANIF的公司网络搭建.rar
2022-02-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅