河北网站建设推广自己做的网站怎么发布视频教程

news/2025/9/23 9:12:32/文章来源:
河北网站建设推广,自己做的网站怎么发布视频教程,代做毕业设计网站,自适应营销网站一、说明 本系列是关于学习如何使用 ROS2、Docker 和 Github 设计、设置和维护机器人项目。 先决条件 — ROS2 软件包的基本知识、实现发布者、订阅者、操作并连接它们。 我们之前在 ROS2 中了解了不同的部分。但是#xff0c;在我们转向实际的基于硬件的项目之前#xff0c;… 一、说明         本系列是关于学习如何使用 ROS2、Docker 和 Github 设计、设置和维护机器人项目。 先决条件 — ROS2 软件包的基本知识、实现发布者、订阅者、操作并连接它们。         我们之前在 ROS2 中了解了不同的部分。但是在我们转向实际的基于硬件的项目之前将它们很好地结合起来理解 ROS2 是关键。 这是我们当前系列的议程— 第 1 部分开始使用新的 ROS2 项目 — 演示带有垃圾拾取机器人自定义包的样板 ROS2 项目 第 2 部分改进 ROS2 代码库 — 启动文件和 ROS 参数 第 3 部分通过测试改进项目 — 添加 ROS 测试基础架构 第 4 部分从业余爱好者到优质项目 — 在 Github 上为 CI/CD 添加 docker 二、垃圾捡拾机器人 — 以下是我们想要设计系统的方式 — 感知和解释 — 我们使用摄像头图像来查看机器人的附近对其进行处理并确定是否存在垃圾。该信息被转发到决策模块大脑。决定 — 决策模块大脑从感知和解释中获取垃圾存在信息并决定机器人是否应该采取行动。 如果大脑决定采取行动并移动机器人因为存在垃圾它会命令驱动模块这样做。行动 —根据大脑的命令驱动模块移动机器人例如使用电机去收集垃圾。 注意我们的朴素系统过于简单只关注 ROS2 设计。在本系列中我们不考虑核心机器人算法、控件开环/闭环或视觉。这将在后面的课程中完成我们将基于此处建立的基本 ROS2 思想。 我们将系统分为 3 个逻辑组件——感知、大脑和驱动。 如果我们想象我们的软件设计我们应该有 3 个 ROS2 包因此是节点 感知 — 该节点将从机器人的摄像头获取输入图像并从中获取见解例如垃圾的存在。脑—— 该节点从感知模块获取见解处理此信息并通知致动模块下一步该做什么。 此外大脑通常只关心每一帧中感知的视觉信息。但偶尔大脑想知道感知相机的电池状态。驱动 — 该节点将命令伺服电机移动机器人的四肢。想象一下机器人走向垃圾桶捡起它移动到垃圾箱然后收集它。使用致动代码控制运动 大脑模块实际上就像人脑一样通过感觉器官感知接收信息并通过电机驱动指挥适当的动作。甜 接下来本系列的第 1 部分将重点介绍如何使用垃圾收集机器人的自定义包构建一个样板 ROS2 项目。 让我们建造好吗 三、ROS2 有何不同 — 总结 1. 第三方中间件 ROS1 与 ROS2DDS ROS1有自己的中间件它使用网络堆栈将信息从一个节点发送到正确的套接字中间件再次接收到信息以将信息发送到正确的节点过度简化。 ROS2抛弃了中间现在使用数据分发服务DDS这是一个可靠的行业标准的第三方中间件。 2. 没有玫瑰大师 Rosmaster是一项服务方便两个节点找到彼此如果它们希望通信。接下来是它们直接相互连接。如果 rosmaster 在此过程中死亡这些节点仍将连接但没有新节点可以加入通信网络。 在 ROS1 中每个节点都需要知道主节点的位置即使系统在多台机器上运行。 ROS2取消了rosmaster节点可以直接找到彼此。 3. Cpp 和 Python 的共享代码库 RCL ROS支持两种语言Cpp和Python底层实现在某些地方有所不同。例如每个订阅者在 Python 中都有自己的线程但在 Cpp.All         对于 ROS1 来说都是如此但 ROS2 具有相同的共享 C 实现。这个通用的代码库通过C和Python中的ROS客户端库API公开。 4. 一个进程中有多个ROS节点 ROS1不允许一个进程中有多个ROS节点。ROS2 中的变化 5. Python 构建要求         在 ROS1 中更改 Python 文件不需要您构建项目。ROS2 需要你重新构建项目这太糟糕了 6. 操作服务 操作服务         不是核心 ROS1 库的一部分而是 actionlib。ROS2 核心库具有操作服务器 7. 视窗支持         ROS2 是视窗支持的好吧我真诚地希望你正在使用Linux 。 8. 更改了启动基础结构         ROS1 主要使用基于 XML 的启动文件。ROS2 有一个支持排序约束的 python 启动系统 四、为什么要迁移到 ROS2 这是一个很难回答的问题。此举有一些惯性主要是因为 ROS2 社区仍然没有 ROS1 那么大。这导致更少的在线开发支持和更长的开发时间。 但大多数著名的开源 ROS1 软件包已经或将很快达到生命周期的终点。面向未来的项目和技能提升是采取行动的两个原因。 五、ROS2 设置 第 1 阶段安装 ROS2 在本课中我们使用 ubuntu Focal20.04.3 LTS它支持 ROS2 Galactic。 这里有一个链接可以很好地解释 ROS2 的安装。他们在解释安装:)方面比我做得更好 第 2 阶段测试 ROS2 为了测试我们的 ROS2 设置我们执行以下操作 1. 获取终端 source /opt/ros/$ROS_DISTRO/setup.bash 如前所述从今以后我将使用银河而不是$ROS_DISTRO 2. 运行演示监听器和说话者节点 我们将使用“/opt/$ROS_DISTRO/lib/”中已经存在的demo_nodes_cpp包 在源终端中运行以下命令 ros2 run demo_nodes_cpp listener ros2 run demo_nodes_cpp talker 您将看到以下内容 如果是我们可以确定我们的 ROS2 设置。 呜呜呜我们已经准备好在 ROS2 中开始开发。让游戏开始 转到本系列的第 2 部分 这里. 在第 1 部分中我们在 Gazebo 中设置了 TurtleBot3 模拟这构成了我们在 ROS 2 中所有移动机器人实验的基础。 下一步是什么 我们现在了解如何使用 Nav2 在 ROS 2 中设置自主导航。在 ROS 1 中我们使用了导航堆栈它是多个包的组合如 move_base、amcl 和地图服务器仅举几例。 但是 Nav2 是镇上新的酷人其中大多数软件包已经是其中的一部分并且功能增强。制造商希望将“ ROS导航带出实验室”或者简单地说使其具有生产质量。 六、我们如何在 ROS 2 中设置自主导航 为了回答这个问题我们先来看看一些机器人导航概念好吗 有一秒钟把自己放在机器人的鞋子里你要求自主移动。假设有人说——“哎呀搬到B位置 你会怎么做好吧我想问以下两个问题—— 我在哪里位置 B 在哪里换句话说我的周围地图是什么样的 而这正是机器人真正需要的—— 本地化 — 机器人在哪里映射 — 地图/世界是什么样的 从技术上讲这就是机器人大脑处理这些信息并决定移动所需要的。在这种情况下我们机器人的大脑是导航包。直观嗯 因此我们定义了导航所需的两条信息。 由于这仍然是一个基本的帖子让我们避免理论这很重要但稍后并转移到 ROS 2 中的 Nav2 包 正如我们所建立的Nav2需要机器人的当前位置和地图。 在 ROS/ROS2 中这转化为两个要求— 机器人定位 — 变换和变换map - odomodom - base_link Nav2 的预期输入是符合 REP-105 的两个 TF 转换。 全球定位系统GPSSLAM运动捕捉的工作至少可以提供转换。通常这是 Nav2 的一部分用于此目的。map-odomamcl 测程系统的作用是提供-转换。里程计可以来自许多来源包括激光雷达、雷达、车轮编码器、VIO 和 IMU。测程法的目标是提供基于机器人运动的平滑和连续的局部框架。全球定位系统将更新相对于全局帧的变换以考虑测距漂移。odombase_link 机器人定位通常用于这种融合。它将采用各种类型的传感器并为TF和主题提供连续和平滑的测程。典型的移动机器人设置可能具有以这种方式融合的车轮编码器、IMU 和视觉的测程计。N 然后平滑输出可用于航位推算以实现精确运动并在全局位置更新之间准确更新机器人的位置。 地图 —在需要 SLAM同时定位和映射的应用程序中这是与导航并行完成的。但目前我们有兴趣使用静态地图因此我们已经知道周围的地图进行导航。在 ROS 2 中SLAM 工具箱可用于生成静态地图我们可以保存它以供导航。 如果这一切都有意义那就太棒了。如果没有请耐心等待。在下面的 ROS 2 中完成这项工作将澄清:) 从我内心深处我相信边建边学的策略。那么好吗 七、使用 TurtleBot2 模拟设置基于 ROS 3 的导航— 第 1 步 — 在凉亭中设置 ROS 2 和 TurtleBot3 以进行模拟         请查看我们的第 0 部分和第 1 部分以完成此操作如果您尚未完成 如果你这样做了你应该擅长在凉亭中运行TurtleBot3模拟。 第 2 步 — 设置本地化 首先在凉亭中运行 TurtleBot3 为 ROS 2 提供终端 — source /opt/ros/galactic/setup.bash 转到我们在第 3 部分中构建的 TurtleBot1 包然后获取终端 — source ./install/setup.bash 运行海龟机器人3世界模拟 — ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py 您应该看到模拟正在运行 — 现在打开另一个终端source ROS 2然后查找题目 ros2 topic list 看看有一个主题它给了我们测程值和转换。所以我们已经准备好了本地化对吧odomodom-base_link 好吧虽然我们将使用它但在一般情况下不完全是。         当您使用真正的机器人时这些测程值是嘈杂的并且容易漂移。因此我们需要使用机器人定位包将它们与其他传感器输出如 IMU本地和 GPS全球融合。 在我们的例子中odom 几乎没有任何噪声我还没有找到一种方法来增加模型的 odom 噪声而不在代码中重新发布。因此我们将使用它。 因此对我们来说本地化价值已经准备就绪。 步骤 3 — 设置静态地图 为此我们使用 ROS 2 中的 SLAM 工具箱 安装 SLAM 工具箱 sudo apt install ros-ros2-distro-slam-toolbox 我正在使用银河所以—— sudo apt install ros-galactic-slam-toolbox 启动用于映射的 slam 工具箱包 — 在一个新的终端中当然在采购 ROS 2 之后一定要这样做— source /opt/ros/galactic/setup.bash ros2 launch slam_toolbox online_async_launch.py 使用必要的可视化启动 Rviz2 在新终端中启动 rviz2 source /opt/ros/galactic/setup.bash rviz2 添加以下内容以进行可视化 激光扫描 — 主题 可靠性政策/scanBest Effort地图 — 主题/mapTF 这是我的 Rviz 观点—— 运行远程操作以移动机器人进行映射 — 在一个新的终端中—— source /opt/ros/galactic/setup.bash ros2 run teleop_twist_keyboard teleop_twist_keyboard 将 Gazebo 和 RViz 并排放置然后 teleop 查看在 RViz 中创建的地图 — 我通常会显着减慢机器人的速度以获得更好的地图 保存地图 在新终端中运行nav2_map_server source /opt/ros/galactic/setup.bash ros2 run nav2_map_server map_saver_cli -f ~/map 这会将地图保存在我们的主目录中map.pgm 和 map.yaml 那是映射。 而且。我们准备接下来导航 第 4 步 — 自主导航 请杀死slam_toolbox节点、远程操作节点和 RViz。我们不再需要它们了。此时只有 TurtleBot3 凉亭模拟应该运行 现在我们已经准备好本地化主题和映射我们保存的地图我们可以开始导航了/odom 启动导航 在一个新的终端中—— source /opt/ros/galactic/setup.bash ros2 launch nav2_bringup bringup_launch.py use_sim_time:True autostart:True map:/path/to/your-map.yaml 这将设置自主导航所需的所有节点但会发出有关框架不存在的警告。我们会尽快解决这个问题。map 在另一个终端中启动 RViz但具有预设的可视化 — source /opt/ros/galactic/setup.bashros2 run rviz2 rviz2 -d $(ros2 pkg prefix nav2_bringup)/share/nav2_bringup/rviz/nav2_default_view.rviz 房车视图 — 您将看到全局状态错误这是关于地图不可用。 问题是转换是由 amcl 发布的它是作为上述的一部分推出的。但需要一个初始姿势才能开始工作。map-odomnav2_bringupamcl 为此请单击上方工具栏上的“2D 姿势估计”绿色箭头之一并通过在 RViz 中的地图上单击并拖动来根据凉亭位置和标题提供当前姿势。您应该尽可能精确但小错误没问题。 一旦你这样做了这应该是新的视图—— 现在我们有了自主导航所需的所有转换map-odom-base_link 导航 从底部开始我们在这里;) 让我们导航 要命令机器人自主移动请转到 RViz 并单击 .现在在 RViz 中的目的地上单击用于位置并拖动用于方向。下一个观看凉亭里的魔术Nav2 Goal 你将看到 nav2 规划了一条路径本地 全局并开始移动机器人。如果这让你开心你可以继续提供更多的 Nav2 目标 那么我们已经成功地使用 Nav2 为 TurtleBot3 设置了自主导航那就是本文的全部目标。 后记 你接下来问什么理想情况下我想用一个物理的TurtleBot继续这个系列。也许我众包了一个TurtleBot。也许别的东西。我很想知道你想要什么。我们可以一起想办法

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

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

