Gazebo学习笔记4:模型编辑器

2023-05-16

原文链接:http://gazebosim.org/tutorials?cat=guided_b&tut=guided_b3

文章目录

  • 模型编辑器(Model Editor)用户界面
    • 选项板/左面板(Palette)
    • 工具栏 Toolbar
    • 模型编辑器的局限性
  • 简单小车的构造
    • 创建一个小车
      • 底盘
      • 前轮
      • 后轮
    • 添加传感器
    • 添加插件
  • 保存你的模型

现在我们将构建我们的简单机器人。 我们将制造一辆轮式车辆,并添加一个传感器,使机器人能够跟随一个斑点(人)。

模型编辑器允许我们在图形用户界面(GUI)中构建简单的模型。 对于更复杂的模型,您需要学习如何编写SDF文件,并查看有关构建机器人的教程。 但是现在,我们现在可以在Gazebo GUI中做一切的事情!

模型编辑器(Model Editor)用户界面

要进入Model Editor,请单击菜单栏中的Edit并选择Model Editor。 或者使用热键Ctrl+M当你在模型编辑器中时,仿真将立即暂停。

模型编辑器界面看起来类似于主Gazebo UI,但有一些细微的不同。 左侧面板和顶部工具栏现在仅包含用于编辑和创建模型各部分的小部件。 由于现在暂停了仿真,因此显示仿真数据的底部工具栏处于隐藏状态。
在这里插入图片描述

  1. Toolbar 工具栏-包含用于编辑模型的工具;
  2. Palette 面板-也称为左侧面板。 有两个用于编辑模型的选项卡;
  3. Insert tab 插入选项卡-用于添加链接和嵌套模型的工具;
  4. Model tab 模型选项卡-允许编辑模型属性和内容。

选项板/左面板(Palette)

左面板有两个选项卡。

  • INSERT 插入: Insert选项卡是将新部件(链接和模型)添加到模型编辑器的位置。 有三个部分。

    • Simple Shapes 简单形状: 这些是可以插入以在模型中形成链接的基本体几何图形。
    • Custom Shapes 自定义形状: 使用Add按钮可以从模型中的链接导入自定义网格导。 它目前支持COLLADA(.dae)、3D Systems(.stl)、Wavefront(.obj)和W3C SVG(.svg)格式的文件。
    • Model Database 模型数据库: 有一个模型列表。 这些可以像简单的形状一样插入到模型编辑器中。 一旦插入,它们被称为嵌套模型。
  • MODEL 模型: Model 选项卡允许你设置正在构建的模型的名称和基本参数。 它显示模型中的链接、关节、嵌套模型和插件的列表。 可以使用链接检查器(Link Inspector)修改参数。 你可以使用这些方法中的任何一种来打开它:

    • 双击列表中的项目;
    • 双击场景中的项目;
    • 右键单击列表中的项目,并选择打开链接检查器;
    • 右键点击场景中的项目,然后选择打开链接检查器

工具栏 Toolbar

与在模拟模式中一样,模型编辑器中的主工具栏包括用于与场景中的对象交互的工具(请参见用户界面教程)。

可用的工具包括选择、平移、缩放、旋转、撤消和重做、复制和粘贴、对齐、捕捉、视图调整和关节创建。

模型编辑器的局限性

模型编辑器支持通过编写SDF可以完成的大多数基本模型构建任务。 但是,有几个功能尚未提供:

  • 编辑嵌套模型和嵌套模型中的链接;
  • 添加和编辑某些几何类型,包括平面和折线;
  • 支持高度图;
  • CAD 功能。

简单小车的构造

创建一个小车

本节提供有关在模型编辑器中创建简单车辆模型的分步说明。

