自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (13)
  • 收藏
  • 关注

原创 git文件夹瘦身

git历史commit中可能包含一些build文件夹,想要删掉缩小git大小。

2024-03-26 14:30:34 281

原创 ubuntu20修改xorg.conf实现双屏幕输出

其中Identifier可以自己命名,区分开就行,Driver其实没那么重要,因为系统会根据插槽上实际的显卡来安排Driver,里面也不是所有参数都是必须的,缺省的系统会自动安排。但有时候有的屏幕输出不对,想手动固定一下配置。如果显卡工作正常是不需要自己手动编写xorg.conf的(这个文件一般不存在或者是空的),系统会根据xorg.conf的缺省自动设置屏幕。我的电脑输出是01:00.0是nvidia显卡,0:2.0是intel集显,注意是十六进制,busID是十进制。

2024-02-16 11:18:29 908

原创 GPU独显下ubuntu屏幕亮度不能调节解决方法

我自己用pyqt写了一个ui界面,直接调整 /sys/class/backlight/xxx/brightness的亮度:

2024-02-16 10:31:21 812

原创 C++类成员变量初始化顺序陷阱

因为成员变量的初始化次序是根据变量在内存的次序有关系,而变量的内存排列顺序,早在编译期就根据变量的定义次序决定了。这里a_和b_按照定义的顺序来初始化,也就是a_初始化的时候b_还没初始化呢,a_不一定是5。下面这种也是一样的,a_和b_是按照定义的顺序来初始化,即a_初始化的时候b_还没初始化呢。这里肯定是a_先初始化,b_后初始化。,更好的做法是都在构造函数内部初始化。

2024-01-25 22:49:02 426

原创 PX4经纬度转东北天坐标c++代码

附上geo.h和geo.cpp,编译的时候可以把geo.cpp编译成一个library再链接到你的程序,或者和你的程序一起编译。float的精度是不能满足小数点后七到八位的要求的。

2024-01-25 22:30:52 433

原创 mavros和PX4中的海拔高与椭球高转换

同一个位置的两种高度值一般可以相差几十米,只是因为当地平均海平面是和地形有关的,凹凸不平没有规律。而ellipsoid height采用的基准是地球标准椭球模型,它的高度值和地形没有关系,只和到地心的距离有关。下文的mavros指ros1 noetic版本的,ros2版本的我还没研究。

2024-01-25 22:13:40 958

原创 c++信号槽signal2的用法

这里连接信号connect后的函数不能呢个直接用ClassA::func,因为它还没有实例化。所以这里必须用boost::bind处理一下这个类里的函数,把this包含进去,从而让程序在运行时能知道这个函数具体是那个对象的。placeholders时占位符,函数有几个参数就需要几个占位符。c++ boost库提供的signal2很好用,适用于某一处需要执行多个函数,但是具体的函数个数和种类需要在运行时调整的情况。类似的std库里也有std::bind和std::placeholders。

2024-01-25 20:59:23 383

原创 ROS1工作空间内多个包先后编译顺序、包内编译顺序

在ros工作空间里有packageA和packageB两个包,其中第二个包依赖第一个包。

2024-01-25 20:35:14 463

原创 c++类中实例化对象的正确方法

通过拷贝内部的shared_ptr巧妙地解决了这个问题。这是我在阅读ROS1源码时学到的方法,ROS1的subscriber、publisher、timer都是这种构造方式。

2024-01-25 17:27:45 626

原创 ROS1 nodelet用法

nodelet的好处:进程内的ROS话题发布和接收可以省去序列化和反序列化、socket通信的过程,而是通过shared_ptr共享内存实现,对于数据量大的话题也许可以降低延迟减少丢包。但前提是publisher必须用shared_ptr的方法发布话题,比如:

2024-01-25 16:32:30 348

原创 ROS1节点到底有几个线程

python版本的ROS1节点会给每个subscriber,每个timer新建一个线程。c++版本的ROS1节点要复杂得多。roscpp建立了一个global callback queue回调队列,所有的subscriber和timer都将自己的回调add到这个callback queue上.

2024-01-25 15:55:42 1214

原创 ROS导出library供其他ROS包使用

