- 博客(2781)
- 资源 (1)
- 收藏
- 关注

原创 借助px4日志简便估计SLAM位姿时延操作方法
为了看清具体时延,可以进一步放大,对比时间戳差值,如下图所示,可以看到横轴的时间相差大概在200ms左右,可以粗略认为是SLAM位姿的时延是200ms左右,如果我们飞PX4的SLAM定位时,想修改PX4飞控中的EKF2_EV_DELAY参数,使得它更为准确,也可以基于此进行填写,EKF2_EV_DELAY参数含义是Vision Position Estimator delay relative to IMU measurements,它的可修改范围是0-300ms。我们理想中的无人机定点应该是纹丝不动的。
2025-01-30 00:18:14
767

原创 基于px4飞控日志进行SLAM估计位置和GPS经纬度的对比分析
我们平常基于PX4室外实飞SLAM定位时,想评估分析下SLAM估计的位置如何,我们可以借助于GPS数据作为位置真值进行简单对比分析(RTK更好,但是对于很多普通学生而言可能没有RTK,而GPS模块很便宜),这里介绍下,如何基于px4飞控日志进行SLAM估计位置和GPS经纬度的对比分析,这里的前提是无人机上装有GPS模块并接在了PX4飞控上,但是位置来源选择的是来自于视觉,不是GPS,也就是基于SLAM位姿进行定位飞行,而飞控日志会同时也记录下GPS的经纬高信息。10-7经度或纬度。
2024-11-03 13:28:07
1215

原创 为什么有的新手飞T265指点会偏航转90度?基于mavros源码详解px4-mavros中的ENU NED FLU FRD坐标系及位姿变换
首先介绍两个基本概念,body系和local系,body系指无人机机身,原点在机体上,随无人机移动,常见的有前左上FLU,前右下FRD,local系则是以客观世界中的一个静止的点为原点(一般是无人机起飞点),常见的有东北天坐标系ENU和北东地坐标系NED。这些都是右手系。mavros作为连接飞控端和ros端的程序,有这么四个坐标系,即飞控端的body系和local系及ros端的body系和local系:fcu_body,fcu_local,ros_body,ros_local。其中fcu_body又叫
2024-06-09 13:31:04
1885
2

原创 aruco二维码检测与aruco二维码降落原理讲解 20240422
aruco又称为aruco标记、aruco标签、aruco二维码等,其中 CharucoBoard GridBoard AprilTag 原理相通,只是生成字典不同,而AprilTag用于机器人领域或可编程摄像头比较多,而aruco CharucoBoard GridBoard则用于AR应用或智能眼镜比较多,都是用于实现精准定位,如无人机降落时就可以使用它实现精准降落。ArUco marker是一种汉明码方格图。
2024-04-22 21:22:10
4953
8

原创 写TCP UDP以及串口通信时,整型数组转字符串数组发送的便捷操作
串口通信一个udp通信,发送接口函数都是发送字符串,但是你看那个串口的发送函数ser.write(serial_msg);,注意长度由73改为了72,因为字符串数组一般末尾还会加上个"\0",所以长度会多1,这么改完编译,没有问题,运行,也控制了吊舱转动到指定角度了,看来我的理解是OK的,这么我以后可能不用专门再把整型数组转为一个二进制相同的转义字符串数组了,现在是用reinterpret_cast函数转的,以前我还更麻烦,手动写个转义字符数组出来。
2024-03-11 09:44:19
596
1

原创 T265定点指点基本原理与极简代码实现
对应掩码位置为1为不使用,为0为使用,所以想通过/mavros/setpoint_raw/local话题给无人机发送期望位置与偏航,type_mask赋值为0b100111111000,即可实现,注意coordinate_frame 需要赋值,一般为1,即为本地系。//启动服务2,设置客户端(Client)名称为set_mode_client,客户端的类型为ros::ServiceClient,//发布之前需要公告,并获取句柄,发布的消息体的类型为:geometry_msgs::PoseStamped。
2024-02-21 13:04:04
1786

原创 我感觉D435i的使用有必要写出一篇教程,怎么烧写升级固件,更改分辨率帧率,标定,发布IMU数据等等
我感觉D435i的使用有必要写出一篇教程,什么烧写固件,更改分辨率,标定,发布IMU数据等等可以说D435i涉及到的操作比较多,我感觉应该需要有这方面的一个系列教程,不知道官方有没有。。...
2021-07-21 10:05:34
6672
5

