Jetson Orin NX 开发指南(4): 安装 CUDA 和 Realsense

news2025/6/22 10:13:41

一、硬件说明

可以在官网查看各个类型的相机说明

Intel® RealSense™ Computer Vision - Depth and Tracking cameras

目前实验室常用的是 D400 系列的相机,如 D435i相机,D455相机等,本文主要使用 D435i 相机

D435i 相机是一个RGB-D相机,也就是我们常说的深度相机,目前深度相机的实现原理主要分为三种:分别是结构光,Tof,双目成像。

Realsense 使用的是结构光的方案。正面的四个摄像头,从左向右以次是左红外相机,红外点阵投射仪,右红外相机,和RGB相机。

二、安装 cuda

由于 Jetson 的 CPU 性能较差,因此安装 Realsense 前建议先安装 cuda,从而在启动 Realsense 时可以通过 GPU 进行加速,因此这里先安装 cuda,由于我们在烧录 Jetson Orin NX 开发板时安装了相关组件,其中就包括 cuda 组件,因此可以直接通过 apt-get 安装 cuda,终端输入

sudo apt-get update
sudo apt-get install cuda-toolkit-11-4

安装完成后查看是否已经 export 安装路径

如果没有这两行则加入这两行

export PATH=/usr/local/cuda-11.4/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH

添加之后 source 一下,使其生效

source ~/.bashrc

最后检查 cuda 是否安装成功,终端输入

nvcc -V

这表明 cuda 安装成功!

三、安装 realsense 驱动

Jetson 系列有专门针对 realsense 安装方式,当然传统的 realsense 安装方式也是可行的

3.1 传统安装 librealsense

传统的安装方式可以参考下文

Ubuntu 20.04 配置 realsense_ubuntu安装realsense2-CSDN博客Ubuntu 20.04 配置 realsense_ubuntu安装realsense2https://blog.csdn.net/qq_44998513/article/details/131517394Ubuntu 20.04 配置 realsense_ubuntu安装realsense2https://blog.csdn.net/qq_44998513/article/details/131517394Ubuntu 20.04 配置 realsense_ubuntu安装realsense2https://blog.csdn.net/qq_44998513/article/details/131517394Ubuntu 20.04 配置 realsense_ubuntu安装realsense2https://blog.csdn.net/qq_44998513/article/details/131517394Ubuntu 20.04 配置 realsense_ubuntu安装realsense2https://blog.csdn.net/qq_44998513/article/details/131517394Ubuntu 20.04 配置 realsense_ubuntu安装realsense2https://blog.csdn.net/qq_44998513/article/details/131517394Ubuntu 20.04 配置 realsense_ubuntu安装realsense2https://blog.csdn.net/qq_44998513/article/details/131517394Ubuntu 20.04 配置 realsense_ubuntu安装realsense2https://blog.csdn.net/qq_44998513/article/details/131517394Ubuntu 20.04 配置 realsense_ubuntu安装realsense2https://blog.csdn.net/qq_44998513/article/details/131517394Ubuntu 20.04 配置 realsense_ubuntu安装realsense2https://blog.csdn.net/qq_44998513/article/details/131517394

3.2 Jetson 方法安装 librealsense

但是这里我们采用专门针对 Jetson 的方式进行安装 librealsense,参考

