自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2724)
  • 资源 (1)
  • 收藏
  • 关注

原创 aruco二维码检测与aruco二维码降落原理讲解 20240422

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

2024-04-22 21:22:10 1713 4

原创 关于优化问题(含数值优化)个人总结文档

FxΔxFxΔx。

2024-03-13 22:26:43 922

原创 写TCP UDP以及串口通信时,整型数组转字符串数组发送的便捷操作

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

2024-03-11 09:44:19 430 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 1110

原创 我感觉D435i的使用有必要写出一篇教程,怎么烧写升级固件,更改分辨率帧率,标定,发布IMU数据等等

我感觉D435i的使用有必要写出一篇教程,什么烧写固件,更改分辨率,标定,发布IMU数据等等可以说D435i涉及到的操作比较多,我感觉应该需要有这方面的一个系列教程,不知道官方有没有。。...

2021-07-21 10:05:34 5380 2

转载 机器人操作系统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 9592

转载 机器人操作系统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 1036 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 865 4

原创 我写的ROS MAVROS librealsense(x86 TX2 树莓派) realsense-ros 普罗米修斯 普罗米修斯仿真 安装教程 PX4指令 合集

我写的ROS MAVROS librealsense reslsense-ros 安装教程合集ROS安装教程可以见:https://blog.csdn.net/sinat_16643223/article/details/107813134MAVROS安装教程可以见:https://blog.csdn.net/sinat_16643223/article/details/113868262librealsense(x86) reslsense-ros安装教程可...

2021-02-19 17:49:58 598

原创 我的ACfly-T265搭建记录

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

2020-11-08 07:27:56 1300

原创 STM32下mavlink的使用个人总结(包含对ACfly里面mavlink的分析,包含接收T265的位置信息的二次开发教程)

我一开始想既然mavlink在STM32的使用只需要调用函数就可以了,但是mavlink在STM32的代码似乎比较多,我就想起直接看它的头文件有哪些函数,结果查看头文件有巨大发现对应每种消息都有专门一个头文件,我甚至找到了vision_positon_estimate的头文件,是不是要读取某类消息只需要调用这个对应消息头文件里面的函数就可以了。在这个头文件里面我找到了似乎是对应读取某个参数的static inline uint64_t mavlink_msg_...

2020-10-04 10:31:20 7660 2

原创 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 16557 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 6366 2

转载 基于单目视觉的四旋翼定点降落——如何通过mavros控制pixhawk(二)(这个我觉得讲得很详细)(2021.3.1现在回看发现也是对PX4官方手册里mavros-offboard代码的讲解)

这个我觉得讲得很详细,如何通过mavros去控制pixhawk mavros就是mavlink的一个封装 用mavros使无人机进入offboard模式,不是在地面站去设置的,这个我看了这篇文章才明白。这里面说到的Macros和piahawk连接的方法感觉和智能无人机课程里说到的一样。这是智能无人机课程的。这是这篇文章的https://blog.csdn.net/zhengyuxin0507/article/details/80357405基于单目视觉的四旋翼...

2020-07-26 09:07:11 4575 2

原创 PX4 1.14版本后EKF2_AID_MASK参数已经弃用

改用EKF2_EV_CTRL参数了。

2024-05-23 22:40:34 35

原创 2.50之后的librealsense已经不支持T265

2.50之后的librealsense已经不支持T265。

2024-05-23 06:58:42 61

原创 mavros的一些可用命令,不基于话题与服务

这个命令可以使无人机起飞到当前位置上方5米。这个命令可以使无人机解锁。

2024-05-20 11:03:23 199

原创 现在知道mavros终端有时出现的黄色警告Unexpected command是什么意思了,后面所跟数字就对应的具体的MAV_CMD的ID

现在知道mavros终端有时出现的黄色警告Unexpected command是什么意思了,后面所跟数字就对应的具体的MAV_CMD的ID。可能发的这个MAV_CMD不太符合要求或者哪项的值不太对。

2024-05-19 13:19:06 158

原创 通过MAVROS发送command_long类型mavlink消息方式介绍

命令中,long代表发送的command_long类型指令,192指嵌套的具体的MAV_CMD消息ID,也就是对应的MAV_CMD_DO_REPOSITION这个消息,最后跟的7个数字也就是MAV_CMD_DO_REPOSITION消息里7项对应的值,和cmd_long.py里对这7项的赋值一样,最后四项对应的偏航,经度,纬度,高度,我们就赋值对应的偏航,经度,纬度,高度数值,注意单位,没有用到的参数可以赋值为0。MAV_CMD里ID是192的MAV_CMD_DO_REPOSITION消息的结构定义如下。

