rosserial_arduino 中文教程1:Arduino IDE设置

2023-11-08

rosserial_arduino 中文教程 专栏

原文:http://wiki.ros.org/rosserial_arduino/Tutorials

说明:本教程逐步介绍如何设置Arduino IDE以使用rosserial。 

教程级别: BEGINNER 

下一个教程: Hello World(示例发布者) 
 

 

 

内容

  1. 介绍
  2. 安装软件
    1. 在ROS工作站上安装
      1. (推荐)在ROS工作站上安装二进制文件
      2. 从Source安装到ROS工作站
    2. 将ros_lib安装到Arduino环境中
  3. 整理起来

 

 

 

介绍

Arduino和Arduino IDE是快速轻松编程硬件的绝佳工具。 使用rosserial_arduino包,您可以直接在Arduino IDE中使用ROS。rosserial提供了一个适用于Arduino UART的ROS通信协议。 它允许您的Arduino成为一个完整的ROS节点,可以直接发布和订阅ROS消息,发布TF转换,并获得ROS系统时间。

注意:如果您还没有安装Arduino IDE,请从Arduino网站下载。 最好将应用程序安装到应用程序PATH,桌面或主文件夹的文件夹中。 安装后,启动应用程序以选择您的速写本位置。 (参见arduino官方网站 ,sketchbook是存储程序或草图的标准位置)。 完成后关闭IDE。

我们的ROS绑定​​是作为Arduino库实现的。 像所有Arduino库一样, ros_lib通过将其库实现放入sketchbook的libraries文件夹中来工作。 如果您的sketchbook中还没有文件夹,请创建一个。 然后,您可以使用以下说明安装库。

注意:为了在你自己的代码中使用rosserial库,你arduino 的 ino文件必须先放

 

  #include <ros.h> 

在包括任何其他头文件之前,例如

  #include <std_msgs / String.h> 

否则Arduino IDE将无法找到它们。

 

安装软件

 

在ROS工作站上安装

您有2个如何安装相关库的选项。

 

(推荐)在ROS工作站上安装二进制文件

您可以通过运行以下命令为Arduino安装rosserial:

 

  sudo apt-get install ros-kinetic-rosserial-arduino
  sudo apt-get install ros-kinetic-rosserial 

将kinetic替换为您正在安装的版本的名称:例如hydro。

 

从Source安装到ROS工作站

groovy +(catkin)的源构建说明与早期(rosbuild)版本不同。 根据您的版本选择构建系统以查看适当的说明。

catkin rosbuild

自从groovy发布以来,Rosserial已经被淘汰了,工作流程与fuerte和早期版本有点不同。 您可以运行一次并为所有已安装的消息生成库,而不是在要使用的每个程序包上运行库生成器。 在下面的说明中,<ws>表示您的catkin工作区。

 

  cd <ws> / src
  git clone https://github.com/ros-drivers/rosserial.git
  cd <ws>
  catkin_make 

这些命令从github存储库克隆rosserial,生成通信所需的rosserial_msgs,并在<ws> / install目录中创建ros_lib库。

注意:目前您必须运行catkin_make install,否则将丢失ros_lib目录的部分内容。 希望很快就能解决这个问题。

 

 

将ros_lib安装到Arduino环境中

前面的安装步骤创建了ros_lib,必须将其复制到Arduino构建环境中,以使Arduino程序能够与ROS交互。

在下面的步骤中,<sketchbook>是Linux Arduino环境保存草图的目录。 通常,这是您的主目录中名为sketchbookArduino的目录。 或者,您可以安装到Windows Arduino环境中。

对于groovy源(catkin)而言,Ros_lib安装说明与早期(rosbuild)或二进制版本不同。 请确保您已选择上面正确的构建系统以查看适当的说明 - 否则为groovy源构建catkin,否则为rosbuild。

 

注意:您必须删除libraries / ros_lib才能重新生成,因为它的存在会导致错误。

 

  cd <sketchbook> / libraries
  rm -rf ros_lib
  rosrun rosserial_arduino make_libraries.py。 