底盘

  1. 首先,我们将创建车辆底盘。 在左侧面板的Insert选项卡中,单击一次长方体图标,将光标移动到场景中的任意位置,然后再次单击以释放长方体。
    在这里插入图片描述
  2. 接下来,调整长方体的大小,使其看起来更像汽车底盘的形状。 我们可以通过选择位于顶部工具栏上的缩放工具来完成此操作。 选择场景中的长方体,长方体上方应该会出现一个RGB颜色的标记。 红色标记表示X轴,绿色表示Y,蓝色表示Z。将鼠标移到红色标记上以高亮显示它,然后单击并拖动以使机箱沿X轴加长。 对机箱进行缩放,使其大约有2米长。 您可以通过查看地面上的1x1米栅格来估计这一点。
    在这里插入图片描述
  3. 现在使用缩放工具展平机箱。 单击并向下拖动蓝色标记,使机箱大约是其原始大小的一半。
    在这里插入图片描述
  4. 我们想把底盘降低到离地面更近的地方。 为了提供精确的测量,我们将使用链接检查器 Link Inspector。 双击该底盘以调出Inspector。 向下滚动到链接选项卡的底部以找到姿势Pose参数,并将Z更改为0.4m,然后在框外单击(不要按Enter键)。 单击OK保存更改并关闭检查器。
    在这里插入图片描述

前轮

  1. 让我们继续讨论前轮。 首先从左侧面板上的Insert(插入)选项卡插入一个圆柱体。

  2. 处于默认方向的圆柱体是不能滚动的。 让我们使用链接检查器Link Inspector沿X轴旋转它。 双击圆柱体,打开链接检查器 Link Inspector滚动到底部的姿势部分,将侧滚Roll更改为1.5707弧度(90度),然后在框外单击。 暂时不要关闭链接检查器 Link Inspector。
    在这里插入图片描述

  3. 接下来,通过给出精确的尺寸来调整轮子的大小。转到“视觉“Visual 选项卡查看此链接中的视觉对象列表。应该只有一个。通过单击可视文本标签旁边的小箭头展开可视项。向下滚动到“几何体” Geometry部分,将“半径”Radius更改为0.3m,将“长度”Length更改为0.25m。
    在这里插入图片描述

  4. 现在,您应该看到一个较大的圆柱体内部有一个较小的圆柱体。 这是意料之中的,因为我们只更改了视觉几何体,而没有更改碰撞 collision。 “视觉”是链接的图形表示,不影响物理仿真。 另一方面,物理引擎使用“冲突” 'collision’进行冲突检查。 若要同时更新控制盘的碰撞 ‘collision’,请转到碰撞选项卡 collision,展开唯一的碰撞项,然后输入相同的几何尺寸。 半径Radius:0.3m,长度Length:0.25m。 单击OK保存更改并关闭Inspector。

  5. 现在我们已经创建了第一个轮子,我们将使用它作为模板并制作另一个轮子。 选择控制盘并单击顶部工具栏中的复制图标
    在这里插入图片描述

  6. 单击粘贴图标并将鼠标移回场景以插入副本。
    在这里插入图片描述
    现在,让我们通过沿X轴正方向(场景中的红色标记)对齐底盘来确保车辆正确行驶。在下一步中添加车轮时,请确保车轮位于沿X轴正方向延伸的车辆末端。

  7. 底盘和车轮目前都是自由移动的车身。 为了约束它们的运动,我们将在每个轮子和底盘之间添加关节。 单击顶部工具栏中的关节Joint图标以打开关节创建对话框。
    在这里插入图片描述

  8. ”关节创建“'Joint Creation'对话框包含通常为关节指定的关节属性。 在配置任何属性之前,系统会提示您选择关节的父链接和子链接。 将鼠标移动到场景中的底盘上,看到它突出显示,然后单击它,将其设置为关节的父节点。
    在这里插入图片描述

  9. 将鼠标移到左前轮;现在应该会有一条线从机箱的起点延伸到鼠标的末端。 单击控制盘以将其设置为关节的子项。 将创建一个新运动类型。 默认情况下,它是旋转运动类型(如对话框中的运动类型 Joint Types 部分所示),恰好是我们需要的运动类型。
    注意:此时更改视角可能会很有用。这可以在上面的工具栏中完成;单击带有橙色边的立方体图标。
    在这里插入图片描述

  10. 接下来,我们需要配置车轮的旋转轴。 在关节创建对话框中,找到关节轴 Joint axis部分,并将轴更改为Z (0,0,1)。 注意轮子上的RGB关节视觉。 您应该会看到,现在关节视觉的蓝色箭头上方会出现一个黄色的圆环,表示它是旋转轴。
    在这里插入图片描述

  11. 为了使车轮与底盘对齐,我们将在关节创建对话框的对齐关节 Align links 部分使用不同的对齐选项。 首先,我们将在 X 轴对齐,所以单击 X 最大对齐X Align Max选项,以查看对齐的结果。 圆柱体应该突出显示,以表明其姿态已经改变。
    在这里插入图片描述
    在这里插入图片描述

  12. 在我们的示例中,我们希望将车轮与底盘平齐放置。若要拉近车轮,请单击“Y向最大对齐”Y Align Max选项。然而,这还不是我们想要的。单击Y对齐选项旁边的反转Reverse选项,将车轮的最小值(最大值的反转)与底盘的最大值对齐。请注意,“反转”Reverse选项将应用于子链接,因为下面下拉列表中显示的默认对齐配置是从子到父Child to Parent的。如果设置了父到子Parent to Child的配置,则反向Reverse选项将应用于父链接。点击创建Create
    在这里插入图片描述

  13. 若要将车轮放置在地面上,请双击车轮以打开“链接检查器”。我们可以使用对话框底部的Pose部分来移动车轮。假设车轮的半径为0.3米,继续将Z位置更改为0.3米以放置在地面上,然后按“确定”OK

  14. 对另一个前轮重复关节创建过程和轴配置,确保 a)底盘是关节的父级,车轮是子级,b)旋转轴设置为Z,以及 c)使用Y Align Min选项将右车轮与底盘另一侧对齐。
    在这里插入图片描述