2024-05-16 23:27:41 761

原创 大端和小端是字节序,不是bit序

偏航是两个字节表示的,一个字节是8位,一个字节又可以写成两个十六进制表示,因为一个十六进制可以写成4个二进制表示,也就是偏航是16位整型表示,也就是可以写成4个十六进制表示。在小端模式中,较低有效字节(即最低位字节)存储在内存的较低地址,而较高有效字节(即最高位字节)存储在内存的较高地址。一般协议里面写的就是比如这两个字节是代表偏航,或者这四个字节是代表什么,但是这几个字节的顺序是没有明确的,大端小端就是明确这个的。在大端模式中,较高有效字节存储在内存的较低地址,而较低有效字节存储在内存的较高地址。

2024-05-14 13:44:03 139

原创 基于px4ctrl的vins-ego基础上发送/mavros/setpoint_position/local话题给飞控,无人机在offboard模式下不会响应

有人反应基于px4ctrl的vins-ego基础上发送/mavros/setpoint_position/local话题给飞控,无人机在offboard模式下没有反应,这个是正常的,因为基于px4ctrl的vins-ego是发期望姿态+推力给飞控,抛弃了飞控的位置环和速度环,而且没有把vins位姿发给飞控,此时就算通过mavros给飞控发期望位置,也缺少当前位置形成不了位置环,所以也没法执行,所以为什么没有反应。

2024-05-14 09:17:18 141 1

原创 在Orin NX ubuntu20.04上源码编译安装librealsense和realsense-ros

对realsense2_camera功能包的cmakelists的更改是三个地方,下面红框标出的三个地方,改完保存,在catkin_make,再 通过rs_camera.launch起D430就不会有报错挂掉了,可以发出深度图话题。再源码编译安装realsense-ros,注意版本和librealsense对应,这里2.50.0的librealsense对应2.3.2的realsense-ros。这么编译完没有报错,但是通过rs_camera.launch起D430会有报错挂掉,需要按照这篇博文。

2024-05-13 13:27:40 490

原创 通过mavros实现无人机航点飞行(mission模式)示例代码

通过 mavros/mission/push 这个服务进行航点上传。通过mavros实现无人机航点飞行示例代码。

2024-05-12 08:54:40 300

原创 ros功能包所用opencv版本与ros默认opencv版本不一致情况解决方法

下面camke命令中,CMAKE_INSTALL_PREFIX指定了安装路径,OPENCV_EXTRA_MODULES_PATH指定了opencv_contrib的路径,注意确保opencv_contrib和opencv处于同一个文件夹内,下面OPENCV_EXTRA_MODULES_PATH指定的相对路径才有效。将opencv编译生成的build文件路径加入到cv_bridge功能包的CMakeLists.txt里,命令如下,像上面自己编译安装的opecv3.3.1的build文件夹路径就是。

2024-05-11 22:58:17 1217 1

原创 关于rotors_simulator

首先是发现高飞的gazebo仿真似乎是用的这个,后来发现之前在古月居看到的无人机仿真也是这个rotors_simulator。rotors_simulator给了joy遥控器接口这样应该就可以直接遥控器控飞机了,看来他们想得还挺全的。还有我的一本ROS书《ROS机器人编程实战》上讲的无人机仿真也是用的这个功能包。PX4官方文档里面也有说到rotors_simulator。

2024-05-11 06:43:26 208

原创 mavlink给的UDP发送接收示例代码,也是基于socket的

mavlink给的UDP发送接收示例代码,也是基于socket的。

2024-05-10 14:31:12 124

转载 MAVLink 实战一:通过UDP发送MAVLink消息

UDP是面向无连接的不可靠数据传输,不想TCP那样有三次握手,UDP只负责发送,不负责确认对方是否收到数据,也没有重传机制,这些都需要用户自己实现。为了与QGC建立一个通信,我们创建一个“无人机”,这个“无人机”当然不是一个真实的,但能够模仿无人机发送一些基本数据,最核心的数据就是呼吸包——Heartbeat消息,这个消息包含了无人机基本信息如类型、id、模式等等。这个类是用户必须实现的,它定义了底层数据传输的接口,这里我们选择了UDP传输,故这个类就是实现了UDP连接的初始化以及数据发送接口函数——

2024-05-08 15:20:48 38

原创 跑垂起固定翼的gazebo仿真 QGC飞往指定地图点

