TX2(RTSO-9002)上的Can 和 Ros 通信

2023-05-16

TX2(RTSO-9002)上有两个can接口,分别是P1上的5、6接口(CAN1_H,CAN1_L);7、8接口(CAN0_H,CAN0_L)。

CAN和ROS通信主要是通过ros_canopen(http://wiki.ros.org/ros_canopen?distro=kinetic)中的模块实现的。

1. 安装ros_canopen的各个模块:

1) 可以通过源码安装: https://github.com/ros-industrial/ros_canopen/tree/kinetic-devel

2)通过终端命令安装:

$ sudo apt-get install ros-kinetic-can-msgs

$ sudo apt-get install ros-kinetic-canopen-master

$ sudo apt-get install ros-kinetic-canopen-402

$ sudo apt-get install ros-kinetic-canopen-motor-node

$ sudo apt-get install ros-kinetic-canopen-chain-node

$ sudo apt-get install ros-kinetic-socketcan-bridge

$ sudo apt-get install ros-kinetic-socketcan-interface

2. 安装can_utils

$ git clone https://github.com/linux-can/can-utils.git

$ cd can-utils 

$ make

$ sudo make install

can_utils主要用于配置TX2上can0和can1的属性,同时还能通过cansend和candump指令来测试can接口的收发是否正常。

可以参考 https://blog.csdn.net/xuezhunzhen9743/article/details/81877757

3. 配置can

在配置can之前,需要手动使能can接口:

sudo modprobe can

sudo modprobe can-raw

sudo modprobe can-bcm

sudo modprobe can-gw

sudo modprobe can_dev

sudo modprobe mttcan

可以将以上指令写成脚本,这样就不用每次都输入这么多指令,直接运行脚本即可:

创建脚本文件init_can

在文件中输入:

#!/bin/bash

modprobe can

modprobe can-raw

modprobe can-bcm

modprobe can-gw

modprobe can_dev

modprobe mttcan

保存并退出文件

更改文件权限:

$ chmod 777 init_can

运行脚本:

$ sudo ./init_can

即完成了can接口使能。

 

can0和can1配置:

sudo ip link set can0 type can bitrate 500000

sudo ip link set up can0

sudo ip link set can1 type can bitrate 500000

sudo ip link set up can1

配置完成后,通过ifconfig,可以看到can0和can1的信息:

4. roscan通信

ROS和can通信主要是通过ros_canopen中的socketcan_bridge来实现的。

通过从https://github.com/ros-industrial/ros_canopen/tree/kinetic-devel下载的源码,可以简单来看看通信的实现过程:

在ros_canopen-kinetic-devel/socketcan_bridge/src中可以看到里边有socketcan_to_topic_node.cpp以及topic_to_socketcan_node.cpp。

ROS和can的通信就是通过运行这两个结点实现的。

我们以socketcan_to_topic_node.cpp为例:

57和58行的函数原型在socketcan_to_topic.cpp中有具体的实现。

可以看出,ros将转化后的can信息以Frame.msg的格式通过received_messages这一话题进行发布。

可以进行如下测试:

在配置好can0之后(见3),

$ rosrun socketcan_bridge socketcan_to_topic_node

出现如下信息:

此时,通过rostopic list 可以发现,已经有/received_messages发布。然后在终端输入

$ rostopic echo /received_messages

此时由于can0还没有产生数据,所以topic中并没有东西。

 

在socketcan_bridge/test中,有一个launch文件,vcan0_to_vcan1.launch.该launch文件主要实现的是can0和can1的通讯(通过socketcan_to_topic_node和topic_to_socketcan_node实现)launch 文件中将topic_to_socketcan_node中的sent_messages话题映射为received_messages.  可以将launch文件中的参数<param name="can_device" value="vcan0" /><param name="can_device" value="vcan1" /> 分别改成can0和can1来进行实测。

 

如有错误还请指出。

转载请注明:https://mp.csdn.net/postedit/86229776

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

