基于OpenLTE的4G移动通信网络实验指导书

2023-05-16

基于本人本科毕业设计的成果,设计了一套基于开源SDR项目——OpenLTE的实验指导书,可以指引读者通过平台源码、平台提供的实验和结合实验对3GPP规范的解读分析来更直观、更多元立体的学习无线通信技术,而不是纯粹的理论学习或只是进行观摩性质的演示实验。

1 OpenLTE平台搭建

本小节内容为OpenLTE移动通信实验平台的搭建过程,是后续实验环节的环境基。此处将详细介绍经过多次测试后可较稳定运行环境版本的安装过程。全部环境建立在实体系统的Ubuntu16.04或18.04上,进行安装前请先确认非虚拟机的系统安装完毕。如在虚拟机中运行平台将无法保证USRP与计算机的稳定连接,也无法保证平台的正常运行。

在调试过程中可能需要卸载某些插件,卸载方式均为在编译文件夹中运行:

sudo make uninstall

1.1 UHD安装

1)在安装UHD前,需先安装所需依赖项。

在终端中运行:

sudo apt-get update

若是Ubuntu 18.04系统,运行:

sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.14 -0 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python -qt4-dbg python -qt4-dev python -qt4-doc python -qt4-doc libqwt6abi1 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse -dev swig g ++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk3。0 git libqt4-dev python-numpy ccache python-opengl libgsl-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwtplot3d-qt5-dev pyqt4-dev-tools python-qwt5-qt4 cmake git wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq3-dev libzmq5 python-requests python-sphinx libcomedi-dev python-zmq libqwt-dev libqwt6abi1 python-six libgps-dev libgps23 gpsd gpsd-clients python-gps python-setuptools4-dev libasound2-dev python-gtk2 libzmq3-dev libzmq5 python-requests python-sphinx libcomedi-dev python-zmq libqwt-dev libqwt6abi1 python-six libgps-dev libgps23 gpsd gpsd-clients python-gps python-setuptools4-dev libasound2-dev python-gtk2 libzmq3-dev libzmq5 python-requests python-sphinx libcomedi-dev python-zmq libqwt-dev libqwt6abi1 python-six libgps-dev libgps23 gpsd gpsd-clients python-gps python-setuptools

             若是Ubuntu 16.04系统,运行:

sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.13 -0v5 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python -qt4-dbg python -qt4-dev python -qt4-doc python -qt4-doc libqwt6abi1 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse -dev swig g ++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk3。0 git-core libqt4-dev python-numpy ccache python-opengl libgsl-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwt5-qt4-dev libqwtplot3d-qt4 -dev pyqt4-dev-tools python-qwt5-qt4 cmake git-core wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq -dev libzmq1 python-requests python-sphinx libcomedi-dev python-zmq python-setuptools

2)从源代码构建和安装UHD。

克隆源文件到本地,并进入文件目录:
git clone https://github.com/EttusResearch/uhd
cd uhd
若需查看可安装的UHD版本,运行:
git tag -l
若需安装指定版本的UHD(以3.10.0为例),运行:
git checkout release_003_010_000
若没有版本需求,默认安装最新版,此处推荐默认版本。
在存储库中创建一个构建文件夹,并在该文件夹内进行安装:
cd host
mkdir build
cd build
cmake ../
make (可在后加“-jx”参数,x为计算机核数,可加快编译速率)
make test
sudo make install
sudo ldconfig
此时便安装完毕,为了确保LD_LIBRARY_PATH定义了环境变量,并包含安装UHD的文件夹,需设置环境变量:
export LD_LIBRARY_PATH = / usr / local / lib
为了验证是否安装成功,可在不连接USRP的情况下在终端运行:
uhd_find_devices

              若出现以下结果,则说明安装成功。

未接入USRP时的设备查询指令运行结果

 

3)最后,还要下载USRP的FPGA镜像文件,用于连接后的烧写,运行:

sudo uhd_images_downloader

全部下载完成后会有成功字样提示,不同版本可能会有不同打印字样。

1.2 GNU Radio安装

1)源代码下载和版本检出。