在无人机飞到地图点的过程中(也可以到达地图点悬停后),我们依旧可以继续左键点击选择新的地图点,确认之后无人机会立马调转航向飞向最新的地图点,不再飞向之前的地图点。想垂起返航我们可以点这里的return,并右滑滑窗确认,垂起会先原地爬升到30米,再往回飞到起飞点上方,然后垂直降落,并自动上锁。此时在QGC地图上选好想让无人机飞到的地图点,并鼠标左键点击,会出现三个选项,选择Go to location。QGC下方会出现个滑窗,让你确认,往右滑动滑窗确认之后,垂起无人机就会转头开始飞往所选择的地图点。

2024-05-08 08:30:17 161

原创 VIO初始化探究:旋转平移解耦的高效鲁棒初始化 深蓝学院听课笔记

看这个公式就好理解了,为什么要估计bias和重力。噪声可能没法避免就不估计了,IMU的偏置影响不大就不估计了,所以最后就只剩下估计陀螺仪的bias和重力了,为了得到准确的角速度和不包含重力的机体加速度。加速度计不光测的运动加速度,还测了重力加速度,所以需要把这个重力加速度去掉才能得到正确的运动加速度。需要估计重力方向,并把重力从总的加速度里面移除出去,这样才能得到真正相机的加速度。IMU的预积分也是可以得到相对旋转关系的,预积分不光光是平移注意。由于VIO的非线性,有一个好的初始值是它稳定运行的基础。

2024-05-04 09:14:35 269

原创 深蓝学院 王锐 视觉SLAM直接法简介 笔记

但是其实可以更少,Rt是刚体运动,刚体自由度是6,减去一根尺度,那自由度是5,R的自由度是3,t的自由度,因为绝对尺度求不出来,所以自由度为2不是3.所以理论上我们最少只需要五对点就可以把R和t给求出来了。看着我理解了本质矩阵,就是Rt相乘的一个矩阵!求本质矩阵其实就是求Rt!R*t总共有9个数字,但是,E绝对的尺度是不知道的,因为那个方程,多大相乘都是为0,所以只需要8个点,也就是8点法!(我看计算机视觉中的多视图几何里面也是有讲基本矩阵的计算的,本质矩阵是基本矩阵的一部分,pnp也是要求解本质矩阵吧)

2024-05-03 08:28:35 251

原创 十四讲里的边缘化和vins里的边缘化是一个东西一个公式一个原理

十四讲里的边缘化和vins里的边缘化是一个东西一个公式一个原理,只是十四讲里面边缘化是只想算相机位姿,marg掉的特征点的位置,vins里的边缘化是只想算滑窗内的优化变量,滑窗丢弃的变量不算,这个样子。marg的对象不同,理论是同一个理论。十四讲里的边缘化就和贺一家这里讲的边缘化一样。

2024-05-02 18:22:24 252

原创 自己对边缘化 舒尔补的一些理解

这可能才是关键,舒尔补是这种把一个矩阵变为上三角或者下三角的方法,应该是的,乘以一个舒尔补就可以变了!因为随着滑动窗口的移动,那些变量也在更新,对应的海森矩阵也更新,舒尔补后的矩阵也在更新,舒尔补后的海森矩阵分解出来的雅可比和残差也就跟着在变。这个步骤不正和下下面的那个边缘化的步骤对应么,计算机视觉life的vins课里面也讲到了的,也是这个意思,现在看到官方正式描述了。边缘化的优化肯定也是不算算出δx,也会不断更新优化变量的值,去减小残差,更新优化变量的值这就相当于起作用了,在优化位姿等等的了。

2024-05-02 17:49:04 953

原创 ceres里面协方差的写法

这个在崔华坤和马朝伟的vins资料里面都有说到。

2024-05-02 17:39:17 150

原创 jetson xavier NX上用CSI相机

我怀疑是不是最开始就得插着CSI相机上电,那样才有驱动(最开始插着CSI相机上电的就算拔了再插也是可以的,最开始没有插CSI相机上电的,再怎么插也没有),我这么做了下,果然nano上现在可以检测到相机并发出图像话题了!这么弄下来有两个点需要主要,一个是NX上最开始就需要插着CSI相机,第二个是用nano上启动CSI的那个功能包,也就是jetson_nano_csi_cam 而不是jetson_csi_cam。这是没插CSI相机时候的nano的dev文件夹(注意需要重启),确实少了一个文件!

2024-05-01 15:35:37 773 2

原创 ROS2下使D435i发出640 480分辨率灰度图和200hz imu话题的launch文件设置

在/opt/ros/foxy/share/realsense2_camera/launch目录下,找到rs_launch.py,修改rs_launch.py使得其启动D435i可以发出30hz的分辨率640*480双目灰度图话题和200hz的/camera/imu话题,给vins节点订阅使用。修改后的可以发出30hz的分辨率640*480双目灰度图话题和200hz的/camera/imu话题和rs_launch.py如下。修改rs_launch.py前需要先赋予权限。