GitHub - jetsonhacks/installRealSenseSDK: Install the Intel RealSense SDK on the NVIDIA Jetson Development KitsInstall the Intel RealSense SDK on the NVIDIA Jetson Development Kits - GitHub - jetsonhacks/installRealSenseSDK: Install the Intel RealSense SDK on the NVIDIA Jetson Development Kitshttps://github.com/jetsonhacks/installRealSenseSDKInstall the Intel RealSense SDK on the NVIDIA Jetson Development Kits - GitHub - jetsonhacks/installRealSenseSDK: Install the Intel RealSense SDK on the NVIDIA Jetson Development Kitshttps://github.com/jetsonhacks/installRealSenseSDKInstall the Intel RealSense SDK on the NVIDIA Jetson Development Kits - GitHub - jetsonhacks/installRealSenseSDK: Install the Intel RealSense SDK on the NVIDIA Jetson Development Kitshttps://github.com/jetsonhacks/installRealSenseSDKInstall the Intel RealSense SDK on the NVIDIA Jetson Development Kits - GitHub - jetsonhacks/installRealSenseSDK: Install the Intel RealSense SDK on the NVIDIA Jetson Development Kitshttps://github.com/jetsonhacks/installRealSenseSDKInstall the Intel RealSense SDK on the NVIDIA Jetson Development Kits - GitHub - jetsonhacks/installRealSenseSDK: Install the Intel RealSense SDK on the NVIDIA Jetson Development Kitshttps://github.com/jetsonhacks/installRealSenseSDKInstall the Intel RealSense SDK on the NVIDIA Jetson Development Kits - GitHub - jetsonhacks/installRealSenseSDK: Install the Intel RealSense SDK on the NVIDIA Jetson Development Kitshttps://github.com/jetsonhacks/installRealSenseSDKInstall the Intel RealSense SDK on the NVIDIA Jetson Development Kits - GitHub - jetsonhacks/installRealSenseSDK: Install the Intel RealSense SDK on the NVIDIA Jetson Development Kitshttps://github.com/jetsonhacks/installRealSenseSDKInstall the Intel RealSense SDK on the NVIDIA Jetson Development Kits - GitHub - jetsonhacks/installRealSenseSDK: Install the Intel RealSense SDK on the NVIDIA Jetson Development Kitshttps://github.com/jetsonhacks/installRealSenseSDKInstall the Intel RealSense SDK on the NVIDIA Jetson Development Kits - GitHub - jetsonhacks/installRealSenseSDK: Install the Intel RealSense SDK on the NVIDIA Jetson Development Kitshttps://github.com/jetsonhacks/installRealSenseSDKInstall the Intel RealSense SDK on the NVIDIA Jetson Development Kits - GitHub - jetsonhacks/installRealSenseSDK: Install the Intel RealSense SDK on the NVIDIA Jetson Development Kitsicon-default.png?t=N7T8https://github.com/jetsonhacks/installRealSenseSDK

首先从 github 上下载安装包,终端输入

git clone https://github.com/jetsonhacks/installRealSenseSDK.git

下载完成后,进入安装包并开始安装,终端输入

cd ./installRealSenseSDK
./buildLibrealsense.sh

至此 Librealsense 就安装成功了,最后测试 realsense 驱动是否能够正常运行。

首先将 realsense 相机连接上 Jetson Orin NX 开发板(注意这里必须使用 USB 3.0 的数据线连接),然后终端输入

realsense-viewer

正常显示图片

这表明 Realsense 驱动安装成功!

四、安装 realsense-ros

作用:将 realsense 数据转换为 ros 数据并发布到 ros 话题中,相当于realsense 和 ros 的桥梁。

参考 realsense-ros 的 github 官方教程:

GitHub - IntelRealSense/realsense-ros at ros1-legacy

官方提供了直接方式和源码方式两种方法安装 realsense-ros

4.1 直接方式安装

终端输入:

sudo apt-get install ros-$ROS_DISTRO-realsense2-camera

其中 $ROS_DISTRO 为自己的 ros 版本, Ubuntu 18.04 对应 melodic,Ubuntu 20.04 对应 noetic,这种方法的安装路径为

/opt/ros/noetic/share/realsense2_camera/

4.2 源码方式安装

创建工作目录

mkdir -p ~/catkin_pkg/src/
cd ~/catkin_pkg/src/

下载源码

