Autoware.universe部署02:高精Lanelet2地图的绘制

news2024/12/30 3:14:54

文章目录

  • 引言
    • Lanelet基础元素
    • Lanelet2项目各个模块
  • 一、安装Lanelet2项目
    • 1.1 安装依赖
    • 1.2 编译
    • 1.3 在ROS中使用lanelet2地图完成routing
  • 二、Autoware Vector Map Builder绘制高精地图
    • 2.1 创建地图
    • 2.2 绘制车道线
    • 2.3 绘制路沿
    • 2.4 绘制停止线和交通灯
    • 2.5 绘制人行道
    • 2.6 绘制停车场以及停车位
    • 2.7 地图拓扑验证(可以跳过)
    • 2.8 Universe的使用
  • 三、JOSM可视化和编辑Lanelet2地图
    • 3.1 配置Java环境
    • 3.2 配置Lanelet2格式


Autoware.universe的安装参考:
Autoware.universe部署01:Ubuntu20.04安装Autoware.universe并与Awsim联调

引言

目前行业并没有通用的标准(OpenDrive并不是为自动驾驶设计的),Autoware自动驾驶系统的矢量地图和地图引擎计划使用Lanelet2,本文我们就来了解并且上手一下Lanelet2高精度地图框架。Lanelet2架构可以划分为:

  • lanelet2称可以被观测到的要素为地图的物理层(physical layer) ,诸如路标、红绿灯、交通标志、防撞栏等等,其他的所有地图元素,比如车道(lane),是这些物理元素的一种抽象表示。
  • 同样地,交通规则是规则源(例如交通信号灯)与其所应用的车道之间的关联。根据这些物理元素我们可以追踪这些关联信息,我们称这些元素为地图的关联层(relational layer)。
  • 然而,并非地图的所有元素都可以与物理层相关联,因为道路交通中往往会包含隐含的规则,比如说在路口内,车道线和车道边缘并没有画出来,但是它们是存在的,HAD map必须包含这些隐含的元素以保证路网拓扑的连通性,这些元素都是我们的行为“常识”引入的,不和实际的可观测元素关联,即拓扑层(topological layer)。

创建与Autoware兼容的矢量地图最简单的方法是使用TIER IV公司提供的基于Web的免费工具Vector Map Builder。Vector map builder是Autoware官方提供的一个在线lanelet2地图绘制工具矢量地图生成器,允许您创建车道,并使用点云地图作为参考添加额外的管制元素,如停止标志或交通灯。

对于开源软件选项,MapToolbox是专门为Unity设计的插件,用于为Autoware创建Lanelet2地图。虽然JOSM是另一个可以用来创建Lanelet2地图的开源工具,但是需要注意的是,为了使地图与Autoware兼容,必须进行大量的手工修改。这个过程可能是繁琐和耗时的,因此不建议使用JOSM。

Lanelet2默认的格式为XML形式的OSM地图格式,可以使用OSM地图编辑器进行编辑和可视化。Lanelet2假定地图中的所有元素均能投射到平面,不过元素的高度信息也会被保存,以避免将立交桥处理成十字路口的情况。当加载地图的时候,为了方便地图的使用,会采用通用莫卡托投射(UTM,Universal Transverse Mercator)将地图投射到笛卡尔坐标系。

Lanelet基础元素

Lanelet2地图主要包含6类基元(18年论文中为5类,后扩展为6类),分别是:

  • Points:点
  • Linestrings: 由点前后连接构成的折线序列
  • Polygons:多边形
  • Lanelets:车道的原子单元,或者说对车道的最小划分
  • Areas:区域,类似与lanelet,但是它一般用于描述建筑、停车区等独立区域
  • Regulatory elements:控制元素,能产生交通规则的元素,如信号灯、限速牌等

前三类为物理层,其余为关联层,每一个元素都有自己唯一的ID

Lanelet2项目各个模块

Lanelet2论文的另外一个工作就是基于以上设计理念和基本要素开源了一套C++编写的地图框架,lanelet2项目依靠catkin编译,所以每个模块都是以ros package的形式进行管理,各个模块内容如下:

  • lanelet2:基础模块,没有具体实现
  • lanelet2_core:实现了基元、地理计算等核心库
  • lanelet2_io:lanelet地图的IO库
  • lanelet2_traffic_rules:提供地图交通规则的支持
  • lanelet2_projection:提供WGS84坐标系到指定坐标系下的投影的实现
  • lanelet2_routing:提供基于lanelet地图的routing功能
  • lanelet2_maps:lanelet2官方提供的示例地图
  • lanelet2_python:lanelet2的python接口
  • lanelet2_validation:验证Lanelet2地图
  • lanelet2_examples:教程和示例

