ROS下进行串口通讯

2023-05-16

文章目录

  • 前言
  • 一、安装串口功能包
  • 二、串口接受程序
  • 三 、查看串口号


前言

在使用工控机时,经常需要和其他主控进行信息交流,串口通讯作为使用最为广泛的形式,因此,了解如何在ros下进行串口的接发数据极为重要。

硬件条件:ubuntu18.04 安装ROS系统


一、安装串口功能包

sudo apt-get install ros-melodic-serial

二、串口接受程序

#include <iostream>
#include <ros/ros.h>
#include <serial/serial.h>
using namespace std;

//发送和接受数组
unsigned char senddata[5] = {0x01, 0x02, 0x03, 0x04,0x05};
unsigned char recdata[100] = {0};
int main(int argc,  char** argv) {
	//初始化ROS节点
    ros::init(argc,argv,"serial_port");
    ros::NodeHandle n;
	//定义串口对象
    serial::Serial sp;
    try{
            sp.setPort("/dev/ttyUSB0");
            sp.setBaudrate(115200);
            sp.setBytesize(serial::bytesize_t::eightbits);
            sp.setStopbits(serial::stopbits_t::stopbits_one);
            sp.setFlowcontrol(serial::flowcontrol_t::flowcontrol_none);
            
            serial::Timeout to=serial::Timeout::simpleTimeout(1000);

            sp.setTimeout(to);
            sp.open();
    }
    catch(serial::IOException& e){
            ROS_ERROR_STREAM("Unable to open port.");
            return -1;
    }

    if(sp.isOpen())
    {
        ROS_INFO_STREAM("Com is initialized");
    }
    else
    {
        return -1;
    }
    
    ros::Rate loop_rate(1);
    while(ros::ok()){
    	//发送数据
    	sp.write(senddata,5);
        //获取缓存区数据
        size_t n=sp.available();
        if(n != 0)
        {
            n = sp.read(recdata, n);
            for(int i = 0; i < n; i++)
            {
            //16进制显示接受到的数据
                cout << std::hex << (recdata[i] & 0xff) << " ";
            }
            cout << endl;
        }
		//	以1HZ的频率
        loop_rate.sleep();
    }
    return 0;
}

三 、查看串口号

1.查看当前终端串口号
ls /dev/tty*
2.插入临时使用的外设串口

3.再次查看终端串口号
ls /dev/tty*,看看此时多了那个串口号,就是接入的外设

4.假设该设备号为/dev/ttyUSB0,给设备赋予可读写权限
sudo chmod 777 /dev/ttyUSB0

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