转载 机器人操作系统ROS:从入门到放弃(三) 发布接收不同消息2(里面有对geometry_msgs/PoseStamped消息的详细分析解读)
里面有对geometry_msgs/PoseStamped消息的详细分析解读,这个是非常重要的,这也本身是我们用的非常多的一种消息。转载自:https://www.jianshu.com/p/5c75c24f0fe6机器人操作系统ROS:从入门到放弃(三) 发布接收不同消息2陈瓜瓜_ARPG机器人操作系统ROS:从入门到放弃(三) 发布接收不同消息2上一讲我们讲了如何发布接收int,float和array类型的消息,这些也都算是c++自有的消息,被归纳在ROS中的std_msgs这个命名
2021-03-08 18:25:43
10212

转载 机器人操作系统ROS:从入门到放弃(四) C++类,命名空间,模版,CMakeLists介绍(这篇我很推荐,讲得很到位详细!)
转载自:https://www.jianshu.com/p/79bc4ff1a8f8?utm_source=desktop&utm_medium=timeline机器人操作系统ROS:从入门到放弃(四) C++类,命名空间,模版,CMakeLists介绍陈瓜瓜_ARPG机器人操作系统ROS:从入门到放弃(四) C++类,命名空间,模版,CMakeLists介绍由于下一讲要讲到怎么在类中pub和sub消息.那么考虑到有些同学对类不甚熟悉.我们稍微回顾一下.但关于类网上一查其实一大堆东西
2021-03-08 08:34:08
1330
1

原创 plane_communication.py可能就是XTDrone的关键程序,就像普罗米修斯的command_to_mavros.h ,和GAAS的px4_mavros_run.py几乎一样
plane_communication.py可能就是XTDrone的关键程序,就像普罗米修斯的state_from_mavros.h command_to_mavros.h 看它订阅的消息和发布的消息
2021-02-24 21:23:51
1012
5

原创 我写的ROS MAVROS librealsense(x86 TX2 树莓派) realsense-ros 普罗米修斯 普罗米修斯仿真 安装教程 PX4指令 合集
我写的ROS MAVROS librealsense reslsense-ros 安装教程合集ROS安装教程可以见:https://blog.youkuaiyun.com/sinat_16643223/article/details/107813134MAVROS安装教程可以见:https://blog.youkuaiyun.com/sinat_16643223/article/details/113868262librealsense(x86) reslsense-ros安装教程可...
2021-02-19 17:49:58
704

原创 我的ACfly-T265搭建记录
我的ACfly-T265搭建记录软件部分见:这是最开始写mavlink通信部分,但这只是单纯写,没有烧写到飞控,还没有搭建好整个硬件通信环境。只是单纯编译器编译0错误。逻辑上代码应该是OK的。https://blog.youkuaiyun.com/sinat_16643223/article/details/108916925这是真正烧到飞控上测试代码,搭建好通信的硬件环境(不是在无人机上)并真正进行和树莓派T265的mavlink通信。但是还没有真正放到实际的无人机上,无人机还没...
2020-11-08 07:27:56
1468

原创 STM32下mavlink的使用个人总结(包含对ACfly里面mavlink的分析,包含接收T265的位置信息的二次开发教程)
我一开始想既然mavlink在STM32的使用只需要调用函数就可以了,但是mavlink在STM32的代码似乎比较多,我就想起直接看它的头文件有哪些函数,结果查看头文件有巨大发现对应每种消息都有专门一个头文件,我甚至找到了vision_positon_estimate的头文件,是不是要读取某类消息只需要调用这个对应消息头文件里面的函数就可以了。在这个头文件里面我找到了似乎是对应读取某个参数的static inline uint64_t mavlink_msg_...
2020-10-04 10:31:20
9046
3

原创 ubuntu mate 18.04官网下载,烧录及安装 SSH VNC ROS MAVROS librealsense realsense-ros vision_to_mavros(我自己亲自弄的)
你首先百度搜ubuntu mate 18.04就可以发现ubuntu mate的官网,点进去然后我们点上面的download他会让你选择平台,那我们选择64位的树莓派。https://ubuntu-mate.org/download/arm64/ubuntu mate 18.04就这一个版本下载,所以不用担心上面18.04.2以为还有.1什么的。可以看到18.04支持到2021年https://ubuntu-mate.org/download/arm64/bionic/..
2020-09-03 13:31:40
17627
2

