自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 记一次无人机调试过程中的小众BUG

我们公司正在开发一款基于动作捕捉定位系统的无人机/无人车空地协同演示项目,调试实物无人机飞控的过程中,当动捕系统采集到的定位数据发送到飞控上之后,静止状态下飞控的位姿融合解算还算正常,一旦飞机以位置Posision模式起飞,不到30秒,位姿解算就会自动停止,同时自动切换到高度Altitude模式,并且以IMU惯组的定位作为它的基准定位,直到无人机降落停稳后,位姿融合算法才继续开始工作,但解算出来的位姿已经和动捕定位的实际位姿相去甚远了。

2024-04-04 09:56:48 232

原创 XTDrone仿真平台示例解析(四)——三维激光SLAM

上一篇二维激光SLAM只能进行平面信息解析,做二维运动规划,若遇到更复杂的环境则无能为力,因此需要获取更多信息。三维激光SLAM可进一步感知无人机周边的空间环境信息,可以帮助无人机更精准地进行三维运动规划。

2024-01-30 16:33:05 883 17

原创 XTDrone仿真平台示例解析(三)——二维激光SLAM

二维激光SLAM是无人机进行二维运动规划和建图的前提,同时也是SLAM中较为简单的定位算法,其功能是构建二维栅格地图,一般用于机器人/无人机在封闭环境下的定位和导航。

2024-01-30 13:00:58 552 1

原创 XTDrone仿真平台示例解析(二)——视觉SLAM

无人机在做自主运动规划前一定要知道自己周围有哪些障碍物,以及这些障碍物的形状大致如何,这是它能自主行动的前提。本篇将介绍在XTDrone仿真平台下,如何使用开源代码ORB_SLAM3开启视觉SLAM。

2024-01-27 10:47:18 1224

原创 XTDrone仿真平台示例解析(一)——第一个仿真实验

本篇主要介绍如何将XTDrone跑起来,如果环境搭建没问题的话,按下列步骤进行第一个仿真实验,可以看到仿真无人机在键盘的控制下飞起来。

2024-01-24 13:21:01 638 1

原创 Hector Simulation 双足机器人仿真环境搭建

人形机器人移动的基础在于双足直立行走,而在真实环境下进行试验迭代,需要昂贵的硬件设备和较长的迭代周期,因此仿真试验环境显得尤为重要。在仿真环境下确定大致方向后,再进行实物试验,可以节约成本、缩短迭代周期。本文将介绍Hector Simulation双足机器人仿真环境的搭建和模拟。(操作系统:Ubuntu20.04;ros版本:noetic;底层架构:x86_64)。

2024-01-21 12:38:12 694 2

原创 XTDrone仿真平台环境搭建(基于ros-noetic版本)

本文主要介绍XTDrone仿真平台在docker下的环境搭建。

2024-01-17 17:41:27 1331

原创 Mobile Aloha 基于ros-Docker-Ubuntu23.10环境搭建

学习记录,在Ubuntu23.10操作系统下,使用docker运行ros:noetic,搭建Mobile Aloha的运行环境,同时给容器添加N卡gpu支持。(注意:笔者进行环境搭建时全程处于魔法状态,非魔法可能导致网络受限;NVIDIA显卡驱动安装的是metapackage from nvidia-driver-535版本;CPU是x86_x64架构)

2024-01-16 14:08:24 1351 3

原创 WSL实现桥接网络并固定IP地址

WSL在Linux开发过程中给开发人员提供了极大的便利,但同时存在一定的问题,就是IP地址不固定。对嵌入式开发人员来说,要求在固定的网络环境下对开发板进行调试,不太友好。因此笔者尝试对WSL实现桥接网络直连外部交换机,并关闭DHCP固定它的IP地址。要实现上述功能有两种方式,一种是临时对WSL的虚拟交换机进行修改,每次重启计算机后会重置;另一种是新建一个虚拟网络交换机,用来实现桥接网络,做好配置则可以保证其永久生效。

2023-09-07 16:06:04 4481 6

原创 Qemu虚拟arm开发板驱动开发详解(二)——驱动的加载

驱动的加载有两种方式,一种是写进操作系统内核,跟随操作系统启动和关闭的静态加载方式,另一种是灵活多变,在操作系统运行过程中临时插入驱动的动态加载方式。在本章中,我们将在arm32开发板上进行驱动加载,并实现两种不同的驱动加载方式。

2023-09-03 20:04:16 536

原创 Qemu虚拟arm开发板驱动开发详解(一)——驱动基本架构

此前在系列文章中,我们已建立好Linux最小系统的运行环境,并将其成功移植到了由Qemu模拟的arm32开发板上。接下来将介绍如何基于上述环境进行驱动开发。本节主要带各位读者了解Linux内核驱动的基本架构,并在WSL的Ubuntu22.04子系统下实现基于x86操作系统的简易Linux驱动“HelloWorld”。

2023-09-01 11:37:21 1587 1