ROS下进行串口通讯 的相关文章

  • ROS multi-master——multimaster_fkie配置

    多主站ROS配置和mutimaster fkie ROS版本 kinetic 操作系统 Ubuntu 16 04 multimaster fkie github 1网络配置 1 1路由器 设置无线路由器并连接两台计算机 机器人 为这两台计算
  • ROS之QtCreator开发环境搭建

    文章目录 系统环境 官方教程 安装 卸载 使用 导入工作空间 构建与运行 编写测试程序 系统环境 操作系统 Ubuntu20 04 ROS版本 Noetic 官方教程 按照官方教程或者下面笔记中的内容均能进行环境搭建 笔记中另外做了部分补充
  • ros+arduino学习(六):重构ros_lib库文件

    前言 ros lib是arduino程序和ros连接的库文件 通过使用这些库文件和相关函数 可以在arduino上通过编程使得arduino硬件开ros节点程序 这样arduino硬件就可以与上位机通过话题进行通讯 从而把arduino从传
  • 无人飞行器智能感知竞赛--模拟器安装

    开发环境 win11 wsl2 注意事项 请配合视频使用 如果不看视频会对下面的配置过程迷惑 因为一开始我是想安装在ubuntu18 04的 中途发现ubuntu18 04没有ros noetic 所以转入ubuntu20 04配置 视频链
  • V-REP安装

    小知识 是当前目录 是父级目录 是根目录 1 下载V REP 官网地址 http www v rep eu downloads html 我用ubuntu16 04下载V REP PRO EDU V3 5 0 Linux tar 2 解压安
  • ROS学习(1)——ROS1和ROS2的区别

    因为机器人是一个系统工程 它包括了机械臂结构 电子电路 驱动程序 通信框架 组装集成 调试和各种感知决策算法等方面 任何一个人甚至是一个公司都不可能完成机器人系统的研发工作 但是我们又希望自己能造出一个机器人跑一跑 验证一下自己的算法 所以
  • Ubuntu下vscode配置ROS环境

    摘要 最近准备放弃用clion开发ROS使用更主流的vscode 整理一下在ubuntu18 04下的VSCode安装和ROS环境配置流程 安装 方法一 软件商店安装 个人还是推荐使用ubuntu软件下载vscode 简单不容易出错 方法二
  • ROS rosdep update 出错方法 不需要翻墙切换之类的解决方法 ‘https://raw.githubusercontent.com/ros/rosdistro/master/inde

    系统 ubuntu18 rosdep update参考的这篇文章 https blog csdn net weixin 43311920 article details 114796748 utm source app app versio
  • ROS noetic tf demo错误处理及python版本切换

    文章目录 报错描述及解决 ubuntu20 04下python版本切换 报错描述及解决 ubuntu版本 20 04 ROS版本 noetic roslaunch turtle tf turtle tf demo launch 报错信息 t
  • ROS 笔记(01)— Ubuntu 20.04 ROS 环境搭建

    ROS 官网 https www ros org ROS 中文官网 http wiki ros org cn 1 系统和 ROS 版本 不同的 ROS 版本所需的 ubuntu 版本不同 每一版 ROS 都有其对应版本的 Ubuntu 切记
  • rosprofiler 安装和使用

    rosprofiler wiki 页面 http wiki ros org rosprofiler rosprofiler package 下载rosprofiler和ros statistics msgs 放到工程目录下编译 https
  • 最快实现一个自己的扫地机

    作者 良知犹存 转载授权以及围观 欢迎关注微信公众号 羽林君 或者添加作者个人微信 become me 扫地机介绍 扫地机器人行业本质是技术驱动型行业 产品围绕导航系统的升级成为行业发展的主旋律 按功能划分 扫地机器人分为四大系统 即导航系
  • 【ROS】usb_cam相机标定

    1 唠叨两句 当我们要用相机做测量用途时 就需要做相机标定了 不然得到的计算结果会有很大误差 标定的内容包括三部分 内参 外参还有畸变参数 所以标定的过程就是要求得上面这些参数 以前弄这个事估计挺麻烦 需要做实验和计算才能得到 现在通过ro
  • 如何将从 rospy.Subscriber 数据获得的数据输入到变量中?

    我写了一个示例订阅者 我想将从 rospy Subscriber 获得的数据提供给另一个变量 以便稍后在程序中使用它进行处理 目前 我可以看到订阅者正在运行 因为当我使用 rospy loginfo 函数时 我可以看到打印的订阅值 虽然我不
  • Caught exception in launch(see debug for traceback)

    Caught exception in launch see debug for traceback Caught exception when trying to load file of format xml Caught except
  • ROS安装错误(Ubuntu 16.04中的ROS Kinetic)

    中列出的步骤顺序http wiki ros org kinetic Installat 已被关注 尝试在Ubuntu 16 04中安装ROSkinetic 输入以下命令时出错 sudo apt get install ros kinetic
  • 如何使用 PyQT5 连接和分离外部应用程序或对接外部应用程序?

    我正在使用 ROS 为多机器人系统开发 GUI 但我对界面中最不想做的事情感到困惑 在我的应用程序中嵌入 RVIZ GMAPPING 或其他屏幕 我已经在界面中放置了一个终端 但我无法解决如何向我的应用程序添加外部应用程序窗口的问题 我知道
  • 如何从里程计/tf数据获取投影矩阵?

    我想将视觉里程计的结果与 KITTI 数据集提供的事实进行比较 对于地面中的每一帧 我都有一个投影矩阵 例如 1 000000e 00 9 043683e 12 2 326809e 11 1 110223e 16 9 043683e 12
  • 无法在 Ubuntu 20.04 上安装 ROS Melodic

    我正在尝试使用这些命令在 Ubuntu 20 04 上安装 ROS Melodic sudo sh c echo deb http packages ros org ros ubuntu lsb release sc main gt etc
  • 如何在Windows上安装机器人操作系统ROSJava?

    ROS 的文档很糟糕 一个很大的讽刺是 ROS 的 Groovy 和 ROSJava 版本的创建是为了让 Windows 等平台上的开发人员能够利用出色的机器人 SDK 而所有安装说明仍然面向 Linux ubuntu 用户 The ROS

