自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

星光

科技改变生活

  • 博客(100)
  • 收藏
  • 关注

原创 问题解决:系统崩溃出现grub rescue怎么修复

在一个装了Windows和Linux双系统的机器上调整分区后,系统崩溃,重启后出现了grub rescue>提示符,通过网络查询,通过如下方法修复问题进入了原来的系统。直到出现包含Linux系统文件的内容,表示这是安装了Linux系统的分区,输入命令。就出现之前的启动菜单了。进入Linux系统后,运行命令类似。在grub rescue提示符下输入ls命令。依次尝试ls命令,查看分区内容,比如。命令就可以恢复原先的启动菜单了。会列出一系列的盘符,比如。

2025-07-14 19:25:27 114

原创 PX4常用MAVLink Console命令

PX4常用MAVLink Console命令

2025-06-26 16:43:02 532

原创 PX4新增数据记录(logger)

PX4新增数据记录的方法比较简单在Logger::run()函数中,初始化阶段,有一段add topics的程序,大致如下根据SDLogProfileMask的设置添加需要记录的topics,比如在add_default_topics函数中可以添加需要记录的orb信息,比如增加名为radar_data的orb信息,那么就添加语句add_topic("radar_data", 100);其中第二个参数100为数据记录的间隔时间。单位为ms。那么在SDLOG_PROFILE这个参数包含DEFA

2025-06-26 16:42:44 336

原创 PX4增加Mavlink消息回发

PX4通过Mavlink实现与地面站的通讯,在Mavlink中增加一个回发的信息的步骤如下:1 在xml文件中新增消息定义Mavlink关于消息的定义包含在Mavlink项目下的message_definitions中,可以在common.xml中增加需要的消息定义,如下 ... <message id="150" name="CUSTOM_STATUS"> <description>Custom status</description> <fiel

2025-06-26 16:42:28 608

原创 PX4新增自定义orb消息

PX4模块之间通过orb消息进行通讯,新增一个自定义消息的步骤如下1 新增msg文件在msg目录下新增消息对应的文件,比如radar_data.msg,用以传递雷达设备的数据,在文件中定义该消息包含的数据结构uint16 sector1 #data of sector 1uint16 sector2 #data of sector 2uint16 sector3 #data of sector 3如上,分别为雷达扫描的三个扇区的数据在msg目录下的CMakeLists.txt文件中,加入新增

2025-06-26 16:42:13 559

原创 PX4新增自定义模块(module)

模块(module)是PX4程序运行的基本单位,用户在console可以通过start, stop, status等命令来启动、停止合查看模块信息,如commander,navigator,mavlink等。用户也可以增加自定义的模块到PX4系统中,增加自定义模块的方法如下1 新建模块对应目录所有模块都定义在src/modules目录下,每一个模块在modules目录下的对应子目录中实现,比如commander,mavlink等,新建一个模块可以在modules目录下新建一个该模块的目录,然后在目录中定

2025-06-26 16:41:49 1419

原创 PX4代码阅读笔记(七)——att_control详解

att_control模块主要实现飞行器的姿态控制,根据上层的控制模块(pos_control)输出的目标设定值输出电机的控制信号,使飞行器实现目标的姿态。多旋翼的姿态控制在对应的模块mc_att_control中实现,其主要运行函数为mc_att_control_main.cpp中的MulticopterAttitudeControl::run()函数同pos_control类似,函数首先进行一些消息订阅的初始化,然后开始工作循环,工作循环按照一定频率运行,它的程序流程如下在每一个循环中1 首

2025-06-26 16:41:29 922

原创 PX4代码阅读笔记(六)——pos_control详解

pos_control模块主要实现飞行器的位置控制(也包括速度控制)。即根据设定的目标位置/速度,给出需要实现的飞行器姿态,从而使飞行器保持在设定的目标位置或速度。位置控制的输出为飞行器的姿态,为下一级姿态控制(att_control)的输入值。以多旋翼为例,pos_control在对应的模块目录mc_pos_control下实现,其主要运行函数为mc_pos_control_main.cpp中的MulticopterPositionControl::task_main()函数函数运行首先做一些包括消

2025-06-26 16:41:09 794

原创 PX4代码阅读笔记(五)——navigator详解

navigator模块主要用于导航控制。

2025-06-26 16:40:45 1209

原创 PX4代码阅读笔记(四)——commander详解

