ROS节点中的CAN命令

2023-05-16

前言:由于在使用TX2的过程中,需要使用CAN通讯的方式使我的机器人底盘与TX2进行命令收发,而我的其他传感器都建立在ROS框架下,为了以后能使数据交互我希望把底盘数据也放到我的ROS框架里面。
1.ros_canopen
ros_canopen是ROS系统专门为在ROS框架内启动CAN节点所做的一个软件包,在ROS节点中使用CAN时,需要首先将CAN口挂载到ROS中,具体可以参考链接:

https://blog.csdn.net/YiYeZhiNian/article/details/100296371

后面的echo命令也是很有效的,可以帮助我们确认节点是否连接,因为你在通过终端发送CAN命令的时候rostopic echo 同样是可以监控到的。
2.socketcan
在ROS中发布CAN命令主要采用的是套接字的方式进行发送的,这里主要的思想就是我需要建立一个节点,将我的套接字放到这个节点中,当我启动这个节点的时候节点中的套接字自动运行并将CAN数据发送出去,具体的套接字的结构可以参考下面的链接:

https://blog.csdn.net/lybhit/article/details/78663347

或者

https://blog.csdn.net/yuanlulu/article/details/7220060

这些对于socketcan的用法来说讲的很详细了,但是需要注意的是这些都是讲socketcan本身的用法的,如果要放在ROS里面去用的话写cpp文件的时候要记得外层的ROS框架是不可少的。
3.实现流程:
在编写好自己的ROS节点并且通过编译的情况下:
(1)启动roscore
(2)新建终端,挂载can0:

 rosrun socketcan_bridge socketcan_to_topic_node

(3)启动can0监控:

rostopic echo /received_messages

(4)启动带socketcan的节点文件,这里我是在amin文件夹下的hello.cpp文件内修改的:

rosrun amin hello

正常情况下如果socketcan没有写错的话在rostopic echo里面可以有数据反馈的,包括了can0发送出去的数据以及can0接收到的数据。
附上一段关于socketcan的程序以及监测结果:
在这里插入图片描述
在这里插入图片描述
由于挺多人问我要源码的,最近有空上传了一份在下载中心,这个代码比较简单,是实现最基本的通讯的,如果想实现更复杂的功能的可以适当更改一下:

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