随机推荐

  • 华为欧拉系统RPM强制卸载libffi-devel

    查看欧拉系统有没有安装这个包 yum list span class token operator span span class token function grep span libffi devel 准备离线下载时 xff0c 发现
  • 最全Arrays.sort函数举例

    Arrays sort 的作用是对括号中的数组进行排序 xff0c 时间复杂度O xff08 n logn xff09 xff0c 方法返回值为void 是在原来数组的空间基础上进行升序排序 xff0c 因此不需要定义一个数组接收它 xff
  • 【无标题】驱动设计思想P9- linux驱动(韦东山)

    linux驱动 xff08 韦东山 xff09 驱动设计思想P9 linux 驱动 61 驱动框架 43 硬件操作 61 驱动框架 43 单片机 面向对象 字符设备驱动程序抽象出file operation结构体对硬件部分抽象为led op
  • Ubuntu16.04 安装ROS 过程中遇到的问题

    操作系统 xff1a Ubuntu16 04 ROS版本 xff1a Kinetic 纯入门 xff0c 安装过程错误百出 xff0c 几乎是一步一个报错 xff0c 每执行一个命令就要各种查找解决方法 xff0c 终于用一个下午加晚上的时
  • Github学习心得(3):项目的修改

    书接上回Github创建版本库 xff0c 我们已经成功地创建了一个版本库 xff0c 并且上传了readme txt文件 在实际项目中 xff0c 我们总是要对代码进行修改 xff0c 那么就需要及时地更新Github版本库中的文件 以本
  • 解决Keil全局搜索时无法跳转的问题

    检查一下自己的工程文件路径中是否有英文括号 xff0c 如果有则删掉
  • 阿木实验室的普罗米修斯仿真平台搭建的难点和坑点

    普罗米修斯仿真实验平台搭建的难点解决 0 我为什么要辛苦搭环境 xff1f 前一段时间阿木实验室提供了一个搭好环境的镜像 xff0c 凭阿木币购买 xff0c 是真的好用 xff0c 阿木币嘛 xff0c 签一签道就会有 关于这个镜像其实还
  • Visual Studio Code无法监视此大工作空间中的文件更改的解决办法

    Visual Studio Code无法监视此大工作空间中的文件更改 xff08 错误ENOSPC xff09 当您看到此通知时 xff0c 表明VS Code文件监视程序用尽了句柄 xff0c 因为工作空间很大并且包含许多文件 在调整平台
  • Ubuntu增加交换分区即swap方法

    用交换文件的方式添加交换分区 xff0c 如下 sudo su 进入管理员模式 xff0c 会提示输入密码 cd usr mkdir swap cd swap dd if 61 dev zero of 61 swapfile bs 61 1
  • 为什么px4源码里找不到main函数?——从hello sky理解px4的编程规范

    如果你刚自学了c 43 43 xff0c 准备开始看px4的源码 xff0c 但翻来覆去找了半天没有找到一个标准的main 究其原因 xff0c 在nuttx系统里 xff0c 程序入口不是main xff0c 所以找不到任何main 如果
  • matlab提取外接盒、围盒、凸包和骨架

    宁收宁马的费呢 xff01 老子自己做的 xff0c 免费提供该大家 xff0c 卖资料的垃圾 xff0c 能收几个钱 拍一幅含多个人体目标的图像 xff0c 利用外接盒 围盒和凸包对每个人体目标区域进行表达 xff0c 并提取其骨架 ma
  • QLearning算法实现(python)

    文章目录 环境要求QLearning算法简介算法实现预设值Q表定义行为环境反馈环境更新Q学习主循环 环境要求 开发环境 xff1a python3 需要导入的包 xff1a numpy pandas time QLearning算法简介 Q
  • HTTP工作原理

    文章目录 简介 HTTP与HTTPS端口区别HTTP请求的方法OPTIONSHEADGETPOSTPUTDELETETRACECONNECT注意 xff1a HTTP 请求 响应的步骤 简介 HTTP协议定义Web客户端如何从Web服务器请
  • pandas行和列的操作

    文章目录 Series创建查增 改删 DataFrame创建查增删 columns amp index的指定 在Pandas中 xff0c Series是一维容器 xff0c DataFrame表示一个数据表 DataFrame中的任一行
  • 安装MAVROS过程 catkin:未找到命令 的问题

    PX4官网安装教程 源码方式安装 1 第一步执行 xff0c 创建文件夹 xff1b 移到创建文件夹中 mkdir p catkin ws src cd catkin ws 2 执行 catkin init 出错如下图 解决方法 xff1a
  • 数据规范化处理

    常用的三种数据规范化处理方法 常用的数据规范化处理主要有Min max规范化 Z Score规范化和小数定标规范化 下面简要介绍下三种数据规范化方法 xff0c 并用python的机器学习库SciKit Learn来实现数据变化 Min m
  • matplotlab不能显示中文解决(windows)

    汉字字体 xff0c 优先使用楷体 xff0c 找不到则使用黑体 plt rcParams 39 font sans serif 39 61 39 Kaitt 39 39 SimHei 39 正常显示负号 plt rcParams 39 a
  • ORB与CCM-SLAM

    入口函数 mono euroc cc int main int argc char argv 图像序列的文件名字符串序列 vector lt string gt vstrImageFilenames 时间戳 vector lt double
  • 在国际期刊发表人工智能和机器人文章的诀窍(WILEY)

    该次学术讨论主要讲述了如何去写论文 如何投稿 并介绍了WILEY论文投稿工具 xff0c 该工具 提供了论文撰写 xff08 包括 xff1a 图表 摘要图的生成 xff09 投稿期刊会议分析及建议等 链接 xff1a https gcb
  • ROS下进行串口通讯

    文章目录 前言一 安装串口功能包二 串口接受程序三 查看串口号 前言 在使用工控机时 xff0c 经常需要和其他主控进行信息交流 xff0c 串口通讯作为使用最为广泛的形式 xff0c 因此 xff0c 了解如何在ros下进行串口的接发数据