一、安装Lanelet2项目

注意:如果不需要额外的地图验证工具,可以直接到下一章节开始学习绘制Lanelet2地图

1.1 安装依赖

环境是Ubuntu18.04,依赖于ROS melodic

sudo apt-get install ros-melodic-rospack ros-melodic-catkin ros-melodic-mrt-cmake-modules ros-melodic-unique-id
sudo apt-get install libboost-dev libeigen3-dev libgeographic-dev libpugixml-dev libpython-dev libboost-python-dev python-catkin-tools

1.2 编译

mkdir catkin_ws_lanelet2_mapping && cd catkin_ws_lanelet2_mapping && mkdir src
catkin init
# build in release mode (or whatever you prefer)
catkin config --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo 
cd src
git clone https://github.com/AbangLZU/ad_with_lanelet2.git
cd ..
catkin build
  • 编译报错:
error: ‘::memset’ has not been declared

在这里插入图片描述
可能是boost版本的问题。memset是C 库函数,void *memset(void *str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。如果是C++编译,需要调用的是cstring。报错是因为在C++环境下使用了memset却没有导入cstring,所以解决办法很简单,修改boost头文件

sudo gedit /usr/local/include/boost/geometry/algorithms/detail/relate/result.hpp

打开报错的源码,添加以下头文件:

#include <cstring>
  • 报错:
    在这里插入图片描述
/home/autoware/catkin_ws_lanelet2_mapping/devel/.private/lanelet2_extension/lib/liblanelet2_extension_lib.so: 
    undefined reference to `lanelet::routing::RoutingCostTravelTime::travelTime(lanelet::traffic_rules::TrafficRules const&, lanelet::ConstLanelet const&) const'

这是由于我们之前安装Autoware1.15时安装了与当前项目同名的ROS包(lanelets一系列),导致现在找到了对应的老版本的ROS包,把它们卸载就行了:

sudo apt-get remove ros-melodic-lanelet2-core ros-melodic-lanelet2-validation ros-melodic-lanelet2-io ros-melodic-lanelet2-maps ros-melodic-lanelet2-projection ros-melodic-lanelet2-routing ros-melodic-lanelet2-traffic-rules

编译成功:
在这里插入图片描述

1.3 在ROS中使用lanelet2地图完成routing

在你的ros workspace中,运行本项目:

cd your_ros_workspace
source devel/setup.bash
roslaunch src/ad_with_lanelet2/run_map_simulator.launch

run_map_simulator.launch内容如下,一共会启动4个ros node:

  • planning仿真节点:来自Autoware的简单planning仿真
  • map loader:加载Autoware扩展版lanelet2地图,发送用于可视化的Rviz marker,以ros msg的形式发送map
  • mission planning模块:来自Autoware的任务规划模块,在本例中主要使用了Routing路线生成
  • Rviz:启动Rviz并使用预先设置的配置参数

如图,map被加载与Rviz中:
在这里插入图片描述
点击Rviz中的2D Pose Estimate在图中设置当前位置,仿真节点根据这个init pose发一个base_link 到world坐标系的tf,设置完成后如下图所示:
在这里插入图片描述

接着使用Rviz中的2D Nav Goal设置routing的终点,如图中所示,mission planner会根据设置的目标位姿动态生成routing路线(图中深绿色路线):
在这里插入图片描述

:该样例地图为Tier 4公司(Autoware的主要维护者)开源的地图,在日本,所以是靠左行驶,routing的时候需要按照靠左行驶的规则设定起终点。

二、Autoware Vector Map Builder绘制高精地图

Vector map builder需要多次练习熟练理解才能绘制出正确且美观的地图
Vector map builder是Autoware官方提供的一个在线lanelet2地图绘制工具,地址为:https://tools.tier4.jp/feature/vector_map_builder_ll2/,需要注册账号:
在这里插入图片描述
注册后选择v1.13~,地图数据格式为.osm
在这里插入图片描述
在这里插入图片描述

2.1 创建地图

(1)进入后选择右上角文件导入PCD点云地图
在这里插入图片描述
这里导入官方的点云数据
在这里插入图片描述
鼠标右键拖动点云,左键旋转点云,滚轮放大缩小点云,左上角可以切换3D视角
(2)创建矢量地图
创建Lanelet2新地图需要输入MGRS(横轴莫卡托投影UTM坐标系网格),查询地理位置对应的MGRS网站:https://mgrs-mapper.com/app。如果是局部坐标系(没有绝对坐标),可以填(31N,AA),即经纬度(0,0)
在这里插入图片描述

2.2 绘制车道线

有两种方法,一种是先绘制Laneletstring,再合成Lanelet,另一种方法是直接利用工具绘制Lanelet
(1)选择Lanelet2Map工具,开始绘制
打开Lanestring,点选车道线边缘绘制车道线,绘制完一侧之后关闭Lanestring完成绘制,同样的方法绘制另一侧车道线边缘
在这里插入图片描述
绘制完一条车道的两条车道线之后,按住shift键,鼠标选择两条车道线,点击右上角Action中的Add Lanelet,生成Lanelet元素(生成后界面如果无法控制,按一下shift有奇效)
在这里插入图片描述
在这里插入图片描述
选中端点(出现坐标系,选不中试一下shift按键),再打开Lanestring,按照上述方法可以绘制前继与后继车道的Lanestring,再合成前继与后继车道Lanelet(车道方向可以根据Next Lanelet属性判断),我在绘制弯道的时候比较糙,实际绘制的时候点可以给密集一点,而且不能太窄,否则后面Autoware自动驾驶时无法转弯(Drivable Area)
在这里插入图片描述
使用Reverse Direction功能对Lanelet方向进行调整,Lanelet标红为报错,绿色为正确,标红的原因是拓扑关系不正确(Next Lanelet is empty),改变方向使拓扑关系正确,会变成绿色见右下角:
在这里插入图片描述
在这里插入图片描述
选中Lanelet在右侧属性表可以编辑属性,比如:车道最大限速,车道转弯方向(左转、直行、右转),一定要编辑,否则后面Universe无法获得车道信息
右上角Action工具可以生成中心线,掉转方向,聚焦,伸直和改变宽度
在这里插入图片描述
画完一条车道之后,可以选中然后打开工具栏的Copy Lanelet按钮,然后点击与旁边车道共用的边,即可自动生成(与当前车道一样)旁边车道,生成后再手动微调(选中端点拖动可以改变形状,坐标轴是按照坐标方向移动,选中方块可以任意方向移动)
在这里插入图片描述同样的方法绘制后继车道,出现车道链接点断开的情况:
在这里插入图片描述
这时可以按住shift,选择前后两条车道线,点击join Lanelet,使其相连,之后再调整形状(注意要先把方向换对,否则就乱了):
在这里插入图片描述
(2)使用Lanelet工具直接绘制车道线,打开Lanelet工具,然后鼠标直接根据车道中心线绘制车道线,再使用Join Lanelet连接车道,但宽度不对需要再微调,再用copy绘制相邻车道:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述填写属性,上方Problem报错,点开看到车道限速超过了最大速度,将其最大速度增加就可解决
在这里插入图片描述
绘制变道车道,在有节点的Lanelet端(从这里可以看出,尽量不要绘制一条到底的长直车道,尤其是路口一定要断,事实上,绘制太长也会导致规划的时候不够精确)绘制新的Lanelet,然后使用join Lanelet连接车道,最后微调节点位置即可:
在这里插入图片描述

2.3 绘制路沿

打开Linestring,绘制路沿边线,然后在右侧属性表的type中选择road_boder即可:
在这里插入图片描述

2.4 绘制停止线和交通灯

选中要绘制停止线的车道,打开停止线工具,点击停止线位置即可生成
在这里插入图片描述
选中要绘制红绿灯的车道,再打开交通灯工具,然后在等红绿灯的位置点击,即可生成停车线,并在对面生成红绿灯(注意车道方向),生成之后可以调整停车线以及红绿灯位置(按住shift可以划定区域多选)
在这里插入图片描述在这里插入图片描述

2.5 绘制人行道

选中车道,然后打开Abstraction下的Crosswalk,点击人行道两端自动生成人行道,选中人行道,在右侧的participants属性下填写pedestrian:
在这里插入图片描述在这里插入图片描述

2.6 绘制停车场以及停车位

选中车道,打开上方的NoParkingArea,绘制Area,调整大小,然后在属性表中修改属性为parking_lot
在这里插入图片描述
绘制一条Linestring,然后选中在属性表中修改type为parking_space,添加属性width,值为3,即绘制了一个停车位,然后可以直接复制几条
在这里插入图片描述在这里插入图片描述

2.7 地图拓扑验证(可以跳过)

绘制完成之后,确定右上角Problem项没有报错,即可点击File导出Lanelet2地图
然后使用第二节的功能包验证,将导出的地图复制到catkin_ws_lanelet2_mapping/src/ad_with_lanelet2/map/map_loader/data路径下,修改文件名称为lanelet2_map.osm
然后运行规划节点:

source devel/setup.bash
roslaunch src/ad_with_lanelet2/run_map_simulator.launch

即可加载自己绘制的地图,按照第二节的方法可以验证地图,如果有问题方便及时修改
在这里插入图片描述
路径规划也没问题:
在这里插入图片描述

2.8 Universe的使用

将生成的地图(命名为lanelet2_map.osm)与点云地图(命名为pointcloud_map.pcd)放在一个新建文件夹下,并创建一个yaml文件(map_config.yaml),填入以下内容:

/**:
  ros__parameters:
    map_origin:
      latitude: 0.0
      longitude: 0.0
      elevation: 0.0
      roll: 0.0
      pitch: 0.0
      yaw: 0.0

在这里插入图片描述

运行Autoware.universe,路径换成你自己的:

source install/setup.bash
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=${You_map_path} vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit

可以planning
在这里插入图片描述
加了一条到停车场的路线(需要有经过停车场的车道,才能驶入停车场,并准备入库),倒车入库也是没有问题的
在这里插入图片描述

三、JOSM可视化和编辑Lanelet2地图

因为采用了OSM的地图格式定义,Lanelet2地图可以很方便地使用OSM的工具链进行查看和编辑,下面我们使用JOSM工具对项目内的lanelet2_map.osm地图进行可视化和编辑(不建议,但是JOSM事实上功能更多,只是不容易)。JOSM是一个Java实现的对OSM进行编辑的工具,因其为Java程序,所以可以跨平台使用,官网下载最新版本的JOSM,本文采用的是jar包的形式运行,jar下载链接:https://josm.openstreetmap.de/josm-tested.jar

3.1 配置Java环境

参照教程:https://josm.openstreetmap.de/wiki/Download#Java
编辑源文件列表/etc/apt/sources.list.d/josm.list:

sudo  /etc/apt/sources.list.d/josm.list

根据你的ubuntu版本选择填入下列源:

# 22.04
deb [signed-by=/usr/local/share/keyrings/josm-apt.gpg] https://josm.openstreetmap.de/apt jammy universe
# 20.04
deb [signed-by=/usr/local/share/keyrings/josm-apt.gpg] https://josm.openstreetmap.de/apt focal universe
# 18.04
deb [signed-by=/usr/local/share/keyrings/josm-apt.gpg] https://josm.openstreetmap.de/apt bionic universe

下载公钥:

# Create the directory for manually downloaded keys if it was not already created
sudo mkdir -p /usr/local/share/keyrings
# Download the key
wget -q https://josm.openstreetmap.de/josm-apt.key -O- | sudo gpg --dearmor -o /usr/local/share/keyrings/josm-apt.gpg

然后更新源:

# You may need to install ssl support for apt in advance:
sudo apt-get install apt-transport-https
# Refresh sources
sudo apt-get update

然后安装:

# You can skip this first line if these packages were not installed before.
sudo apt-get remove josm josm-plugins

# 测试版(稳定版)
sudo apt-get install josm
# 最新版
sudo apt-get install josm-latest
通过java --version检查系统中安装的Java,我的环境如下(我装的版本可能有点低):

通过java --version检查系统中安装的Java,我的环境如下(我装的版本可能有点低):
在这里插入图片描述
下载好josm-tested.jar包后,在同目录下使用以下命令运行JOSM:

java -jar josm-tested.jar

在这里插入图片描述
报网络链接错误错不用管(科学上网之后就不会再报了),在JOSM中选择presets->preset preferences可以改变语言

3.2 配置Lanelet2格式

在JOSM中添加lanelet2的地图样式和预设组合标签,在JOSM中选择预设组合->预设首选项->地图样式->+,分别将ROS项目中lanelet2_maps/josm/目录下的lanelets.mapcss和lines.mapcss添加为地图样式:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在添加预设组合标签下,添加lanelet2_maps/josm/目录下的laneletpresets.xml文件:
在这里插入图片描述
在JOSM中,选择文件->打开,选择项目中map/map_loader/data/目录下的lanelet2_map.osm文件,得到如下地图:
在这里插入图片描述
可在JOSM中查看和编辑地图中的各个元素,地图编辑教程可以参考https://learnosm.org/en/josm/josm-tools/。可以在菜单栏的影像中加载(全球)遥感图像作为底图绘制(国内的影像分辨率可能比较低,并且没有测绘资质进行高精地图的绘制可能存在较高的技术壁垒和法规风险):
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/937619.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IntelliJ 中如何配置 Tomcat 调试

Tomcat 在 IntelliJ 中的配置要求首先你要下载 Tomcat。 设置服务器 在 IntelliJ 下面先选择 Run&#xff0c;然后选择配置运行配置。 在弹出的界面中&#xff0c;有一个编辑配置的选项。 然后在弹出的页面中选择添加。 选择 Tomcat 在弹出的添加页面中选择添加 Tomcat&…

数据分析基础-数据可视化学习笔记03-可视化的符号与表示-图形符号学

概念 图型符号学&#xff08;Cartographic Symbolization&#xff09;是地图学领域中的一个重要概念&#xff0c;涉及到如何使用不同的符号、颜色、图案和标记来在地图上表示地理信息和数据。图型符号学旨在传达地理信息&#xff0c;使得地图能够清晰、有效地传达各种空间数据…

四、前端监控之接入Sentry到项目

前言 一、前端监控之异常监控 二、前端监控之方案调研 三、前端监控之Sentry的介绍 以上是这个专题之前的几篇文章&#xff0c;欢迎观摩 Sentry的接入 1、新建项目 在sentry后台登陆后&#xff0c;进入监控项目的界面&#xff0c;如&#xff1a; 点击右上角的 add new p…

用Go编写ChatGPT插件

ChatGPT插件平台有望成为影响深远的"下一件大事"&#xff0c;因此对于开发者来说&#xff0c;有必要对ChatGPT插件的开发有一定的了解。原文: Writing a ChatGPT Plugin With Go[1] 我工作的附带福利之一是偶尔可以接触试用一些很酷的新技术&#xff0c;最近的一项技…

详细介绍如何基于ESP32实现低功耗的电子纸天气显示器--附完整源码

实现界面展示 这是一款天气显示器,由支持 wifi 的 ESP32 微控制器和 7.5 英寸电子纸(又名电子墨水)显示器供电。当前和预测的天气数据是从 OpenWeatherMap API 获取的。传感器为显示屏提供准确的室内温度和湿度。 该项目在睡眠时消耗约 14μA,在约 10 秒的清醒期…

Tomcat 部署时 war 和 war exploded区别

在 Tomcat 调试部署的时候&#xff0c;我们通常会看到有下面 2 个选项。 是选择war还是war exploded 这里首先看一下他们两个的区别&#xff1a; war 模式&#xff1a;将WEB工程以包的形式上传到服务器 &#xff1b;war exploded 模式&#xff1a;将WEB工程以当前文件夹的位置…

Qt 查找文件夹下指定类型的文件及删除特定文件

一 查找文件 bool MyXML::findFolderFileNames() {//指定文件夹名QDir dir("xml");if(!dir.exists()){qDebug()<<"folder does not exist!";return false;}//指定文件后缀名&#xff0c;可指定多种类型QStringList filter("*.xml");//指定…

js中迭代器和可迭代对象

一、迭代器 在JavaScript中&#xff0c;迭代器也是一个具体的对象&#xff0c;这个对象需要符合迭代器协议&#xff08;iterator protocol&#xff09; 迭代器协议定义了产生一系列值&#xff08;无论是有限还是无限个&#xff09;的标准方式&#xff1b; 在JavaScript中这个…

Linux安装FRP(内网穿透)

项目简介需求背景 1.FileBrowser访问地址&#xff1a;http://X.X.X.X:8181&#xff0c;该地址只能在局域网内部访问而无法通过互联网访问&#xff0c;想要通过互联网 访问到该地址需要通过公网IP来进行端口转发&#xff0c;通常家里的路由器IP都不是公网IP&#xff0c;通常公司…

2023年6月GESP C++ 一级试卷解析

2023年6月GESP C 一级试卷解析 一、单选题&#xff08;每题2分&#xff0c;共30分&#xff09; 1.以下不属于计算机输出设备的有&#xff08; &#xff09;。 A.麦克风 B.音箱 C.打印机 D.显示器 【答案】A【考纲知识点】计算机基础&#xff08;一级&#xff09; 【解析…

科大讯飞永久免费GPT入口来了!!!

讯飞GPT永久免费使用入口注册链接&#xff1a;讯飞星火认知大模型-AI大语言模型-星火大模型-科大讯飞。 登录讯飞账号后&#xff0c;点击进入体验。 进入体验页面后&#xff0c;选择景点推荐。 笔者让其写一篇关于讯飞GPT介绍的文案。 讯飞GPT是一款由讯飞公司推出的人工智能语…

14. 完整模型验证套路

14.1 GPU训练30轮次 import torchvision import torch from torch import nn from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter import time# 定义训练的设备 #device torch.device("cpu") device torch.device("…

第七周第六天学习总结 | MySQL入门及练习学习第一天

实操练习&#xff1a; 1.查看数据库 2.查询当前数据库 3.创建一个名为 lianxi 的数据库 4.删除一个名为 shanchu 的数据库&#xff08;如果存在就删除&#xff0c;不存在不删除&#xff09; 5.切换至 lianxi 数据库下&#xff0c;并验证 6.查询 lainxi 数据库下的所有数据…

DMK5框选变量之后不显示其他位置的此变量高亮

使用软件MDK5.3.8版本 如下在2的位置选择之后&#xff0c;其他同样的变量没有高亮&#xff0c;因为1的原因折叠了&#xff1b; 展开折叠之后就可以了

Android学习之路(10) setContentView详解

一、简介 setContentView我们在Activity中经常见到&#xff0c;它的作用就是把我们的布局文件放在Activity中显示&#xff0c;下面我们根据源码分析setContentView是如何做到的 二、源码分析 1.两种setContentView 注意Activity的setContentView和AppCompatActivity的setCo…

【SpringBoot】如何使用 HandlerInterceptor 拦截器? 为什么不使用 SpingAOP ?

文章目录 前言一、为什么不使用 SpringAOP ?1, 需求分析2, SpringAOP 能实现吗? 二、使用 HandlerInterceptor1, 实现 HandlerInterceptor 接口2, 将自定义拦截器加入到系统配置 三、HandlerInterceptor 实现原理源码分析 总结 前言 各位读者好, 我是小陈, 这是我的个人主页,…

基于全新电脑环境安装pytorch的GPU版本

前言&#xff1a; 距离第一次安装深度学习的GPU环境已经过去了4年多&#xff08;当时TensorFlow特别麻烦&#xff09;&#xff0c;现在发现安装pytorch的GPU版本还是很简单方便的&#xff0c;流程记录如下。 安装步骤&#xff1a; 步骤一&#xff1a;官网下载Anaconda Free…

【无法联网】电脑wifi列表为空的解决方案

打开电脑, 发现wifi列表为空, 点击设置显示未连接 首先检查是不是网卡驱动有问题, cmd, devmgmt.msc 找到网络适配器, 看看网卡前面是否有感叹号, 如果没有则说明网卡没问题, 有问题则重装驱动 看看网络协议是否设置正确 找到"控制面板\所有控制面板项\网络和共享中心&…

微服务通信[HTTP|RPC同步通信、MQ异步通信]

概念 A服务调用B服务,B服务调C服务,C服务调D服务,即微服务之间的通信(也可以叫微服务之间的调用) HTTP同步通信 一种轻量级的通信协议,常用于在不同的微服务之间进行通信,也是最简单的通信方式使用REST ful为开发规范&#xff0c;将服务对外暴露的HTTP调用方式为REST API(如GET…

飞腾FT-2000/4、D2000 log报错指导(3)

在爱好者群中遇见了很多的固件问题,这里总结记录了大家的交流内容和调试心得。主要是飞腾桌面CPU FT-2000/4 D2000相关的,包含uboot和UEFI。希望对大家调试有所帮助。 这个专题会持续更新,凑够一些就发。 23 在s3 唤醒时报错如下 check suspend ,Platform exception report…