原创 WSL2下Ubuntu22.04使用Qemu搭建虚拟Vexpress-A9开发板(六)——U-boot+emmc启动

在第四部分《通过U-boot引导加载内核》中,我们发现U-boot的环境变量修改后无法保存,需要修改源代码来固化环境变量,对启动参数的修改造成了不便。因此本节将继续深入探讨如何将U-boot的环境变量存储在emmc内,同时使用emmc存储Linux内核、设备树以及根文件系统,并在此基础上尝试引导启动最小Linux操作系统。

2023-08-21 17:12:37 680 5

原创 WSL2下Ubuntu22.04使用Qemu搭建虚拟Vexpress-A9开发板(五)——其他辅助优化功能

在实际开发嵌入式Linux操作系统的过程中,交换文件数据不仅仅局限于主机和开发板之间,很多时候需要开发板直接访问外网。然而在前几个章节的介绍中,开发板只能与主机通信,极大限制了开发者在网络方面的应用,因此本小节将带读者探讨如何使Qemu搭建的虚拟开发板顺利访问互联网。

2023-08-20 10:43:35 370 1

原创 WSL2下Ubuntu22.04使用Qemu搭建虚拟Vexpress-A9开发板(四)——通过U-boot引导加载内核

在上一个章节中,我们直接使用qemu引导启动了Linux内核,这和实际使用开发板时的情况不符,是因为qemu自带bootloader功能,可以直接引导内核。为了更贴近真实使用场景,本节将探讨如何在qemu搭建的虚拟Vexpress-A9开发板内使用U-boot引导和加载Linux内核。

2023-08-19 17:13:50 638 2

原创 WSL2下Ubuntu22.04使用Qemu搭建虚拟Vexpress-A9开发板(三)——挂载根文件系统

根文件系统首先是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。本节将介绍如何编译和制作Linux最小系统的根文件系统,并通过sd卡或者nfs挂载根文件系统。

2023-08-18 16:23:44 1092 1

原创 WSL2下Ubuntu22.04使用Qemu搭建虚拟Vexpress-A9开发板(二)——编译Linux内核

Linux内核是Linux操作系统的核心代码,它主要负责和硬件打交道,主要实现资源调度、内存管理、存储管理、进程管理、文件系统、设备驱动、网络通信、系统调用等功能。本节将介绍如何下载和编译Linux内核源码并将其移植到Qemu虚拟开发板上跑起来。

2023-08-17 16:59:15 654 1

原创 WSL2下Ubuntu22.04使用Qemu搭建虚拟Vexpress-A9开发板(一)——环境搭建

Qemu是一款开源免费的仿真软件,跟VMware station类似,可以仿真一台虚拟的电脑,然后在这个电脑上安装各种操作系统、运行各种应用程序。Qemu和VMware station不同的是,除了可以仿真一台电脑外,它还支持仿真一系列嵌入式开发板(支持ARM、MIPS、RISC-V等各种架构),模拟的开发板支持各种外设:串口、LCD、网卡、USB、SD卡等,可以在这个开发板上运行U-boot+Linux+Rootfs。对于缺少开发板学习嵌入式、研究U-boot、Linux内核的朋友,可以考虑使用qemu。

2023-08-17 16:08:59 1152 1

原创 Ubuntu23.04安装snapd失败:E: Package ‘snapd‘ has no installation candidate

E: Package 'snapd' has no installation candidate

2023-08-06 12:01:13 522

原创 Linux如何配置USB串口

在linux源码根目录下输入make menuconfig,并按下“/”键进行搜索,搜索到下图所示的内容,并通过该内容的指引,将相应的串口驱动配置成下图的状态。

2022-12-12 21:57:35 2157 1

原创 STM32-UART串口应用

一般情况下同步通信指的是通信双方根据同步信号进行通信的方式。比如通信双方有一个共同的时钟信号,大家根据时钟信号的变化进行通信,如SPI、I2C等。

2022-07-26 22:17:51 1367

原创 Cortex-M0芯片GPIO详解

通用输入输出接口GPIO是嵌入式系统、单片机开发过程中最常用的接口,用户可以通过编程灵活的对接口进行控制,实现对电路板上LED、数码管、按键等常用设备控制驱动,也可以作为串口的数据收发管脚,或AD的接口等复用功能使用。...

2022-07-19 12:52:45 3162

原创 ARM体系结构概述

ARM(AdvancedRISCMachines)有三种含义它是一个公司的名称、它是一类微处理器的通称、它是一种技术的名称。ARM公司是微处理器行业的一家知名企业,它是知识产权供应商,设计基于ARM体系的处理器;公司并不生产芯片,也不出售芯片,它转让设计方案给半导体厂商,由半导体厂商生产soc,并销售,同时提供一些其他设计服务,比如物理IP,图形内核和开发工具的设计。......

2022-07-17 11:51:16 5809

空空如也

空空如也

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

TA关注的人

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