ros 双wan配置_基于ROS搭建简易软件框架实现ROV水下目标跟踪(九)--程序解析之PWM波下发...

模块对应cabin_controllers/serial_to_mcu。模块实现的功能为监听网络中PWM矩阵信息,将其转换成十六进制数据通过串口下发至MCU,实现对推进器电机的控制。模块数据的串口通信借助了ros的serial工具包(sudo apt-get install ros-melodic-serial),网上比较多使用方法,在此就不做介绍了。当然我还是推荐源码安装(链接)。

在demo中,实际上水下灯的控制信息亦通过串口下发至MCU,实现对灯亮度的控制。

为了方便阅读程序,在此还是贴出实验中自定义的电机协议。

f789983a43a7ebe88219084d2b39ec51.png

水下灯的协议:

8ce69d5bdcd9318670da34a8d0bb0a0f.png

一、输入输出

dc0732d8f46eab602eb98c6491dae48e.png

监听topic:

(1)/command/pwm,格式:cabin_msgs::PwmStamped,推进器PWM矩阵信息;

(2)/command/light_intensity,格式:std_msgs::Int64,水下灯亮度信息;

输出:

HEX数据流。

二、端口号及baudrate的设置

nh_private

也可以在serial_to_mcu.launch中随时调整端口号及baudrate。

三、串口通信初始化设置

try{ser.setPort(serial_port_);ser.setBaudrate(baudrate_);serial::Timeout to = serial::Timeout::simpleTimeout(1000);ser.setTimeout(to);ser.open();
}
catch(serial::IOException& e){ROS_ERROR_STREAM("Unable to open port!!!");return -1;
}if(ser.isOpen()){ROS_INFO_STREAM("Serial Port initialized...");
}
else{return -1;
}

若端口号及baudrate配置正确,串口应该能正常打开。注意,程序运行前应给端口权限,否则无法通信。以demo中的测试为例,端口号为ttyUSB0,指令sudo chmod 777 /dev/ttyUSB0。

四、pwmToHex()函数

数据由十进制转十六进制。

五、sendPWMData()函数

每收到一个PWM波矩阵信息,将其由十进制转换成十六进制后,依据协议封装, 下发。

ser.write(s_buffer, s_buffer_size);

上述代码段为下发一次数据。

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

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

相关文章

2018php项目实战视频教程,2018PHP实战技术VIP在线学习视频课程

课程目录:1-1 疯狂讲义之web简介2-1 从搭建PHP开发环境开始2-2 第一个PHP程序2-3 PHP变量相关知识2-4 PHP数据类型2-5 PHP数据类型之进制转换2-6 PHP数据类型之浮点型2-7 PHP数据类型系统函数简介3-1 PHP数据类型字符串的声明与定义3-2 数据类型之数组、资源、null类…

Struts1.x在MyEclipse中的环境搭建和配置

2019独角兽企业重金招聘Python工程师标准>>> (一) 先解压Struts-1.3.10-all.zip的文件夹Struts-1.3.10-all备用 -> 打开MyEclipse -> 新建一个 web project -> 在工程名上按右键鼠标选 Properties -> 弹出 Properties 面板 …

iphone固件降级_iPhone无法开机怎么办?三种快速维修方法

苹果手机的流畅让许多用户为之买单,但毕竟是电子产品,难免会有一些故障,其中无法开机就是一个很头疼的问题,一方面担心手机报废,一方面担心修理费过高,而造成 iPhone 无法开机的原因有很多,这里…

strspn函数php,php strspn函数怎么用?

strspn()函数是PHP中的一个内置函数,语法为strspn(string,charlist,start,length),用于返回在字符串中包含 charlist 参数中指定字符的数目。php strspn()函数怎么用?strspn() 函数返回在字符串中包含 charlist 参数中指定的字符数目。语法&a…

【转载】架构师需要了解的Paxos原理、历程及实战

原文链接,请参见:http://weibo.com/ttarticle/p/show?id2309403952892003376258 数据库高可用性难题 数据库的数据一致和持续可用对电子商务和互联网金融的意义不言而喻,而这些业务在使用数据库时,无论 MySQL 还是 Oracle&#x…

酷冷至尊官方psu计算工具_酷冷至尊为Raspberry Pi推出Pi Case 40机壳,提供被动散热、卖27美元起...

Raspberry Pi(树莓派)是众所周知的廉价Single Board Computer,虽然名字里面有个“电脑”,但与我们一般广泛认知的台式机不同,它基本都是裸着一块主机板来使用,显得很极客、创客,当然也还是有一些玩家自制或者小作坊给R…

dede plus ad js.php,织梦程序中plus文件作用介绍及安全设置

官方网站下载了Dedecms安装包以后,解压出来,有一个uploads文件,这里面的文件夹才是网站的安装文件,里面文件很多,今天织梦58就主要介绍下plus文件夹里面的各个功能模块,如果你只是做一个宣传网站的话&#…

一个websocket 可以多个页面创建吗_实战分享|给我一个Puppeteer,没有爬不了的网站

Puppeteer 是 Chrome 开发团队在 2017 年发布的一个 Node.js 包,用来模拟 Chrome 浏览器的运行。我们团队从 Puppeteer 刚发布出来就开始成为忠实用户了(主要是因为 PhantomJs 坑太多了),本文主要在介绍 Puppeteer 的同时,结合我们平时的实践…