如果要在Windows上构建Arduino,则需要在某个方便的目录中创建ros_lib文件夹。

 

  cd <some_empty_directory>
  rosrun rosserial_arduino make_libraries.py。 

 

如果要在Windows上构建Arduino,请将ros_lib目录从Linux复制到Windows系统的sketchbook / libraries文件夹(通常位于“我的文档”中)。

*注意:目前您可以直接在Arduino IDE中安装Arduino库。 只需从Sketch - > Include Library - > Manage Library中的IDE菜单打开Library Manager。 然后搜索“rosserial”。 如果您需要处理Arduino草图但不想设置完整的ROS工作站,这将非常有用。

 

整理起来

重新启动IDE后,您应该看到示例中列出的ros_lib:

或者在windows之中:

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

rosserial_arduino 中文教程1:Arduino IDE设置 的相关文章

  • 将 Arduino RGB LED 从一种颜色渐变为另一种颜色?

    目前 我已成功让 LED 灯循环显示我选择的八种颜色 一切都工作正常 除了我想要一种更自然的感觉 并且想要从一种颜色褪色 过渡到下一种颜色 而不是让它们互相替换 到目前为止 这是我的代码 int redPin 11 int greenPin
  • 如何在Arduino上将int转换为字符串?

    如何转换 int n 到一个字符串 以便当我通过串行发送它时 它作为字符串发送 这是我到目前为止所拥有的 int ledPin 13 int testerPin 8 int n 1 char buf 10 void setup pinMod
  • 批处理文件:从串口接收数据并将其写入txt文件

    我正在尝试通过 USB 串行端口从 Arduino 提取一些数据并将其写入 txt 文件 因此 我使用批处理文件 Windows 7 普通cmd 它发送例如 d 从 Arduino 请求所需的数据 收到 d 后 Arduino 开始向 PC
  • 在 Android 上将 USB 波特率从 9600 更改为 115200

    我有一个 Arduino 它以 115200 波特率串行发送数据 有一个应用程序以 9600 波特率从 Arduino 接收数据 代码是 Arduino USB serial converter setup Set control line
  • Arduino:字符串到整数得到奇怪的值

    我想转换一个String to an int 我所能找到的就是你必须将 String 转换为 char 数组 然后将该数组转换为int 但我的代码产生奇怪的值 我无法弄清楚问题是什么 void ledDimm String command
  • printf 的包装

    我在Arduino下编码 我想开发串行打印格式化功能 所以我尝试使用sprintf未知大小的缓冲区 基本上 我们可以避免谈论 Arduino 及其串行输出 并考虑将文本写入缓冲区 然后使用printf 我试过这个 include
  • 如何将 char 数组定义为常量?

    这里是 C C 菜鸟 我已经在头文件中定义了它 typedef unsigned char BitChar 9 8 data bytes chars and one width byte char extern BitChar BitFon
  • PySerial 从 Arduino 读取线路的延迟

    我正在使用带有基本 DigitalReadSerial 设置的 arduino uno 如下所述 http arduino cc en Tutorial DigitalReadSerial http arduino cc en Tutori
  • 经典蓝牙 (2.1) 设备可实现的最小数据包延迟是多少?

    我正在使用 RN42 http www microchip com wwwproducts en RN42 http www microchip com wwwproducts en RN42 蓝牙模块以 115200 波特率 UART S
  • 静态 uint8_t 数组的输入过程和类型

    我目前正在尝试将 Arduino IDE 中的整数变量转换为静态 uint8 t 数组的值 我在用 include
  • C#读取Arduino

    我正在尝试制作一个从 Arduino 读取传出信号的应用程序 但我无法使其在 C 中工作Windows 窗体 http en wikipedia org wiki Windows Forms 仅在控制台中 我的 C Windows 窗体代码
  • Arduino:连接字符串时崩溃和错误

    我尝试将 AES 256 加密的输出连接到一个字符串 将此字符串与从 Android 手机发送的加密字符串进行比较 基本上 连接似乎有效 但在几次运行后会出现错误 不可读的字符 字符串变得更短而不是更长 或崩溃 它是可重现的 重启后在同一点
  • AVRDUDE Android Arduino ioctl 错误

    我之前的问题 Android 无法使用 AVRDUDE 与 Arduino 通信 https stackoverflow com questions 15596376 android cannot talk to arduino using
  • 如何为 Arduino 或类似的微控制器编写 JavaScript 编译器? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我意识到这个问题会引起一些人的注意 并且我意识到 JavaScript 传统上是一种解释性语言 请让我解释一下 我是一名专门从事 We
  • 如何使用GSM模块SIM800和Arduino Uno发送短信?

    我正在尝试通过 SIM800 GSM 模块从 Arduino 发送短信 消息到达给定号码 但格式不正确 它显示 消息格式不支持 我在这里添加了我的代码 非常感谢您的快速回复 include
  • SIM900 GSM/GPRS 未获得正确的 AT+CREG?回答

    我使用的是带有 IComsat SIM900 GSM GPRS 扩展板的 Arduino UNO 使用以下教程 Arduino 实时 GPS 追踪器 http www samaria me uk 2011 12 arduino live g
  • 是否可以在 Arduino 上运行 ZeroMQ

    我想知道是否可以通过 ZeroMQ 与 Arduino 进行通信 我想使用 Arduino 来控制一些设备 并希望将大部分应用程序放在计算机上 为此 如果 Arduino 和控制器可以通过 Zeromq 以及 WiFi 或以太网扩展板进行通
  • 使用 Ardulink 命令 Arduino Uno

    我试图在我的 JAVA 应用程序中使用 Ardulink 库来命令我的 Arduino Uno 但没有成功 我不知道我错过了什么 这是我的代码 Link link Link getDefaultInstance boolean connec
  • 在声明对象之前在全局函数中使用类的成员函数

    我有一个事件处理函数 在该函数中调用了类的成员函数 事件处理函数在类 cpp 文件中声明 但不是类的一部分 它不是成员函数 当我编译代码时 编译器表示该函数在范围内 因为它正在调用全局事件处理函数中的成员函数 我的问题如下 有没有办法在全局
  • 编译器:如果条件始终为真/假怎么办

    我想到了条件和编译器 我正在为 Arduino 编写一个应用程序 因此我需要该应用程序尽可能快 在我的代码中我有这个 define DEBUG false if DEBUG String pinName pinName Pin pinNam