如果想用自己的so动态链接库,一种方法时在target_link_libraries时把这个so库的路径加上。当然如果这个so库本身也是ROS包导出的,那么可以导出到catkin_libraries,这样。

2024-01-24 17:27:01 422

原创 慎用少用c++的static和extern变量-几个常见错误

普通的变量是局部的,只存活于它所在的那个大括号(局部作用域)里,程序运行到超出这个区域后就会被销毁。static修饰的静态变量由于存储于进程的全局数据区,即使程序运行超出了它所在的大括号,该变量依然保持。这貌似给写程序带来了一些便利,但由于类中的static变量是由该类的所有实例化对象所共有,这往往不是我们想要的。举几个常见的例子:比如要写一个周期判断函数,需要记录上一时刻的时间: 这个func函数为了完成计时功能,需要让类ClassA定义一个last_time。如果用static变量就会让f

2024-01-24 17:01:24 1038

原创 c++模板函数的声明和定义必须在一个文件

非要分开写的话,需要在cpp文件中进行模板的显式实例化,但这需要把所有用到的T都列出来。或者在头文件末尾include 这个cpp文件,但这本质和写在一个头文件没有区别,而且由于cpp文件往往没有防止重复include的机制,链接时容易报错重复定义。不同于一般c++函数,声明可以在头文件,定义可以在cpp文件。模板函数的声明和定义必须放在一起,否则编译链接会报错。

2024-01-24 14:58:50 476

原创 ubuntu20根目录扩容

首先,如果你是双系统,需要从windows系统下磁盘压缩分配一部分未使用的空间给ubuntu,注意压缩的空间要邻接ubuntu所在盘的位置。ubuntu根目录/ 或者 /home文件夹有时出现空间满了的情况,可以用gparted工具进行空间的重新分配。resize分配好后点击确认即可,根据硬盘空间大小重分配空间大概需要10MB/s,我用了接近1个小时完成。首先,制作一个安装ubuntu20的系统安装U盘。如果仅仅是把/home文件夹的空间分给/ ,则不需要压缩新空间。退出u盘系统,重新进入ubuntu。

2024-01-24 13:58:35 662

原创 C++函数返回值类型不确定处理办法-函数重载

这样定义肯定是会报错的。因为同名函数的重载只能用于参数列表或者实现(定义)不同,而不能用于返回值不同的情况。对于需要改动的值不加const,对于输入值可以加const保护一下不被修改。换一个思路,可以利用c++函数参数的。

2023-12-14 12:35:05 194

原创 c++用#define宏定义来批量实例化对象

如果之后还要对这些对象都进行统一的一系列操作,比如obj1.update(), obj2.update(), ...那就会显得代码非常冗长。此时可以用宏定义来生成类似的模板。参考自 PX4-Autopilot/platforms/common/include/px4_platform_common/param.h。如果要定义的类很多,那 DEFINE_CLASSES 宏定义就会写的特别长。,里面包含了APPLY_ALL宏定义,最多支持149个参数。其中 __VA_ARGS__ 表示 (...) 中的参数。

2023-12-14 11:19:35 222

原创 ubuntu新机必装软件和设置

可以手动修改/etc/apt/source.list。也可以在Software&Updates中修改国内源。

2023-06-10 14:12:25 358

原创 VScode+texlive+sumatraPDF实现正反向搜索

注意:如果不先打开SumatraPDF,而是直接在vscode中 ctrl+alt+V 打开SumatraPDF,反向搜索会失效。SumatraPDF是一个PDF阅读器,也可以不安装而用vscode内部的PDFviewer,但是实现不了正反向搜索功能。:先打开SumatraPDF,再在vscode中 ctrl+alt+V 打开PDF,然后在sumatraPDF中双击。安装完成后打开cmd,输入`tex --version`能显示安装版本,则表示安装成功。安装路径必须是英文。

2023-06-05 10:38:55 1773

原创 旋翼无人机常用仿真工具

可能需要运行在gazebo上,和无人机的接口也是个问题,可以参考PX4和Ardupilot中关于airsim仿真的描述。简单的质点(也可以加上动力学姿态),用urdf模型在rviz中显示无人机和飞行轨迹、地图等。由于每架飞机真的在运行PX4飞控固件仿真,因此比较占用cpu,一般一台电脑顶多仿真10架(这也是PX4 SITL支持的上限)。支持gazebo、flightgear、jMAVSim、AirSim等仿真软件。利用gazebo仿真,提供gazebo中的简单四旋翼模型。采用虚幻引擎,戴博士搭建的?