后轮

  1. 要为车辆制作后轮,请单击左侧面板上的球体按钮并将其插入到场景中。
    在这里插入图片描述
  2. 通过以与前轮相同的方式为球体指定精确尺寸来调整球体大小。 转到Visual选项卡以查看此链接中的可视对象列表,展开唯一的可视项目,向下滚动到Geometry部分,并将Radius更改为0.2m。 确保也对冲突collision选项卡中的冲突执行相同的操作。
    在这里插入图片描述
  3. 要在后轮和底盘之间创建关节,请通过单击顶部工具栏中的关节图标来调出关节创建对话框。 将鼠标移至场景,并选择车体作为父链接,选择球体作为子链接。
    在这里插入图片描述
  4. 与前轮关节不同,脚轮向所有方向滚动,没有特定的旋转轴。 在Gazebo中,这是使用滚珠关节模拟的。 因此,在“关节类型”Joint types区域下,选择“滚珠Ball运动类型”选项。 您应该在场景中看到关节视觉更改颜色,以指示已设置不同的关节类型。
    在这里插入图片描述
  5. 接下来,将后轮对齐,使其与车体居中,并位于后端。 在对齐链接区域中,选择Y对齐中心 Y Align Center选项以使两个链接在Y轴上居中,并选择X对齐最小 X Align Min选项以移动后轮,使其放置在车辆后方的右侧。 按创建 Create按钮以完成关节创建过程。
    在这里插入图片描述
  6. 最后,调整后轮的位置,使其位于地面上方。 通过打开链接检查器并将 Z位置设置为0.2m来执行此操作。

添加传感器