ROS节点中的CAN命令 的相关文章

  • 思岚RPLIDAR A2 在ubuntu 16.04上的测试

    1 下载雷达ROS包 首先在github上下载rplidar的ros包 下载指令为 默认安装了git git clone https github com Slamtec rplidar ros git 在ubuntu上创建工作空间 并将该
  • STM32 CAN通信的学习笔记总结(从小白开始)

    知识来源于互联网 回馈于互联网 目录 1 总体概述 1 1 基本概念 1 2 通讯方式 1 3 为什么使用CAN 1 4 CAN的协议及组成 2 上帝视角看CAN的通讯过程 2 1 数据传输原理实现 2 2 通信的整个过程 2 2 1 空闲
  • 无人飞行器智能感知竞赛--模拟器安装

    开发环境 win11 wsl2 注意事项 请配合视频使用 如果不看视频会对下面的配置过程迷惑 因为一开始我是想安装在ubuntu18 04的 中途发现ubuntu18 04没有ros noetic 所以转入ubuntu20 04配置 视频链
  • 关于相机与激光雷达数据采集与标定

    最近在做一个关于车路协同的项目 需要做一个路侧系统 传感器有摄像头和激光雷达 相机和激光雷达联合标定费了老半天劲 在此记录一下 雷达时间戳不对 导致摄像头和雷达的数据无法对齐 解决办法 修改雷达驱动发布点云消息时的时间戳 相机内参标定可以使
  • CAN总线的报文分析(三)

    系列文章目录 文章目录 系列文章目录 前言 一 数据帧 最常用 1 帧起始 2 仲裁段 3 控制段 4 数据段 5 CRC段 6 ACK段 7 帧结束 二 远程帧 三 错误帧 四 过载帧 五 帧间隔 总结 前言 CAN总线上的节点发送数据都
  • Ubuntu镜像下载地址

    镜像地址https launchpad net ubuntu cdmirrors
  • GG-CNN代码学习

    文章目录 1 源码网址 https github com dougsm ggcnn 2 数据集格式转化 下载后的康奈尔数据集 解压完之后里面的格式 里面的 tiff图像通过 txt文件转化得到 python m utils dataset
  • Hypervisor介绍及在智能驾驶的应用

    转自Hypervisor 智能座舱和智能驾驶融合的关键技术 腾讯新闻
  • Ubuntu18.04配置Seetaface6

    目录 一 下载安装Qt软件 1 安装包下载 2 安装Qt 3 配置 二 下载源码 三 编译工具 四 编译 1 编译OpenRoleZoo 2 编译SeetaAuthorize 3 编译TenniS 五 运行 1 修改lib路径 2 buil
  • CAN协议详解-01

    CAN 是控制器局域网络 Controller Area Network 的简称 它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的 并最终成为国际标准 ISO11519以及ISO11898 是国际上应用最广泛的现场总线之一 差
  • Raspberry Pi 上 ROS 服务器/客户端通过GPIO 驱动硬件

    ROS 服务 现在 想象一下你在你的电脑后面 你想从这个服务中获取天气 你 在你身边 被认为是客户端 在线天气服务是服务器 您将能够通过带有 URL 的 HTTP 请求访问服务器 将 HTTP URL 视为 ROS 服务 首先 您的计算机将
  • 难懂?这样理解SPI与CAN很简单!

    难懂 这样理解SPI与CAN很简单 什么是串行通讯 为什么仍需使用串行通讯 SPI与CAN SPI 接口特点 CAN现场总线特点 什么是串行通讯 在正式进入主题前 我么先来介绍一下什么叫做 串行通信 串行通信是计算机的一种数据传输通信方式
  • (ros/qt报错) FATAL: ROS_MASTER_URI is not defined in the environment

    安装qt之后 明明打开roscore但是qt运行跟ros有关的节点时报错 FATAL 1450943695 306401842 ROS MASTER URI is not defined in the environment Either
  • 进入 docker 容器,exec 丢失 PATH 环境变量

    这是我的 Dockerfile FROM ros kinetic ros core xenial CMD bash 如果我跑docker build t ros docker run it ros 然后从容器内echo PATH 我去拿 o
  • 在 CLion 中设置 ROS 包

    我正在使用 CLion C IDE 来编辑 ROS 包 我可以通过打开CMakeLists txt文件 但是 我收到一个错误 FATAL ERROR find package catkin 失败 在工作区和 CMAKE PREFIX PAT
  • 无法加载 LZ4 支持的 Python 扩展。 LZ4 压缩将不可用

    我是 ROS 新手 我刚刚打开终端并输入roscore和另一个终端并键入rostopic node我收到这个错误 上面写着 无法加载 LZ4 支持的 Python 扩展 LZ4 压缩将不可用 我搜索并去了https pypi org pro
  • 不使用ros编译roscpp(使用g++)

    我正在尝试在不使用ROS其余部分的情况下编译roscpp 我只需要订阅一个节点 但该节点拥有使用旧版本ROS的节点 并且由于编译问题 我无法将我的程序与他的程序集成 我从git下载了源代码 https github com ros ros
  • 在 Ubuntu 18.10 上安装 ROS Melodic

    I can t是唯一对 Cosmic 与 Wayland 和 Melodic 的组合感兴趣的人 我会坦白说 我似乎已经在 XPS 13 9370 上成功管理了此操作 或者至少安装脚本 最终 成功完成 然而 有一个非常棘手的解决方法 无论结果
  • 在 ROS - Python 中使用来自多个主题的数据

    我能够显示来自两个主题的数据 但无法在 ROS 中实时使用和计算这两个主题的数据 用 Python 代码编写 您有想法存储这些数据并实时计算吗 谢谢 usr bin env python import rospy import string
  • 无法在 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

