自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(111)
  • 资源 (2)
  • 收藏
  • 关注

转载 ros中的message filters时间同步--> 用于image和imu的结合

ros message filter时间同步历程

2022-12-21 22:08:18 697

原创 PX4 Position_Control RC_Remoter引入

PX4飞控位置环控制中如何引入遥控器的控制量, 本文基于PX4 1.12版本, 相比于之前的版本, 多引入了Flight Task这么一个模块.主要的程序位于mc_pos_control_main.cpp中, 毕竟这个是位置环的主体部分. 每次循环下面的Run()函数voidMulticopterPositionControl::Run(){ if (should_exit()) { _local_pos_sub.unregisterCallback(); exit_and_cleanup

2022-05-28 15:57:28 639

原创 PX4 混控部分分析

PX4的混控部分大体思路和ardupilot是一致的, 更多的PX4采用的是脚本读取的形式完成其中的读取,转换以及最后的应用.首先从机型选择后,对应为toml文件, 如下图所示:采用对应的px_generate_mixers.py来自动生成对应的文件, 该脚本提取toml中的参数, 进行生成, 脚本如下图所示对应python代码中的主函数是通过解析附带的输入参数完成识别, 具体可以参看同级路径下的CMakeLists.txt完成if __name__ == '__main__': imp

2022-04-15 12:49:22 900

原创 Ardupilot动力分配-混控部分分析

首先从copter.cpp中的fast_loop开始进入到motors_output()函数中上述函数中完成的有一些解锁检查, 进入之后如下图所示这个函数中完成由τ\tauτ , thrust到 PWM的输出转换过程首先在output_armed_stabilizing()函数中完成系数因子* τ\tauτ, 具体代码为for (i = 0; i < AP_MOTORS_MAX_NUM_MOTORS; i++) { if (motor_enabled[i]) {

2022-03-29 16:01:12 711

原创 ArduPilot-Mocap转换解析

针对小直升机在optitrack移植过程中出现的两个Bug进行解析:1)高度的控制如何实现,在直升机中,存在油门和总螺距的一起联动问题。2)在切换的瞬间,会有一个大的偏差,需要查看log并想办法修复这个问题.问题1) 解答:在loiter模式下, 摇杆的位置对应的是给定的target_climb_rate, 详见代码如下:对应语句为target_climb_rate = get_pilot_desired_climb_rate(channel_throttle->get_control_

2021-11-28 20:16:22 348

原创 Python_mavros_manual_contoller

利用python完成mavros与PX4的通信工程,同时也完成了对应的PX4中对应消息代码的调试查看。from __future__ import print_functionimport rospy from mavros_msgs.msg import AttitudeTarget, State, ManualControl, OverrideRCInfrom geometry_msgs.msg import PoseStampedfrom mavros_msgs.srv import Com

2021-11-02 12:58:53 819

转载 Matlab-Ubuntu 2018b-Unable to launch the MATLABWindow application的解决方案

问题阐述今天在Ubuntu18.04LTS上运行之前建好的simulink的仿真时,只听见duangduang两声报错声,命令行报错了:simulinkWarning: MATLABWindow application failed to launch. Unable to launch the MATLABWindow application解决方案>> cd(matlabroot)>> ! bin/glnxa64/MATLABWindowbin/glnxa64

2021-08-09 12:58:04 677

原创 ArduPilot之遥控器数据读取

写在前面的话:近日,有小伙伴反应在dronekit中采用channel.override没有效果,因此抽个空看了一下ardupilot代码中遥控器的读取代码。首先,遥控器的读取在copter.cpp中完成, 如下图所示:可见读取的频率为100Hz, 接着跳转进去,可以得到:再次进行跳转可得:跳转update()函数进去这个地方需要说明一下:上图画圈的地方可以看出 radio_in 来自2个地方: 1. 从mavlink消息中传送进来, 2. 从后端接口读取;下面箭头的函数则负责将 ra

2021-07-03 18:07:27 1347 1

原创 matlab udp发送与接收示例程序

matlab udp发送与接收示例程序亲测可用% ipA = '192.168.0.5'; % portA = 8080;% ipB = '192.168.0.3';% portB = 8080;% handles.udpA = udp(ipB,portB,'LocalPort',portA);% set(handles.udpA,'OutputBufferSize',8192);% set(handles.udpA,'TimeOut',100);u1 = udp('127.0.0.1',

2021-06-29 22:53:49 5649 3

原创 进程间通信的实现(C++,python, 以及C++与python之间的通信)

进程间的通信可以采用 管道, 消息队列,共享内存,信号量,套接字本次尝试采用套接字的形式实现不同进程之间的数据交互python 的socket实现(Tcp形式)服务端, 采用tcp的形式完成数据的交互import socketsend_data = socket.socket(socket.AF_INET, socket.SOCK_STREAM)send_data.bind(('127.0.0.1',5000))send_data.listen(5)conn,address =

2021-06-27 20:40:23 3006

原创 ArduPilot航点控制

新航点进去当mavlink收到一个航点消息之后,会执行下面的函数:经过一系列跳转,之后,一个比较关键的函数如下其中,对应的origin是根据当前速度,与当前位置得到的stopping_point。 destination是给进去的目标点。然后停止点会更新成新的_origin变量。开始计算位置误差一个很重要的函数,如下图所示:跳转进该函数中,上述所示表示将计算得到的target_pos 送给位置计算中,为后面的位置误差的给定值。(反馈值为当前的位置值)。而上面一句话则表示位置的计算方法

2021-06-25 21:53:30 1519 2

原创 ArduPilot 添加自定义调节参数

实际变成操作中,需要对ardupilot代码进行修改并添加对应的调试参数,这样,可以通过地面站很方便的进行修改参数。

2021-06-23 14:53:23 1758

原创 简易mavgcs制作

视频链接自制科研简易地面站采用的python包有mavsdk, tkinter, asyncio, threading,dronekit实现方式 tkinter制作UIUIUI界面,采用多线程实现数据的读取与显示通过mavsdk或者dronekit完成与无人机之间的通信通常mavsdk对应PX4固件友好一点,dronekit对APM代码友好一点。这次两个都用了。dronekit对mavlink协议支持的全面一些。mavsdk仅支持部分mavlink协议内容,对offboard模式比较友好。mav

2021-06-19 21:17:17 1518

原创 velodyne开箱测试,realsense D435i开箱

主要完成的是开箱测试,后续的坑还很深。velodyne 开箱 : 此设备是网络连接,且固定IP为192.168.1.201, 所以需要固定ubuntu的IP地址。修改方式在/etc/netplan中的 01-network-manager-all.yaml中修改network:version: 2renderer: NetworkManagerethernets:ens33:dhcp4: nodhcp6: noaddresses: [192.168.0.130/24]gateway4:

2021-06-14 21:26:12 1154

原创 文本文件的读写 template, C++ , Python版本

首先是C++的版本,完成对txt文件的读写操作* 读文件三大类 : (1)ofstream : 写文件 (2)ifstream : 读文件 (3)fsream : 读写文件1 文本文件1 写文件步骤:(1)包含头文件 #include < fstream > (2)创建流对象 ofstream ofs(3)打开文件 ofs.open (“文件路径” ,打开方式) (4)写数据 ofs <<“写入数据”(5)关闭文件 ofs.close()文件的写操作,可以说是

2021-06-11 10:04:39 1507 1

原创 ardupilot之mavlink消息--飞控接收--单向

ardupilot程序测试-mavlink 飞控接收, dronekit自动化测试脚本

2021-05-31 15:58:44 2850 2

原创 ardupilot之mavlink消息--从飞控发出--单向

飞控采用mavlink消息进行数据的传输。普遍说法是,现有的mavlink消息几乎已经涵盖了所有你的能想象到的内容,完全可以覆盖多处需求。 无奈科研总是要定义一些新鲜玩意 ,所以总是有无法完全满足需求,需要自定义消息的时候。mavlink 消息的创建,首先在common.xml文件中找到对应的message部分,在common.xml文件的最后部分, 对应复制一个message消息,修改对应的消息ID,消息名称,消息内容,然后编译即可,生成对应的.h文件,对应的.h文件在 build/XXX/libra

2021-05-31 15:24:07 2506

原创 ArduPilot 添加日志文件

ArduPilot 添加日志文件。在程序的调试或者科研过程中,经常要记录所需要的变量值,一方面, 我们可以将其打印在地面站上进行查看,但是这种方式的速度比较慢(毕竟是串口传输数据,且发送太快,怕印象程序的稳定性),那么另一方式就是将所需的变量以log的方式存储起来了。注: 其实添加过程没有太复杂,完全可以参照现有程序一步一步依葫芦画瓢做出来。首先进入到主程序 Copter.cpp 中,对应找到记录log的地方,一般以 Log_Write_XXX();跳转过去在 Copter.h 中定义的

2021-05-29 13:38:35 1812 6

原创 APM代码调试知识点汇总

由于项目的需要,对ardupilot的源码进行二次开发。本文记录在二次开发中遇到的问题以及注意事项:CUAV V5 实测 apm 串口,对于姿态数据的发送和接收在200Hz的时候,是没有问题的,但是当达到250Hz及以上之后,数据传送会在很大概率出现丢包的现象,而且这还是在有线串口的情况下测试的。这点和PX4代码有点相像,尽管PX4当时是采用mavros消息的形式完成对数据的采集,但是PX4姿态环的更新频率(也就是说把mavlink消息相关姿态环的数据提升到unlimited,也就是一收到姿态数据立马

2021-05-16 22:23:32 3682 7

原创 PX4_jmavsim仿真之问题解决篇

1.安装鼠标,键盘同步软件Synergy而导致在linux中删去了部分ros包。2. 尝试使用mavsdk与PX4进行通信需要一个仿真环境。于是尝试采用PX4自带的仿真环境jmavsim。遇到的问题:Inconsistency detected by ld.so: dl-lookup.c: 111: check_match: Assertionversion->filename == NULL || ! _dl_name_match_p (version->filenam`解决方法,检查

2021-05-05 10:15:40 2938

原创 matlab-fft求取给定数据的频率及对应的滤波器设计

matlab-fft的使用范围以及使用示例

2021-05-05 10:10:31 9889

转载 ubuntu 系统 备份与恢复(转载)

ubuntu 系统 备份与恢复

2021-05-04 11:38:47 1820

原创 鼠标-键盘复用神器-->Synergy

两台电脑,一台ubuntu系统,一台windows10系统。可以通过软件Synergy完成共用一套鼠标键盘的操作,实测比较方便。Synergy是付费软件,但是其免费版本已经我们的使用了。两台电脑同处于一个局域网内。ubuntu系统安装过程中,需要用到 libcurl3, 在安装该库的时候和ROS冲突,导致卸载了ROS系统,这点比较坑。ubuntu系统安装后启动失败报错如下:解决方法为sudo apt-get install sni-qt使用方法参照其他博客,例如synergy比较详细的使用方

2021-05-03 14:48:40 704

原创 apm-ros-optitrack初步尝试

本文记录采用ArduPilot固件,室内optitrack环境下飞行实现中遇到的一些问题

2021-04-24 17:12:03 1605

原创 有趣的四元数,无聊的Rotation,舒心的EulerAngle

常见的姿态的表示有欧拉角,四元数,旋转矩阵三种方式。其中欧拉角的表示是最直观的,说白的就是给人看的。但是欧拉角这个东西有很多问题。1. 万向锁死结2. 定义是有先后旋转顺序的3. 空间的姿态是用旋转表示的,应该用乘法。由此,在工程中,很多时候都是采用四元数的方式进行运算,原因在于:四元数不存在奇异问题,也就是没有万向锁死结的问题四元数采用四个数来表示旋转,相比旋转矩阵,结构更紧凑但是,四元数具有二义性的问题。这里要展开说明一下:首先,定义四元数q=[q0(t)qvT(t)]T∈R×R

2021-04-24 17:00:44 749

原创 matlab发送mavlink消息

主要介绍了通过matlab脚本实现UDP发送mavlink消息,为后面matlab计算,与Optitrack联合调试,控制无人机做准备。示例演示效果链接为 matlab通过UDP协议发送mavlink消息demo采用的github仓库为https://github.com/lustosa-leandro/matlab-mavlink添加matlab下.m文件代码为fclose(instrfindall);des = mavlink('127.0.0.1');while 1 sendH

2021-04-23 10:34:52 4476 3

原创 树莓派开机热点启动

因项目需要,设计树莓派开机自动建立热点,方便外场实验笔记本远程链接树莓派,并进行调试。关闭树莓派开机自动链接无线网络删除/etc/NetworkManager/system-connections目录里的连接文件树莓派开启自组热点采用的是github上的开源项目,项目地址为:create_apgit clone https://github.com/oblique/create_apcd create_apmake install然后:create_ap wlan0 eth0 MyAcc

2021-04-20 14:42:57 1666

原创 Flightmare install 安装指南

flightmare 是ETH推出的一个用于gazebo仿真,强化学习训练的平台,并在github上公开了其源代码。本文主要记录在配置环境过程中出现的问题。github网址链接https://github.com/uzh-rpg/flightmare最后的测试视频测试视频链接整个工程用到的依赖见下图tips:采用 catkin build编译失败,但是采用catkin_make编译成功用到的依赖包libzmqpp-devDownload the Flightmare Unity Bin

2021-04-18 19:18:40 1587 1

转载 ubuntu18开机进入不了图形界面_如何解决Ubuntu18.04循环登录/卡在开机界面/无法进入图形界面的问题(转载)

原因:NVIDIA显卡驱动损坏解决方案:重启进入命令行模式卸载原有NVIDIA驱动程序重新安装NVIDIA驱动后重启,问题解决Step1: Ubuntu系统开机进入命令行模式系统启动后,在BIOS引导界面按"ESC"键进入选择菜单,选择第一个"*Ubuntu",按"e"键进入编辑模式。在出现的编辑项里,可以看到GRUB解析给内核的参数。我们在该行末尾给出引导运行级别,3(多用户模式,纯文本)。按CTRL+X或F10引导系统,启动之后就是命令行模式了。这种方法只是一次临时性的,并不是永久性

2021-04-04 20:38:52 1824

转载 Ubuntu安装Matlab其Simulink没有菜单栏的解决方案(转载可用)

原文链接:https://blog.csdn.net/ly869915532/article/details/107849653Ubuntu安装Matlab其Simulink没有菜单栏的解决方案版本信息问题描述解决办法版本信息Ubuntu 16.04 LTSMatlab 2020a问题描述Matlab安装完闭之后直接运行,虽然可以启动,但是会报错:OMEN@OMEN:/usr/local/Polyspace/R2020a/bin$ sudo ./matlab[sudo] OMEN

2021-04-04 09:50:04 1322

原创 Ardupilot 伴飞,追击demo

视频链接如下:简单介绍:采用2个ArduPilot固件才实现的,放在不同的路径下,启动即可。注意事项:两架飞机需要采用不同的句柄。–instance=X.两架飞机需要设置不同的ID, 对应参数sysidXXX =X采用dronekit-python 分别连接上两个端口。然后通过句柄读出第一架飞机的GPS信息,并经过算法处理发送给2号飞机。...

2021-03-31 14:56:00 2110

原创 latex之参考文献

主要汇总了近期在latex撰写过程中遇到的问题,以及解决方法。

2021-03-30 13:36:43 1588

原创 C语言实现mavlink库与px4通信仿真

参照网址:http://mavlink.io/en/mavgen_c/首先从github上下载对应的C_uart_interface_example,对应的github仓库网址为https://github.com/mavlink/c_uart_interface_example按照github教程,完成编译和下载。这里,他们改写了makefile文件,使得在make的时候还需要从github上面下载对应的mavlink_library_v2.对应编译的主要存在mavlink_control.cpp

2021-03-29 18:13:21 980

原创 orb_slam安装中的坑,mission planner多机仿真

orb-slam 对应的github下载地址为:https://github.com/raulmur/ORB_SLAM2里面有单目,双目等代码。本文记录了在ubuntu系统安装中的一些坑。opencv的安装,可以采用sudo apt-get install libopencv-dev安装也可以采用源码安装,我采用的是源码安装,https://github.com/opencv/opencv.git. 安装过程很常规,记得最后sudo make install一下;Pangolin库的安装。https

2021-03-26 10:41:54 1059 1

原创 PX4室内姿态模式记录

简单介绍了一下PX4飞控室内增稳模式的飞行效果,配合视频进行观看即可

2021-03-22 11:03:31 729

原创 ArduPilot 代码书写规范

ardupilot中采用多线程包含有三种模式:信号量,无锁数据模式以及PX4 ORB形式

2020-11-30 11:12:57 818

原创 Ardupilot中的串口调试以及example学习

Ardupilot代码提供了丰富的学习历程,方便新手入门。官方网站已经给出了具体的实验步骤,我这里只是重复做了一下。首先,可以通过 ./waf list|grep 'examples' 查看对应的examples都有哪些。然后将对应的example 编译到板子之中即可。执行指令如下:./waf configure --board=Pixhawk1./waf build --target examples/UART_test --upload也可以通过sitl的方式来查看,具体如下:./waf

2020-11-26 22:20:35 2475

原创 烧写自定义ArduPilot到自定义的开发板

写在前面的话:本篇章内容参看《怒飞垂云》的资料。将APM固件移植到自制硬件实际操作过程中,需要如下几个步骤:先在ardupilot中的 ./waf distclean 完成清理,主要删除了build文件夹在libraries/AP_HAL_ChibiOS/hwdef中创建自己的飞控的文件夹。在文件内创建并编辑相应的硬件描述文件,其中-bl.dat表示bootloader文件,hwdef表示剩下的硬件描述文件。./waf configure --board XXXX --bootloader.

2020-11-23 19:43:11 2205

原创 px4调试bug--添加mavlink_log_info信息

有一阵子没有看首先要添加头文件需要的函数为mavlink_log_info(&_mavlink_log_pub,"this is a string %f", (double)value);

2020-11-18 20:30:23 1616

原创 ArduPilot-sitl中的一些操作记录

ArduPilot 这么优秀的代码,提供了一套很方便的SITL仿真开发模式。在git clone代码的时候,已经将相关的东西下载下来了。问题是如何进行使用。首先要安装mavproxy 这个软件,pymavlink --mavlink封装的python module,后面也可以采用这个脚本给仿真加上自己的程序。这点和ROS/MAVROS 的模式类似。(ROS是C++编程,多线程是没有问题的,python是伪多线程)其中指令有多点,./sim_vehicle.py --vehicle=ArduCopter

2020-11-16 13:14:49 2183 2

个人原创总结的无人机大事记

该文档需要采用xmind进行打开,列举了本人原创总结的无人机发展时间重要节点和事件。主要关注点为ArduPilot开源项目,PX4开源项目,ROS开源项目以及DJI。并对无人机的发展进行简单的阶段分类。

2020-03-26

JPG2EPS.7z

latex中上传图片通常为eps格式。若图片为jpg格式,该小工具可以方便的将jpg格式的图片转换成eps格式,插入到latex中,方便科研论文。

2020-03-26

空空如也

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

TA关注的人

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