【DRONECAN】(二)DRONECAN_GUI_TOOL使用

news2024/10/1 19:41:24

【DRONECAN】(二)DRONECAN_GUI_TOOL使用

前言

DRONECAN_GUI_TOOL是DRONECAN官方开发的一个DRONECAN调试工具,在上一篇文章已经介绍过DRONECAN的背景了,这篇文章主要介绍一下DRONECAN_GUI_TOOL的使用。

DRONECAN_GUI_TOOL在开发DRONECAN中有较大的好处,因为可以直观的分析接收和发送DRONECAN的信息。

以一张图为例:

右边窗口可以看到接收的DRONECAN数据,左边显示的是接入DRONECAN网络的设备,当然DRONECAN_GUI_TOOL不止这些功能,还有很多高级的功能(此处暂不展开,只介绍基础的功能)。

安装

安装DRONECAN_GUI_TOOL工具也很简单,只需要使用Python命令:sudo pip install dronecan_gui_tool 。这里我的Python版本是3.8.10,其他版本应该也行。

使用

安装完成以后在命令行使用命令: sudo dronecan_gui_tool 打开工具,这里最好加上sudo,不然有可能会出现端口没有权限的问题。
打开的界面如下图:

然后就可以选择can设备了,因为我的电脑接入了一个CAN调试器,这里我选“CAN0”,这里注意CAN调试器不要用传统的USB转CAN模块,传统的USB转CAN不能在Linux中转换成CAN设备而是一个普通串口,因此不能直接对接DRONECAN_GUI_TOOL,这里需要适配CAN驱动的USB转CAN模块,我也制作了一个CAN调试模块:

感兴趣可以上我淘宝小店购买:https://item.taobao.com/item.htm?spm=a21n57.1.0.0.2d4e523cKCQmHo&id=714508320070&ns=1&abbucket=0#detail。
在这里插入图片描述

选择好了端口之后,波特率设置为1M,其他默认,确认进入之后,就会出现主界面:

调试

节点设置:左上角可以设置CAN设备的节点ID,设置完成后,点击后面的√,就OK了。
下面进行测试,我用了两个CAN模块进行互通,如下图所示:

然后ubuntu中用ifconfig查询到两个CAN端口:

下一步,在命令行进行简单的CAN收发测试,可以看到can0和can1能够正常的收发:

下一步,打开dronecan_gui_tool,这是我的两个can设备配置:

下一步,配置好了之后,进入主界面,一个ID设置为10,另一个设置为11。

下一步,进行DRONECAN测试,先在一个can打开监视窗口:

在另一个can打开Acutator Panel,发送驱动信号:

设置为如下:

然后在can监视窗口可以看到能够收到actuator信号了,如下图所示,和发送设置的数据一模一样:

总结

上述就是DRONECAN_GUI_TOOL的基本用法,DRONECAN_GUI_TOOL最好配合can模块进行学习和研究,因为我们大多数都用的串口调试,所以can这方面研究比较少,其实DRONECAN并不难,只是我们缺少有利的调试工具和教程,我之前也在网上查过DRONECAN的教程,多数都在讲概念和理论,对初学者来说是一头雾水,而我认为最好的学习方法就是实战。完成上述学习后,就可以进行下一步研究,比如和ardupilot飞控进行调试,扩展ardupilot飞控功能、移植DRONECAN等等。这些后面都会继续介绍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/788387.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【从零开始学习JAVA | 第三十一篇】异常体系介绍

前言: 本文我们将为大家介绍一下异常的整个体系,而我们学习异常,不是为了敲代码的时候不出异常,而是为了能够熟练的处理异常,如何解决代码中的异常。 异常的两大分类: 我们就以这张图作为线索来详细介绍一…

Spring Cloud【SkyWalking日志、SkyWalking告警 、Skywalking自定义告警规则】(十五)

目录 分布式请求链路追踪_SkyWalking日志 分布式请求链路追踪_SkyWalking告警 分布式请求链路追踪_Skywalking自定义告警规则 分布式请求链路追踪_SkyWalking日志 POM中引入相关依赖 Skywalking8.4.0版本开始才支持收集日志功能&#xff0c;同时pom需引用以下依赖。 <…

如何理解教育数字化转型?

一、教育数字化转型 教育数字化转型是指将传统的教育方式和教学方法通过应用数字技术进行改进和创新&#xff0c;实现教育过程的数字化、网络化、智能化。它包括利用数字技术改变教育内容的呈现方式、改变组织方式、改变评估和反馈方式。 教育数字化的目的是为了提高教育的效率…

KubeVela篇06:Kubevela Addon插件安装原理

addon支持从本地、git仓库、helm chart仓库安装,最终原理都相同,因此我们以本地安装为例。 完整流程如下: 从指定目录读取一个完整的addon安装包。 根据metadata.yaml配置文件,校验插件要求的kubevela、k8s的版本,不满足版本要求则终止安装。 根据metadata.yaml配置文件…

MS VC 2022开发Linux应用记录之02篇-开发调试Linux QT应用

MS VC 2022开发Linux应用记录之02篇 1. 安装QT5 apt-get update apt-get install build-essential apt-get install qtcreator apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools apt-get install qtcreator apt-get install qt5* apt-get install li…

LeetCode 热题 100(三):普通数组。53. 最大子数组和、 56. 合并区间、189. 轮转数组、238. 除自身以外数组的乘积

一、题目一&#xff1a; 53. 最大子数组和 题目要求&#xff1a; 思路&#xff1a;贪心算法。 求每个区间的和。 局部最优&#xff1a;当前“连续和”为负数的时候立刻放弃&#xff0c;从下一个元素重新计算“连续和”&#xff0c;因为负数加上下一个元素 “连续和”只会越…

