草庐IT

ros_arduino_bridge

全部标签

ruby - 需要帮助改进 Ruby DSL 以控制 Arduino 控制的饮料分配器(bar monkey)

我正在用Ruby编写DSL来控制我正在处理的Arduino项目;巴尔迪诺。这是一只酒吧猴子,将由软件控制来提供饮料。Arduino通过串行端口接收命令,告诉Arduino要打开什么泵以及打开多长时间。它目前正在读取一个食谱(见下文)并将其打印出来。串行通信的代码以及我在下面提到的其他一些想法仍然需要改进。这是我的第一个DSL,我正在处理之前的示例,所以它的边缘非常粗糙。任何批评、代码改进(是否有任何关于RubyDSL最佳实践或习语的良好引用?)或任何一般性评论。我目前有DSL的粗略草稿,因此饮料配方如下所示(Githublink):desc"Simpleglassofwater"rec

最全ROS 入门

目录简介ROS诞生背景ROS的设计目标ROS与ROS2安装ROS1.配置ubuntu的软件和更新2.设置安装源3.设置key4.安装5.配置环境变量安装可能出现的问题安装构建依赖卸载ROS架构1.设计者2.维护者3.立足系统架构:ROS可以划分为三层ROS通信机制话题通信理论模型流程通信样例自定义消息的通信服务通信理论模型服务通信自定义srv参数服务器理论模型参数操作常用命令简介rosnoderostopicrosmsgrosservicerossrvrosparam常用API初始化话题与服务相关对象C++回旋函数C++对比时间1.时刻2.持续时间3.持续时间与时刻运算4.设置运行频率(非常常

ROS学习笔记(八):ROS2

ROS学习笔记(八):ROS2ROS1存在的问题ROS2ROS2的设计目标ROS2的系统架构ROS2的关键中间件——DDSROS2的通信模型ROS1存在的问题ROS(一般ROS均指ROS1)经过多年的发展,已成为机器人领域的重要的工具与平台。但是ROS1主要存在以下问题:(1)ROS1无法适用于多机器人系统。(2)ROS1基于Linux系统,在Windows、macOS和RTOS上无法应用或功能有限。(3)ROS1缺少实时性方面的设计。(4)ROS1的分布式机制需要良好的网络环境才能保证数据的完整性,而且网络不具备数据加密、安全防护等功能。(5)ROS1的稳定性不好,ROSMaster和节点有

Arduino:实现四位LED共阴极数码管显示——从认识、连接、程序到实现功能

一.认识四位共阴极数码管(1)一位八段共阴极数码管    在认识四位共阴极数码管之前我先介绍一下一位八段共阴极数码管。如左图所示为以为数码管的实物图,其中它共有10个引脚,且上下各五个。小数点位于右下时为数码管正面,在四位共阴极数码管中也是如此,在连接组装时尤为重要。     右图所示为一位数码管示意图,将数码管引脚连接在Arduino上,由图所示我认为你可以对为什么是八段及共阴极有了自己一定的理解。其中,共阴极顾名思义是这些LED小灯公用一个阴极。对于如何在一位数码管上显示0-9,也就是指点亮数码管上位置不同的LED小灯。例如:显示0,点亮a,b,c,d,e,f,也就是将其对应的引脚2,3,

ros2 foxy创建一个包和节点-ubuntu20.04

文章目录创建工作区目录创建包和节点colconbuild编译CMakeLists.txt文件find_packageadd_executablepackage.xml面相过程的方式生命一个节点以面向对象的方式创建一个节点创建工作区目录mkdir-p~/ros2_ws/srccd~/ros2_ws我们创建了两个目录,ros2_ws和在他下面的子目录,运行编译的目录在ros2_ws目录下,src目录下是我们生成的ros的包,我们自己编写的代码也都早src目录下,colconbuild编译之后会在ros2_ws目录下生成一下文件,运行程序也是在ros2_ws这个目录下。创建包和节点使用ros2pkg

Arduino Uno开发板+电机驱动扩展版CNC Shield V3.0硬件说明

陈拓2023/03/24-2023/03/291.ArduinoCNCShieldV3.00电机驱动扩展版注意:板子左侧中间的玻璃管是玻封保险丝。ArduinoCNCShield可以搭载A4988、DRV8825等步进电机驱动模块,用于驱动NEMA17电机(俗称42步进电机)。2.常用的步进电机驱动模块2.1A49882.1.1引脚布局注意:模块使用时需加装散热器。单片机只需要控制两个引脚DIR和STEP即可控制步进电机。2.1.2引脚功能说明从左上角开始,逆时针方向。ENABLE:使能引脚,接低电平使能有效,接高电平模块关闭工作。MS1/MS2/MS3:步进模式细分引脚;不需要使用功能可浮空

arduino用时钟中断方式的4位数码管动态显示

  一般我们在arduino开发板上显示数字,通常采用多位数码管进行显示,而多位数码管实际是采用“动态扫描显示”的方法进行显示,即依次显示第1位数码管、第2位数码管、第3位数码管、第4位数码管……此方法是利用人眼的视觉残留,当扫描显示的频率大于25帧/秒,我们看到的就是每个数码管同时都在显示。目前大多数arduino的样本程序都是在主循环中不断地进行循环显示,但这样的做法有一个很大问题。如果主循环中的一次循环需要运行较长时间(超过40ms),那显示频率就会低于25帧/秒,从而看到的显示是抖动的,甚至内容是跳跃的。  为保证显示频率大于25帧/秒,我们可以采用arduino的时钟中断来进行“动态

基于ROS的机器人建图与导航仿真全过程

引言       之前一直想写一篇关于ROS机器人建图与导航仿真全过程的教程,终于有时间来做这个事啦,本人也拿过吉林省高校机器人大赛——ROS竞速组的冠军,第十六届全国智能车比赛——讯飞餐厅组线上赛二等奖,我想这个教程对接下来的一些参赛者多多少少也会有一些贡献。当然我觉得你已经会ROS的一些基本操作了,本文章只是简单扼要的介绍这个过程,其中细节部分难免可能不会太详细还请见谅,当人后续也会有更多这方面的文章,也会传授一些ROS机器人建图与导航方面的经验,当然我也在学习的过程,难免一些不足之处,话不多说啦,让我先把这个全过程的思维导图放在下面。文章所用的代码已经开源:https://gitee.c

基于Arduino IDE开发的ESP8266(ESP-12F)项目3 ——串口通信

 本次写这篇文章是自己做一下学习记录,如有错误,还请大家斧正!!!日后及时修正!感谢支持! 欢迎大家的关注        点赞    收藏    留言目录前言    一、新建工程    二、项目函数介绍                         三、代码编写    四、编译、烧录、运行    五、代码进阶结束语前言    串口作为每一位单片机开发者查看其运行状态的一项有效手段、无论你是学习51单片机还是STM32等,一部分人喜欢使用串口作为其开发项目,调试单片机的一项有效手段。可以说串口的使用可以让自己的程序开发事半功倍。那接下来就带大家走入串口的教程。 一、新建工程    首先打开Ar

xml - 在 ROS 中使用 Launch 文件打开时是否可以在节点之间切换?

有两个不同的节点,一个用Python编写,另一个用C++编写。他们基本上在做同样的事情。假设他们正在使用不同的方法(如viola-jones或hog)寻找香蕉。所以,他们的名字是:节点1:object_detector_hog_node节点2:object_detector_viola_node我想分配参数来选择打开哪个节点。有可能做这样的事情吗?我知道无法在启动文件中使用if。另外,我不想打开两个节点并检查参数并杀死其中一个节点。 最佳答案 是的,这是可能的。对于这样的二进制选择,最简单的方法是使用bool参数:启动时添加参数us