克隆存储库,并进入文件夹,运行:

git clone --recursive https://github.com/gnuradio/gnuradio

cd gnuradio

目前GNU Radio正在进行升级的准备工作,建议检出并使用GNU Radio的v3.7.13.4分支或maint-3.7分支,运行:

git checkout v3.7.13.4 或 git checkout maint-3.7

更新子模块,运行:

git submodule update --init --recursive

2)创建构建文件夹,并进行安装。

mkdir build

cd build

cmake ../

make -j8

make test

sudo make install

sudo ldconfig

此时便安装完成,若make test时有失败项,但最后的安装指令运行后没有报错,则也是安装成功。

1.3 PolarSSL安装

由于该库在Ubuntu16.04后改名,便无法通过指令安装,要单独下载包进行解压安装。需下载libpolarssl7和libpolarssl-dev。

1.3.9-2 : libpolarssl7 : amd64 : Vivid (15.04) : Ubuntu.1

1.3.9-2.1 : libpolarssl-dev : amd64 : Xenial (16.04) : Ubuntu

解压后在终端运行:

sudo dpkg -i libpolarssl7_***.deb 和 sudo dpkg -i libpolarssl-dev_***.deb

1.4 Osmosdr安装

该软件为rtl-sdr的驱动程序,通过源码编译安装,过程较简单,以上环节搭好后应无报错。安装过程依次运行:

git clone git://git.osmocom.org/gr-osmosdr

cd gr-osmosdr

mkdir build

cd build

cmake ../

make -j8

sudo make install

sudo ldconfig

若无报错,则此处安装成功。

1.5 LibbladeRF安装

LibbladeRF为bladeRF的驱动程序,该软件通过源码编译安装,过程较简单,以上环节搭好后应无报错。安装过程依次运行:

git clone https://github.com/Nuand/bladeRF.git

cd bladeRF

cd host

mkdir build

cd build

cmake ../

make -j8

sudo make install

sudo ldconfig

1.6 OpenLTE安装

1)源码获取。

此处需先单独下载源码压缩包,网址如下:

openLTE - Browse Files at SourceForge.net

在这里有全部的版本,可以按照自己需求下载对应版本,此处推荐19.04版。

2)编译安装。

下载并解压后(推荐解压至HOME目录),依次运行以下指令:

cd <解压后源码文件夹>(如:cd openlte)

mkdir build

cd build

cmake ../

make -j8

sudo make install

sudo ldconfig

若全程无报错,则安装成功;若有错误,则说明前几步安装有问题,可能由版本不匹配导致。

1.7 USRP接入

将USRP B210接入计算机,此处应注意使用USB3.0接口,其他接口速率不支持该实验平台要求,会影响实验过程。由于使用的是USB接口,在通过接口调用USRP时会需要管理员权限,所以在相关指令前应加“sudo”。USRP除数据连接线和裸板外,还需两根天线,否则无法完成部分实验。物理连接完成后,在计算机终端运行:

sudo uhd_find_devices

平台运行正常的打印信息如下:

连入USRP后的设备查询指令运行结果

 至此,全部平台搭建工作完成,可进行后续实验,若安装过程中出现报错,请根据报错提示定位错误原因。

2 实验一:FDD频段搜索

2.1 实验目的

 

通过该实验,结合双工理论知识和终端解码信息,可直观的接触基站的下行广播,以此了解在基站运行并等待用户接入时所发送的信息,进而结合无线接入流程深入了解商用系统中的信令需求。在实验中可根据设定的频段,搜索到频段中存在于附近的频点。本系统仅支持FDD搜寻,所以在商用基站中可搜到附近的联通和电信基站,无法搜索移动基站。

2.2 实验内容

1)进入程序运行文件夹。

路径为:.../openlte/build/LTE_fdd_dl_scan

2)运行频段搜索程序。

运行指令:sudo ./LTE_fdd_dl_scan

运行结果如图2.1,提示要连接控制端口。

图2.1 频段搜索程序提示

        另开终端,运行:telnet 127.0.0.1 20000

        进入控制端口后可设置搜索频段,运行(以band 7为例):write band 7        

        如图2.2。打印ok表示设置成功