2024-04-30 18:35:11 219

原创 ros2里查找一个功能包的路径命令

ros2里没有roscd了,查找一个功能包的路径可以用下面命令。

2024-04-30 14:39:31 132

原创 关于firefly的RK3588S的ubuntu20.04上不能打开rviz rqt的解决过程

我按照这个说的,装了 apt-get install qtwayland5-examples ,但是运行rqt_image_view 和git-cola还是那样的报错。vinsfusion的rviz也可以起起来,但是没有什么显示不清楚原因,但是vins fusion确实是跑起来了的,odom话题有值的,移动相机位姿值也是对应移动的。我弄了这一步重启后再运行rviz,多运行了一些,但是最终还是没有起来,不管是用rviz还是QT_QPA_PLATFORM=xcb rviz都没有起来。

2024-04-29 18:46:29 638 1

原创 OrinNX部署运行ROS2版本的vinsfusiongpu步骤整理

OrinNX上部署运行ROS2版本的vinsfusiongpu 20240429OrinNX ubuntu20.04上前提已经装好ros foxy。

2024-04-29 16:06:52 2125 3

原创 关于瑞泰OrinNX nomachine远程进去会黑屏情况解决

每次nomachine上电启动后,先通过ssh远程进OrinNX,通过sudo sh nomachine.sh命令执行上述脚本。执行完后再通过nomachine远程OrinNX,就可以正常显示了。可以在home目录下新建一个nomachine.sh,内容如下。

2024-04-29 09:07:17 131

原创 Jetson板卡硬件编解码总结

官方的其实就这些,硬件解码用nvv4l2decoder,硬件编码用nvv4l2h264enc。另外一个常用的是omxh264enc(

2024-04-28 22:16:58 186

ubuntu18.04上部署运行OK的SchurVINS整个工作空间的压缩包

ubuntu18.04上部署运行OK的SchurVINS整个工作空间的压缩包,解压后在工作空间目录下catkin build即可(已经安装好一些二进制依赖的前提下),因为SchurVINS是基于SVO改的,所以工作空间需要像SVO要额外从github下13个功能包,为了避免麻烦所以就把整个工作空间压缩打包。

2024-04-17

DenseSurfelMapping提供的带有vins位姿话题和D435i深度图话题的surfel-color02.bag包

DenseSurfelMapping提供的带有vins位姿话题和D435i深度图话题的surfel_color02.bag包 方便用于一些建图功能包的测试

2024-03-17

我运行OK的voxblox工作空间下的src文件夹,包含voxblox安装包以及所需包

我运行OK的voxblox工作空间下的src文件夹,包含voxblox安装包以及所需包,可以免去部署voxblox时下载各种包的麻烦。 我自己的环境是Ubuntu18.04,运行OK,src压缩包直接在工作空间下解压成src文件夹,编译命令参考voxblox官方给的编译命令。

2024-03-16

一些linux上UDP TCP通信的小例程

自己的一些linux上UDP TCP通信的小例程,还包含有比如UDP传图

2024-03-08

部署运行成的ManhattanSLAM代码压缩包

部署运行成的ManhattanSLAM代码压缩包

2024-03-07

笔记本ubuntu18.04上可用的nomachine deb包

笔记本ubuntu18.04上可用的nomachine deb包 安装命令sudo dpkg -i ****.deb

2024-03-07

20230727无人机SLAM与路径规划 PPT

20230727无人机SLAM与路径规划 PPT

2024-03-07

基于Ubuntu20.04和opencv341编译通过且基于euroc或者d435i运行起来的SVO2.0的工作空间代码

20230716目前在OrinNX上基于Ubuntu20.04和opencv341编译通过且基于euroc或者d435i运行起来的SVO2.0的工作空间代码

2024-03-07

基于kalibr docker的D435i双目及双目IMU标定环境部署及标定操作文档

基于kalibr docker的D435i双目及双目IMU标定环境部署及标定操作文档 相应博文可见: https://blog.csdn.net/sinat_16643223/article/details/136128828?spm=1001.2014.3001.5501 对应操作视频: https://www.bilibili.com/video/BV11y421b7Ao/?spm_id_from=333.999.0.0&vd_source=7485d91e473ff9c14cdf7554a8a9b6d1

2024-03-07

高清实时流媒体直播系统研究.pdf

高清实时流媒体直播系统研究 (他人硕士学位论文)里面有讲FFmpeg。基于FFmpeg解码开发库设计、实现直播终端。直播终端具有较强的可扩展性与可移植性,并可作为网页插件进行部署。同时,在直播终端中设计了数据接收的多级缓冲与音、视频同步机制,优化直播质量。

2020-06-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除