原创 快速搭建一个APMT265树莓派无人机
快速搭建一个APMT265树莓派无人机硬件:F450机架(U型脚架,还需要多买一个F330的上层板来扩展)pixhawk2.4.8 (APM3.6.11固件)树莓派3B+(我提供配置好的基于ubuntu meta 18.04的镜像)T265和数据线好盈乐天20A电调权盛自制2216电机(配1047桨,桨注意需要加垫片)富斯i6遥控器(设置方法用的苍穹四轴的教程,关键还是设置好几种飞行模式)树莓派电源线电池是5200mAh 30C猛禽360扩展板(用来固...
2020-09-02 21:42:16
7043
2

转载 基于单目视觉的四旋翼定点降落——如何通过mavros控制pixhawk(二)(这个我觉得讲得很详细)(2021.3.1现在回看发现也是对PX4官方手册里mavros-offboard代码的讲解)
这个我觉得讲得很详细,如何通过mavros去控制pixhawk mavros就是mavlink的一个封装 用mavros使无人机进入offboard模式,不是在地面站去设置的,这个我看了这篇文章才明白。这里面说到的Macros和piahawk连接的方法感觉和智能无人机课程里说到的一样。这是智能无人机课程的。这是这篇文章的https://blog.youkuaiyun.com/zhengyuxin0507/article/details/80357405基于单目视觉的四旋翼...
2020-07-26 09:07:11
5550
2
转载 开源飞控PX4姿态控制算法详解(转载,个人觉得写得最详细的一篇)
这里一定要注意我们所得的四元数qe_tilt并不能参与四元数的链式乘法运算,因为他虽然代表了B系到M系的旋转,但是旋转轴却是由N系下的两个向量叉乘计算所得,也就是在N系下,而不在B系或者M系下,解决此问题有两种方法,一种是先将旋转轴通过与旋转矩阵的运算转换到B系后再用来表示四元数。而倾斜和旋转两种运动的原理是不同的,倾斜运动是由不同电机差速运动产生的升力差形成的力矩驱使的,而旋转运动是由不同电机差速运动产生的反扭矩驱使的,前者在数值上往往要比后者大很多。
2025-03-29 21:27:12
79
原创 飞PX4的SLAM定位时查看飞控端ODOMETRY这个mavlink消息需要注意设置MAV_ODOM_LP参数
飞PX4的SLAM定位时,包括飞T265时,想查看飞控端ODOMETRY这个mavlink消息,确认位姿传入正确,注意需要把飞控参数的MAV_ODOM_LP设置为1。现在清楚为什么以前飞T265时,有时有ODOMETRY这个mavlink消息有时没有了。利用视觉或运动捕捉系统进行位置估计 | PX4 自动驾驶用户指南 (v1.14)
2025-03-26 17:38:01
415
转载 PX4 InertialNAV Filter 与 EKF2概论
本文是作者于2017年1月8日在长安大学向广大无人机研发从业者、研究人员所开设的课程讲稿。当中有一处错误,即第五页中的DCM微分方程等号右边需添加一负号,详细情况可参考文末相关文献。有谬误之处还望广大从业人员积极指正批评,本人不胜感激!科普 | PX4 InertialNAV Filter 与 EKF2概论。若有相关合作事项请联系吴荩老师。
2025-03-08 14:18:24
57
原创 对PX4姿态控制器代码的解读(deepseek分析结果)
姿态控制器的代码在文件Firmware\src\modules\mc_att_control\AttitudeControl\AttitudeControl.cpp的update函数中 ( https://mp.weixin.qq.com/s?这段代码是PX4飞控中姿态控制的核心部分,主要用于计算飞行器从当前姿态调整到期望姿态所需的角速率设定值。这段代码体现了多旋翼无人机姿态控制的典型设计:优先保证飞行稳定性(横滚/俯仰),再兼顾偏航控制,并通过前馈提升动态性能。
2025-02-20 13:39:46
1367
转载 PX4代码解析:姿态期望生成
原创 无人机系统技术 无人机系统技术 2019年09月14日 20:00引言关于PX4源码中控制器的设计部分我们前几讲已经对位置控制、姿态控制等核心函数进行了详细分析,逐行解释。今天我们就将剩下的最后一部分内容:位置控制器输出到姿态控制器输入的转换部分做一个解读。转换部分的函数就一个:vehicle_attitude_setpoint_s thrustToAttitude(const Vector3f &thr_sp, const float yaw_sp)在Firmware\src\modules\m
2025-02-19 00:03:58
63
原创 vins是基于滑窗优化的,ORBSLAM3是基于共视图优化的,所以ORBSLAM里面没有边缘化这种
vins是基于滑窗优化的,ORBSLAM3是基于共视图优化的,所以ORBSLAM里面没有边缘化这种。所说的中期数据关键,或者较大视差,可能就是指共视关键帧可以距离时间相对较远,视差相对大一些。BA优化共视关键帧,应该是ORBSLAM3精度高的原因。这里有个博文也有这么总结。
2025-02-15 23:42:00
213
原创 自己对MVSNET的一些整理
这里有完整的MVSNet论文的翻译这里看到部分翻译这个可以看看 基于平面扫描的多视角立体(MVS)深度学习综述-北大Zhu Qingtian 2021感觉把一些基础都讲到了,也合区3D视觉工坊里的MVSNET课程里的内容很相似。
2025-02-01 21:54:59
1152
原创 自己对多目立体匹配(MVS)的一些整理
(基于深度学习的MVS)现在发觉深度估计可以分为单目深度估计,双目深度估计(立体匹配),多目立体匹配(MVS)。而MVSNET属于多目深度估计,似乎不是双目深度估计,双目深度估计似乎也有一些专门的深度学习方法。现在感觉可以感受到一点,就是不管是单目深度估计还是双目深度估计还是多目立体匹配 都基本全面转向深度学习了。我看到对MVS概括得最多而且简单的一句话是:寻找空间中具有图像一致性的点。很多地方都看到了这句话,我个人感觉意义没那么大,说了似乎根没说一样。多目立体匹配的前世今生。
2025-02-01 21:43:36
1286
原创 一些基于ORBSLAM2修改弄的点线SLAM
相比之下,基于vins改的,没有这么多,虽然有PL-VIO PL-VINS,但是目前没什么的基于结构线的点线SLAM。整理一下基于ORBSLAM2修改弄的点线SLAM,这么多都是基于ORBSLAM2。(基于曼哈顿和结构约束的视觉里程计) 明确说了基于ORBSLAM2改的。在manhattanSLAM的论文里面看到的SP-SLAM,用来进行对比。PSL-SLAM (杨凤 东南大学 2020硕士论文 代码未开源)
2025-01-31 21:53:00
345
原创 一些计算受限平台上的SLAM整理
我们在三个具有挑战性的数据集上的实验:KITTI、EuRoC和KAIST-VIO,以及两个高度精确的SLAM后端:Full-BA和ICE-BA表明,Jetson-SLAM是可用的最快的精确和GPU加速SLAM系统。相反,基于滤波的方法实现了高效率,但牺牲了精度。受到基于优化的方法中的舒尔补的启发,作者充分利用了用于姿态和地标构建的高维残差模型中固有的稀疏结构,以实现EKF的高效性。之前自己总结的计算受限平台上的SLAM,主要这么改,前端,改为直接法(甚至稀疏直接法)或者GPU加速,后端,改为滤波的形式。
2025-01-25 15:13:16
360
转载 视觉位姿是通过VISION_POSITION_ESTIMATE或者ODOMETRY消息输入给飞控
从机载端电脑或者其他信息可以得到视觉SLAM输出的位姿,可以通过mavlink 协议的VISION_POSITION_ESTIMATE或者ODOMETRY消息输入给飞控,区别在于VISION_POSITION_ESTIMATE只包含位置信息,而ODOMETRY还可以得到速度、姿态和姿态角速度等。
2025-01-25 11:36:23
80
原创 OrinNX镜像烧录操作
烧之前可以先把ssd格式化一下,用 sudo mkfs.ext4 /dev/sda 命令,/dev/sda根据实际的硬盘驱动路径来(可能需要先umount /dev/sda)。把下载好的镜像压缩包解压,大约会站120G左右空间,建议可以另外找个大的移动硬盘进行解压。把OrinNX的硬盘拆下来,通过硬盘盒子插到一个ubuntu电脑上,硬盘盒子参考如下。sudo dd if=镜像文件路径 of=OrinNX硬盘路径 bs=1M。具体命令以及路径可以参考如下,注意sudo少写了s。格式化完成后可以进行烧录。
2025-01-22 20:32:19
374
2
原创 OrinNX硬盘镜像导出备份操作
导出的.img文件一般有120G左右,为了上传网盘保存方便,可以对120G的.img文件进行压缩,就用ubuntu自带的压缩压缩成.zip文件即可(选择.img文件后右键选择压缩),这样一般可以压缩到几十G。同时再拿一个容量超过128G的硬盘,用来存放导出镜像,同样插到电脑上,用df -h查看挂载目录,注意是挂载目录,如下图蓝框所示,不是驱动文件名称。通过df -h命令查看驱动文件名称,如下图蓝框所示(如果显示比如是/dev/sda1,实际是/dev/sda,后面输入命令时注意后面1去掉)
2025-01-22 20:26:35
390
原创 二进制安装realsense2_camera功能包的情况下想使用realsense-viewer的方法
二进制安装realsense2_camera功能包之后,虽然会附带着二进制安装对应的librealsense,但是这个二进制安装的librealense是不包含realsense-viewer的,此时如果我们也还想同时用realsense-viewer,可以再单独二进制安装。
2024-12-12 14:53:56
167
原创 关闭D435i的自动曝光并进行手动调节的操作步骤
可以打开终端用命令realsense-viewer打开realsense-viewer,注意在板卡已经插上realsense相机的情况下,如果windows上有realsense-viewer也可以用。D435i默认是自动曝光,个别相机有时候可能出现自动曝光效果不好,比如过暗或者过亮,这个时候可以关闭自动曝光,手动调节曝光,使得灰度图亮度在一个合理的范围。此时我们可以拖动Exposure这里的值,来调节灰度图像的亮度,调节到我们觉得比较合适的值。关闭自动曝光,手动调节曝光的操作如下。
2024-12-11 15:01:57
402
3
原创 把OrinNX所有CPU的频率提升至最高的操作方法
我们平常使用OrinNX时,其CPU频率默认不是最高的,而且是会根据具体情况进行变动的,默认是自动变频模式,我们在NX上跑一些CPU算力较高的程序时,可以把CPU频率提至最高,并设置为定频再进行使用。在OrinNX,我们可以在 /sys/devices/system/cpu/cpufreq/ 目录下看到policy0 policy4这两个文件,policy0对应CPU 1-4,policy4对应CPU 5-6(8G OrinNX)或CPU 5-8(16G OrinNX)
2024-12-01 18:56:14
1210
原创 关于D456和D435i的启动launch文件的一些需要注意的参数区别
D435i的最低帧率可以设置为6hz,但是D455 D456 D457不可以设置为6hz,只能设置成5hz,这也是区别,需要注意。所以用原本跑双目IMU的vins的D435i的launch文件起D456就会看到这样的警告。这就是为什么D456的IMU的加速度计的频率不能像D435i一样设置为250的原因。D456 的imu是BMI085,D435i D455的IMU是BMI055。陀螺仪的频率都设置成200没有问题。
2024-11-27 15:12:00
484
原创 卸载二进制安装的librealsense和realsense-ros命令
这样我们可以自己完全卸载二进制安装的librealsense和realsense-ros之后,我们再在一个板卡上装librealsense和realsense-ros时,可以灵活选择尝试是源码编译安装还是二进制安装,如果一种方式装了使用效果不太好可以自己完全卸载掉换另一种方式,不用担心比如先二进制安装了,不能完全卸载掉,然后想换源码编译安装又怕librealsense版本冲突的问题。如果是二进制安装librealsense和realsense-ros,我们想卸载时该如何操作,这里介绍一下。
2024-11-24 19:23:19
943
原创 从提取的特征点数量看vins-fusion和ORBSLAM算力对比
vins-fusion和ORBSLLAM算力对比,我们可以看一个基础的数字,vinsfusion里面yaml文件设置每帧提取特征点数量的时候默认是150个,实际跑时可以调整到50个,ORBSLAM里面yaml文件设置的每帧提取特征点数量是一千多个。
2024-11-19 08:18:12
259
原创 ORBSLAM3出现一运行起来就立马段错误挂掉的一种情况
可能的原因是图片提不出特征点,或者根本提不出足够数量的特征点,这种情况一般出现在,视场角特别小而且对着特别近的物体,天黑了画面全黑。总之就是画面提不出什么特征点。ORBSLAM3出现一运行起来就立马段错误挂掉的一种情况。
2024-11-05 23:29:15
345
ubuntu18.04上部署运行OK的SchurVINS整个工作空间的压缩包
2024-04-17
DenseSurfelMapping提供的带有vins位姿话题和D435i深度图话题的surfel-color02.bag包
2024-03-17
我运行OK的voxblox工作空间下的src文件夹,包含voxblox安装包以及所需包
2024-03-16
笔记本ubuntu18.04上可用的nomachine deb包
2024-03-07
基于Ubuntu20.04和opencv341编译通过且基于euroc或者d435i运行起来的SVO2.0的工作空间代码
2024-03-07
基于kalibr docker的D435i双目及双目IMU标定环境部署及标定操作文档
2024-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人