图2.2 设置频段

        设置完成后可开启搜索,运行:start

        开启后,程序即开始在设定频段内依次滚动循环搜索,若所检索频率无对应基站,则会显示“未找到”字样。若搜到对应基站,则会打印附录图2.2-1中信息。可看出图中的为“China Unicom(中国联通)”基站。

图2.2-1 FDD频段搜索成功图示

 

3 实验二:手机入网

3.1 实验目的

本实验可实现任意支持4G LTE制式的手机接入OpenLTE的LTE网络,通过对接入环节中各个硬件参数的配置、操作、调试终端信息和本论文提到的理论知识,可通过实践环节深入学习LTE无线接入部分的内容。

3.2 实验内容

1)USIM卡配置。

在实验开始之前,需要配置空白的测试用USIM卡,商用卡无法读取参数,且读取商用卡参数并对其进行操作涉嫌违法。需要配置的参数有:IMSI、Ki和Op,算法必须选择Milenage。写卡需要用到读卡器和写卡程序,本论文使用的读卡器是MCR3512v2.0,所用程序为商家提供。写卡方式不限于本论文使用方法,可根据自己需求和手中资源自定方案,只要符合参数和算法要求即可。

Op为运营商的根秘钥,ki是鉴权秘钥,一般一家电信运营商只有一个OP密钥,为了避免所有卡片预置同一个Op所带来的安全风险,目前很多运营商均采用在USIM卡中预置OPC,OPC是由Op和Ki经过一系列运算后得到的,这样就确保了不同卡片预置不同的OPC,无法通过一张卡片的OPC反算出运营商的Op。

其中Op值应与程序安全部分的定义(如图5.3)相同,否则会鉴权失败。IMSI前五位最好为MCC和MNC,组合“00101”用于测试,便于与OpenLTE适配。本论文测试时使用过的组合如下:

imsi=001012345678903      k=0123456789A1B2C3D4E5F60102030001

imsi=001012345678902      k=0123456789A1B2C3D4E5F60102030001

USIM卡设置完成后即可插入手机中准备测试。

2)手机配置。

在手机中需设置APN为测试网络,手机型号不同设置方式不同,一般在设置中SIM卡相关处,名称与APN可任意设置,MMC与MNC应与USIM卡、基站设置相同。

APN决定了手机通过哪种接入方式来访问网络,用来标识GPRS的业务种类。APN通常作为用户签约数据存储在HSS/HLR中,用户手机在发起分组业务时也可向网络侧SGSN/MME提供APN。SGSN/MME根据用户所提供的APN,通过DNS进行域名解析,从而获取到GGSN/PGW的IP地址,将用户接入到APN对应的PDN中。

设置APN保存并选定后,即做好连接准备,等待基站开启后接入网络。

3)基站配置及启动。

先将USRP B210连接至计算机。

进入目录:.../openlte/build/LTE_fdd_enodeb

运行:sudo ./LTE_fdd_enodeb

提示开启控制端口,另外终端,运行:telnet 127.0.0.1 30000

控制端连接至基站,此时可再另开终端,运行:telnet 127.0.0.1 30001

该终端可用于调试信息打印。

在控制端可输入“help”打印出可修改的参数与可运行的命令形式,在开启基站前,需要设置几个重要参数:频段、频点、带宽、天线增益、MCC和MNC,以上参数均有默认值,可使用默认参数运行,但天线增益默认为0,无法实现信号的收发,此处天线参数应根据用户终端能力、附近干扰情况确定,tx与rx的增益范围均为0至100dB。本论文实验测试使用的组合有:

tx_gain=60/65/100    rx_gain=30/35/100

配置完参数后,需要将用户添加至基站,需要的用户参数有:IMSI、IMEI和Ki值,IMSI与Ki均为写卡时的参数。IMEI为手机上自带的不可更改参数,需要在手机上查询。

完成以上操作便可以开启基站,以上操作与开启后控制终端结果显示如图3.1,基站端显示如图3.2。

 

图3.1 控制终端显示结果

 

图3.2 基站端显示结果

 