git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1`
cd ..

请确保安装了 ros 软件包 ddynamic_reconfigure, 如果没有安装,可以通过 apt 安装

sudo apt-get install ros-$ROS_DISTRO-ddynamic-reconfigure

或者将其源码下载到当前工作目录

git clone https://github.com/pal-robotics/ddynamic_reconfigure.git

注意,这里如果通过 apt 安装了 ddynamic_reconfigure 就不要再下载源码到工作空间一起编译了,可能会冲突报错。

接下来编译工作空间

catkin_init_workspace
cd ..
catkin_make clean
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install

最后将其加到 ~/.basrc 文件中

echo "source ~/catkin_pkg/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

这两种方法选择一种安装就可以。

测试 realsense-ros 是否安装成功,通过 ros 启动相机,终端输入

roslaunch realsense2_camera rs_camera.launch

如果发现报错
[camera/realsense2_camera_manager-2] process has died [pid 3282, exit code 127, cmd /opt/ros/noetic/lib/nodelet/nodelet manager __name:=realsense2_camera_manager __log:=/home/onx001/.ros/log/064220d6-6818-11ee-82cd-347de4babe3e/camera-realsense2_camera_manager-2.log].

参考

No GPU usage on jetson xavier NX · Issue #2326 · IntelRealSense/realsense-ros · GitHub

librealsense2 camera.so: undefined symbol:ZN2cV3MatC1EV解决笔记记录-CSDN博客

查看能否收到相机数据。

 解决方案

修改 CMakeLists.txt 文件

添加 OpenCV 功能包,由于安装 ROS 时自带 OpenCV,因此不需要另外安装 OpenCV,直接修改 CMakeLists.txt 文件即可

上面红字为添加的内容,也可以复制下面写的

find_package(catkin REQUIRED COMPONENTS
    message_generation
    nav_msgs
    roscpp
    sensor_msgs
    std_msgs
    std_srvs
    nodelet
    cv_bridge
    image_transport
    tf
    ddynamic_reconfigure
    diagnostic_updater
    OpenCV
    )

include_directories(
    include
    ${realsense2_INCLUDE_DIR}
    ${catkin_INCLUDE_DIRS}
    ${OpenCV_INCLUDE_DIRS}
    )

target_link_libraries(${PROJECT_NAME}
    ${realsense2_LIBRARY}
    ${catkin_LIBRARIES}
    ${CMAKE_THREAD_LIBS_INIT}
    ${OpenCV_LIBRARIES}
    )

重新测试 realsense-ros 是否安装成功,通过 ros 启动相机,终端输入

roslaunch realsense2_camera rs_camera.launch

终端输入 rostopic list 显示话题

onx001@onx001:~$ rostopic list 
/camera/color/camera_info
/camera/color/image_raw
/camera/color/image_raw/compressed
/camera/color/image_raw/compressed/parameter_descriptions
/camera/color/image_raw/compressed/parameter_updates
/camera/color/image_raw/compressedDepth
/camera/color/image_raw/compressedDepth/parameter_descriptions
/camera/color/image_raw/compressedDepth/parameter_updates
/camera/color/image_raw/theora
/camera/color/image_raw/theora/parameter_descriptions
/camera/color/image_raw/theora/parameter_updates
/camera/color/metadata
/camera/depth/camera_info
/camera/depth/image_rect_raw
/camera/depth/image_rect_raw/compressed
/camera/depth/image_rect_raw/compressed/parameter_descriptions
/camera/depth/image_rect_raw/compressed/parameter_updates
/camera/depth/image_rect_raw/compressedDepth
/camera/depth/image_rect_raw/compressedDepth/parameter_descriptions
/camera/depth/image_rect_raw/compressedDepth/parameter_updates
/camera/depth/image_rect_raw/theora
/camera/depth/image_rect_raw/theora/parameter_descriptions
/camera/depth/image_rect_raw/theora/parameter_updates
/camera/depth/metadata
/camera/extrinsics/depth_to_color
/camera/motion_module/parameter_descriptions
/camera/motion_module/parameter_updates
/camera/realsense2_camera_manager/bond
/camera/rgb_camera/auto_exposure_roi/parameter_descriptions
/camera/rgb_camera/auto_exposure_roi/parameter_updates
/camera/rgb_camera/parameter_descriptions
/camera/rgb_camera/parameter_updates
/camera/stereo_module/auto_exposure_roi/parameter_descriptions
/camera/stereo_module/auto_exposure_roi/parameter_updates
/camera/stereo_module/parameter_descriptions
/camera/stereo_module/parameter_updates
/diagnostics
/rosout
/rosout_agg
/tf
/tf_static
onx001@onx001:~$ 

这表明 realsense-ros 安装成功!

4.3 修改配置文件

一般来说,安装完成后可能会出现 ros 能接收到话题但是收不到数据的情况。

这时需要修改 ~/catkin_pkg/src/realsense2_camera/rs_camera.launch 文件。

先备份 rs_camera.launch 文件,终端输入

cd ~/catkin_pkg/src/realsense-ros/realsense2_camera/launch
cp ./rs_camera.launch ./rs_camera.launch.bak

然后将 rs_camera.launch 文件内容替换为如下内容

<launch>
  <arg name="serial_no"           default=""/>
  <arg name="usb_port_id"         default=""/>
  <arg name="device_type"         default=""/>
  <arg name="json_file_path"      default=""/>
  <arg name="camera"              default="camera"/>
  <arg name="tf_prefix"           default="$(arg camera)"/>
  <arg name="external_manager"    default="false"/>
  <arg name="manager"             default="realsense2_camera_manager"/>
  <arg name="output"              default="screen"/>
  <arg name="respawn"              default="false"/>

  <arg name="fisheye_width"       default="-1"/>
  <arg name="fisheye_height"      default="-1"/>
  <arg name="enable_fisheye"      default="false"/>

  <arg name="depth_width"         default="640"/>
  <arg name="depth_height"        default="480"/>
  <arg name="enable_depth"        default="true"/>

  <arg name="confidence_width"    default="-1"/>
  <arg name="confidence_height"   default="-1"/>
  <arg name="enable_confidence"   default="true"/>
  <arg name="confidence_fps"      default="-1"/>

  <arg name="infra_width"         default="640"/>
  <arg name="infra_height"        default="480"/>
  <arg name="enable_infra"        default="false"/>
  <arg name="enable_infra1"       default="true"/>
  <arg name="enable_infra2"       default="true"/>
  <arg name="infra_rgb"           default="false"/>

  <arg name="color_width"         default="-1"/>
  <arg name="color_height"        default="-1"/>
  <arg name="enable_color"        default="false"/>

  <arg name="fisheye_fps"         default="-1"/>
  <arg name="depth_fps"           default="30"/>
  <arg name="infra_fps"           default="30"/>
  <arg name="color_fps"           default="-1"/>
  <arg name="gyro_fps"            default="400"/>
  <arg name="accel_fps"           default="400"/>
  <arg name="enable_gyro"         default="true"/>
  <arg name="enable_accel"        default="true"/>

  <arg name="enable_pointcloud"         default="false"/>
  <arg name="pointcloud_texture_stream" default="RS2_STREAM_COLOR"/>
  <arg name="pointcloud_texture_index"  default="0"/>
  <arg name="allow_no_texture_points"   default="false"/>
  <arg name="ordered_pc"                default="false"/>

  <arg name="enable_sync"               default="true"/>
  <arg name="align_depth"               default="false"/>

  <arg name="publish_tf"                default="true"/>
  <arg name="tf_publish_rate"           default="0"/>

  <arg name="filters"                   default=""/>
  <arg name="clip_distance"             default="-2"/>
  <arg name="linear_accel_cov"          default="0.01"/>
  <arg name="initial_reset"             default="false"/>
  <arg name="reconnect_timeout"         default="6.0"/>
  <arg name="wait_for_device_timeout"   default="-1.0"/>
  <arg name="unite_imu_method"          default="linear_interpolation"/>
  <arg name="topic_odom_in"             default="odom_in"/>
  <arg name="calib_odom_file"           default=""/>
  <arg name="publish_odom_tf"           default="true"/>

  <arg name="stereo_module/exposure/1"  default="7500"/>
  <arg name="stereo_module/gain/1"      default="16"/>
  <arg name="stereo_module/exposure/2"  default="1"/>
  <arg name="stereo_module/gain/2"      default="16"/>
  
  
  <arg name="emitter_enable"   	default="false"/>
	
  <!-- rosparam set /camera/stereo_module/emitter_enabled false -->
  <rosparam>
    /camera/stereo_module/emitter_enabled: 0
  </rosparam>
  <rosparam if="$(arg emitter_enable)">
    /camera/stereo_module/emitter_enabled: 1
  </rosparam>
  

  <group ns="$(arg camera)">
    <include file="$(find realsense2_camera)/launch/includes/nodelet.launch.xml">
      <arg name="tf_prefix"                value="$(arg tf_prefix)"/>
      <arg name="external_manager"         value="$(arg external_manager)"/>
      <arg name="manager"                  value="$(arg manager)"/>
      <arg name="output"                   value="$(arg output)"/>
      <arg name="respawn"                  value="$(arg respawn)"/>
      <arg name="serial_no"                value="$(arg serial_no)"/>
      <arg name="usb_port_id"              value="$(arg usb_port_id)"/>
      <arg name="device_type"              value="$(arg device_type)"/>
      <arg name="json_file_path"           value="$(arg json_file_path)"/>

      <arg name="enable_pointcloud"        value="$(arg enable_pointcloud)"/>
      <arg name="pointcloud_texture_stream" value="$(arg pointcloud_texture_stream)"/>
      <arg name="pointcloud_texture_index"  value="$(arg pointcloud_texture_index)"/>
      <arg name="enable_sync"              value="$(arg enable_sync)"/>
      <arg name="align_depth"              value="$(arg align_depth)"/>

      <arg name="fisheye_width"            value="$(arg fisheye_width)"/>
      <arg name="fisheye_height"           value="$(arg fisheye_height)"/>
      <arg name="enable_fisheye"           value="$(arg enable_fisheye)"/>

      <arg name="depth_width"              value="$(arg depth_width)"/>
      <arg name="depth_height"             value="$(arg depth_height)"/>
      <arg name="enable_depth"             value="$(arg enable_depth)"/>

      <arg name="confidence_width"         value="$(arg confidence_width)"/>
      <arg name="confidence_height"        value="$(arg confidence_height)"/>
      <arg name="enable_confidence"        value="$(arg enable_confidence)"/>
      <arg name="confidence_fps"           value="$(arg confidence_fps)"/>

      <arg name="color_width"              value="$(arg color_width)"/>
      <arg name="color_height"             value="$(arg color_height)"/>
      <arg name="enable_color"             value="$(arg enable_color)"/>

      <arg name="infra_width"              value="$(arg infra_width)"/>
      <arg name="infra_height"             value="$(arg infra_height)"/>
      <arg name="enable_infra"             value="$(arg enable_infra)"/>
      <arg name="enable_infra1"            value="$(arg enable_infra1)"/>
      <arg name="enable_infra2"            value="$(arg enable_infra2)"/>
      <arg name="infra_rgb"                value="$(arg infra_rgb)"/>

      <arg name="fisheye_fps"              value="$(arg fisheye_fps)"/>
      <arg name="depth_fps"                value="$(arg depth_fps)"/>
      <arg name="infra_fps"                value="$(arg infra_fps)"/>
      <arg name="color_fps"                value="$(arg color_fps)"/>
      <arg name="gyro_fps"                 value="$(arg gyro_fps)"/>
      <arg name="accel_fps"                value="$(arg accel_fps)"/>
      <arg name="enable_gyro"              value="$(arg enable_gyro)"/>
      <arg name="enable_accel"             value="$(arg enable_accel)"/>

      <arg name="publish_tf"               value="$(arg publish_tf)"/>
      <arg name="tf_publish_rate"          value="$(arg tf_publish_rate)"/>

      <arg name="filters"                  value="$(arg filters)"/>
      <arg name="clip_distance"            value="$(arg clip_distance)"/>
      <arg name="linear_accel_cov"         value="$(arg linear_accel_cov)"/>
      <arg name="initial_reset"            value="$(arg initial_reset)"/>
      <arg name="reconnect_timeout"        value="$(arg reconnect_timeout)"/>
      <arg name="wait_for_device_timeout"  value="$(arg wait_for_device_timeout)"/>
      <arg name="unite_imu_method"         value="$(arg unite_imu_method)"/>
      <arg name="topic_odom_in"            value="$(arg topic_odom_in)"/>
      <arg name="calib_odom_file"          value="$(arg calib_odom_file)"/>
      <arg name="publish_odom_tf"          value="$(arg publish_odom_tf)"/>
      <arg name="stereo_module/exposure/1" value="$(arg stereo_module/exposure/1)"/>
      <arg name="stereo_module/gain/1"     value="$(arg stereo_module/gain/1)"/>
      <arg name="stereo_module/exposure/2" value="$(arg stereo_module/exposure/2)"/>
      <arg name="stereo_module/gain/2"     value="$(arg stereo_module/gain/2)"/>

      <arg name="allow_no_texture_points"  value="$(arg allow_no_texture_points)"/>
      <arg name="ordered_pc"               value="$(arg ordered_pc)"/>
      
    </include>
  </group>
</launch>

最后终端输入

roslaunch realsense2_camera rs_camera.launch

此时输出 imu 等信息,并且屏蔽了结构光

onx001@onx001:~$ rostopic list 
/camera/accel/imu_info
/camera/gyro/imu_info
/camera/imu
/camera/infra1/camera_info
/camera/infra1/image_rect_raw
/camera/infra1/image_rect_raw/compressed
/camera/infra1/image_rect_raw/compressed/parameter_descriptions
/camera/infra1/image_rect_raw/compressed/parameter_updates
/camera/infra1/image_rect_raw/compressedDepth
/camera/infra1/image_rect_raw/compressedDepth/parameter_descriptions
/camera/infra1/image_rect_raw/compressedDepth/parameter_updates
/camera/infra1/image_rect_raw/theora
/camera/infra1/image_rect_raw/theora/parameter_descriptions
/camera/infra1/image_rect_raw/theora/parameter_updates
/camera/infra1/metadata
/camera/infra2/camera_info
/camera/infra2/image_rect_raw
/camera/infra2/image_rect_raw/compressed
/camera/infra2/image_rect_raw/compressed/parameter_descriptions
/camera/infra2/image_rect_raw/compressed/parameter_updates
/camera/infra2/image_rect_raw/compressedDepth
/camera/infra2/image_rect_raw/compressedDepth/parameter_descriptions
/camera/infra2/image_rect_raw/compressedDepth/parameter_updates
/camera/infra2/image_rect_raw/theora
/camera/infra2/image_rect_raw/theora/parameter_descriptions
/camera/infra2/image_rect_raw/theora/parameter_updates
/camera/infra2/metadata
/camera/motion_module/parameter_descriptions
/camera/motion_module/parameter_updates
/camera/realsense2_camera_manager/bond
/camera/rgb_camera/parameter_descriptions
/camera/rgb_camera/parameter_updates
/camera/stereo_module/auto_exposure_roi/parameter_descriptions
/camera/stereo_module/auto_exposure_roi/parameter_updates
/camera/stereo_module/parameter_descriptions
/camera/stereo_module/parameter_updates
/diagnostics
/rosout
/rosout_agg
/tf
/tf_static

至此,Realsense 驱动就安装完成了,并且实现了与 ROS 系统的连接!

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

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

相关文章

iOS 面试题以及自我理解答案

1、简述push原理&#xff0c;push的证书和其他的有什么不一样&#xff1f; 第 一阶段&#xff1a;BeejiveIM服务器把要发送的消息、目的iPhone的标识打包&#xff0c;发给APNS。 第二阶段&#xff1a;APNS在自身的已注册Push服务 的iPhone列表中&#xff0c;查找有相应标识的iP…

pdf怎么压缩的小一点?分享pdf文件压缩方法

在数字化时代&#xff0c;PDF文件已成为我们日常工作和学习中不可或缺的一部分&#xff0c;然而&#xff0c;有时我们需要发送或存储的PDF文件过大&#xff0c;给我们的交流和存储带来不便。那么&#xff0c;如何将PDF文件压缩得小一点&#xff0c;以便更方便地传输和存储呢&am…

Android Studio for Platform (ASfP) 使用教程

文章目录 编写脚本下载源代码lunch 查看版本 归纳的很清楚&#xff0c;下载Repo并下载源码->可以参考我的 Framework入门のPiex 6P源码(下载/编译/刷机) 启动图标&#xff08;重启生效&#xff09; [Desktop Entry] EncodingUTF-8 NameAndroidStudio …

NCV6324CMTAATBG---车规级3MHz 2A 高效同步降压转换器

同步降压转换器&#xff1f; 是一种电源管理电路&#xff0c;它可以将输入电压转换为较低的输出电压。与传统的降压转换器相比&#xff0c;同步降压转换器具有更高的效率和更好的动态响应。 同步降压转换器的工作原理是通过控制开关管的导通和截止来实现电能的转换。在导通状…

Java架构师数据库设计

目录 1 导学2 数据库设计3 数据库设计的基本步骤3.1 优秀的数据库设计的基本原则3.1 数据库冗余设计4 数据库表逻辑关系设计4.1 MySQL设计表结构工具4.2 数据库建模工具5 数据库表结构设计5.1 MySQL调优5.2 SQL语句优化6 总结1 导学 数据库设计作为架构师的核心设计能力之一,对…

c++视觉处理---图像重映射

图像重映射&#xff1a;cv::remap cv::remap 是OpenCV中的一个函数&#xff0c;用于执行图像重映射&#xff0c;允许您通过重新映射像素的位置来变换图像。这个函数非常有用&#xff0c;可以用于各种图像处理任务&#xff0c;如校正畸变、透视变换、几何变换等。 下面是 cv::…

Maven系列第5篇:私服详解

maven系列目标&#xff1a;从入门开始开始掌握一个高级开发所需要的maven技能。 这是maven系列第5篇。 整个maven系列的内容前后是有依赖的&#xff0c;如果之前没有接触过maven&#xff0c;建议从第一篇看起&#xff0c;本文尾部有maven完整系列的连接。 环境 maven3.6.1 …

ctfshow萌新计划web9-14(正则匹配绕过)

目录 web9 web10 web11 web12 web13 web14 web9 审一下代码&#xff0c;需要匹配到system|exec|highlight才会执行eval函数 先看一下当前目录下有什么 payload&#xff1a;?csystem(ls); index.php是首页&#xff0c;我们看看config.php payload&#xff1a;?csystem…

【FreeRADIUS】使用FreeRADIUS进行SSH身份验证

在数据中心中&#xff0c;可能有许多Linux机器&#xff0c;由管理员团队进行管理。这些管理员通过SSH访问这些服务器。如果希望使用一个集中的位置来管理这些管理员的身份验证。那么为了实现这一点&#xff0c;可以使用FreeRADIUS服务器。FreeRADIUS是一个功能强大的开源工具&a…

SwinTransformer学习记录(一)之整体架构

SwinTransformer自问世以来&#xff0c;凭借其优秀的性能&#xff0c;受到无数研究者的青睐&#xff0c;因此作为一个通用的骨干网络&#xff0c;其再目标检测&#xff0c;语义分割&#xff0c;去噪等领域大杀四方&#xff0c;可谓是风光无限&#xff0c;今天&#xff0c;我们便…

Linux防火墙配置

目录 一、firewalld防火墙简介二、firewalld放行端口方法三、firewalld放行服务方法四、firewalld富规则配置方法一、firewalld防火墙简介 Firewalld防火墙是CentOS 7系统默认的防火墙管理工具,它取代了之前版本的iptables防火墙。Firewalld工作在网络层,属于一种包过滤型防…

C语言,求质因数中的较大的值

首先要求出输入的质数的两个质因数&#xff0c;就要用到判断素数时用到的方法。用内循环产生2到n的数字&#xff0c;当求到了质因数之后&#xff0c;也要先用一个变量将质因数存起来&#xff0c;当后面遇到更大的质因数时&#xff0c;再将原来的质因数覆盖&#xff0c;如果更小…

SystemVerilog Assertions应用指南 第一章

1.1什么是断言 断言是设计的属性的描述。 ● 如果一个在模拟中被检查的属性( property)不像我们期望的那样表现,那么这个断言失败。 ● 如果一个被禁止在设计中出现的属性在模拟过程中发生,那么这个断言失败。 一系列的属性可以从设计的功能描述中推知,并且被…

恒驰服务 | 5大服务保障,轻松助力企业实现数据库迁移

随着经营规模的迅猛发展&#xff0c;IT信息系统在企业的日常运营中正发挥着越来越重要的作用。确保信息系统尤其是作为其核心与基石的数据库系统的安全、稳定、高效和敏捷运行&#xff0c;是支撑企业业务系统正常、可持续运营的核心基础&#xff0c;也是企业信息化部门各级管理…

LeetCode142:环形链表II

给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数…

前端--CSS

文章目录 CSS的介绍 引入方式 代码风格 选择器 复合选择器 (选学) 常用元素属性 背景属性 圆角矩形 Chrome 调试工具 -- 查看 CSS 属性 元素的显示模式 盒模型 弹性布局 一、CSS的介绍 层叠样式表 (Cascading Style Sheets). CSS 能够对网页中元素位置的排版进行像素级精…

针对网贷诈骗网站渗透1

开局一张图 二.漏洞分析 2.1 第一套源码漏洞分析 2.1.1 Thinkphp日志泄漏 基于Thinkphp3.2.3开发&#xff0c;前后台分离 默认开启Debug、导致泄漏日志SQL信息、异常缓存 构造Payload&#xff1a;App/Runtime/Logs/21_10_16.log 获取泄漏的admin表账号密码 进入后台 2.1.2 数组…

Docker安装、启动、管理ElasticSearch、ElasticSearch-heade、kibana

一、ElasticSearch 1.1.镜像拉取 docker pull elasticsearch:7.17.13 1.2.启动 docker run -d --name "容器名称" -e "ES_JAVA_OPTS-Xms512m -Xmx512m" -p 9200:9200 -p 9300:9300 elasticsearch:7.17.13启动后使用docker logs查看ES启动日志&#xf…

地表水与地下水耦合模拟

耦合模型被应用到很多科学和工程领域来改善模型的性能、效率和结果&#xff0c;SWAT作为一个地表水模型可以较好的模拟主要的水文过程&#xff0c;包括地表径流、降水、蒸发、风速、温度、渗流、侧向径流等&#xff0c;但是对于地下水部分的模拟相对粗糙&#xff0c;考虑到SWAT…

攻防世界题目练习——Web引导模式(二)

题目目录 1. Web_php_unserialize2. supersqli3. web24. NewsCenter5. Web_python_template_injection6. catcat-new 1. Web_php_unserialize 题目源码&#xff1a; <?php class Demo { private $file index.php;public function __construct($file) { $this->file …