如前所述commander的作用主要处理各种事件,调度控制系统的运行,事件包括遥控输入、用户指令、状态变更等。调度的作用主要设置控制系统运行的变量和模式,以使控制系统按照用户期望的模式运行,实现不同的控制功能。控制系统主要由navigator,pos_control,att_control构成。commander的处理逻辑主要如下所示,在commander::run()中的while循环,依次处理各种信息和事件。这里引用的是PX4略早期的一个版本,不同版本的PX4处理框架大致上应该是一样的。进行的顺序

2025-06-26 16:40:30 1651 2

原创 PX4代码阅读笔记(三)——飞行控制框架

PX4的程序通过模块来实现,即每一个功能程序以模块的形式运行在Nuttx系统上,每一个模块相当于一个进程,同时通过orb_message进行消息的输入和输出,与其它模块进行通信。飞行控制主要通过commander,navigator,pos_control,att_control等模块来实现。commander - 指令/事件处理模块,处理指令、遥控器输入和各种事件,设定飞行器状态和控制模式navigator - 导航模块,根据指定的任务输出导航轨迹pos_control - 位置控制,根据指定的轨迹

2025-06-26 16:40:12 1504

原创 PX4代码阅读笔记(二)——启动脚本

PX4通过rcS脚本来设定需要启动的程序,比如设备驱动、控制模块、数据通信等。rcS脚本在项目中的文件位置

2025-06-26 16:39:53 876

原创 PX4代码阅读笔记(一)——代码结构

PX4名声在外,是目前主流的开源飞控项目,被很多公司作为飞控开发的参考。项目代码可以从github下载$ git clone --recursive https://github.com/PX4/PX4-Autopilot

2025-06-26 16:39:32 2241

原创 常用Linux shell语法

常用的Shell语法

2023-09-27 12:05:46 250

原创 Python实现动态画图并生成gif图像(matplotlib)

通过Matplotlib中的animation可以方便的生成动态的画图,示例代码如下。

2023-08-31 08:51:50 1713 1

原创 问题解决:VS Code环境调试多文件C++程序

其中,"args"子项里面有一个参数”${file}“,表示调试的文件,把它改成“*.cpp”,然后就可以对工程项目下多文件的C++程序进行调试了。在VS code环境下默认可以调试单文件的C++程序,如果是多文件的程序,则会出现编译不通过的问题,无法进行调试。在VS Code的工程目录下,有一个tasks.json文件。修改tasks.json文件。

2023-07-27 09:13:32 479

原创 Ubuntu安装企业微信

然后就可以像安装其它软件一样安装企业微信或其它应用。在Ubuntu环境安装企业微信可以参考。

2023-07-10 15:09:18 2730

原创 在Python中调用C++的方法(ctypes)

在Python程序中,首先指定调用函数的参数形式,通过ctypes库可以把numpy数组以数据指针的形式传递给C++函数,在调用函数的时候,分别把numpy数组的指针传递给函数,即可以在C++函数中实现对两个数组的相加。在Python中可以通过几种方法调用C++的函数,这里介绍使用ctypes的方法。ctypes是Python自带的一个模块,能够直接载入C++生成的动态链接库,并调用其中的函数。这是比较简单的例子,对于使用numpy等数据类型的函数则需要更为复杂的形式,比如对于两个数组相加的例子。

2023-05-31 21:11:31 2807 2

原创 问题解决:Windows和Ubuntu双系统,开机时直接进入Windows系统

安装了Windows和Ubuntu双系统,使用了一段时间后,出现启动菜单丢失的情况,系统没有出现Ubuntu,Windows系统选择的启动选项,直接进入Windows。根据网上查询,输入如下的命令来修复启动菜单。执行后重启系统,恢复了系统启动选项的菜单。

2023-03-25 23:41:10 6799 7

原创 人工智能学习:倒立摆强化学习控制-Policy Gradient(11)

相对于DQN输出采取动作的Q值,Policy Gradient网络输出采取动作的概率,根据概率来判断需要采取的动作,并在训练过程不断修正网络,使输出的概率更好的符合最优的采取动作的策略。应用到倒立摆控制,可以通过构建一个前向网络和一个学习策略来实现。

2022-12-15 01:52:54 761

原创 人工智能学习:倒立摆强化学习控制-DQN(10)

采用DQN(Deep Q-Network)实现对倒立摆(CartPole)对象的控制

2022-12-10 17:40:58 1492 2

原创 人工智能学习:倒立摆(CartPole)(9)