相关文章

ChatGPT 在招聘诈骗领域的应用

ChatGPT 在招聘诈骗领域的应用作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客 zhihu Github 公众号:一本正经的瞎扯事件经过 整个八月我都没有上班,在等待新的工作签证审批通过。 工作签证有…

FR报表下拉框高度(JS添加css样式方式)调整

FR报表下拉框高度调整解决方案 问题描述 在FR报表开发中,点击下拉框按钮后,下拉选项列表的高度太小,用户体验不佳。直接使用 $(.fr-combo-list).css("height","400px") 设置高度往往不生效,因…

基于Python+Vue开发的新闻管理系统源码+运行步骤

项目简介该项目是基于Python+Vue开发的新闻管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Pyt…

鸿蒙应用开发从入门到实战(十二):ArkUI组件ButtonToggle

ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解按钮组件Button和Toggle的使用。大家好,我是潘Sir,持续分享IT技术,帮你少走弯路。《鸿蒙应用开发从入门到项目实战》系列文章持续更新中,陆…

宁波网站建设 慕枫科技旅游网站开发需求文档模板下载

2023年以来,在下游市场需求仍在复苏以及存量市场竞争加剧的背景之下,消费电子行业的发展受到不小挑战。不过,从中期业绩来看,可以发现一些企业还是具备一定的风险抵御能力,发展韧性显著,创维就是其中一员。…

