
UAV
文章平均质量分 85
wendox
这个作者很懒,什么都没留下…
展开
-
玩转四旋翼无人机(DJI SDK LIB)
DJI_LIB原创 2015-12-13 20:30:19 · 2309 阅读 · 0 评论 -
玩转四旋翼无人机(DJI ROS SDK开发包及使用方法)
本文主要介绍Onboard-SDK-ROS的代码设计思想和使用方法,该软件包主要用来完成M100的开发等。 该软件包的主要有3个部分 1. 核心的API部分dji-sdk-lib,用于串口通信,建立各种任务的线程,读取信息的线程。 2. 用于封装核心API为ROS接口的dji_sdk 3. 简单的demo,给出了dji_sdk的使用方法。Onboard-SDK,顾名思义,这个包是用来给机载的原创 2016-11-07 14:26:08 · 26578 阅读 · 15 评论 -
SLAM代码(lie group基础)
李群基本数学定义群:集合G + 操作符 ∘ ∶ G ∘ G → G,满足:封闭性: g1g2∈G,∀g1,g2∈Gg_1 g_2 \in G, \forall g_1 , g 2 ∈ G结合律: g1∘g2∘g3=g1∘g2∘g3,∀g1,g2,g3∀Gg_1 ∘ g_2 ∘ g_3 = g_1 ∘ g_2 ∘ g_3 , \forall g_1 , g_2 , g_3 \forall G单原创 2016-08-31 13:52:42 · 2736 阅读 · 0 评论 -
SLAM代码(三维重建)
三维重建的一般步骤 - 特征点对计算基础矩阵。 - 根据基础矩阵计算相机矩阵 - 对于内个点对计算点在3D空间的位置。 The Fundamental Matrix Song本文主要介绍三维重建的初始值的估计方法(三角测量triangulation) 这样看来三维重建综合了几个问题(包括上述三角测量,以及其他的问题包括基础矩阵估计,),如下图所示 采用光束平差法对射影空间下的多个相机运动原创 2016-10-01 23:00:31 · 11162 阅读 · 4 评论 -
SLAM代码(多视几何基础)
本文主要介绍多视几何的一些概述 首先介绍单视的情况,从空间三维点经过世界到相机坐标系的转换,以及透视投影和相机的镜头畸变得到最终的2D点。前者称为外参数,后者成为内参数,两者的乘积称为camera matrix相机矩阵。内参数主要为焦距,主点,skew。畸变参数的抓哟成分为径向畸变,一般到第一项就可以。外参数中旋转矩阵满足单位正交性质,这些性质在标定相机内外参数时会用到。相机标定camera ma原创 2016-09-16 01:26:14 · 2838 阅读 · 0 评论 -
SLAM代码之svo代码分析
在上文中我们从ROS的节点出发,一步步介绍了SVO ros节点的运行流程,下面我们将深入介绍SVO大的核心代码。SVO的核心主要分为3方面内容 - spase image alignment - Feature alignment - pose and Structure optimization - map 首先给出总体的结构图。 首先参考论文中的内容,进行分析。使用直接法最小化图像块原创 2016-09-14 11:58:24 · 9732 阅读 · 3 评论 -
SLAM代码(SVO ros )
SVO ros 节点解读测试执行使用作者给出的bag文件,运行以下指令rosbag play airground_rig_s3_2013-03-18_21-38-48.bag这样会在ros环境中广播/camera/image_raw 图像message, svo节点重映射该message到cam_topic,并订阅该topoic。运行该节点程序roslaunch svo_ros test_rig原创 2016-09-12 11:35:01 · 4158 阅读 · 3 评论 -
SLAM代码(优化及常用库)
在SLAM的后端优化中,比较常用的一种方法是g2o,该图优化方法在优化时现成可以选用的有2种优化方法。一是Gauss-Newton,另外是LM方法。这里首先介绍Gauss-Newton方法,其次介绍g2o使用时的一般流程和例程。原创 2016-09-11 23:21:54 · 5193 阅读 · 0 评论 -
SLAM代码(VO简介)
无人机很快会在灾难救援,工业检测环境保护方面祈祷重要作用。这样的应用中获取GPS信息是困难的。因此精确的全自动UAV备选的导航定位系统。使用惯导系统的缺点是累积误差,GPS在受限于使用环境。为了减低重量和功率消耗,视觉导航方法的优点一是不易被干扰,另外是大部分无人机已经配备了相机,视觉系统协同IMU(Inertial Measurement Unit)的方案被广泛采用。本文主要关于VO里程计简介。定原创 2016-09-02 20:24:28 · 13084 阅读 · 0 评论 -
SLAM代码(光束平差法BA)
定义给出从不同视角拍摄的,描述同一个场景的一系列图片,bundle adjustment可以根据所有点在图像中的投影作为标准,同时提炼出描述场景结构的3D点坐标、相对运动参数和相机的光学参数。 [mutliple view geometry]如果数据中包含噪声,透视投影模型并不满足xij=PXjx^i_j = \mathbf{P}X_j,这种情况下寻找一个最大似然解,这样假设测量的数据符合高斯分布原创 2016-09-03 01:16:13 · 2702 阅读 · 0 评论 -
玩转四旋翼无人机(sensor数据融合)
sensor fusionNXP Sensor Fusion.zhihu人体的egomotion感知系统本体感知 大脑融合来自于本体感知和前庭系统的信息在一起得到自己身体的位置,运动和加速度。The vestibular system 前庭系统在大部分哺乳动物中,前庭系统是一个感知系统,该系统在提供平衡感知和空间方向的功能中起主力作用,所获取的这些感知信息用于身体的平衡运动。与耳蜗(耳朵的一部原创 2016-09-04 14:47:47 · 5649 阅读 · 1 评论 -
SLAM代码(SLAM简介)
SLAM是什么呢?Google一下,就会发现很长的一串名字-Simultaneous Localization and Mapping,哇感觉第一单词就不明白是干啥的啊!听我慢慢道来,先看后边的,Localization就是定位,Mapiing就是建图。所以从这里可以看到,这个东东至少玩了2个并发的线程。”同时“这个词就是要告诉我们localization 和mapping是同时发生的。 第一个线原创 2016-09-03 00:31:42 · 5109 阅读 · 0 评论 -
SLAM代码(设计模式)
我们在学面向对象的时候有本非常出名的叫做《设计模式-可复用面向对象软件的基础》。那么而在slam的实现中有没有这一种或者几种可以总结归纳的设计模式呢?我们在看一些slam的书的时候,有些要么就是介绍很多状态估计的理论,要么就是介绍很多多视几何的各种视觉理论。那么我们在看了这些理论之后,仍然无法下手,那么一个典型的好的slam的代码的基本结构是什么样的呢?一个slam代码的原创 2016-12-04 16:14:27 · 5735 阅读 · 0 评论 -
SLAM代码(设计模式2)
上一个博客中,我们介绍了一些关于slam的前端的设计思想的内容,这里我们继续完成slam的前后端的设计 首先我们给出slam程序中各模块的主要组成部分。我们先理清楚到底他们干了些什么,然后再说他们怎么实现的。其实吧,现代的CPU对多线程的代码支持的越来越好,因为木法提速,只能多个人(CPU核)干。所以在PTAM把Tracking 和 Maping 分开完之后,大家一下子就觉得这样玩真的不错,一窝蜂原创 2016-12-06 17:58:46 · 4032 阅读 · 0 评论 -
Camera in ROS and VISCA
use ros to read camerareferherealso如果是UVC版本的camera,可以是用uvc_camera and image_view 来读取和显示图像。sudo apt-get install ros-hydro-uvc-camerasudo apt-get install ros-indigo-image-viewnode is called by$rosrun uv原创 2016-08-29 20:10:17 · 1784 阅读 · 0 评论 -
玩转四旋翼无人机(在rviz中显示飞机)
如何在rviz中显示一个四旋翼?rviz中可以将订阅的姿态轨迹信息三维显示,这样不需要任何代码就可以三维可视化定位结果,十分方便。但是如何加载一个机器人(四旋翼)的模型呢? 所以这里借鉴hector-quadrotor中的urdf,得到一个飞机的urdf模型。因此可以启动hector-quadrotor-gazebo中的spawn_quad的模型。roslaunch hector_q...原创 2016-12-28 09:07:31 · 6726 阅读 · 0 评论 -
mp4 video转为ros image message
有事我们需要把自己录制的视频使用ros广播出去,这时需要使用读取这个视频的文件然后将image转换为sensor_image,import sys, timeimport numpy as npfrom scipy.ndimage import filtersimport cv2import roslibimport rospyfrom sensor_msgs.msg import Im原创 2016-12-28 10:20:22 · 3546 阅读 · 0 评论 -
玩转四旋翼无人机(DJI SDK 使用)
OnBoard API MATRICE 100 被设计为可以使用遥控器、机载备和 移动 设备进行控制。如果遥控器让飞切换到 API控制模式,设备通过 Onboard API , Mobile API可以请求获得控制权。 启用 APIAPIAPI控制 之后 ,将遥控器模式开关置为中位 (F档)。 连接 无线串口 。电脑 安装 USB-TTL软件 驱动,通过 驱动,通过 USB-TTL连接原创 2015-12-13 17:25:39 · 2610 阅读 · 0 评论 -
玩转四旋翼无人机(DJI OnBoard SDK ROS)
System Structuredji_sdk: the core package handling the communication with Matrice 100, which provides a header file dji_drone.h for future usedji_sdk_demo: an example package of using dji_drone.h to原创 2015-12-14 18:24:46 · 7328 阅读 · 0 评论 -
UAV 预备知识
toolsubuntu, install, cmake, bash, vim, qt(optional).OpenCV install, read the opencv reference manual and tutorialros, install, tutorial.python. 可以使用pycharm,作为IDE.SLAMcaffe(optional).net adout U原创 2016-09-01 19:32:39 · 1278 阅读 · 0 评论 -
CPU指令级优化(1)
简介Intel的CPU和ARM的CPU都有SIMD指令,可以完成CPU 指令级的并行化。这里边主要涉及CPU的汇编的知识和一些寄存器的知识。在一些耗时的SLAM优化迭代的场合,经常出现这样的指令的优化。SSE是Intel x86架构CPU的SIMD指令的简称,NEON是ARM CPU的SIMD指令的简称。由于项目的需要,我以前的时候用过一段SSE指令,后来一段时间没有在接触过,最近在玩飞机,我们在D原创 2016-11-29 15:54:43 · 6815 阅读 · 2 评论 -
SLAM代码(ORB-SLAM阅读)
主要步骤 1. 为什么是这样的步骤,为什么只要这几个步骤,为什么是这样的顺序? 2. 这样做的目的是什么?步骤1.1ORB的跟踪器使用一个运动模型,在每次完成位姿计算之后会跟新这个运动模型,根据匀速度模型进行对上一帧的MapPoints进行跟踪,根据上一帧特征点对应的3D点投影的位置缩小特征点匹配范围。这里意思是说我们假设相机是匀速运动的,然后根据上一帧的位姿,我么预测到这一帧对应的位姿,然后使原创 2016-12-07 13:32:47 · 3774 阅读 · 0 评论 -
SLAM代码(ORB-SLAM阅读2)
main procedureprocessNewKeyFramemappoint cullingcreate new key framecheck new key frameSearchInNeighborsOptimization BAkey frame cullinginsert new key frame为什么是这样的步骤,为什么只要这几个步骤,为什么是这样的顺序?这样做的目原创 2016-12-12 14:44:02 · 3866 阅读 · 0 评论 -
玩转四旋翼无人机(仿真)
wiki in roshttp://answers.ros.org/question/207097/how-to-send-velocity-to-pixhawk-with-mavros/TutorialROS Getting Started Tutorial 在教程中给出了连接一个USB camera, pixhawk,并确保基本的安装能够工作。 - 安装stable ROS和ubuntu设置原创 2016-08-27 21:33:33 · 35062 阅读 · 6 评论 -
玩转四旋翼无人机(姿态控制 in ArduPilot)
本文主要介绍关于ardupliot project中关于四旋翼的姿态控制的首先给出姿态控制的结构图 顶层文件flight-mode。cpp中的函数update_flight_mode()函数被调用。该函数检测当前飞行器的飞行模式,然后调用合适的 <flight mode>_run()函数(i.e. stabilize_run for stabilize mode, rtl_run for RTL原创 2016-09-15 23:08:53 · 4970 阅读 · 0 评论 -
玩转四旋翼无人机(攒机基础2)
电机航模电机分无刷电机和有刷电机两种。无刷电机与有刷电机相比,缺少了交替变换电磁场的换向电刷,在运转时摩擦力减小,噪音降低,运转时不产生电火花,在目前的无人机市场上已成为主导,本章我们将介绍主要无刷电机。 无刷电机通过电子调速器(俗称电调)将输入的直流电变成三相交流电,利用三相交流电产生的旋转磁场驱动转子转动。电调通过从遥控器接收机接收控制信号,控制电机的转速,完成无人机的俯仰、横滚等动作。原创 2016-09-04 16:21:32 · 4065 阅读 · 0 评论 -
玩转四旋翼无人机(攒机基础1)
## 机架轴距(飞机大小)机架定义的飞机的基本外观以及飞机的大小。主要参数为轴距。 F450(轴距450mm)是比较合适的,推荐,机架比较小,安装的时候比较简单,没有那么多螺丝,可以买DJI旗舰店的动力套餐,然后去买机架就行。我在第一次攒飞机的时候,希望能够把TK1的板子放在上边,这样我就买了一个大轴距(650mm)飞机,差不多M100差不多大。这样一来就麻烦了。一个电动起落架不是特别稳,固定的不牢原创 2016-09-04 15:55:28 · 10617 阅读 · 1 评论 -
玩转四旋翼无人机(四元数)
四元数介绍 wiki Quaternions and spatial rotation单位四元数,也就是规范化四元数,提供一种方便的数学表示来表达多维空间中的方向和物体的旋转。相对于欧拉角来说,四元数更简单,避免了万向节锁。对比与旋转矩阵,四元数的数值稳定,更加高校。四元数在计算机图形,计算机视觉,机器人,导航和分子动力学,飞行器动力学等广泛应用。四元数在16.oct.1843被发现,wiliiam原创 2016-08-27 16:45:44 · 8986 阅读 · 0 评论 -
玩转四旋翼无人机(pixhawk飞控校准)
pdf guide (https://3dr.com/wp-content/uploads/2014/03/pixhawk-manual-rev7.pdf)step 1 mount飞控的安装方法标准方向.飞控板上边的白箭头应该指向飞机的前方,飞控大致位于机身的重心(不论是水平方向还是数值方向),也就是说飞控需要在机身中央的数个厘米之内,这个不是必须的要求,不过越近越好。另外使用减震球是必要的。 如原创 2016-08-26 16:14:55 · 33391 阅读 · 0 评论 -
玩转四旋翼无人机(传感器)
一个典型的IMU包括一个三轴陀螺仪,一个三轴加速度计和一个三轴磁力计。陀螺仪测量B\mathbb{B}相对于A\mathbf{A}的角速度 ΩIMU=Ω+bΩ+η\Omega_{IMU}=\Omega+b_{\Omega}+\eta η\eta为可加性测量噪声,bΩb_{\Omega}为陀螺仪常量偏置。加速度计测量由于外力引起的对B\mathbb{B}的瞬时加速度。加速度计对于无人机的震动很敏感原创 2015-12-31 14:55:09 · 9008 阅读 · 0 评论 -
玩转四旋翼无人机(DJI_QT_SDK)
obtain control DJI_Pro_Control_Management(1,NULL);该函数具体形式如下int DJI_Pro_Control_Management(unsigned char cmd,Command_Result_Notify user_notice_entrance){ unsigned char data = cmd & 0x1; DJI_Pro原创 2015-12-22 16:15:13 · 1383 阅读 · 1 评论 -
SLAM代码(光流法)
光流法的目标是完成图像点的跟踪, 因此这里假设存在一个输入图像I, 以及要跟踪的点x, 存在另外一个图像块T, 我们的目标是完成图像块T到输入图像I的匹配.文章针对Lucas-Canade光流法做了一个总结, 文章对lucas-canade (Forward Additive, FA)算法做了简介, 引入了Compositional算法以及Inverse方法. 因此对应组合形成4种方法分别是原创 2016-09-11 19:57:54 · 13709 阅读 · 2 评论