我们要加到车里的传感器是一个深度相机传感器,它将帮助我们探测车前的物体。 在本教程中,我们将从模型数据库中插入现有的传感器模型。

  1. 转到选项板(左侧面板)并选择 Insert选项卡,以查看Model Database部分中可用的模型列表。
    在这里插入图片描述
  2. 列表中的模型按它们所在的路径进行组织。 如您所见,第一个列表包含本地计算机上可用的型号,如标题中的路径所示。你可以从在线模型数据库下载一些普遍的模型。模型的网站为https://bitbucket.org/osrf/gazebo_models/src/default/,这些模型是按字母顺序排列的。 在列表中可以看到深度相机 Depth Camera。可以使用以下命令单独下载这个模型:
    hg clone https://bitbucket.org/osrf/gazebo_models/depth_camera
    
    建议下载到Model Database的第一个路径下。
    点击clone可以查看clone的格式
    然后单击它开始下载模型。如果网速太慢clone不了,可以尝试自己新建/depth_camera的文件夹和model.configmode.sdf文件,将网站中文件的内容复制进去。需要重启Gazebo后才能在原路径下显示新建的深度相机模型,重启前一定要保存小车模型,请跳到最后一步查看如何保存模型。
  3. 重启Gazebo后,在“插入”面板找到刚才保存的模型,在模型上右键,选择编辑模型,重新进入编辑模式。这时我们将深度相机加入场景。它看起来像一个小立方体。 将鼠标移到场景上,然后单击汽车前面的空白区域以插入深度摄影机。
    在这里插入图片描述
  4. 选择顶部工具栏中的平移工具,然后移动深度摄影机,使其位于车辆前面的底盘顶部,并大致居中于Y轴。
    在这里插入图片描述5. 接下来,将深度相机固定到车体上。 单击顶部工具栏中的关节Joint图标以打开关节创建对话框。 将鼠标移至场景,并选择车体作为父链接,选择深度摄影机作为子链接。
    在这里插入图片描述
  5. 在关节创建对话框中的关节类型 Joint Types部分下,选择固定关节 Fixed选项,然后单击创建 Create以完成关节的创建。
    在这里插入图片描述

添加插件

到目前为止,我们创建的车辆已经配备了所有的物理和传感器组件。 但是,它不会真正起到什么作用,只是静止不动,并在模拟中生成深度数据。 通过允许模型执行传感器数据处理、路径规划和控制等计算,插件是增强模型自主性的好方法。 为简单起见,本教程将使用我们车辆的现有插件。 请注意,您可以创建自己的插件,但这需要编写代码。 请参阅插件教程。

  1. 转到左侧面板并选择Model选项卡,以查看构成您构建的汽车模型的部件。
    在这里插入图片描述

  2. Model Plugins下面,您应该看到一个Add按钮。 点击它可以打开一个Model plugin Inspector,它允许您向模型中添加一个新的插件。
    在这里插入图片描述

  3. 首先,给插件命名。 在Plugin Name字段中输入‘follower’。 插件名称在此模型中必须是唯一的。

  4. 我们将要使用的插件名为libFollowerPlugin.so, 请在Filename字段中输入此插件名。 文件名对应于存储在本地计算机上的插件库的实际文件名。 它以动态链接的共享对象库的形式存在,因此有命名约定和扩展名.so(在Linux上)。 如果您在其他操作系统上使用 Gazebo,请不要担心,因为扩展会自动替换为正确的扩展。
    在这里插入图片描述

  5. follower插件不需要任何附加参数,因此可以将Innerxml字段留空。注意:这是一个用于演示的简单插件。插件通常具有各种相关参数,例如,差速驱动插件需要指定控制左右车轮的接头名称,以便能够将车辆移动到正确的方向。在follower插件的情况下,它对它所连接的模型类型进行了许多假设,并尝试自动查找关节和传感器

  6. 单击OK以添加插件。 该插件现在应该出现在左面板中的Model Plugins下。
    在这里插入图片描述

保存你的模型

  1. 通过转到File菜单并选择另存为Save As来保存模型。 输入模型的名称,然后单击保存 Save
    在这里插入图片描述
  2. 通过转到File并选择Exit Model Editor退出Model Editor。 Gazebo 现在应该切换回正常模拟模式。 点击Play按钮以运行模拟。
    在这里插入图片描述
  3. 要测试插件是否正常工作,请在汽车前面插入一个框,然后看到汽车慢慢地朝它移动。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