2023-05-24 18:30:59 1438

原创 xubuntu安装VNCviewer远程桌面开机自启

树莓派cm4安装了ubuntu20.04(xubuntu桌面,不是gnome桌面),需要实现vnc远程桌面登录树莓派。此处选择tigervnc,其他的vnc比如tightvnc和vnc4server貌似不好用。

2023-05-15 23:21:35 966

原创 ubuntu20安装electron并用electron-packager打包

这是一个用javascript写的,基于electron和nodejs的可以用浏览器打开的gui界面,其中3d显示的部分用的是Three.js。electron有一个好处是可以跨平台。

2023-05-02 19:49:12 1691

原创 多机器人集群网络通信协议分析

本文讨论的是多机器人各层的情况和协议。每个机器人连接一个数据传输通信模块(以下简称为,也泛指市面上的图传或图数一体的通信模块),数传之间进行组网来传递信息。根据ISO的划分,网络通信的OSI模型分为从低到高的7层。电气接口、线缆连接。如网口(RJ45)、RS232串口等。这一层只和硬件有关,传输的是0和1的。数传一般提供串口,但有的数传也同时提供多个串口和网口。对于单片机飞控来说,连接和使用数传的串口是比较容易的。

2023-03-07 16:28:43 2500 1

原创 ROS话题queue_size的含义与设置技巧

publisher中的10就是queue_size,大小并不太重要,一般设置为超过1就行。subscriber中的queue_size大小很重要,需要最新消息的时候queue_size要设置成1,不能遗漏消息时queue_size要设置大一些。

2023-03-04 15:52:55 2090 2

原创 APM飞控使用动捕等外部定位

机载计算机通过WIFI和vrpn_ros_client获取动捕系统(vicon或者nokov)的无人机定位数据(x,y,z+四元数),然后通过 /mavros/vision_pose/pose 的ROS话题发送给APM飞控。/mavros/local_position/pose 中的四元数可能和 /mavros/vision_pose/pose 中的四元数并不相同,比如可能转了180°。机头朝向动捕坐标系y轴正向时,mission planner上显示偏航角是0°或者360°,方向是正北。

2023-03-03 21:04:44 1433 1

原创 ROG配置ubuntu20.04.5双系统要点

ROG枪神7PLUS 安装ubuntu20的问题汇总

2023-02-25 03:53:06 4948 24

原创 ubuntu Ad-Hoc组网通信

ad-hoc。无中心,自组网,不需要路由器。各个节点即是client,也都具有路由功能。配置表现为所有节点都是一个“热点”,“热点”名称相同的节点自动连接。断开WIFI,再重新打开即可自动连接到my-ad-hoc。(edimax 7811Un,7822UAn都可以)。设置手动IPv4(网关可以不设置)实测相互ping延迟均只有1ms。

2023-01-06 19:50:41 1984 1

原创 集群多机ROS通信中间件:swarm_ros_bridge

最近写了一个无线网络环境下(比如WIFI)多机ROS通信的项目swarm_ros_bridge

2023-01-06 15:45:03 3423 9

原创 安装windows+两个ubuntu(三系统)成功案例

在已有的win10+ubuntu18.04双系统基础上,再安装一个ubuntu20.04

2022-10-04 15:51:04 7156 2

原创 github/gitee Readme markdown插入公式方法

github/gitee Readme markdown插入公式方法

2022-09-07 22:40:07 1343 1

原创 GPG error: https://download.docker.com/linux/ubuntu bionic InRelease: The following signatures could

解决报错GPG error: https://download.docker.com/linux/ubuntu bionic InRelease:The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8

2022-09-01 14:44:58 3690 4

原创 解决ubuntu网卡失效-更换内核版本

解决ubuntu网卡和显卡失效的问题-更换ubuntu内核版本

2022-08-30 18:39:38 2327

原创 解决ubuntu开机变慢;删除耗时启动项

本文从开机启动项、卸载snap、限制journal大小等方面解决了ubuntu开机慢的问题。