随机推荐

  • 基于MATLAB的倒立摆系统控制

    摘要 倒立摆系统是由导轨 小车和各级摆杆组成 小车依靠直流电机施加的控制力 可以在导轨上左右移动 位移和摆杆角度信息由传感器测得 目标是使倒立摆在有限长的导轨上竖立稳定 达到动态平衡 由于倒立摆系统本身所具有的高阶次 不稳定 多变量 非线性
  • 枚举方法详解

    package test1 public enum Day SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY NOVALUE public static Day toDay S
  • Promise限制并发请求数量

    所谓并发请求 xff0c 就是指在一个时间点多个请求同时执行 当并发的请求超过一定数量时 xff0c 会造成网络堵塞 xff0c 服务器压力大崩溃或者其他高并发问题 xff0c 此时需要限制并发请求的数量 假如等待请求接口1000个 xff
  • 部署安装cobbler,实现批量安装CentOS7、Ubuntu17.04、Ubuntu18.04(快捷版)

    文章目录 一 部署安装cobbler1 编辑cobbler配置文件2 持续安装所需文件3 配置tftp4 安装pykickstart5 设置密码6 cobbler管理DHCP7 编辑启动应用服务脚本 二 镜像导入以及自动化文件必读须知1 C
  • IDEA中找不到maven插件Plugin‘ ‘ not found 解决

    1 lt artifactId gt maven compiler plugin lt artifactId gt lt version gt 3 8 0 lt version gt 等 报红 1 1首先要找设置 File Settings
  • 树莓派 安装 Ubuntu MATE18

    Ubuntu MATE18 树莓派 pi 64 raspberrypi span class token punctuation span span class token operator span sudo service cups s
  • Munkres 分配算法

    匈牙利方法 xff08 或 Kuhn 算法 xff09 是由4个基本步骤组成的迭代过程 该方法使用 最小行集 覆盖 操纵 成本矩阵的零点 xff0c 当所需的 最小行集 等于给定成本矩阵的维数时 xff0c 过程终止 Munkres 算法是
  • SORT 多目标跟踪算法笔记

    SORT 是一种简单的在线实时多目标跟踪算法 文章要点为 xff1a 以 IoU 作为前后帧间目标关系度量指标 xff1b 利用卡尔曼滤波器预测当前位置 xff1b 通过匈牙利算法关联检测框到目标 xff1b 应用试探期甄别虚检 xff1b
  • ros:kcf算法+行人检测 = 让机器人自动识别并追踪行人

    实现目标 xff1a 机器人检测到有人走过来 xff0c 迎上去并开始追踪 追踪算法使用kcf算法 xff0c 关于kcf追踪的ros库在github地址 https github com TianyeAlex tracker kcf ro
  • 人物交互(human object interaction)论文汇总-2019年

    1 Relation Parsing Neural Network for Human Object Interaction Detection 1 1 总述 提出一种关系解析神经网络RPNN xff0c 由两部分组成 xff1a 物体 身
  • ROS nodelet 使用详解

    本文以nodelet tutorial math为例来了解nodelet的原理及使用方法 xff0c 理论知识参考http blog csdn net zyh821351004 article details 52143309 代码地址 x
  • MPU6050

    简介 xff1a MPU6050是InvenSense 公司的 MPU6050 作为主芯片 xff0c 能同时检测三轴加速度 三轴陀螺仪 三轴角速度 的运动数据以及温度数据 利用 MPU6050 芯片内部的 DMP 模块 xff08 Dig
  • 字符串切割函数strtok、strtok_s、strtok_r的区别

    strtok函数 头文件 xff1a include lt string h gt 函数原型 xff1a char strtok char str const char delimiters 参数 xff1a str xff1a 待分割的字
  • VMware 虚拟机怎么识别不了ISO文件

    1 安装 a class baidu highlight href https www baidu com s wd 61 E8 99 9A E6 8B 9F E5 85 89 E9 A9 B1 amp tn 61 44039180 cpr
  • hadoop集群查看路径

    管理界面 xff1a http master 8088 HDFS 主界面 xff1a http master 50070 HDFS 文件界面 xff1a http master 50070 explorer html
  • Ubuntu20.04 通过VNC实现远程桌面连接

    前提 xff1a 工控机上预留至少三个以太网口 xff0c 一个接路由器 xff0c 一个接上位机 一 通过无线进行远程连接 1 了解被连接电脑的信息并设置无线连接的网络地址 优先连接无线网络 xff1a 网络地址 xff1a 192 16
  • 结束也是开始

    到昨天为止 精通ORACLE 10G 备份与恢复 算是告一段落了 xff0c 接下来准备学习一下性能调优方面的 xff0c 然后再回过来复习一下 精通ORACLE 10G 备份与恢复
  • TX2小结之CAN通信

    TX2上有2个CAN控制器 xff0c CAN控制器需要通过CAN收发器连接到物理总线上 具体参阅原理图和相关技术参考手册 下载地址 xff1a https developer nvidia com embedded downloads 1
  • ROS中启用CAN

    1 源码安装canopen 从官网下载canopen至Ubuntu xff0c 下载地址 xff1a https github com ros industrial ros canopen tree kinetic devel 终端输入 x
  • ROS节点中的CAN命令

    前言 xff1a 由于在使用TX2的过程中 xff0c 需要使用CAN通讯的方式使我的机器人底盘与TX2进行命令收发 xff0c 而我的其他传感器都建立在ROS框架下 xff0c 为了以后能使数据交互我希望把底盘数据也放到我的ROS框架里面