上图中出现的“ULLLLLL”表示计算机与USRP的采样率不匹配,在系统运行中少量出现属于正常现象,因为系统启动时会有时延,进而导致硬件资源调动延迟,但若大量出现则说明计算机配置不足。更多关于该输出信息的介绍请参阅UHD官方文档。

4)手机接入。

前三步完成后,便可打开手机的“网络搜索”,来搜索可接入的LTE网络。等待一段时间后,会显示可接入的网络名称,正常情况会出现名为“USIM”或“Test PLMN 1-1 4G”的网络,点击后即开始无线接入流程,期间的部分信令交互实现细节会打印到调试终端上。等完成承载,该手机便成功注册到所选基站了,控制终端打印信息如图3.3。

 

图3.3 注册成功信息

 

到此为止,本实验操作过程完成,若想了解接入流程,便可分析调试终端的输出信息,并对照源码分析细节。

4 实验三:Wireshark解析网络流程

4.1 实验目的

本实验基于实验一进行,是利用Wireshark监听OpenLTE在频段搜索时的网络流程,可通过监听信息更全面的了解频段搜索时所进行的信令交互。

4.2 实验内容

在Ubuntu下安装并运行Wireshark,在进行频段搜索时选定127.0.0.1地址进行监听,可发现随着程序运行,每搜索一个频点,便会有一对数据的传输,如图4.1。

图4.1 Wireshark监听结果

 

5 实验四:与srsLTE的交互实验

5.1 实验目的

本实验目的在于对OpenLTE与srsLTE的双向验证,由于两者均为LTE项目,所以应当遵循同样的规范,所以两者应可以互连,通过互连过程中两者各自的提示信息和源码实现细节,可以对照学习LTE的相关知识。

5.2 实验内容

实验需要两组设备,一组为srsLTE的基站,另一组用于OpenLTE的频段搜索。srsLTE基站的启动及设置请参阅同组同学的实验设计成果,本论文不做介绍;频段搜索内容请参阅实验一。

两端开启后,可从OpenLTE的搜索结果中发现srsLTE的基站信息,如图5.1所示。可从搜索结果中看出全部的基站广播消息,结合理论内容便于多维的理解接入流程。

图5.1 OpenLTE频段搜索结果

6 实验五:下行广播消息生成与读取

6.1 实验目的

通过项目自带例程来实现基站下行广播消息的生成与读取。在消息的生成过程中,可对部分广播消息进行自定义更改,在读取时会将全部编码信息解码,模拟一个广播消息的发方收方的消息处理过程。本实验的目的在于对下行广播消息编码与解码的观察与研究。

6.2 实验内容

  1. 文件生成。

因为是模拟,所以全过程无需USRP,在一台计算机上进行即可。文件生成时要进入目录:.../openlte/build/LTE_fdd_dl_file_gen/python

运行:sudo ./ LTE_fdd_dl_file_gen.py <生成文件的名称>

会进入广播消息编辑界面,可编辑的信息均列出,操作命令格式也在提示信息中标明。全部参数均有默认值,可自定义修改,修改后按照指示结束编辑,便会在本目录下生成一个二进制文件,模拟为信号发送前的基带信号。

  1. 文件读取。

将上一步生成的二进制文件复制到读取文件的执行目录:

.../openlte/build/LTE_fdd_dl_file_scan/python

 复制完成后可在该目录执行命令:

sudo ./ LTE_fdd_dl_file_scan.py <生成文件的名称>

此时便进入读取界面,可根据终端提示信息解码二进制文件,该处省略了模拟信号的传输环节,直接便是数字信号的输入。可对照编码前和解码后的广播消息是否一致,此处可以结合无线接入流程、结合频段搜索结果对广播消息进行多维观察学习。

7 实验六:网内手机通信(srsLTE)

7.1 实验目的

本实验基于srsLTE实验平台完成,由于OpenLTE性能较不稳定,且不支持用户数据的传输,为了维护LTE实验的完整性,需要引入一个用户间通信的功能,而srsLTE可进行数据传输,便在该平台完成实验。可通过本实验实现贴近商用效果的LTE应用功能,实现真正的理论实际相结合。