随机推荐

  • 【单片机毕业设计】【mcuclub-dz-060】基于单片机的智能衣柜控制系统

    最近设计了一个项目基于单片机的智能衣柜控制系统 与大家分享一下 一 基本介绍 项目名 智能衣柜 项目编号 mcuclub dz 061 单片机 STC89C52 功能简介 1 通过DHT11检测衣柜内温湿度 当温度或湿度超过上限值 则启动风
  • MySQL递归查询——数据平坦化新思维

    最近在做Oracle到MySQL的数据库的移植过程 两者之间的诸多差别 比如MySQL不支持ADO 函数不一致 唯一索引限制不一样等等 都易于解决 但有一个问题却困扰我们良久 Oracle的递归查询 select from start wi
  • 【C++学习第六讲】第一章练习题(含源代码)

    显示自己的姓名和地址 就是简单使用cout函数进行输出 源代码如下 include
  • CentOS7 快速搭建VNC Server 实现服务器远程控制台访问(Java Viewer)

    CentOS7 快速搭建VNC Server 实现服务器远程控制台访问 Java Viewer 前言 工作中会有使用到VNC的时候 尤其是做服务器运维相关工作的时候 往往远程管理网和办公网或者生产环境相互隔离 远程管理的工作就会变的复杂 因
  • Vue.js学习笔记

    在开始学习Vue js的时候 为了加深记忆 也为了日后在翻阅的时候可以快速找到自己想要的东西 特此在这里记录下我认为需要记录的知识点 在这里也分享给大家 希望可以给需要的你们提供一些帮助 具体内容还请看 Vue js官网 双向数据绑定 指令
  • java merkle树,Merkle树的实现

    简介 本篇文章是对Merkle tree的解释 Merkle tree是一种应用在比特币中的技术 本文的目标是通过代码来理解它的实现过程 环境 Jdk 1 8 0 66 Idea Merkle树 Merkle tree 哈希树 是一种数据结
  • JavaScript switch语句和循环

    1 switch 语句 1 用于基于不同的条件来执行不同的动作 2 如何使用switch结构 备注 default 关键词来规定匹配不存在时做的事情 3 比较switch和多重if结构 相同点 都可以实现多分支结构 不同点 switch 只
  • JavaScript 判断数组和对象

    有时候 我们需要识别一个变量是数组还是对象 例如进行深拷贝时 这里提供三种方法识别数组还是对象 1 Array isArray Array isArray 用于确定传递的值是否是一个Array 2 constructor 数组的构造函数是A
  • 数据分析工具--pandas

    一 简介 1 1定义 Pandas是一个强大的分析结构化数据的工具集 它的使用基础是Numpy 提供高性能的矩阵运算 用于数据挖掘和数据分析 同时也提供数据清洗功能 Pandas 是 Python 的核心数据分析支持库 提供了快速 灵活 明
  • 鲁棒性

    鲁棒性 鲁棒是Robust的音译 也就是健壮和强壮的意思 它是在异常和危险情况下系统生存的关键 比如说 计算机 软件在输入错误 磁盘故障 网络过载或有意攻击情况下 能否不死机 不崩溃 就是该软件的鲁棒性 所谓 鲁棒性 是指控制系统在一定 结
  • react 配置组件路径引用 @ 来表示src根路径

    create react app 创建的项目 看不到 webpack 相关的配置文件 需要先暴露出来 使用如下命令即可 npm run eject 在config中修改配置文件 webpack config js resolve alias
  • Java的类名与文件名必须一致

    1 Java保存的文件名必须与类名一致 2 如果文件中只有一个类 文件名必须与类名一致 3 一个Java文件中只能有一个public类 4 如果文件中不止一个类 文件名必须与public类名一致 5 如果文件中不止一个类 而且没有publi
  • TrueType入门:基本概念

    奇技指南 本文作者李松峰 资深技术图书译者 翻译出版过40余部技术及交互设计专著 现任360奇舞团Web前端开发资深专家 360前端技术委员会委员 W3C AC代表 本文转载自奇舞周刊 OpenType是TrueType的扩展 本文全流程介
  • RuntimeError: DataLoader worker (pid(s) 46220) exited unexpectedly

    raise RuntimeError DataLoader worker pid s exited unexpectedly format pids str from e RuntimeError DataLoader worker pid
  • 对象的访问定位

    Java栈的本地变量表中 存储着一个reference数据 其中存储着一个引用 reference就是用来操作堆上的具体对象的 而一个引用如何定位和访问堆中对象的具体位置 有两种方式 句柄和直接指针 1 句柄 Java堆中划分一块内存作为句
  • 【CTF】AWDP总结(Web)

    目录 CTF AWDP总结 Web 什么是adwp 六种状态 防御 赛前准备 第一时间上waf 注意文件上传的路径 patch包 攻击 CTF AWDP总结 Web 什么是adwp AWDP是一种综合考核参赛团队攻击 防御技术能力 即时策略
  • sudo rosdep init ERROR: cannot download default sources list from:解决办法

    sudo rosdep init ERROR cannot download default sources list from 解决方法 进入 etc hosts文件目录 2 进入到hosts 文件 root ros vm2 etc ge
  • 为一个团队的架构师,怎么提高团队的工作效率

    为一个团队的架构师 怎么提高团队的工作效率 问题1 前端代码开发慢 新人不懂前端知识怎么处理 制定前端常用功能的学习视频 案例文档 将大家经常遇到的问题或者表单 放到案例文档中 目的 方便去查找前端问题的解决方案 规范 写成markdown
  • libcurl使用注意

    libcurl使用注意 注意点1 现象 http短连接超过一定次数后一直返回错误7 即CURLE COULDNT CONNECT 过程有打印 Immediate connect fail for 114 116 228 34 Too man
  • rosserial_arduino 中文教程1:Arduino IDE设置

    rosserial arduino 中文教程 专栏 原文 http wiki ros org rosserial arduino Tutorials 说明 本教程逐步介绍如何设置Arduino IDE以使用rosserial 教程级别 BE