【XTDrone Ubuntu20.04】XTDrone+ Ubuntu20.04 + PX4安装
XTDrone仿真平台配置
文章目录
- XTDrone仿真平台配置
- 依赖安装
- ROS一键安装
- Marvos安装
- PX4 安装
- 安装QTGroundControl
- XTDrone下载安装
环境:
VMWare 16.0
Ubuntu 22.04 (因为没人配过)Ubuntu 20.04
参考文章:
-
仿真平台基础配置 (yuque.com)
-
Ubuntu20.04搭建PX4仿真环境及XTDrone开发平台(最详细最明白)_ubuntu安装px4_哒哒哒,啥也不会的博客-CSDN博客
安装过程:
简单地说,XTDrone安装包括几个部分:ROS安装、Gazebo安装、marvos安装和PX4 安装,XTDrone下载和配置。
依赖安装
首先安装一个aptitude以解决出现的依赖问题
依赖问题的报错形式:
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
fcitx : 依赖: fcitx-data 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
使用sudo apt install aptitude
安装aptitude,在一定程度上能解决依赖问题
先从语雀下载压缩包PX4_Firmware,并将该zip压缩包放置到Ubuntu主目录下,使用unzip命令解压,没用unzip命令工具,使用sudo apt install unzip
或sudo pip install unzip
,然后解压后,将其命名为PX4_Firmware,使用cd PX4_Firmware/Tools/setup
,其中有一个requements.txt文件:
argcomplete
argparse>=1.2
cerberus
coverage
empy>=3.3
future
jinja2>=2.8
jsonschema
kconfiglib
lxml
matplotlib>=3.0.*
numpy>=1.13
nunavut>=1.1.0
packaging
pandas>=0.21
pkgconfig
psutil
pygments
wheel>=0.31.1
pymavlink
pyros-genmsg
pyserial
pyulog>=0.5.0
pyyaml
requests
setuptools>=39.2.0
six>=1.12.0
toml>=0.9
这是官当给出的PX4所需依赖。
在PX4_Firmware/Tools/setup
目录下执行命令:
bash ubuntu.sh --no-sim-tools
不加参数 --no-sim-tools,就会自动安装ubuntu版本对应的gazebo及gazebo-dev,和javsim等仿真依赖
sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python-pip python3-pip gawk
pip2 install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyaml
pip3 install packaging numpy empy toml pyyaml jinja2 pyargparse
记录
语雀文档中提到的一个错误:
Collecting pandasUsing cached https://files.pythonhosted.org/packages/64/f1/8fdbd74edfc31625d597717be8c155c6226fc72a7c954c52583ab81a8614/pandas-1.1.2.tar.gzComplete output from command python setup.py egg_info:Traceback (most recent call last):File "<string>", line 1, in <module>File "/tmp/pip-build-qtvsjq8t/pandas/setup.py", line 349f"{extension}-source file '{sourcefile}' not found.\n"^SyntaxError: invalid syntax----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-qtvsjq8t/pandas/
如果出现该错误,可以先更新setuptools 和 pip。(我没出现过)
更新setuptools命令:
pip install --upgrade setuptools
#若未报错不需要输入这两行命令
python -m pip install --upgrade pip
放置一个清华源安装地址:
https://pypi.tuna.tsinghua.edu.cn/simple
如果报错:网络连接不上,或者下载一半就不下了,然后报错的情况,就在上面的命令后面写上:
pip2 install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyaml -i https://pypi.tuna.tsinghua.edu.cn/simple
可能的报错如下:
ERROR: Could not install packages due to an EnvironmentError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fd53ca02c10>: Failed to establish a new connection: [Errno 101] Network is unreachable'))
ROS一键安装
鱼香肉丝开发的ubuntu一键安装挺不错的,避免了自己安装的很多麻烦,包括编译上的麻烦,换源等诸多问题。
wget http://fishros.com/install -O fishros && . fishros
Ubuntu 20.04是最后一个支持ROS1的,对应安装ROS1的Noetic,(Ubuntu 22.04只能安装ROS2,ROS2都不是很熟,我安装试了一下,不太会用,所以又用20.04了)
安装时间会比较漫长:安装结束后,使用roscore
命令启动ros(ROS2中不再这样启动),出现一大段信息,包括如下信息,即安装成功。
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.started roslaunch server http://ubuntu:37819/
ros_comm version 1.16.0SUMMARY
========PARAMETERS* /rosdistro: noetic* /rosversion: 1.16.0NODESauto-starting new master
process[master]: started with pid [34913]
ROS_MASTER_URI=http://ubuntu:11311/setting /run_id to 28b04b30-835b-11ee-87ca-e5b945730283
process[rosout-1]: started with pid [34924]
started core service [/rosout]
文档里有推荐安装rosdep,
rosdep是ros的依赖项管理工具,在安装完ros之后建议安装此工具,但是在rosdep init和 rosdep update时国外的网站实在令人头疼。所以使用rosdepc
所以安装一下:
sudo pip install rosdepc
rosdepc需要进行初始化和更新
sudo rosdepc init
rosdepc update
如果之前没有catkin_ws,则需要新建工作空间,之后除去PX4仿真环境启动外,其余ROS相关工程在此工作空间下管理。
文档中推荐做法,估计是为了集中管理?
mkdir -p ~/catkin_ws/src
mkdir -p ~/catkin_ws/scripts
cd catkin_ws && catkin init # 使用catkin_make话,则为cd catkin_ws/src && catkin_init_workspace
catkin build # 使用catkin_make话,则为 cd .. && catkin_make
gedit ~/.bashrc
在下面写入:source ~/catkin_ws/devel/setup.bash #先写好source路径
关闭文件,在终端执行
source ~/.bashrc
catkin build需要先装catkin-tools(sudo apt install python3-catkin-tools
),安装好Ubutu系统应该会有这个命令工具。
文档里说要卸载之前的Gazebo,CSDN博客里给出以下原因
XTDrone一般用gazebo9进行仿真,而在安装ros noetic时会自动安装gazebo11以及对应的gazebo-ros插件,这里我们需要卸载,然后安装gazebo9以及肖老师修改过的gazebo-ros插件。
感觉也可以用gazebo11来进行仿真,如果比较有时间的话,可以试一试。
感觉Gazebo 11也不是不行,文档里给出可以
- 选用Alternative installation: step-by-step的安装方式
- 如果安装有依赖问题,可以使用sudo aptitude install gazebo11,选择合理的依赖解决办法(别把ROS删了)
- 按步骤装完Gazebo后,升级所有的包 sudo apt upgrade,这样能保证gazebo所有依赖版本一致
卸载Gazebo
sudo apt-get remove gazebo*
sudo apt-get remove libgazebo*
sudo apt-get remove ros-noetic-gazebo* #kinetic melodic对应修改
安装Gazebo
a、添加软件仓库
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
b、获取密钥
wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
c、更新软件源
sudo apt-get update
d、安装Gazebo 9
sudo apt-get install gazebo9
sudo apt-get install libgazebo9-dev #一定要记得这个
安装Gazebo 11
sudo apt-get install gazebo11
sudo apt-get install libgazebo11-dev
插件修改的重新编译
安装依赖:
sudo apt-get install ros-noetic-moveit-msgs ros-noetic-object-recognition-msgs ros-noetic-octomap-msgs ros-noetic-camera-info-manager ros-noetic-control-toolbox ros-noetic-polled-camera ros-noetic-controller-manager ros-noetic-transmission-interface ros-noetic-joint-limits-interface
然后克隆并编译Gazebo的插件gazebo_ros_pkgs,放在~/catkin_ws/src
下(如果编译时还缺其他的依赖,同上方法安装)
cd ~/catkin_ws/src
git clone https://github.com/ros-simulation/gazebo_ros_pkgs.git
cd ~/catkin_ws
catkin build
上面需要使用git命令工具,如果没安装过
sudo apt install git
catkin build
后的结果,成功的情况是不会有Error的,(红色的Error看得人心惊肉跳)
-----------------------------------------------------------------------
Profile: default
Extending: [env] /opt/ros/noetic:/home/sunx/catkin_ws/devel
Workspace: /home/sunx/catkin_ws
-----------------------------------------------------------------------
Build Space: [exists] /home/sunx/catkin_ws/build
Devel Space: [exists] /home/sunx/catkin_ws/devel
Install Space: [unused] /home/sunx/catkin_ws/install
Log Space: [exists] /home/sunx/catkin_ws/logs
Source Space: [exists] /home/sunx/catkin_ws/src
DESTDIR: [unused] None
-----------------------------------------------------------------------
Devel Space Layout: linked
Install Space Layout: None
-----------------------------------------------------------------------
Additional CMake Args: None
Additional Make Args: None
Additional catkin Make Args: None
Internal Make Job Server: True
Cache Job Environments: False
-----------------------------------------------------------------------
Buildlisted Packages: None
Skiplisted Packages: None
-----------------------------------------------------------------------
Workspace configuration appears valid.
-----------------------------------------------------------------------
[build] Found 6 packages in 0.0 seconds.
[build] Updating package table.
Starting >>> gazebo_dev
Starting >>> gazebo_msgs
Finished <<< gazebo_dev [ 1.2 seconds ]
Finished <<< gazebo_msgs [ 9.4 seconds ]
Starting >>> gazebo_ros
Finished <<< gazebo_ros [ 20.6 seconds ]
Starting >>> gazebo_plugins
Starting >>> gazebo_ros_control
Finished <<< gazebo_ros_control [ 25.8 seconds ]
Finished <<< gazebo_plugins [ 3 minutes and 41.5 seconds ]
Starting >>> gazebo_ros_pkgs
Finished <<< gazebo_ros_pkgs [ 1.3 seconds ]
[build] Summary: All 6 packages succeeded!
[build] Ignored: None.
[build] Warnings: None.
[build] Abandoned: None.
[build] Failed: None.
[build] Runtime: 4 minutes and 13.0 seconds total.
[build] Note: Workspace packages have changed, please re-source setup files to use them.
问题:git clone https://github.com/ros-simulation/gazebo_ros_pkgs.git
有时候无法正常克隆库,会报错。
解决方案一:
-
在github网站上下载适用于自己ROS版本的压缩包ros-simulation/gazebo_ros_pkgs: Wrappers, tools and additional API’s for using ROS with Gazebo (github.com)
-
将压缩包放到~/catkin_ws/src目录下解压缩,一般下载下来的压缩包是zip文件,需要使用unzip命令工具。使用
pip install unzip
命令安装 -
使用
cd ~/catkin_ws
和catkin build
进行编译。
编译通过后使用命令:
roscore
开始ros服务,使用命令
source ~/catkin_ws/devel/setup.bash
rosrun gazebo_ros gazebo
开启gazebo,查看安装是否成功。
Gazebo有很多开源的模型文件,📎models.zip下载后将该附件解压缩后放在~/.gazebo
中,此时在~/.gazebo/models/
路径下可以看到很多模型。如果不做这一步,之后运行Gazebo仿真,可能会缺模型,这时会自动下载,Gazebo模型服务器在国外,自动下载会比较久。
Marvos安装
注意,mavros-extras一定别忘记装,否则视觉定位将无法完成
sudo apt install ros-noetic-mavros ros-noetic-mavros-extras # for ros-noetic
wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.shsudo chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh #这步需要装一段时间
PX4 安装
安装方式:从语雀下载压缩包PX4_Firmware,使用该压缩包解压编译,从git上下载的代码可能很多方面都要修改,而且下载速度很慢。
使用该包会报错:
[0/1] Re-running CMake...
CMake Error: The source directory "/home/robin/PX4_Firmware_13" does not exist.
Specify --help for usage, or press the help button on the CMake GUI.
FAILED: build.ninja
/usr/bin/cmake -H/home/robin/PX4_Firmware_13 -B/home/robin/PX4_Firmware_13/build/px4_sitl_default
ninja: error: rebuilding 'build.ninja': subcommand failed
make: *** [Makefile:230: px4_sitl_default] Error 1
主要是编译的CMakeCache.txt文件中的路径都是/home/robin/PX4_Firmware_13
(肖老师自己电报的路径),可能编译过不了,然后自己改也是比较麻烦,我尝试改了CMakeCache.txt文件中路径问题,还是报错,还需要改build.ninja文件、cmake_install.cmake等等。这两个文件都在PX4_Firmware_13/build/px4_sitl_default
目录下。~~(反正要改很多文件,你就改吧,我是把这个目录下的编译文件都改了一遍,但还是有报错)
这样看用git命令也是可以,可以通过git 克隆代码
git clone -b v1.13.2 https://github.com/PX4/PX4-Autopilot.git --recursive
git clone -b v1.13.2 https://github.com.cnpmjs.org/PX4/PX4-Autopilot.git --recursive
mv PX4-Autopilot PX4_Firmware
cd PX4_Firmware
git checkout -b xtdrone/dev v1.13.2
git submodule update --init --recursive
make px4_sitl_default gazebo
好叭,最后还是用的VS code整体修改才可以编译
chmod +x Tools/check_submodules.sh
chmod +x Tools/sitl_run.sh
最好发现还是不行,报错是:
Error creating PX4_Firmware/build/px4_sitl_default/etc -> /home/sunx/PX4_Fir
这个错误还显示不全,应该是软连接问题。
克隆又克隆不下来,编译又编译不过,丢。
新的可行方法:
-
下载语雀文档中的PX4包,解压后进入PX4_Firmware然后使用命令
rm -rf build
,删除build文件夹,然后使用命令mkdir build
-
使用命令重新编译
cd build cmake .. make
-
使用命令
git checkout -b xtdrone/dev v1.13.2 git submodule update --init --recursive make px4_sitl_default gazebo
终于编译成功了。花了一天和一个晚上
修改 ~/.bashrc,加入以下代码,注意路径匹配,前两个source顺序不能颠倒
#配好好路径
gedit ~/.bashrc
在里面写入:
source ~/catkin_ws/devel/setup.bash
source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_default
#确保文件最底部是export,而不是source
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo关闭文件,在终端执行
source ~/.bashrc
然后运行如下命令,此时会启动Gazebo,如下图所示。
cd ~/PX4_Firmware
roslaunch px4 mavros_posix_sitl.launch
安装QTGroundControl
第一次安装该软件:
sudo usermod -a -G dialout $USER
sudo apt-get remove modemmanager -y
sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y
sudo apt install libqt5gui5 -y
sudo apt install libfuse2 -y
XTDrone下载安装
FAILED: /home/sunx/PX4_Firmware/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf
cd /home/sunx/PX4_Firmware/build/px4_sitl_default/build_gazebo && /usr/bin/python3 /home/sunx/PX4_Firmware/Tools/sitl_gazebo/scripts/jinja_gen.py /home/sunx/PX4_Firmware/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf.jinja /home/sunx/PX4_Firmware/Tools/sitl_gazebo --generate_ros_models true
Traceback (most recent call last):File "/home/sunx/PX4_Firmware/Tools/sitl_gazebo/scripts/jinja_gen.py", line 96, in <module>raise Exception("ERROR: generation would overwrite changes to `{}`. ".format(filename_out) + \
Exception: ERROR: generation would overwrite changes to `/home/sunx/PX4_Firmware/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf`. Changes should only be made to the template file `/home/sunx/PX4_Firmware/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf.jinja`. Remove `typhoon_h480.sdf` (after extracting your changes) to disable this overwrite protection.
解决方案:
find . -name "typhoon.sdf"
然后使用rm 命令删除该文件
FAILED: external/Stamp/sitl_gazebo/sitl_gazebo-build
cd /home/sunx/PX4_Firmware/build/px4_sitl_default/build_gazebo && /usr/bin/cmake --build /home/sunx/PX4_Firmware/build/px4_sitl_default/build_gazebo -- -j 2
删除文件后,这个问题就可以解决了。
注意,用ctrl+c关闭仿真进程,有可能没有把Gazebo的相关进程关干净,这样再启动仿真时可能会报错。如果出现这种情况,可以用killall -9 gzclient,killall -9 gzserver 这两个命令强行关闭gazebo所有进程。
killall -9 gzclient
killall -9 gzserver
相关文章:

【XTDrone Ubuntu20.04】XTDrone+ Ubuntu20.04 + PX4安装
XTDrone仿真平台配置 文章目录 XTDrone仿真平台配置依赖安装 ROS一键安装Marvos安装PX4 安装安装QTGroundControlXTDrone下载安装 环境: VMWare 16.0 Ubuntu 22.04 (因为没人配过)Ubuntu 20.04 参考文章: 仿真平台基础配置 (yuq…...

河北大学选择ZStack Cube超融合一体机打造实训云平台
河北大学通过云轴科技ZStack Cube超融合一体机构建校园实训云平台,部署测试仅耗时1天,该平台能够更快地为学生提供高性能、高可用的云主机、云存储和云网络服务;同时也能满足日常运维管理要求,为学生提供更好的实训环境。 河北省…...

IDEA远程一键部署SpringBoot到Docker
IDEA是Java开发利器,Spring Boot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢? 一、开发前准备 1. Docker安装 可以参考:https://docs.docker.com/install/ 2…...
索引三星结构
三星索引的定义,可以先给我们对索引优化提供一个大概的思路: 满足第1颗星: 取出所有的等值谓词的列,作为索引最开头的列——以任意顺序都可以。 满足第2颗星: 将order by加入到索引列,不要改变这些列的顺…...
rust 笔记 高级错误处理
文章目录 错误处理组合器or() 和 and()or_else() 和 and_then()filtermap() 和 map_err()map_or() 和 map_or_else()ok_or() and ok_or_else() 自定义错误类型错误转换 From 特征 归一化不同的错误类型Box<dyn Error>自定义错误类型 简化错误处理thiserroranyhow 错误处理…...
python+Django 使用apscheduler实现定时任务 管理调度
apscheduler实现定时任务 管理调度 在Django 项目中经常会用到定时任务去处理一些业务处理 使用 APScheduler 可以轻松地实现定时任务的管理和调度。你可以通过以下步骤来创建、启动、停止和删除定时任务: 1.创建调度器对象: from apscheduler.schedu…...

Java编程中,异步操作流程中,最终一致性以及重试补偿的设计与实现
一、背景 微服务设计中,跨服务的调用,由于网络或程序故障等各种原因,经常会出现调用失败而需要重试。另外,在异步操作中,我们提供接口让外部服务回调。回调过程中,也可能出现故障。 这就要求我们主动向外…...

吴恩达《机器学习》8-7:多元分类
在机器学习领域,经常会遇到不止两个类别的分类问题。这时,需要使用多类分类技术。本文将深入探讨多类分类,并结合学习内容中的示例,了解神经网络在解决这类问题时的应用。 一、理解多类分类 多类分类问题是指当目标有多个类别时…...

Postman批量运行用例
近期在复习Postman的基础知识,在小破站上跟着百里老师系统复习了一遍,也做了一些笔记,希望可以给大家一点点启发。 一)注意点 有上传文件的接口,需要做如下设置: 1、打开能读取外部文件的开关 2、把需要…...
20个Golang最佳实践
在本教程中,我们将探讨 Golang 中的 20 个最佳编码实践。它将帮助您编写有效的 Go 代码。 #20:使用正确的缩进 良好的缩进使您的代码具有可读性。一致地使用制表符或空格(最好是制表符)并遵循 Go 标准缩进约定。 package main …...
Java 类之 java.lang.System
Java 类之 java.lang.System 文章目录 Java 类之 java.lang.System一、简介二、主要功能1、currentTimeMillis() - 获取当前时间的毫秒数说明代码示例 2、getProperty(String key) - 获取系统属性说明代码示例 3、exit(int status) - 终止虚拟机说明代码示例 4、arraycopy(Obje…...
认识Modbus通信协议(笔记)
Modbus 莫迪康 1979年 PLC 1969年 什么是modbus? 它是一个Bus,即总线协议。比如串口协议、IIC协议、SPI都是通信协议。 协议,顾名思义是一种规定和约束 Modbus协议是一种引用层的报文传输协议,RTU、ASCLL、TCP,都属于Modbus协…...

【算法】距离(最近公共祖先节点)
题目 给出 n 个点的一棵树,多次询问两点之间的最短距离。 注意: 边是无向的。所有节点的编号是 1,2,…,n。 输入格式 第一行为两个整数 n 和 m。n 表示点数,m 表示询问次数; 下来 n−1 行,每行三个整数 x,y,k&am…...

基于SpringBoot的SSMP整合案例(消息一致性处理与表现层开发)
消息一致性处理 在后端执行完相应的操作后,我们需要将执行操作后的结果与数据返回前端,前端 调用我们传回去的数据,前端是如何知道我们传回去的数据名称的? 答:前后端遵循了同一个"协议"。这个协议就是定义…...

c#之反射详解
总目录 文章目录 总目录一、反射是什么?1、C#编译运行过程2、反射与元数据3、反射的优缺点 二、反射的使用1、反射相关的类和命名空间1、System.Type类的应用2、System.Activator类的应用3、System.Reflection.Assembly类的应用4、System.Reflection.Module类的应用…...

synchronized jvm实现思考
底层实现时,为什么使用了cxq队列和entryList双向链表?这里为什么不跟AQS中使用一个队列就行了,加了一个entryList的目的是为了什么? 个人理解这里多一个entryList,可能是用于减少频繁的cas操作。假设存在很多锁竞争时&…...
【hive基础】hive常见操作速查
文章目录 一. hive变量操作1. 查看当前hive配置信息2. 设置变量3. 修改变量4. 进入hive终端重新加载配置 二. 执行hive sql三. 启动hive 一. hive变量操作 1. 查看当前hive配置信息 # 查看当前所有配置信息 hive > set ;# 查看某一项配置信息 hive >set hive.metastore…...

2024年山东省职业院校技能大赛中职组“网络安全”赛项竞赛试题-A
2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-A 一、竞赛时间 总计:360分钟 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A、B模块 A-1 登录安全加固 180分钟 200分 A-2 本地安全策略设置 A-3 流量完整性保护 A-4 …...

基于51单片机电子钟温度计数码显示设计( proteus仿真+程序+设计报告+讲解视频)
这里写目录标题 ✅1.主要功能:✅讲解视频:✅2.仿真设计✅3. 程序代码✅4. 设计报告✅5. 设计资料内容清单&&下载链接✅[资料下载链接:](https://docs.qq.com/doc/DS0Nja3BaQmVtWUpZ) 基于51单片机电子钟温度检测数码显示设计( proteu…...

jenkins+centos7上传发布net6+gitlab
工作中实践了一下jenkins的操作,所以记录一下这次经验,没有使用到docker 先看下成果: 选择发布项目 选择要发布的分支 构建中 发布成功 开始 首先安装好jenkins并注册自己的jenkins账号 因为我们的项目代码管理使用的是gitlab,…...

铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
Spring Security 认证流程——补充
一、认证流程概述 Spring Security 的认证流程基于 过滤器链(Filter Chain),核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤: 用户提交登录请求拦…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...

VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...

2.3 物理层设备
在这个视频中,我们要学习工作在物理层的两种网络设备,分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间,需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质,假设A节点要给…...