7.2 实验内容

1)USIM卡配置。

srsLTE与OpenLTE不同,有核心网程序和基站端程序,需在两者运行前将用户数据添加到数据库里,在运行时核心网会读取数据库中用户信息。在数据库中有两组默认的用户信息,可使用该处默认的信息配置USIM卡,也可自己设置参数后将其添加进数据库。

数据库原始文件为:…/srsLTE/srsepc/user_db.csv.example

但由于安装方法不同,使用中的数据库会在不同的地方,名为user_db.csv。具体介绍请见同组同学基于srsLTE的论文。本论文使用的是数据库中默认值,写卡步骤参阅实验二。

2)手机配置及连接。

手机的APN配置与连接设置参阅实验二。此处要使用两部手机

3)开启核心网与基站。

srsLTE要先运行起核心网程序,再运行基站程序。两者工作后将自动搜索可连接终端,正常情况下,两部手机均可接入网络,接入后基站显示如图7.1所示。

图7.1 手机接入srsLTE基站后,基站端信息

 

 

核心网运行命令:sudo srsepc

基站运行命令:sudo srsenb

4)手机通信。

    由于两手机连入LTE网络后,核心网会分配IP地址给两手机,所以可以利用TCP/IP协议进行应用层的数据传输,本实验利用一组聊天APP实现数据传输,一端作为服务器,另一端作为用户端.。

PS:最后附实物图

 

 

引用OpenLTE:

Ben bwojtowi. openLTE wiki[EB/OL]. https://sourceforge.net/p/openlte/wiki/Home/,2019-4-10.

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于OpenLTE的4G移动通信网络实验指导书 的相关文章