如果您想稍后再次编辑该模型,只需在其上单击鼠标右键,然后在上下文菜单中选择Edit Model

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gazebo学习笔记4:模型编辑器 的相关文章

  • 轻松玩转Makefile | 基础用法

    前言 本文通过几个简单的示例 xff0c 可以快速了解Makefile的基本使用方法 xff0c 适用于编译我们平时练习所编写的小量代码 1 make命令 Makefile文件内容 all为目标 xff0c 这里没有依赖的文件 xff0c
  • CentOS7使用Selenium截图时中文乱码

    文章目录 1 问题2 CentOS7安装中文字体3 解决 1 问题 在CentOS7环境下 xff0c 使用Selenium进行Web自动化测试 xff0c 页面截图时 xff0c 遇到中文乱码 xff0c 中文显示为小框框 xff0c 问
  • CentOS7 Selenium设置窗口最大模式

    文章目录 1 问题2 解决 1 问题 在CentOS7环境下 xff0c Selenium进行截图时 xff0c 发现 xff0c 截图比较小 xff0c 窗口最大化 driver maximize window 没有生效 xff0c 截图
  • CentOS7安装Selenium

    文章目录 1 安装Chrome2 配置chromedriver3 验证4 运行程序 1 安装Chrome 下载地址 xff1a 链接 xff1a https pan baidu com s 1Kfe tch MOQK8nHydBNEvA 提
  • Linux-Jenkins添加Windows节点并执行Python脚本

    文章目录 1 Jenkins添加节点2 Win 启动3 Jenkins在Windows执行Python脚本 1 Jenkins添加节点 系统管理 节点管理 新建节点 填写节点名称 xff08 WinSelf xff0c 中间不要带段横杠 x
  • CentOS7离线安装Zabbix4.4

    文章目录 1 安装MySQL1 1 卸载Mariadb1 2 准备MySQL离线安装包 2 安装HTTPD服务2 1 HTTPD离线安装包准备2 2 HTTPD离线安装 3 安装PHP3 1 PHP离线安装包准备3 2 PHP离线安装 4
  • Gazebo 详细介绍

    Gazebo is a 3D multi robot simulator with dynamics It is capable of simulating articulated robot in complex and realisti
  • CentOS7安装Firefox-Selenium

    文章目录 1 下载并安装2 执行Python 1 下载并安装 创建目录 mkdir firefox 下载Firefox 在Linux的安装包 https ftp mozilla org pub firefox releases wget h
  • Pytest+Allure安装

    文章目录 1 Pytest 环境安装2 Window环境下Allure安装3 Linux环境下Allure安装 1 Pytest 环境安装 span class token comment 在线安装 span pip3 install py
  • CentOS7搭建Gerrit服务

    文章目录 1 环境准备2 下载Gerrit3 安装并初始化4 更新监听URL5 重启Gerrit6 访问Gerrit 1 环境准备 Linux xff08 CentOS7 span class token punctuation span
  • CentOS7详细搭建Gerrit服务

    文章目录 0 环境准备1 安装Git2 下载Gerrit3 安装Java3 1 旧JDK卸载3 2 安装指定JDK 4 安装MySQL4 1 卸载Mariadb4 2 安装MySQL4 3 创建数据库 5 初始化Gerrit6 使用HTTP
  • CentOS7详细搭建Gitlab服务

    文章目录 1 环境准备2 yum源配置3 安装Gitlab4 配置启动5 访问 1 环境准备 span class token comment 操作系统信息 span span class token punctuation span ro
  • CentOS7-ELK集群搭建

    文章目录 1 准备 xff08 集群所有节点 xff09 1 1 安装JDK xff08 集群所有节点 xff09 2 Elasticsearch搭建2 1 ES下载2 2 安装 xff08 集群所有节点 xff09 2 3 修改配置文件
  • CentOS8离线安装部署ceph集群

    文章目录 1 概念简介1 1 存储类型1 1 1 DAS设备1 1 2 NAS设备 xff1a 文件服务1 1 3 SAN设备 xff1a 块服务 1 2 Ceph 架构简介 2 集群节点规划3 准备工作4 使用 cephadm 部署一个
  • Gerrit+2触发Jenkins任务

    文章目录 1 Linux创建秘钥2 Gerrit创建用户3 Jenkins配置Gerrit Trigger4 Jenkins创建工程test gerrit sonarqube4 1 General4 2 源码管理4 3 构建触发器4 4 构
  • Gerrit触发Jenkins SonarQube扫描

    文章目录 1 Jenkins配置2 Jenins 构建3 SonarQube设置质量阈4 Gerrit显示 环境参考 xff1a Gerrit 43 2触发Jenkins任务 描述 xff1a 记录Gerrit 43 2 操作之后 xff0
  • Win10 Selenium设置Firefox

    文章目录 1 Firefox与驱动对比关系图2 下载Firefox与驱动3 配置Firefox驱动4 验证配置 1 Firefox与驱动对比关系图 https liushilive github io github selenium dri
  • 分享篇--esp32直连天猫精灵

    今天给大家分享怎么用ESP32直连天猫精灵 启明云端ESP32开发板直连天猫精灵 第一步 xff1a 环境搭建 1 阿里物联网 SDK https github com espressif esp ali smartliving https
  • CentOS7部署FTP

    文章目录 1 安装FTP2 配置FTP3 创建登录用户4 修改 etc pam d vsftpd 文件5 新建系统用户vsftpd xff0c 用户目录为 home vsftpd6 建立虚拟用户个人配置文件7 重启 1 安装FTP 0 关闭
  • Ceph-Quincy-17.2.1版本集群部署

    文章目录 1 环境准备1 1 关闭防火墙1 2 关闭Selinux1 3 配置yum源1 4 时间同步1 5 cephadm下载 2 部署2 1 环境依赖2 2 cephadm部署集群2 3 扩容节点2 4 添加OSD服务2 5 创建一个文