2022-08-30 17:58:54 8537 2

原创 科里奥利力的物理理解、推导与加速度变换

详细介绍科里奥利力的推导、物理意义,以及速度和加速度变换

2022-07-07 18:19:37 15113 7

原创 win10找不到d3dx9_43.dll,无法正常启动0xc000007b

Win10电脑,安装PhoenixRC时,安装好后点击运行,报错找不到d3dx9_43.dll按照网上的一些教程下载d3dx9_43.dll并放到C:\Windows\System32\下再运行regsvr32 d3dx9_43.dll 并没有作用。正确解决办法:1、腾讯电脑管家--工具箱--电脑诊所--软件硬件--丢失dll文件--丢失d3dx**.dll--立即修复。 然后它会帮你安装好DirectX2、之后点击运行PhoenixRC可能会报错“无法正常启动0xc000007b”

2022-05-05 22:13:57 4102

原创 ubuntu下matlab安装使用问题汇总

ubuntu18或者ubuntu20下安装matlab 2018a安装包和参考教程:MATLAB Linux 下载安装与激活运行 - Linux - 蓝色域界 简介 MATLAB是 matrix & laboratory 两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国 MathWorks 公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,...

2022-03-09 20:01:52 3419 1

原创 最优化方法matlab代码(二) 大规模优化问题

大规模优化问题的变量数量n很大(几千几万),普通拟牛顿类方法每步都需要用大n^2量级的hessen矩阵,因此需要很大的内存并且极大降低了计算速度。因此衍生出了一些解决大规模优化问题的方法:1、L-BFGS方法全称limited-memory BFGS法,是在拟牛顿方法BFGS法(一种对称秩2方法)的基础上,改用前m步的梯度和变量位置来计算拟hessen矩阵的方法。由于前m步的梯度和变量都只是向量而非矩阵,因此L-BFGS方法不需要存储前一步的hessen矩阵,极大减小了内存,因此得名。计算速度上会比

2022-01-03 14:18:18 3499 1

原创 crazyswarm下载编译和使用问题整理

crazyswarm下载和编译问题整理

2021-12-06 13:39:05 1683 1

原创 最优化方法matlab代码(一) 牛顿类方法

针对优化问题,常见的优化方法及其特点如下:最速下降法SD迭代点处目标函数泰勒展开用一次函数近似,下降方向dk=-gk,步长alpha由(非)精确线搜索得到,x(k+1)=x(k)+alpha*dk),优化速度慢,迭代次数多,实际应用中几乎不使用了。基本牛顿方法Newton迭代点处目标函数泰勒展开用二次函数近似,dk=-inv(Gk)*gk,步长alpha=1。优化速度快。但是Hessen矩阵Gk不一定是正定和非奇异(可逆)的,而且可能出现迭代方向dk和梯度gk接近正交的情况导致目标函数f下降

2021-11-29 22:52:23 3414 1

原创 四旋翼利用mavros进行GPS坐标指点飞行

先介绍一般px4飞控的xyz坐标指点飞行:利用mavros的 /mavros/setpoint_raw/local 话题可以发送东北天(ENU)坐标给px4飞控进行指点飞行。ENU坐标原点在起飞点,东向为x坐标,北向为y坐标,天向为z坐标。z坐标高度对应/mavros/local_position/local 中的z坐标,根据px4设置的不同可能是气压计、高度传感器或者差分GPS高度。下面介绍如何进行gps坐标指点飞行:户外我们往往希望给定一个gps坐标让四旋翼飞过去,而不是给定一个相对于起..

2021-11-23 17:34:13 5187 1

VScode 针对latex workshop插件的settings.json 模板

VScode 针对latex workshop插件的settings.json 模板 texlive+vscode安装说明:https://blog.csdn.net/Echo_Code/article/details/108083193 添加texlive路径:在环境变量path中添加E:\Asoftware\texlive\2023\bin\windows(安装目录) sumatraPDF+vscode反向搜索:设置->选项 最下面输入"D:/software/Microsoft VS Code/Code.exe" -r -g "%f:%l" 修改路径为vscode的安装路径。 正向搜索:vscode中ctrl+alt+J或者鼠标右键选择syncTex from cursor 反向搜索:先打开SumatraPDF,再在vscode中ctrl+alt+V打开PDF,然后在sumatraPDF中双击