TX2(RTSO-9002)上的Can 和 Ros 通信 的相关文章

  • STM32 CAN通信的学习笔记总结(从小白开始)

    知识来源于互联网 回馈于互联网 目录 1 总体概述 1 1 基本概念 1 2 通讯方式 1 3 为什么使用CAN 1 4 CAN的协议及组成 2 上帝视角看CAN的通讯过程 2 1 数据传输原理实现 2 2 通信的整个过程 2 2 1 空闲
  • GG-CNN代码学习

    文章目录 1 源码网址 https github com dougsm ggcnn 2 数据集格式转化 下载后的康奈尔数据集 解压完之后里面的格式 里面的 tiff图像通过 txt文件转化得到 python m utils dataset
  • Ubuntu16.04安装ROS Kinetic详细步骤

    文章目录 ROS安装 配置Ubuntu软件仓库 设置sources list 设置密钥 更新Debian软件包索引 安装ROS 初始化 rosdep 环境配置 构建工厂依赖 测试安装 开发环境 ROS安装 ROS Kinetic只支持Wil
  • ModuleNotFoundError: No module named ‘rosbag‘

    1 ModuleNotFoundError No module named rosbag File opt ros kinetic lib python2 7 dist packages roslib launcher py line 42
  • Hypervisor介绍及在智能驾驶的应用

    转自Hypervisor 智能座舱和智能驾驶融合的关键技术 腾讯新闻
  • Ubuntu 周立功CAN分析仪 USBCAN-II 驱动

    首先从官网https www zlg cn Index Search search key linux的下载资料界面下载 Linux驱动 USBCAN I I II II 2A I MINI安装驱动 USBCAN II新版驱动基于libus
  • 解决ros安装 使用roscore命令测试问题

    本人安装教程完成ROS的安装后 在进行测试如图1命令 出现 解决办法输入完命令1后要输入命令2才行 即可测试成功 测试成功的界面如下
  • rosprofiler 安装和使用

    rosprofiler wiki 页面 http wiki ros org rosprofiler rosprofiler package 下载rosprofiler和ros statistics msgs 放到工程目录下编译 https
  • STM32F407 CAN1 CAN2

    注意CAN1可以单独使用 CAN2要开启CAN1时钟才能使用 u8 CAN1 Mode Init u8 mode GPIO InitTypeDef GPIO InitStructure CAN InitTypeDef CAN InitStr
  • 【ROS】usb_cam相机标定

    1 唠叨两句 当我们要用相机做测量用途时 就需要做相机标定了 不然得到的计算结果会有很大误差 标定的内容包括三部分 内参 外参还有畸变参数 所以标定的过程就是要求得上面这些参数 以前弄这个事估计挺麻烦 需要做实验和计算才能得到 现在通过ro
  • (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
  • 《机器人操作系统入门》课程代码示例安装出错解决方法

    问题描述 学习 机器人操作系统入门 课程时 在Ubuntu 16 04 上安装了kinetic 安装ROS Academy for Beginners时依赖总是报错 如下所示 rosdep install from paths src ig
  • ubuntu18.04命令安装ros2

    ROS2官方文档 本教程为apt get命令安装方式 官网教程有点问题 借鉴一下大佬的安装方式 文章目录 1 安装ROS2 1 1 安装秘钥相关指令 1 2 授权秘钥 1 3 添加ROS2软件源 1 4 安装 2 设置环境 可选但是推荐 2
  • 无法加载 LZ4 支持的 Python 扩展。 LZ4 压缩将不可用

    我是 ROS 新手 我刚刚打开终端并输入roscore和另一个终端并键入rostopic node我收到这个错误 上面写着 无法加载 LZ4 支持的 Python 扩展 LZ4 压缩将不可用 我搜索并去了https pypi org pro
  • 从 pcl::PointCloud 中删除点

    我是 PCL 新手 我正在使用 PCL 库 并且正在寻找一种从点云中提取点或将特定点复制到新点的方法 我想验证每个点是否符合条件 并且我想获得仅包含优点的点云 谢谢 使用 ExtractIndices 类 将要删除的点添加到 PointIn
  • 不使用ros编译roscpp(使用g++)

    我正在尝试在不使用ROS其余部分的情况下编译roscpp 我只需要订阅一个节点 但该节点拥有使用旧版本ROS的节点 并且由于编译问题 我无法将我的程序与他的程序集成 我从git下载了源代码 https github com ros ros
  • 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
  • catkin_make后找不到ROS包

    我根据 ROS 的 Wiki 页面创建了一个 ROS 工作区 我还使用创建了一个包catkin create pkg在我刚刚创建的工作区下 然后 按照 ROS Wiki 中的步骤使用以下命令构建包catkin make 构建包后 我插入命令
  • ROS安装错误(Ubuntu 16.04中的ROS Kinetic)

    中列出的步骤顺序http wiki ros org kinetic Installat 已被关注 尝试在Ubuntu 16 04中安装ROSkinetic 输入以下命令时出错 sudo apt get install ros kinetic
  • 如何使用一个凉亭同时创建两个地图?

    如下图所示 现在我的gazebo正在运行2个slam gmapping包 首先是 turtlebot slam gmapping 发布到 map 主题 第二个是 slam gmapping 发布到与第一个相同的 map 主题 我想创建一个新

随机推荐

  • 计算机硬盘备份和恢复解决方案

    问题背景 xff1a 项目需要提供一份系统使用的计算机硬盘备份和恢复方案 xff0c 方便计算机软硬件故障后快速的恢复系统 之前项目使用的工具是Macrium reflect工具 xff0c 但这个工具现在收费了 xff0c 而且功能比较多
  • Python函数详解(一)——函数的定义、调用及变量

    今天继续给大家介绍Python相关知识 xff0c 本文主要内容是Python函数的定义 调用及变量 一 Python函数的定义与调用 在Python中 xff0c 如果我们要反复的进行一种相同或者类似的代码 xff0c 那么我们就可以将这
  • vscode SSH 保存密码自动登录服务器vs code

    先在win local mac 上拿到公钥和私钥 xff0c 然后再把这公钥copy 进服务器 让ssh 身份认证转化为秘钥认证 xff08 mac也是一样的 xff09 1 创建 RSA 密钥对 第一步是在客户端机器 xff08 通常是您
  • 普罗米修斯

    普罗米修斯 xff08 Prometheus xff09 概述 Prometheus是一套开源的监控 报警 时间序列数据库的组合 xff0c 起始是由SoundCloud公司开发的 从2016年加入CNCF xff0c 2016年6月正式发
  • ROS-mavros-PX4加速度控制

    要写的飞控算法本来的输入是roll pitch以及推进力 xff0c 由于PX4不支持输入具体大小的推进力 xff0c 改用三方向加速度 xff08 可用旋转矩阵进行变换 xff09 进行控制 但是PX4的setpoint accel实际控
  • C# 委托(Delegate)与事件(Event)、Func与Action

    一 委托 1 概念 xff1a 从内存角度看 xff0c 委托是一个存储方法的容器 xff0c 当使用该容器时 xff0c 会把容器里面的方法全部执行一遍 xff0c 容器里面的方法可增 43 61 可减 61 从IL Microsoft中
  • STM32 UART串口通信IDLE空闲中断的使用步骤

    参考了各路大神的资料 xff0c 蒙蔽了半天 xff0c 终于学会了 xff0c 记录一下 xff0c 以后忘了可以回来复习参考 一 首先在stm32cube中配置打开对应uart串口的中断 二 工程main函数调用 HAL UART EN
  • 三大通信协议(1)UART

    目录 一 UART通信协议简介 二 UART通信时序 三 UART RS232 TTL关系阐述 1 简介 2 电平转换 四 实例 1 程序代码 2 仿真验证 总结 一 UART通信协议简介 UART xff08 Universal Asyn
  • CAD难学吗?

    首先 xff0c CAD程序不容易学习 这些程序不像学习Microsoft Word或Excel 大多数CAD应用程序都有较高的学习曲线 一些参数和3D CAD应用程序的学习曲线相当陡峭 由于它们的复杂性 xff0c 学习的承诺会更长 CA
  • 安卓strings.xml文件中的msgid的作用__2019.09.12

    lt string name 61 34 name 34 msgid 61 34 012345678912345 34 gt 34 name Name 34 lt string gt 是系统返回信息的标识id这个信息的唯一性 xff0c 你
  • RealSense SDK编译

    0 uname r 查看linux的内核版本 1 xff0c ls l dev sda 查看USB设备的设备文件 2 sudo dmesg tail n 50 查看是否能检测到相机 3 查看 librealsense doc install
  • Linux-磁盘管理

    第14章 Linux系统管理 磁盘管理 第14章 Linux系统管理 磁盘管理 1 磁盘的基本概念 2 磁盘的基本结构 3 磁盘的预备知识 4 磁盘基本分区Fdisk 5 磁盘基本分区Gdisk 6 磁盘挂载方式Mount 7 虚拟内存Sw
  • 网络---数据链路层

    数据链路层 一 数据链路层的信道类型 1 点对点信道 这种信道使用一对一的点对点通信方式 2 广播信道 这种信道使用一对多的广播通信方式 xff0c 因此过程比较复杂 xff0c 广播信道上连接的主机很多 xff0c 因此必须使用专用的共享
  • 第二讲:双目vio视觉前端以及后端重投影残差

    双目vio视觉前端以及后端重投影残差 vins双目 本次主要讲解vio双目系统的视觉前端部分和后端融合的重投影残差部分 xff0c 以vins切入做为分析 xff0c 并赋代码注释解析 主要包含以下五部分内容 xff11 xff09 双目特
  • Eigen 中Geometry (几何模块)

    该代码源于 视觉SLAM十四讲 Eigen 中Geometry xff08 几何模块 xff09 主要操作有旋转向量和旋转矩阵之间的转换 xff1b 欧拉角 xff08 旋转矩阵变欧拉角 xff09 xff1b 欧式变换 xff08 旋转
  • C++实现http发起GET/POST请求

    目录 HTTP请求报文解析HTTP响应报文解析C 43 43 实现http发起GET请求 HTTP xff08 Hyper Text Transfer Protocol xff0c HTTP xff09 超文本传输协议 xff0c 是一个简
  • C++/Qt音视频通话开发MetaRTC源码解读,音频推流和拉流

    本章内容解读MetaRTC开源代码 xff0c 无任何二次开发 xff0c 用于学习交流 MetaRTC是国人开发的开源项目 xff0c 适用各种场景音视频二次开发 xff0c 可以去git阅读README xff0c 我们使用相对成熟的版
  • ROVIO论文笔记

    最近看了ROVIO的相关论文 1 3 1 是15年作者发表的会议论文 xff0c 内容特别简要 xff0c 根本看不懂 3 是作者发表在杂志上的论文 xff0c 对 1 进行了改进 xff0c 内容也进行了大量的扩充 2 是作者16年发表的
  • TX2(RTSO-9002)环境配置(ROS,mavros,arduino,ttyACM,串口)

    TX2 环境配置 1 TX2 ubuntu16 04换源 备份文件 xff1a sudo cp etc apt sources list etc apt sources init list 打开文件 xff1a etc apt source
  • TX2(RTSO-9002)上的Can 和 Ros 通信

    TX2 RTSO 9002 上有两个can接口 xff0c 分别是P1上的5 6接口 xff08 CAN1 H xff0c CAN1 L xff09 xff1b 7 8接口 xff08 CAN0 H xff0c CAN0 L xff09 C