- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 Nuttx的源码构建和编译
Nuttx的源码构建和编译下载源码sudo mkdir Nuttx cd Nuttx 1. Nuttx:git clone https://bitbucket.org/nuttx/nuttx.git 2. apps:git clone https://bitbucket.org/nuttx/apps.git 3. tools:git clone https://bitb
2019-07-28 22:03:10
9862
5
原创 ubunut安装stlink
在ubuntu上面的stlink驱动的安装:依赖包的安装:sudo apt-get install libusb-1.0sudo apt-get install cmakesudo apt-get install libgtk-3-dev下载源码git clone https://github.com/texane/stlink.git编译cd stlinkmake releasema
2019-07-28 22:02:56
4194
2
原创 Nuttx程序测试
前面两篇文章我们讲述了如何编译nuttx和ubuntu下stlink的安装.现在我们继续往下测试程序.硬件环境:stm32f407discovery软件环境:ubuntu14.04 + vim我们首先进入到nuttx/tools目录下执行:sudo ./configure.sh stm32f4discovery/usbnsh 或者sudo ./configure.sh stm32f4d
2019-07-28 22:02:29
1596
原创 4.SLAM中计算相关(备忘录)
相关工具:Kalibr是一个工具箱 , 它能够标定多目相机系统、相机 IMU相对位姿和卷帘快门相机 .常用的SFM工具 有Bundler 、 OpenMVG 和 MATLAB 多视几何工具箱等 .Bunlder 增量式地处理一组图像 , 提取其中的特征点进行匹配 , 完成三维重建并输出一个稀疏的场景结构 .OpenMVG 则偏重于多视几何问题的求解 .优化方面 :Sophus 库为三维...
2019-07-15 21:12:48
245
原创 3.相机模型(内参数,外参数)
学习参考:https://www.cnblogs.com/wangguchangqing/p/8126333.htmlslam十四讲相机成像的过程实际是将真实的三维空间中的三维点映射到成像平面(二维空间)过程,可以简单的使用小孔成像模型来描述该过程,以了解成像过程中三维空间到二位图像空间的变换过程。小孔成像模型相机可以抽象为最简单的形式:一个小孔和一个成像平面,小孔位于成像平面和真实的三维...
2019-07-15 21:06:08
872
原创 2.jetbot_ros简单键盘控制
关于jetbot_ros代码,代码仓库位于:https://github.com/dusty-nv/jetbot_ros我们根据github上的描述,很容易测试oled和电机的功能是否正常。然后你就会发现,官方提供的例程真的是要多简单有多简单。这次我也简单加了一个脚本,用于处理键盘控制jetbot小车。我在scripts文件夹下新添加,jetbot_teleop.py文件,内容如下:#!...
2019-07-05 01:23:10
1283
原创 1.ROS基础操作以及通信总结
工作环境创建工作空间在上一步安装好ROS后,下一步就是创建工作空间,mkdir -p ~/catkin_ws/srccd ~/catkin_ws/srccatkin_init_workspace编译工作空间cd ~/catkin_ws/catkin_make设置环境变量source devel/setup.bash检查环境变量echo $ROS_PACKAGE_PA...
2019-07-05 01:14:42
382
原创 1.三维空间刚体的旋转
参考资料:视觉SLAM十四讲https://mp.weixin.qq.com/s/De-fkRVlqvYN6W9zYHS1_A概念梳理刚体在三维空间中的运动可以通过如下四种方式描述:旋转矩阵,旋转向量,欧拉角和四元数。标准正交基在线性代数中,一个内积空间的正交基事元素两两正交的基。我们称基中的元素为基向量。假若,一个正交基的基向量的模长都是单位长度1,则称为正交基为标准正交基。正交矩......
2019-06-24 22:33:54
1068
原创 0.理解齐次坐标
参考资料:http://www.songho.ca/math/homogeneous/homogeneous.htmlhttps://mp.weixin.qq.com/s/0QHxvTcH4H072U64uDK_2A问题:两条平行线可以相交。在欧氏空间(几何)中,同一平面的两条平行线不能相交,或者不能永远相遇。但是在投射空间中却不是这样。![c79a12fd0ca7725d513ac7c......
2019-06-24 22:25:46
385
原创 0.NANO入门教程之安装ROS
安装ROS其实在nano上面安装ros和在台式机上面安装并无差异:1.sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'2. sudo apt-key adv --keyserver ...
2019-06-19 00:16:18
1263
原创 ubuntu编译安卓平台Tengine安装protobuf3.0.0
因为官方给出的protobuf_lib是基于v3.0.0,所有ubuntu本机也需要安装protobuf3.0.0版本;通过下面的地址:https://github.com/google/protobuf/archive/v3.0.0.zip解压后,在v3.0.0版本中的autogen.sh中,需要下载gmock的1.7.0版本。因为有时候网速的问题,在这里我们先把他给下好,然后在auto...
2019-06-18 16:32:37
533
1
原创 详解shell中>/dev/null 2>&1
shell重定向在计算机领域,重定向是大多数命令行解释器所具有的功能,包括各种可以将标准流重定向用户规定地点的Unix shells。类Unix操作系统的程序可以透过dup2(2)系统调用完成重定向,或者透过缺少一些灵活性但是更高一级层次的freopen(3)和popen(3)来完成。在交互式的程序中,输入来自用户的键盘和鼠标,结果输出到用户的屏幕,甚至播放设备中。而对于某些后台运行...
2019-06-02 12:23:31
411
原创 两种四轴PID讲解
参考资料:爱无人机论坛单级PID:PID算法属于一种线性控制器,这种控制器被广泛应用于四轴上。要控制四轴,显而易见的是控制它的角度,那么最简单,同时也是最容易想到的一种控制策略就是角度单环PID控制器。相应的伪代码如下:以ROLL方向角度控制为例:测得ROLL轴向偏差:偏差=目标期望角度-传感器实测角度ERRO
2017-10-10 09:27:24
7999
1
原创 简单常用滤波算法C语言实现
1.限幅滤波算法(程序判断滤波算法)方法解析:根据经验判断,确定两次采样允许的最大偏差值(设定为A),每次检测到新值时判断:如果本次值与上次值之差如果本次值与上次值只差>A,则本次值无效,放弃本次值,用上次值代替本次值。优点:能有效克服因偶然因素引起的脉冲干扰缺点:无法抑制那种周期性的干扰,平滑度差#define A 10char value;char fi
2016-03-31 15:08:23
63595
19
原创 改进式PID控制以及C语言实现过程
改进式PID控制 如果是在低速模式下,标准的PID基本可以满足控制要求,但随着速度的提升,PID算法要进一步修改和完善才能达到控制要求。因此需要对PID算式进行适当的改进,从而提高控制质量。 积分项的改进 积分项的作用:消除稳态误差,提高控制系统的精度。积分项存在的问题:偏差较大时,积分的滞后作用会影响系统的响应速度,引起较大的超调及
2016-03-31 14:14:24
5960
4
原创 PID连续控制算法的表达式以及C语言实现
1. 数字(离散)PID控制算法的表达式:将PID调节器离散化,用差分方程来代替连续系统的微分方程,分为位置式和增量式两类。重点理解概念如下:a) 基本偏差e(t):表示当前测量值与设定目标值间的差,设定目标是被减数,结果可为正或负值,正值表示未达到目标,负值表示超过设定值。(代表比例)b) 偏差和:即每次测量的差值总和,注意正负(代表积分)c) 基本偏差的相对
2016-03-31 13:56:25
33538
5
原创 PID概述以及在无人机中的应用
PID控制是将误差信号的比例P,积分I,微分D通过线性组合构成控制量,称之为PID控制。但是在很多情况下,往往不一定需要三个单元,但是比例单元是必不可少的。PID控制器难点在于参数的整定,但是很多情况下我们可以直接根据系统的时域响应来调节这三个单元的参数。1. 比例环节(P):直接将误差信号放大或缩小,因此将比例环节参数增大可以提高响应速度并且减小稳态误差,但是,快速性和稳定性总是矛
2016-03-31 13:52:08
13222
原创 pixhawk自学笔记之Mixer学习
混合器输出定义控制器的输出是如何映射到电机和伺服输出。所有内置mixer文件位于ROM文件系统的/etc/mixers目录,并编译成固件。Mixer是一组独立的映射器,从控制读入写入,写入执行器输出。一个模块,结合一组根据预先定义的规则和参数的输入,产生一组输出。1.语法:Mixer的定义是文本文件,用一个大写字母后跟一个冒号开头的行。所有其他的行都会被忽略,这意味着解释性文本
2016-03-05 09:40:59
5607
原创 pixhawk自学笔记之环境搭建注意细节
假设我们在ubuntu下进行代码的阅读编译(我选择的是ubuntu14.04 LTS版本)首先你需要按照http://dev.px4.io/starting-installing-linux.html这个网址提供的环境搭建方式,安装必要的工具包和软件。首先我们要执行的是:~ $ sudo usermod -a -G dialout $USER如果不执行这一步后面
2016-03-04 15:36:30
6016
4
原创 pixhawk自学笔记之px4遥控信号部分
rc信号由src/drivers/px4io/px4io.cpp发布,频率是50HZ。(由宏定义IO_POLL_INTERVAL限制)我们追踪这个字段会发现,对电调的PWM的输出也是限制在这个值。我们发现rc_input_values rc_val;rc的载体是这个结构体。我们在sensors.cpp中的rc_poll()(这个函数用来收集和发布RC信号)函数中发现它的运作流程。在
2016-03-03 10:27:35
9694
原创 pixhawk自学笔记之从串口获取光流数据
pixhawk代码已经给出了光流从iic接口获取数据的驱动,在driver文件下可以找到。因为我手边没有多余的传感器,也懒得重新配置mavlink协议,我们来看一下光流代码:我在main.c文件中把源代码给修改了,现在我们通过串口3,利用mavlink_msg_optical_flow_send函数传送数据。我们追踪到这个函数:在这个文件下。好,那我们看一下在飞控源代码里面怎么接受
2016-02-19 21:46:05
7516
7
原创 pixhawk自学笔记之px4程序启动顺序
在了解px4启动之前我们需要了解一下bootloader。Bootloader是在操作系统内核运行之前运行,可以初始化硬件设备,建立内存空间映射图等,整个系统的加载启动任务就是完全由Bootloader来完成的。它还是嵌入式系统在加电后执行的第一段代码,在它完成cpu和相关硬件的初始化后,再将操作系统映像或固化的嵌入式应用程序装在内存中然后跳转到操作系统所在的空间,启动操作系统运行(后面会有一篇专
2016-02-18 11:32:10
12409
1
转载 pixhawk自学笔记之uorb学习总结
注:这是看过好多文章总结出来的,转载了较多人的博客,希望有知道原出处的人把地址留下,我贴上来。在此谢谢各位前辈的总结。(我会在后续笔记中贴出在我自己的程序中对于uorb的使用)进程与应用程序(传感器应用程序发送传感器数据到姿态过滤应用程序)之间的通讯是pixhawk软件架构的重要组成部分,进程(即所谓的节点)通过命名的总线交换消息称之为“主题”,在pixhawk中,一个主题仅包含一
2016-02-18 10:37:45
9678
2
原创 pixhawk自学笔记之创建一个应用程序(按官网)
今天我们看一下如何创建一个应用程序,读取传感器和发送数据:https://pixhawk.org/dev/px4_simple_app 当把环境搭建好,整个工程下载后,打开src-->examples--->px4_simple_app。当然了,也可以自己添加想实现的功能和任务。当写好这些应用程序,还要考虑要把它注册为NuttShell命令。为了使该应用程序进入固件的编译,将其添加到模
2016-02-18 10:22:13
5240
2
原创 pixhawk自学笔记之windows下的cmake编译
1.首先需要确保已经安装了JAVA环境。 2.下载cmake编译工具,注意在安装过程中把cmake添加到环境中。 3.下载并安装PX4工具链,px4_toolchain_installer_v14_win.exe。 4.运行开始菜单下的 5.以后再次编译的时候就不需要再执行PX4 Software Download的,直接打开PX4 Console 6.此时可使用
2016-02-18 09:49:41
3594
jetbot_ros_control.zip
2019-07-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人