贵州便宜网站推广优化电话濮阳建设公司网站

写在前面 如果您研究过美国企业早期发展的过程中的组织架构和战略规划,您就会发现,从18世纪末期以来一直到第二次世界大战前夕,美国工业公司基本上成立了技术和自己的实验室。从美国的石油公司,到汽车生产制造,还是化…

凉州区住房和城乡建设局网站汉阳网站建设公司

​10月19日,“提升数字安全技术,护航数字经济发展”高峰论坛在常州创意产业园圆满完成。本次论坛由常州国家高新区管委会、常州市工业和信息化局、常州市大数据管理中心主办,聚焦“数据安全”主题,邀请了超百位专家及企业代表共同…

wordpress获取站点副标题沈阳市网站建设企业

组合模式是把一个类别归为一个整体,并且组织多个整体之间的关系,使用通过树形结构来描述所有整体。一般的编写方式为一个类别对象下添加多个该对象的元素,该对象又为其它对象下的元素。简单来说就是一个学校有一个总部&#xff0…

小企业网站怎么做怎么做阿里巴巴外贸网站

Spring Cloud Vue前后端分离-第3章 SpringBoot项目技术整合 3-1 集成持久层框架Mybatis ORM:对象关系映射,Hibernate是全自动ORM,Mybatis是半自动ORM,Mybatis可以操作的花样更多,是首选的持久层框架 System模块集成Mybatis框架…