2023-06-03

树莓派4b上的ubuntu-server18镜像(16GB卡)网盘地址

ubuntu18spx210109_raspi_drone.img 是spx在2021年1月9日制作的用在树莓派4b上的ubuntu-server18.04镜像(sd卡16G) 主要特点: 解决了一系列树莓派上的ubuntu使用基础问题,如鼠标、wifi等 安装了raspi-config 安装了ros、mavros 安装了空循环uwb的ros包 安装了px4_uwb空循环给飞机定位的包(我自己写的) 修复了不插屏幕不开机、开机分辨率不对、开机不自动连接WiFi(netplan里自己改)等问题 开启了树莓派针脚串口/ttyAMA0,为此禁用了蓝牙、禁用了串口控制台功能。 为了防止开机时串口设备发送的消息导致无法开机,还关闭了开机uboot的等待2s再autoboot的过程 因此目前开机不能再通过串口按任意键进入uboot了 没有安装二维码识别、摄像头ros节点、自主起降等ros包(节省空间)

2022-10-09

LQR设计简单matlab代码

LQR设计简单的例子,matlab代码和说明文档

2022-06-06

加速度计无依托标定算法和matlab代码

加速度计无依托标定算法和matlab代码 线性和非线性最小二乘法(基本高斯牛顿法) 含有完整的问题描述,公式推导,matlab代码仿真

2022-03-31

大规模优化问题matlab代码-LBFGS/FR/PRP/BB.zip

最优化方法matlab代码(二) 大规模优化问题,L-BFGS/FR/PRP/BB 博文链接: https://blog.csdn.net/benchuspx/article/details/122286649

2022-01-03

最优化方法牛顿方法matlab代码-从零开始

详尽的线搜索程序,阻尼牛顿、混合牛顿、SR1、BFGS、DFP优化方法,以及三个非线性最小二乘目标函数,输出优化结果和过程图。配有详尽的注释,说明文档和参考文献。 搭配博文https://blog.csdn.net/benchuspx/article/details/121613667

2021-12-08

iris_usb_camera_down.zip

建议电脑端打开该网页免费下载(手机端可能显示vip专享) 注意下载后还要根据实际调整ros package以及model的位置和路径。替换world和其他不需要的节点。

2021-05-07

协同测距matlab程序和数据.rar

两次协同测距matlab程序和数据.数据含有imu、磁力计、UWB距离、UWB测量位置、高度等信息,由ros读取存放在rosbag中。给出了matlab读取rosbag的例程和结果。

2021-05-01

synergy_v1.8.8

synergy_v1.8.8 win10安装包

2021-03-25

惯导姿态速度位置解算matlab程序

惯导姿态速度位置解算matlab程序

2021-01-01

GHOST WIN7_WIN8系统安装详细.DOC

重装系统win10用U盘硬盘GHOST 系统安装方式目前有三种,分别是硬盘装系统、U盘装系统、光盘装系统。它们各有优 缺点小编就不在此累述。小编编写此篇教程的目的是为了教大家在系统没崩溃的情况下,通 过硬盘安装GHOST系统的方式,实现快速装机目的。具体步骤如下:

2020-05-27

matlab的gui的slider滑动条和可编辑文本框动态调整某个参数.zip

Matlab的GUI的slider滑动条和edit动态文本框一起调整某个参数例程。配合csdn博客教程

2020-05-09

vrep和python联合仿真资料.zip

建议电脑端打开该网页免积分下载!手机端可能会显示vip专享 vrep和python联合仿真资料,配套讲解视频:https://www.bilibili.com/video/BV1z7411X7aK/

2020-03-27

乒乓球游戏机protues仿真.zip

乒乓球游戏机protues仿真:一 、设计目的 1、依次点亮发光二极管表示乒乓球的移动 2、防抖开关做球拍,实现接球和发球功能 3、数码管显示甲、乙双方的计分 4、球速调节功能(即发光二极管依次点亮的时间)

2019-06-03

counter100.zip

用verilog语言描述一百进制计数器(两位数码管送显)含防抖模块FPGA。文件用Quartus打开,可以下载到FPGA

2019-06-03

空空如也

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

TA关注的人

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