随机推荐

  • Ceph文件存储-挂载文件系统

    文章目录 1 创建文件系统1 1 方法11 2 方法2 2 挂载文件系统3 卸载 1 创建文件系统 1 1 方法1 span class token number 1 span 创建存储池 ceph osd pool create tgmf
  • sshd: Cloudn‘t open /dev/null : permission denied

    1 问题 在通过 MobaXterm 链接节点时 xff0c 报错如下 xff1a Remote side unexpectedly closed network connection systemctl restart sshd 重启 s
  • CentOS8联网部署Ceph-Quincy集群

    文章目录 1 环境准备1 1 关闭selinux1 2 关闭防火墙1 3 配置免密1 4 设置yum源1 5 安装依赖1 6 设置时间同步1 7 安装docker 2 安装Ceph2 1 安装cephadm2 2 部署ceph集群2 3 集
  • 有时间细读这些书

    1 Windows程序设计 第5版 珍藏版 xff1a 这是很经典的一本介绍Win32 API编程的书了 xff0c 基本介绍到了大多数关于Windows程序设计的基本内容 2 Windows程序设计 王艳平版 xff1a 这本和上一本的区
  • reStructuredText(.rst)语法规则快速入门

    reStructuredText是一种轻量级的文本标记语言 xff0c 直译为 xff1a 重构建的文本 xff0c 为Python中Docutils项目的一部分 其一般保存的文件以 rst为后缀 在必要的时候 xff0c rst文件可以被
  • VHDL移位操作

    通过SLL实现五比特数的移动 xff0c 另外常见的还有 SRL 逻辑右移 实现数据右移 xff0c 左端补0 xff1b SLA 算术左移 实现数据左移 xff0c 同时复制最右端的位 xff0c 填充在右端空出的位置 xff1b SRA
  • 过孔----通孔,盲孔,埋孔

    过孔 xff08 via xff09 是多层 PCB 的重要组成部分之一 xff0c 钻孔的费用通常占 PCB 制板费用的 30 40 简单的来说 xff0c PCB 上的每一个孔都可以称之为过孔 从作用上看 xff0c 过孔可以分成两类
  • RS-422与RS-485传输线上的匹配

    对RS 422与RS 485总线网络一般要使用终接电阻进行匹配 但在短距离与低速率下可以不用考虑终端匹配 那么在什么情况下不用考虑匹配呢 xff1f 理论上 xff0c 在每个接收数据信号的中点进行采样时 xff0c 只要反射信号在开始采样
  • 小明分享:SSD201/202系统烧录篇,多种烧录方式,小明都做了分享,有需要的小伙伴拿走不谢哈!更多资料需求可以关注我,我是启明云端的小明MM!

    一 ISP 烧录 当 flash 没有烧过系统或系统损坏时 xff0c 可以先通过 ISP 烧录 boot xff0c 然后再通过 eth usb 或 sd 烧录完整的系统 下载并解压 tools ssd201 ISP 5 0 15 rar
  • CAN总线详解

    概述 CAN xff08 Controller Area Network xff09 总线协议是由 BOSCH 发明的一种基于消息广播模式的串行通信总线 xff0c 它起初用于实现汽车内ECU之间可靠的通信 xff0c 后因其简单实用可靠等
  • 终端电阻对CAN总线的作用和影响

    在CAN总线测试中 xff0c 会遇到找不出原因的错误 xff0c 那你可能忽略了一个解决异常的利器 终端电阻 究竟终端电阻对CAN总线有什么重要作用和影响呢 xff1f 电信号在电缆中的传播与光相似 xff0c 光从空气射入水中会发生光的
  • CAN总线

    最近在看stm32的通讯部分由于can总线在工业上的应用 xff0c 我选择以can总线为突破口进行学习 实际上在串口通讯所有的协议中 xff0c can总线也是我认为最复杂的一个协议 看了几天 xff0c 为了能够更加通俗的理解can的原
  • 「过孔盖油」、「过孔塞油」

    作为刚接触PCB板的新手 xff0c 是否有遇到过这样的疑问 xff1a 过孔盖油和过孔塞油听起来差不多 xff0c 是不是同一种东西 xff1f 确实两者听起来很像 xff0c 但实际上这是两个完全不一样的的制作要求 过孔盖油的专业解释是
  • 【转】过孔

    在一个高速印刷电路板 PCB 中 xff0c 通孔在降低信号完整性性能方面一直饱受诟病 然而 xff0c 过孔的使用是不可避免的 在标准的电路板上 xff0c 元器件被放置在顶层 xff0c 而差分对的走线在内层 内层的电磁辐射和对与对之间
  • HDC2021技术分论坛:OpenHarmony驱动框架解读和开发实践

    转自 xff1a OpenAtom OpenHarmony 作者 xff1a yuanbo xff0c 华为高级工程师 在IoT时代下 xff0c 终端设备差异较大 形态各异 尺寸各异 交互方式各异 xff0c 解决设备适配问题无疑是实现万
  • UR5+robotiq_85_gripper GAZEBO模拟视觉抓取平台仿真-2

    6 视觉算法 这里我以OpenCv中的SIFT描述子检测目标物体相对于相机的位姿 这里有个开源的包 find object 2d是ROS平台下一个功能强大的识别物体的功能包 由于对于纯颜色物体具有很少的特征 xff0c 所以我决定把另外两个
  • 浅析ros下修改订阅话题

    通过rostopic list 可以查看发布的话题 xff0c 可以看到有 tag detections和 tf话题 xff0c 那麽我们先编写订阅 tag detections xff0c 然后根据此模板订阅成 tf 1 xff0c 首先
  • 软件正在改变世界,程序员应该得到足够尊重

    软件无处不在 xff0c 越来越多的人离不开软件 xff0c 你打开电脑 xff0c 你使用手机 xff0c 你购物娱乐 软件一直在帮你 xff0c 软件已经渗透到我们的工作 生活 娱乐的方方面面 xff0c 软件每一天都在改变着这个世界
  • Ubuntu20.04 通过DD命令克隆自动驾驶开发环境

    第一 准备环境 双硬盘 xff08 Ubuntu20 04系统盘 存储镜像文件盘 xff09 说明 xff1a 本人机器是自动驾驶环境 xff0c 所以系统有些大 xff0c 约180G 第二 命令执行 xff1a 进入命令控制台 xff1
  • Gazebo学习笔记4:模型编辑器

    原文链接 xff1a http gazebosim org tutorials cat 61 guided b amp tut 61 guided b3 文章目录 模型编辑器 Model Editor 用户界面选项板 左面板 Palette