- 博客(51)
- 资源 (23)
- 收藏
- 关注
原创 mavros话题订阅后无法触发回调
使用树莓派与pixhawk通信,安装好mavros,树莓派与pixhawk串口连接。既然发布话题配置了best_effort,订阅者也需要配置,否则读取不到信息。查看节点之间的关系,包含了话题发布与订阅,在连接图上可以看到和预想的一致。从发布者找问题,在rqt_graph图谱上可以查看发布的话题配置信息。自己写了个一模一样的话题发布出来,也可以订阅到,说明订阅者没有问题。有1个订阅者,说明已经订阅上了,话题名称和话题类型已经对上。编译运行节点,无法触发回调函数,一句打印都没看到。查看话题的类型可以去。
2024-03-14 18:22:07 300
原创 ros2运行action动作通讯报错
action服务端运行起来后,在另一个窗口模拟客户端发送指令报错。配置写action服务端的包的CMakeList.txt。找不到serverBase,这属于库函数。写完action服务端后编译报错。定义action结构体。
2024-02-01 11:47:23 421
原创 mavros2的humble版本源码编译
直接从github下载源码包mavros-2.6.0.tar.gz。拷贝到ubuntu22的树莓派中, 解压。中间可能要安装很多依赖,总结如下。编译完后source一下。
2024-01-19 18:17:11 416 2
原创 ubuntu20固定串口名称
把用户名加入了dialout用户组,因tty设备隶属于dialout用户组,重启系统。查看串口设备的id,id为1a86和7523。的10-local.rules文件中添加。(username为用户民),reboot重启最好。
2024-01-11 15:52:36 521
原创 mjpg-streamer配置其它端口访问视频
在mjpg-streamer-experimental目录下是没有conf 相关的配置文件的,所以只能是修改源码,再重新编译安装。cd mjpg-streamer/mjpg-streamer-experimental进入目录。默认是使用8080,但是有时候会端口冲突,所以修改端口可以提高程序的适配性。sudo mplayer tv://可打开摄像头并访问到视频。下载zip包,下载的源码,需要编译安装。在dev下可查看到video*安装完可以查看到多个so文件。网页访问即可看到视频。
2023-12-11 11:10:52 517
原创 pixhawk在树莓派上直接烧录固件
pixhawk通过usb接入树莓派中,在烧录过程如果出现以下情况则需要拔插usb线。会擦除原有固件(如果有)才会烧录新的固件,还会验证,出现以下则成功。树莓派4B+ubuntu20.04。在ardupilo根目录下敲指令。
2023-12-01 16:45:09 505
原创 pixhawk接深度计
在mission planner上往pixahwk中安装ardusub固件,直接usb连接电脑用qgc或mp打开都可以看到,qgc按理说是可以显示深度值的,但是我并没没有找到在哪配置,其中mp可以显示压力值。pixhawk的IIC接口接个IIC扩展板,可扩展出4个接口,然后深度计的接头直接插入任意一个IIC扩展口即可。在QGC中可以看到两个压力传感器,其中SPI1是pixhawk内部的。在MP中配置press_abs2即可显示深度计输出的压力值。
2023-11-07 17:47:18 138
原创 使用mavros在pixhawk和树莓派4B之间通信
pixhawk上有多个串口,我使用telem 2 与树莓派通讯,为了避免 RTT too high for timesync的告警(波特率太低),需要设置串口固定波特率为921600。power口接电流计,电流计接电源单独供电(我使用pixhawk的usb口与树莓派相连时会断电重启,可能是电压不稳定,所以单独供电)树莓派4B有40个引脚,其中的TXD,RXD是用于做串口通讯的,需要配置一下才能使用。,建议使用杜邦线,我没有接5v,所以是3根线,树莓派和pixhawk都是单独供电。
2023-10-26 16:39:39 841 1
原创 在linux系统中使用c++调用mavlink接口打包和解析消息
使用 mavlink_parse_char 解析每一个字节,它已经做了识别一条报文的头部,尾部,校验的工作。在mavlink中查找#141,altitude是海拔,不是attitude#30(姿态)如下。FD开头的就是mavlink2.0的消息,msgid是三个字节(低, 中, 高)调用mavlink_msg_to_send_buffer转换消息结构。拿到数据类型后再进行消息转换,并解析对应类型的数据。调用pack相关的接口打包消息。建立udp连接把消息发送出去。8D 00 00 是 141。
2023-10-24 08:47:53 422
原创 pymavlink简单使用
虚拟串口工具 Virtual Serial Port Driver 6.9。pymavlink使用UDP发送消息到指定ip和端口。串口/网络调试助手 sscom5.13.1.exe。2. 在mavlink官网查看#33的消息结构。虚拟串口 COM1, COM2。pymavlink连接COM1。十六进制21对应十进制33。调试助手建立UDP连接。调试助手连接COM2。
2023-10-24 00:01:42 327
原创 mission planner通过串口连接3DR数传,远程飞控
数传已配对,3DR x6型号的数传可以自己配对(长按对码键3秒),不需要在mp上的初始设置里面配对。电量计的输入端接24V电源,飞控的输入是5v电源,电量计上有个模块可以分压将5v的电输入到飞控。pixhaw2.4.8已布线,有单独的电源供电,通过电量计接power接口。点击连接,飞行数据页面可以看到三个方向的角度(偏航,俯仰,横滚)数传接在接口telem 2上(一个接飞控,一个接电脑)将数传直接插入usb接口,在设备管理器中查看端口号。摆动飞控,页面的数值跟着变化,成功。
2023-10-16 17:29:25 417
原创 在Mission Planner上校准外置GPS罗盘
把pixhawk的朝向和GPS罗盘的朝向放置成一致的(箭头朝向一样,可以把GPS罗盘叠加在pixhawk上,单手拿捏,方便转动),点击“start”按键,会听到1s一次的滴滴声,然后一起转动,随便转,各种转。当两条进度条满后,会有弹窗提示reboot,确定,等待连接断开,重新插拔USB线,再次连接,会听到清脆的蜂鸣声,校准完毕。根据提示,转动pixhawk,按空格键进行下一个步骤,成功后提示success。内置罗盘容易受干扰,外置罗盘比较稳定,所以最好使用GPS罗盘。已经校准pixhawl自带的加速度计。
2023-10-13 17:14:48 443
原创 MissionPlanner编译过程
在根目录下的ExtLibs文件下是链接的其它github源码,此时部分为空文件夹,需要使用命令递归下载。网络好时一次就能下载完,一般需要多次运行以上命令,晚上下载会快些,运行以上命令直到敲击回车没有输出。使用必应搜索visual studio 2022,第一个网站就是。找到项目根目录下的.sln后缀的文件,打开即可。编译,找到 “生成”, 点击“生成解决方案”完成,有一个软件窗口和命令行窗口。编译完成,错误为0,警告忽略。下载社区版,强大,够用。
2023-09-21 11:53:11 348
原创 ardupilot的编译过程
pixhawk使用基于 ARM 架构的 STM32 芯片,ubuntu自带的 gcc 编译器是针对 X86 架构的,所以需要安装。在/usr/local下新建arm文件夹,使用cp或mv命令拷贝压缩包到arm下。检查根目录下的modules文件夹下的源码是否下载完整,否则更新下载。在根目录下就又waf文件,该文件依赖python3环境运行。使用以下命令可以在ArduPilot上获得受支持的板的列表。编译结果会在根目录下的build文件夹中生成。查看waf版本,有版本号输出则已经配置成功。
2023-09-20 11:26:48 732
原创 windows10关闭geoserver开机自启动
GeoServer-2.20.4(依赖java jdk8~11,最新版的GeoServer-2.23.2依赖jdk 11-17)geoserver安装在windows 10后,开机会自启动,观察任务管理器,会发现很消耗内存和cpu,而且导致电脑开机变慢。双击条目打开GeoServer的服务设置,在启动类型的下拉框中选择“”手动“”,点击右下角的“”应用“,再点击“确定”该方法关闭windows 10上的开机服务都有效。在最右边的列表中找到GeoServer。windows搜索,输入“服务”
2023-08-21 12:03:16 173
原创 vue3新建项目打包部署
输入项目名称 → 选择前端框架 → 选择项目类型 → 创建完毕。拷贝打包好的dist文件到nginx根目录下的html文件夹下。运行nginx ,浏览器访问即可。
2023-06-30 17:25:42 532
原创 windows下将vue项目部署到nginx遇到404,500错误
软件环境 windows10 , vue 2.0, nginx-1.22.1, npm 8.1.1在vue项目中使用命令打包项目,在根目录下得到文件夹在nginx官网下载最新的1.22.1版本,在windows下直接解压使用拷贝dist文件夹到nginx根目录下的html文件夹里面在cmd命令行中进入nginx根目录,使用命令启动nginx(重载, 杀死进程打开浏览器,根据配置的端口和ip访问项目。
2023-06-20 12:01:56 1417
原创 pyinstall打包Flask成exe文件遇到的3个问题并解决
环境 win10 + python 3.11 + flask 2.2.3使用flask作为web项目的后台服务器,准备部署到windows10中,额外使用Flask-Socketio模块推送消息到前端,使用pyinstaller工具打包安装pyinstaller在flask项目的根目录下使用以下命令打包在flaks项目根目录下生成两个文件夹和文件夹里的若干文件到dist目录下可以看到文件双击打开exe文件或在cmd命令下输入app.exe打开文件。
2023-06-15 15:36:34 1640
原创 flask-socketio most likely due to a circular import
在Flask项目中建立socketio服务想在各个模块中都可以调用socketio的服务,这种消息就可以在任意地方广播出去。
2023-03-29 15:08:42 116 1
原创 ros2 failed to shutdown: rcl_shutdown already called on the given context
ubuntu22.04+ros2 humble,开发节点,使用键盘ctrl+c强制结束节点运行,使用try catch捕获异常,使得终端不打印报错。
2023-02-08 11:23:53 165
原创 AttributeError: ‘xxx‘ object has no attribute ‘_sa_instance_state‘
flask搭建的web项目,使用sqlalchemy工具查询数据库。
2023-01-11 23:13:23 748
原创 发布离线地图的多个方法
以下因为略懂,所以只是列举1. 下载地图文件地图供应商一般腾讯地图、高德地图、百度地图、谷歌地图等等下载地图文件的工具有很多,包括付费的或免费的,常见的工具有:全能电子地图下载器BIGEMAPopenStreeMap(开源)国家地理信息公共服务平台水经注迈高图太乐地图地图编辑工具有arcgis desktoparcmapqgis(开源)地图文件的格式有shptiffbmposm瓦片地图(png,jpg)2. 发布离线地图服务geoserve
2022-05-28 00:40:37 1453
原创 flask项目运行后ctrl+c无法结束进程
项目场景:使用cmd命令行运行flask项目,python run.py,项目中开启了线程,且线程是无限循环的,运行不报错,正常运行问题描述在想结束flask进程时,在cmd命令行使用ctrl+c杀死进程,但是失败,所以只能强制关闭窗口,再打开新窗口才能运行项目,繁琐原因分析:进程要结束,但是线程还在运行,导致无法杀死进程,因为进程会等待非守护线程结束后才退出:解决方案:设置所有线程为守护线程,当主线程执行结束后,所有在运行的子线程都直接结束,不管子任务是否完成,这样就完美杀死进
2022-05-12 10:18:24 1961
原创 JavaScript数组元素按行保存到txt文件中
txt文件中换行需要字符串:“\r\n”把数组中的元素用"\r\n"拼接起来arr.join(“\r\n”);使用a标签+Blob对象下载文件document.createElement(‘a’);new Blob([str]);完整代码// 创建a标签var elementA = document.createElement(‘a’);//文件的名称为时间戳加文件名后缀elementA.download = commonUtil.formatDateSelf(“YYYYmmddHHM
2022-04-25 15:28:52 3262
原创 flask No application found. Either work inside a view function or push an application context
前提flask 使用 flask_sqlalchemy 操作数据库,在视图中使用正常,在视图外使用报错RuntimeError: No application found . Either work inside a view function or push an application context·,即在内部调用函数操作数据库时报错分析sqlalchemy的实例在执行时(数据库增删改查)找不到上下文它不知道flask初始化时候,app对象,db对象是谁,也就拿不到连接数据库需要的confi
2022-03-22 18:53:10 1688 1
原创 flask_sqlalchemy插入数据时createtime时间不变
解决datetime.now() -> datetime.now,去掉()例如create_time1 = db.Column(db.DateTime, default=datetime.now)create_time2 = db.Column(db.DateTime, default=datetime.now())第一个插入的是期望的, 数据的插入时间,每条数据插入时可自动根据当前时间生成第二条是一个固定的时间, 程序部署的时间,所有的数据都是这个固定时间...
2022-03-21 10:59:37 768
原创 werkzeug routing RequestRedirect 308 Permanent Redirect None
项目场景:Flask使用websocket推送数据问题描述原因分析:redirect,地址重定向了,查看前端是否连接上websocket,结果连上就断开,一直重连,原来是地址出错了解决方案:在前端修改连接websocket的地址,在最后追加一个斜杠错误地址:ws://ip:port/websocket正确地址:ws://ip:port/websocket/...
2022-03-11 14:37:04 3820
原创 jetson nano 18.04 LTS ROS Melodic安装
学习目标:提示:这里可以添加学习目标例如:一周掌握 Java 入门知识学习内容:提示:这里可以添加要学的内容例如:1、 搭建 Java 开发环境2、 掌握 Java 基本语法3、 掌握条件语句4、 掌握循环语句学习时间:提示:这里可以添加计划学习的时间例如:1、 周一至周五晚上 7 点—晚上9点2、 周六上午 9 点-上午 11 点3、 周日下午 3 点-下午 6 点学习产出:提示:这里统计学习计划的总量例如:1、 技术笔记 2 遍2、CSDN 技术博客 3 篇
2021-11-16 12:55:31 875
面向游戏手柄编程的python脚本
2023-08-07
tcpKeppAliveAndHeartbeat.py
2021-12-16
鼠标右键事件.html
2020-06-22
java判断4个坐标是否构成正方形
2018-03-25
python简单神经网络
2017-09-18
springbootTest
2017-06-11
判断中文停用词
2017-06-01
java小程序之ArrayList的使用
2017-01-03
在ros2的foxy版本中,使用launch.py文件启动节点时,如何设置日志打印级别
2023-09-08
如何禁止Flask后台打印操作数据库的日志?
2023-07-13
vue打包部署,浏览器缓存问题访问旧的版本
2023-07-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人