硬件系统工程师宝典(33)-----EEPROM电路如何设计?

各位同学大家好&#xff0c;欢迎继续做客电子工程学习圈&#xff0c;今天我们继续来讲这本书&#xff0c;硬件系统工程师宝典。 上篇我们了解了嵌入式应用中应用领域不同&#xff0c;所采用的CPU也不同&#xff0c;不过CPU部分电路的设计过程都较为相似。并且&#xff0c;我们…

抖音seo源码开发技术解析

抖音seo矩阵系统源码开发部署基于PHP语言&#xff0c;结合视频剪辑基础框架逻辑&#xff0c; 一、 抖音SEO源码开发技术解析主要包括以下内容&#xff1a; 抖音SEO的概念&#xff1a;简单介绍抖音SEO的概念、作用和流程。 SEO优化技巧&#xff1a;详细讲解SEO优化的技巧&…

C++ - list介绍 和 list的模拟实现

list介绍 list 是一个支持在常数范围内&#xff0c;任意位置进行插入删除的序列式容器&#xff0c;且这个容器可以前后双向迭代。我们可以把 list 理解为 双向循环链表的结构。 于其他结构的容器相比&#xff0c;list在 任意位置进行插入和函数的效率要高很多&#xff1b;而li…

JavaScript:Promise 组合器

如果可以实现记得点赞分享&#xff0c;谢谢老铁&#xff5e; Promise在 JavaScript 中并不是一个新概念。它们是表示异步操作的最终完成或失败及其结果值的对象。 Promise 有三种可能的状态&#xff1a;pending – 初始状态&#xff08;仍在等待&#xff09;、已完成– Promis…

[NLP]使用Alpaca-Lora基于llama模型进行微调教程

Stanford Alpaca 是在 LLaMA 整个模型上微调&#xff0c;即对预训练模型中的所有参数都进行微调&#xff08;full fine-tuning&#xff09;。但该方法对于硬件成本要求仍然偏高且训练低效。 [NLP]理解大型语言模型高效微调(PEFT) 因此&#xff0c; Alpaca-Lora 则是利用 Lora…

Qt6 Qt Quick UI原型学习QML第七篇

文章目录 效果演示QML语法 ClickableImageV2.qmlQML语法 EasingCurves.qml时钟小球滚动QML 源码## 时钟小球滚动QML解释 语法解释参考动画片动画元素应用动画可点击图像V2上升的物体第一个对象第二个对象第三个对象缓和曲线分组动画并行动画连续动画嵌套动画 效果演示 QML语法 …

给APK签名—两种方式(flutter android 安装包)

前提&#xff1a;给未签名的apk签名&#xff0c;可以先检查下apk有没有签名 通过命令行查看&#xff1a;打开终端或命令行界面&#xff0c;导入包含APK文件的目录&#xff0c;并执行以下命令&#xff1a; keytool -printcert -jarfile your_app.apk 将 your_app.apk替换为要检查…

MybatisPlus查询条件为空字符串或null问题及解决

参考&#xff1a;https://www.yii666.com/blog/292928.html 解决办法 mybatisplus的条件构造器方法 eq()、like()等这些方法能支持第三个参数 condition condition是一个布尔值&#xff0c;当condition为false 时&#xff0c;当前这个条件方法不会生效&#xff0c;即生成的s…

曲线拟合曲面拟合(MATLAB拟合工具箱)位置前馈量计算(压力闭环控制应用)

利用PLC进行压力闭环控制的项目背景介绍请查看下面文章链接,这里不再赘述。 信捷PLC压力闭环控制应用(C语言完整PD、PID源代码)_RXXW_Dor的博客-CSDN博客闭环控制的系列文章,可以查看PID专栏的的系列文章,链接如下:张力控制之速度闭环(速度前馈量计算)_RXXW_Dor的博客-CSD…

flash attention 2论文学习

flash attention作者Tri Dao发布了flash attention 2&#xff0c;性能为flash attention的2倍。 优化点主要如下&#xff1a; 一、减少 non-matmul FLOPs A00中由于tensor core的存在&#xff0c;使得gpu对于浮点矩阵运算吞吐很高&#xff0c;如FP16/BF16可以达到312 TFLOPs/…

【弹力设计篇】聊聊熔断设计

为什么需要熔断 熔断这个词一听从生活中就是保险丝超过一定的温度后自动断开&#xff0c;以此来保护家用电器&#xff0c;属于电路中自我保护装置。如果没有熔断&#xff0c;那么家用电器一定会损坏的。 进一步再来分析一下&#xff0c;在分布式系统中&#xff0c;各个系统之间…

建立TCP连接的各个系统调用

TCP 连接的过程图 服务器 socket() 函数 socket() 返回的 sockfd 是一个描述符。socket()对应于普通文件的打开操作。普通文件的打开操作返回一个文件描述字&#xff0c;而socket()用于创建一个socket描述符&#xff08;socket descriptor&#xff09;&#xff0c;它唯一标识…

PX4仿真jMAVSim没有界面

切换java版本,使用java-8 sudo update-alternatives --config java删除旧文件 rm -rf Tools/jMAVSim/out编辑accessibility.properties 文件&#xff1a; sudo gedit /etc/java-8-openjdk/accessibility.properties注释掉下面这行 #assistive_technologiesorg.GNOME.Acessi…

笔试题:统计字符串中某字符串在其出现的字符个数

笔试题&#xff1a;统计字符串中某一子串的字符个数&#xff1a;例如字符串aabbcd,有aabb:4,ab:2 哈哈&#xff0c;这道题是小编面试音视频龙头企业的笔试题&#xff0c;以下是我写的代码&#xff1a;如果有错误&#xff0c;希望可以指正!!! 解题思路&#xff1a;利用双指针i和…