随机推荐

  • DAMA学习笔记

    第1章 数据管理 1 1 引言 1 数据管理 xff1a 为了实现数据价值 xff0c 制定计划 制度并执行 监督 2 数据管理专业人员 xff1a 技术人员 xff08 数据库管理员 网络管理员 程序员 xff09 和业务人员 xff08
  • 2023 学习日志

    2023 01 03 mybatis源码学习 学习视频 xff1a https www bilibili com video BV1Tp4y1X7FM p 61 1 amp vd source 61 cc82a52a9b9b8b31eca3
  • EL表达式两个foreach嵌套循环

    集合List中加List泛型的泛型 List lt RiskEvaSuitQuestion gt riskEvaSuitQuestionList 61 riskEvaSuitQuestionService getQueList 100003
  • JQuery通过radio,select改变隐藏显示div

    1 xff09 select下拉框控制div的隐藏与显示 lt script gt function checkYear var selectValue 61 34 select name 61 39 periodType 39 34 va
  • 开科唯识笔试

    对于这次的笔试 xff0c 我只想说BiShi 几道编程题加一道SQL题 1 找出所有三位数中的水仙花数 public void getNarcissusNums int g 61 0 s 61 0 b 61 0 sum 61 0 for
  • JDBC批量插入

    最近项目中有用到JDBC技术 xff0c 存在大量数据要进行插入 xff0c 通过研究采用批量插入速度快的不是一点点 下面简单比较了一下普通插入与批量插入5W条数据的时间效率 常规插入 xff1a 耗时12952ms public stat
  • 面试经历---YY欢聚时代(2015年11月21日上午初试、25日下午复试)

    YY欢聚时代一年多前去面试过一次 xff0c 当时鄙视了 xff0c 在现在的公司呆了1年半了 xff0c 感觉做得很不爽 xff0c 而且薪资又不满意 xff0c 所以想找个新工作 xff0c 就想去YY面试 下面将两次YY面试的经历写出
  • exe应用程序无法启动,因为应用程序的并行配置不正确

    问题 xff1a exe应用程序无法启动 xff0c 因为应用程序的并行配置不正确 有关详细信息 xff0c 请参阅应用程序事件日志 xff0c 或使用命令行 sxstrace exe 工具 原因查找 xff1a 1 xff09 开始 所有
  • TortoiseSVN is locked in another working copy

    TortoiseSVN提交报错 TortoiseSVN is locked in another working copy 原因 xff1a 可能是因为打开了多个commit会话 xff0c 然后又去修改了提交文件的内容 xff0c 导致文
  • Java对接企业微信

    最近需要对接企业微信 xff0c 例如将风险测评结果推送给企业微信中对应的用户 xff0c 然后用户对结果进行查看与确认操作 xff0c 所以这里就涉及到两方面 xff1a 1 xff09 将外部系统内容推送到企业微信 xff1b 2 xf
  • 微众银行面试

    机缘巧合 xff0c 其实并没有换工作的想法 xff0c 却收到了微众的面试邀请 xff0c 就想着去看看当是增长见识吧 xff0c 因为已经好久没准备面试的事情了 xff0c 而且微众毕竟作为腾讯系的看起来好像也不错 说实话那边离地铁站是
  • #TP4056#--3.7V锂电池充放电电路(实践日志篇)

    成就更好的自己 本篇为小型电源的实践日志 xff0c 内附各种充电应用电路 xff0c 并开源TP4056应用电路AD的原理图和PCB xff1b 先放一点锂电池常识性的知识 xff1a 锂电池是一类由锂金属或锂合金为负极材料 使用非水电解
  • ROS四旋翼无人机快速上手指南(1):无人机系统硬件概述与指南简介

    成就更好的自己 ROS无人机快速上手指南旨在于让使用此无人机开发平台的比赛参赛人员 xff0c 算法设计人员 xff0c 无人机爱好者更加快速的了解底层控制运作原理 xff0c 从而缩短开发周期 xff0c 减少掉坑次数 xff0c 快速验
  • ROS四旋翼无人机快速上手指南(2):Ubuntu18.04与ROS系统

    成就更好的自己 目录 Jetson版Ubuntu以及ROS的安装 xff1a ROS特性及Nano开发问题 PX4与Gazebo仿真环境 ROS与MATMAB仿真 Jetson版Ubuntu以及ROS的安装 xff1a ROS机器人系统运行
  • ROS四旋翼无人机快速上手指南(4):阿木实验室PX4功能包飞行控制分析与讲解(重点章节)

    成就更好的自己 这一章详细讲解一下阿木实验室 AMOV 的开源项目px4 command功能包 xff0c 此功能包通过mavlink协议直接控制烧录px4固件的自驾仪 xff0c 还融合了来自各个传感器的位姿 xff0c 距离等信息 xf
  • ROS四旋翼无人机快速上手指南(5):快速部署上层算法的操作与思路

    成就更好的自己 经过本系列上一篇文章关于PX4 command飞行控制功能包的分析 xff0c 相信大家对于飞整个流程有个大概的了解 xff0c 本章将在此基础上详细讲解一下应用级算法构建的思路与操作方法 关于PX4 command飞行控制
  • USB系列-LibUSB使用指南(1)-Windows下的报错与踩坑

    成就更好的自己 时隔一年再次开始撰写博客 xff0c 这一年的时间经历了很多 xff0c 现在终于稳定下来 以后很长一段时间都能够稳定的学习和更新 时间将会聚焦于USB和PCIe的开发进行 xff0c 能和大家共同进步真的很高兴 本篇为US
  • rosdep init和rosdep update出现问题解决,以及ros编程问题

    如果你在执行 rosdep init 过程中出现以下错误 ERROR cannot download default sources list from https raw githubusercontent com ros rosdist
  • linux内核体系结构

    本节介绍了linux内核的编制模式和体制结构 xff0c 然后详细描述linux内核代码目录中组织形式以及子目录各个代码文件的主要功能以及基本调用的层次关系 一个完整可用的操作系统主要由4部分组成 xff1a 硬件 操作系统内核 操作系统服
  • 基于OpenLTE的4G移动通信网络实验指导书

    基于本人本科毕业设计的成果 xff0c 设计了一套基于开源SDR项目 OpenLTE的实验指导书 xff0c 可以指引读者通过平台源码 平台提供的实验和结合实验对3GPP规范的解读分析来更直观 更多元立体的学习无线通信技术 xff0c 而不