做食品网站需要什么资质吗seo网站首页推广

一、 实验目标: 熟悉Linux上C程序的编译和调试工具,包括以下内容: 1. 了解Linux操作系统及其常用命令 2. 掌握编译工具gcc的基本用法 3. 掌握使用gdb进行程序调试 二、实验环境与工件 1.个人电脑 2. Fedora 13 Linux 操作系统 3. gcc…

白云外贸型网站建设网络直接销售的营销方式

Python类分为两种,一种叫经典类,一种叫新式类。都支持多继承,但继承顺序不同。 新式类:从object继承来的类。(如:class A(object)),采用广度优先搜索的方式继承(即先水平搜索&#…

菠菜网站怎么做推广德州网站建设哪家好

网络存储概述: 随着企业中数据信息的不断增长,尤其当成百上千TB的数据需要备份、恢复,以及面临着扩容、灾难恢复等需求时,DAS(直接附加存储,就是通过与计算机主板的I/O接口,如IDE、SCSI相连接由…

国内专业建站平台站长工具域名解析

笔记本电脑 使用久了内部会累积有灰尘,这些灰尘可能会影响到正常的使用;还有些人觉得笔记本电脑内存不够,想要加装个内存条;亦或想要帮助笔记本电脑换cpu等,这些都是需要将笔记本电脑拆卸下来,然后才能够完成好相关的工作。宏基47…

网站模板安全管理系统微信公众平台入口

文章目录 一文教会女朋友学会日常Git使用!Git知识总结一、git基本知识了解1.git简介2.git区域了解3.git常用命令 二、常用工作场景1.克隆远程仓库,把仓库代码拉到本地2.推送代码到远程仓库(1)本地代码和远程仓库版本相同&#xff…

Spring框架中的注解主要有哪些

组件管理注解 @Component:通用组件注解,标识一个类为Spring管理的Bean @Service:业务逻辑层组件,是@Component的特化版本 @Repository:数据访问层组件,具有JDBC异常自动转换功能 @Controller:Web控制层组件,处…

领码优秀的方案|Spring Boot 异步请求深度剖析:从原理到 AI 驱动的吞吐量优化

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

从视觉、文案到交互:三步彻底去除产品AI味

现在个人开发产品,AI的使用率越来越高,虽然效率提上去了,但是摆脱不了输出的产品有一股AI味。你很容易跟别人开发的产品“撞衫”。 先思考一个问题:为什么会有AI味?AI负责效率,人类负责温度一、简介 现在个人开发…

理解WPF Stylet中Command={s:Action 方法名}的设计与实现

前言 Stylet是我最近很喜欢使用的一个WPF框架,它的很多设计都体现了约定优于配置的思想。因此你会发现使用它非常方便,几乎不需要任何配置,开箱即用,只需知道它的一些约定即可。 查看Samples中Hello这个例子,只要…

帆软报表下拉框高度(JS添加css样式方式)调整

帆软报表下拉框高度调整解决方案 问题描述 在帆软报表开发中,点击下拉框按钮后,下拉选项列表的高度太小,用户体验不佳。直接使用 $(.fr-combo-list).css("height","400px") 设置高度往往不生效…

临沂专业网站制作湖南长沙门户网站

先看目录,除了2018年比较怪,其他最多2个D(数学只有两个弟弟,一个大弟,一个小弟) 文章目录 2023真题(2023-16)-D 2022真题(2022-21)-D-分析选项⇒是否等价⇒是…