Jquery实战——横纵向的菜单

横纵向的菜单效果&#xff0c;点击纵向菜单显示其子菜单。鼠标指向横菜单的时候。显示其子菜单&#xff0c;鼠标离开&#xff0c;子菜单隐藏。 HTML代码&#xff1a; <span style"font-size:18px;"><!DOCTYPE html> <html xmlns"http://www.w3.o…

基于php的工厂管理系统,PHP设计模式——工厂模式

工厂模式&#xff0c;工厂方法或者类生成对象&#xff0c;而不是在代码中直接new。 使用工厂模式&#xff0c;可以避免当改变某个类的名字或者方法之后&#xff0c;在调用这个类的所有的代码中都修改它的名字或者参数。示例&#xff1a;Test1.phpclass Test1{static function t…

c++ 工厂模式_大连中山融雪剂工厂自营工厂批发

摘要&#xff1a; 大连中山融雪剂工厂自营工厂大连中山 源头工厂一站式采购 直发 大量库存 优势柠檬酸 欢迎选购 柠檬酸(Citric Acid&#xff0c;简称CA)是一种重要的有机酸&#xff0c;又名枸橼酸&#xff0c;分子式C₆H₈O₇&#xff0c;无色晶体&#xff0c;常含一分子结晶水…

开源Registry项目Harbor源代码结构解析

2019独角兽企业重金招聘Python工程师标准>>> 上周我们介绍了Harbor开源企业级容器Registry的架构&#xff0c;获得了社区很多朋友的反馈和建议&#xff0c;再次一并感谢&#xff0c;希望和大家一起&#xff0c;共同建设一个优秀的开源项目。本文请Harbor项目工程师尹…

php curl 关闭tcp连接,BASH CURL:顺序运行时,请勿关闭请求之间的连接

我正在尝试编写一个BASH命令,该命令使用CURL将GET请求发送到两个不同的网页,但使用相同的连接.对我来说,就像向登录页面发送GET请求以向服务器进行身份验证,然后第二个请求模仿自动重定向到主页,这将发生在Web浏览器中(通过元刷新标记).我需要链接请求,因为主页的内容(由服务器…

苹果怎么关闭系统自动更新_你经过我的同意了吗?论手机系统自动更新

说起手机系统的更新&#xff0c;相信大致是有两个党派&#xff0c;一个是有出必追&#xff0c;第一时间更新到最新系统&#xff0c;体验新特性&#xff0c;修复已知BUG&#xff0c;二就是保守派&#xff0c;认为买来时自带的系统版本即是最好用的&#xff0c;不喜升级&#xff…

mysql手动安装配置,mysql8.0.11 winx64手动安装配置教程

首先跟大家唠一唠家常&#xff0c;随着MySQL迅速的更新&#xff0c;MySQL突飞猛进已经更新到了8.0版本&#xff0c;那么它和我们之前用的5.X版本有什么明显的区别那?首先给大家看下MySQL5.X自带表的查询速度之后献上MySQL8.0的自带表的查询速度一样的数据结果显而易见&#xf…

苹果照片未删却不见了_iPhone手机照片不见的解决方法

遇到iPhone手机中的照片不见了这种问题&#xff0c;相信大家都很着急&#xff01;不过着急也没用&#xff0c;照片也不会自己回来&#xff0c;SO!跟着清弦瞧瞧下面几种iPhone手机照片不见的解决方法吧&#xff01;一、ios系统BUG&#xff1a;iPhone系统有时会出现一些BUG&#…

windows azure虚拟机创建——快速创建,库模板创建

在 Windows Azure 上创建新虚拟机是一件非常轻松的事情。只需使用浏览器访问 Windows Azure 管理门户&#xff0c;选择左侧的“虚拟机”选项卡&#xff0c;然后单击底部命令栏中的“新 建”按钮。这里我们有两种方式可以选择&#xff1a;快速创建创建虚拟机或者从库中选择模板来…

python 编程快速上手,Python编程快速上手

**部分 Python编程基础**章 Python基础1.1 在交互式环境中输入表达式1.2 整型、浮点型和字符串数据类型1.3 字符串连接和复制1.4 在变量中保存值1.4.1 赋值语句1.4.2 变量名1.5 **个程序1.6 程序剖析1.6.1 注释1.6.2 print()函数1.6.3 input()函数1.6.4 打印用户的…

苹果屏幕一半失灵一半好的_佛说:一半一半(写的真好!)

阅读本文前&#xff0c;请您先点击上面的“蓝色字体”&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到文章了。每天都有分享&#xff0c;完全是免费订阅&#xff0c;请放心关注。注&#xff1a;本文转载自网络&#xff0c;不代表本平台立场&#xff0c;仅供读…

php 期望参数1为资源,PHP:mysql_fetch_array()期望参数1是资源,布尔给定

Possible Duplicate:07000我会在我的网站上的标题中显示,并且不会出现这种错误,我也不知道如何解决这个问题.谁能帮我&#xff1f;这是add_answer.php文件&#xff1a;include("mysql_forum_test.php"); // Get value of id that sent from hidden field$id$_POST[id…