- 博客(100)
- 收藏
- 关注
原创 问题解决:系统崩溃出现grub rescue怎么修复
在一个装了Windows和Linux双系统的机器上调整分区后,系统崩溃,重启后出现了grub rescue>提示符,通过网络查询,通过如下方法修复问题进入了原来的系统。直到出现包含Linux系统文件的内容,表示这是安装了Linux系统的分区,输入命令。就出现之前的启动菜单了。进入Linux系统后,运行命令类似。在grub rescue提示符下输入ls命令。依次尝试ls命令,查看分区内容,比如。命令就可以恢复原先的启动菜单了。会列出一系列的盘符,比如。
2025-07-14 19:25:27
114
原创 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代码阅读笔记(四)——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名声在外,是目前主流的开源飞控项目,被很多公司作为飞控开发的参考。项目代码可以从github下载$ git clone --recursive https://github.com/PX4/PX4-Autopilot
2025-06-26 16:39:32
2241
原创 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
原创 在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
原创 人工智能学习:倒立摆(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数据分类识别(4)
与MNIST类似,CIFAR-10同样是人工智能学习入门的数据集之一,它包含飞机、汽车、小鸟等10个类别的图片,一共60000张图片,其中训练集占50000张,测试集占10000张。这里采用CNN网络对CIFAR-10数据集进行分类识别。
2022-11-06 21:30:34
1077
1
原创 人工智能学习:载入MNIST数据集(1)
MNIST数据集是人工智能学习入门的数据集,包含了一系列的手写的数字图片。Tensorflow集成了载入数据集的函数,如下。
2022-11-06 13:52:00
1870
原创 在云服务器上安装VNC远程桌面服务
通常云服务器操作系统不包含图形界面,通过在服务器上安装VNC服务,可以让用户以图形化界面远程登录到云服务器。这里使用的是Ubuntu Server 18.04云服务器。
2022-11-04 23:46:05
1796
原创 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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人