倒立摆是强化学习的一个经典模拟对象,通过对倒立摆对象的持续的动作输入,使倒立摆保持在竖立的状态或者倒下。Python提供了一个模拟库(gym)来模拟倒立摆等一些典型的难度控制对象。

2022-12-08 12:06:49 1284

原创 人工智能学习:ResNet神经网络(8)

ResNet神经网络介绍可以参考如下的链接,是一种非常有效的图像分类识别的模型。[https://blog.csdn.net/qq_45649076/article/details/120494328](https://blog.csdn.net/qq_45649076/article/details/120494328)ResNet网络由残差(Residual)结构的基本模块构成,每一个基本模块包含两个卷积层。基本模块的输入被直接加成到模块的输出。这种设计可以防止网络在深度加大之后所产生的退化的现象

2022-11-18 19:17:54 2008

原创 人工智能学习:Microsoft COCO数据集读取(7)

Microsoft COCO(Common Objects in Context)是微软研发维护的一个大型的数据集。包含了30多万张图片和包含91类目标分类。可用于目标识别(Object Detection)、场景感知(Penoptic Segmentation)、语义分割(Stuff Segmentation)、标题生成(Image Captioning)等任务。

2022-11-16 00:56:15 1871

原创 人工智能学习:PASCAL VOC数据集读取(6)

PASCAL VOC是一个国际的计算机视觉挑战赛,数据集包含了20个分类的3万多张图片。挑战赛及其数据集基础上涌现不少知名的目标检测模型如R-CNN,YOLO,SSD等。可以通过下载和读取的方法载入PASCAL VOC数据集。

2022-11-15 04:26:36 1759

原创 人工智能学习:CIFAR-10数据分类识别-VGG网络(5)

采用VGG网络对CIFAR-10数据集进行分类识别

2022-11-07 02:57:23 1376 2

原创 人工智能学习:CIFAR-10数据分类识别(4)

与MNIST类似,CIFAR-10同样是人工智能学习入门的数据集之一,它包含飞机、汽车、小鸟等10个类别的图片,一共60000张图片,其中训练集占50000张,测试集占10000张。这里采用CNN网络对CIFAR-10数据集进行分类识别。

2022-11-06 21:30:34 1077 1

原创 人工智能学习:NMIST数据分类识别-CNN网络(3)

采用CNN神经网络来进行MNIST数据集的分类识别

2022-11-06 20:00:41 818

原创 人工智能学习:MNIST数据分类识别神经网络(2)

在MNIST数据集上构建一个神经网络,进行训练,以达到良好的识别效果

2022-11-06 14:53:42 862

原创 人工智能学习:载入MNIST数据集(1)

MNIST数据集是人工智能学习入门的数据集,包含了一系列的手写的数字图片。Tensorflow集成了载入数据集的函数,如下。

2022-11-06 13:52:00 1870

原创 在云服务器上安装VNC远程桌面服务

通常云服务器操作系统不包含图形界面,通过在服务器上安装VNC服务,可以让用户以图形化界面远程登录到云服务器。这里使用的是Ubuntu Server 18.04云服务器。

2022-11-04 23:46:05 1796

原创 常用Linux命令

记录一些常用的Linux命令

2022-11-03 22:31:17 687

原创 在云服务器上搭建Jupyter Notebook服务

在云服务器上搭建Jupyter Notebook服务

2022-11-03 14:30:26 1533

原创 Ubuntu升级自带的Python3版本

通过如下的步骤升级Ubuntu自带的Python3版本,比如自带3.6版本升级到3.8版本

2022-11-03 01:29:03 11425 7

原创 修改grub默认启动选项的方法

通过修改/etc/default/grub文件,修改grub默认启动选项

2022-11-01 15:46:15 5226

原创 Jupyter Notebook添加代码自动补全功能的方法

Jupyter Notebook成为一款非常受欢迎的交互式Python运行环境的软件。通过如下的方法可以添加代码自动补全的功能

2022-11-01 13:55:36 512

原创 Windows下修改Jupyter Notebook默认字体的方法(custom.css)

通过custom.css文件来设置Jupyter Notebook的默认代码显示字体

2022-11-01 13:49:26 1492

原创 Ubuntu添加截屏快捷键的方法

Ubuntu添加截屏快捷键

2022-11-01 13:34:25 316

原创 Jupyter Notebook安装

Jupyter Notebook安装

2022-11-01 13:19:02 774

原创 Linux下压缩解压文件和目录的方法(zip, tar)

Linux下压缩和解压的命令

2022-10-11 18:22:26 6178

空空如也

空空如也

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

TA关注的人

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