随笔分类 - 嵌入式
摘要:ROS是机器人操作系统,当然要给机器人使用啦,不过在使用之前,还得让ROS认识下我们使用的机器人,如何把一个机器人介绍给ROS呢? 为此,ROS专门提供了一种机器人建模方法——URDF,用来描述机器人外观、性能等各方面属性。 一、URDF语法 1.1 机器人的组成 建模描述机器人的过程中,我们自己需
阅读全文
摘要:坐标系是我们非常熟悉的一个概念,也是机器人学中的重要基础,在一个完整的机器人系统中,会存在很多坐标系,这些坐标系之间的位置关系该如何管理? ROS给我们提供了一个坐标系的管理神器——TF。 一、机器人中的坐标系 你有没有玩过迷宫游戏?地图上会有一个“你在这儿”的小红点。如果没有这个红点,你就不知道自
阅读全文
摘要:在前面的ROS2学习中,每当我们运行一个ROS节点,都需要打开一个新的终端运行一个命令。机器人系统中节点很多,每次都这样启动好麻烦。有没有一种方式可以一次性启动所有节点呢?答案当然是肯定的,那就是Launch启动文件,它是ROS系统中多节点启动与配置的一种脚本。 ROS2的launch文件有三种格式
阅读全文
摘要:我们在《ROS2概述和基于RK3588的环境搭建》中对ROS和ROS2做了对比,其中最多的变化就是DDS。我们在前面文章中介绍的话题、服务、动作,他们底层通信的具体实现过程,都是靠DDS来完成的,它相当于是ROS机器人系统中的神经网络。 一、通信模型 DDS的核心是通信,能够实现通信的模型和软件框架
阅读全文
摘要:智能机器人的功能繁多,全都放在一个计算机里,经常会遇到计算能力不够、处理出现卡顿等情况,如果可以将这些任务拆解,分配到多个计算机中运行岂不是可以减轻压力? 这就是分布式系统,可以实现多计算平台上的任务分配。 一、分布式通信 之前我们也讲过,在ROS系统中,机器人功能是由各种节点组成的,这些节点可能位
阅读全文
摘要:在前面的文章,我们已经介绍了话题题、服务、动作三种通信机制,接下来呢我们再来介绍一种ROS系统中常用的数据传输方式——参数。 类似C++编程中的全局变量,可以便于在多个程序中共享某些数据,参数是ROS机器人系统中的全局字典,可以运行多个节点中共享数据。 一、通信模型 在机器视觉识别的时候,有很多参数
阅读全文
摘要:机器人是一个复杂的智能系统,并不仅仅是键盘遥控运动、识别某个目标这么简单,我们需要实现的是送餐、送货、分拣等满足具体场景需求的机器人。 在这些应用功能的实现中,另外一种ROS通信机制也会被常常用到——那就是动作。从这个名字上就可以很好理解这个概念的含义,这种通信机制的目的就是便于对机器人某一完整行为
阅读全文
摘要:在ROS系统中,无论话题还是服务,或者我们后续将要学习的动作,都会用到一个重要的概念——通信接口。 一、通信接口 通信并不是一个人自言自语,而是两个甚至更多个人,你来我往的交流,交流的内容是什么呢?为了让大家都好理解,我们可以给传递的数据定义一个标准的结构,这就是通信接口。 1.1 概述 接口的概念
阅读全文
摘要:话题通信可以实现多个ROS节点之间数据的单向传输,使用这种异步通信机制,发布者无法准确知道订阅者是否收到消息,本节我们将一起学习ROS另外一种常用的通信方法——服务,可以实现类似你问我答的同步通信效果。 一、 通信模型 在话题章节中,我们通过一个节点驱动相机,发布图像话题,另外一个节点订阅图像话题,
阅读全文
摘要:从本节开始,我们将以ROS2的核心概念为线索,详细讲解ROS2的应用开发方法,其中包括但不限于: 工作空间(Workspace):项目文件夹,包含所有ROS2包的容器; 功能包(Package):软件模块,包含实现特定功能的代码和资源; 节点(Node):机器人的工作细胞; 话题(Topic):异步
阅读全文
摘要:近期我们想实现一个功能,利用机器人实现羽绒服分拣。我们计划的硬件:宇树G1(移动底盘+躯干) + 灵巧手(末端执行器) + 摄像头/深度传感器(视觉)和力量传感器(触觉)。 那么问题就来了?这些组件来自不同的厂商,使用不同的通信协议(CAN总线、Ethernet、USB等),数据格式也千差万别。如何
阅读全文
摘要:在《基于直流有刷电机的速度闭环控制以及matlab仿真》我们介绍了速度闭环控制的实现,其采用的是PID控制算法,本节我们就基于STM32F103来实现直流电机的增量式PID速度闭环控制。 一、软件实现 我们需要将PID控制器应用于STM32F103的速度闭环电机控制,以下是接下来的步骤: 电机速度测
阅读全文
摘要:一、自动控制系统简介 首先,让我们理解什么是自动控制系统。顾名思义,它就是能在没有人的直接干预下,自动地使某个设备或过程(我们称之为“被控对象”)按照预定规律运行的系统。 一个简单的例子是电热水壶。你设定一个目标(100℃沸腾),它就能自动加热并在达到温度后断开电源。这里面就包含了一个简单的自动控制
阅读全文
摘要:开发板 :ArmSoM-Sige7/NanoPC-T6开发板 eMMC :64GB/256GB LPDDR4 :8GB/16GB 显示屏 :15.6英寸HDMI接口显示屏 u-boot :2017.09 linux :6.1 Linux发行版 :ubuntu 24.04 在两年前,我们介绍了如何移植
阅读全文
摘要:一、编码器介绍 编码器,是一种用来测量机械旋转或位移的传感器。这种传感器能够测量机械部件在旋转或直线运动时的位移位置或速度等信息, 并将其转换成一系列电信号。 编码器是工业中常用的传感器之一,广泛应用于工业生产当中需要对机械系统进行监视或控制的场景, 包括工业控制、机器人、照相机镜头、雷达平台以及部
阅读全文
摘要:在《直流有刷电机及机械特性》我们对直流有刷电机的工作原理、机械特性以及电动机的启动、制动、调速进行了详细的介绍。本节主要介绍电机的驱动器以及调速控制方案的实现。 一、电机介绍 由于我们需要学习直流有刷电机的控制,所以我们手里必须要有一款直流有刷电机。 这里我在淘宝购买的电机为:常规775 高速电机吹
阅读全文
摘要:开发板 :ArmSoM-Sige7开发板 eMMC :64GB LPDDR4 :8GB 显示屏 :15.6英寸HDMI接口显示屏 u-boot :2017.09 linux :5.10 在《Rockchip RK3588 - Rockchip Linux SDK Buildroot文件系统构建》我们
阅读全文
摘要:有关I2C通信协议我们在《通信协议-I2C》已经进行了详细的介绍,因此这一节不再重复介绍。 一、软件/硬件I2C 想要控制STM32产生I2C方式的通讯,可以采用软件模拟或硬件I2C这两种方式。 1.1 软件模拟 所谓软件模拟,即直接使用CPU内核按照I2C协议的要求控制GPIO输出高低电平。 如控
阅读全文

浙公网安备 33010602011771号