ROS笔记[3]-安装mavros

news/发布时间2024/5/17 15:10:27

摘要

在ROS1 Noetic中安装mavros并通过mavros与apm飞控通信(usb接口).

关键信息

  • ROS1 Noetic
  • 飞控固件:ArduCopter 4.2.0
  • 板卡:Orangepi5pro
  • 系统:ubuntu20.04
  • CPU架构:arm64

实现

  1. 下载资源包GeographicLib.zip
    链接:[https://pan.quark.cn/s/279e5eee5b1f]
    提取码:[yDBL]

  2. 配置安装

cd /home/orangepi
unzip GeographicLib.zip
sudo cp -r /home/orangepi/GeographicLib /usr/share
ls /usr/share/GeographicLib/
# 鱼香ROS可一键配置apt国内源
# wget http://fishros.com/install -O fishros && bash fishros
sudo apt install -y ros-noetic-mavros ros-noetic-mavros-extras
# 查看安装
roscd mavros
ls launch
  1. 测试
# roscore
roslaunch mavros apm2.launch fcu_url:=/dev/ttyACM1:57600
  1. 查看数据
rostopic list | grep /mavros
rostopic echo /mavros/battery
rostopic echo /mavros/state
rostopic echo /mavros/imu/data
rostopic echo /mavros/rc/in
rostopic echo /mavros/rc/out
rostopic echo /mavros/mount_control/command
rostopic echo /mavros/sys_status
  1. 解锁电机
# 修改广播频率(否则某些数据/指令无法正确获取/执行)
rosservice call /mavros/set_stream_rate 0 50 1
# 解锁(解锁前记得按安全开关,插上电池)
rosrun mavros mavsafety arm
# 上锁
rosrun mavros mavsafety disarm

安全开关指示灯含义

  • 持续闪烁 - 系统正在初始化。
  • 间歇性闪烁 - 系统准备就绪,但处于"安全"状态。如果已经解锁,按下安全开关,使输出到电机和控制面,或取消阻止解锁的预解锁错误条件。
  • 常亮 - 安全开关已被按下,一旦飞行器被解锁起来,电机和舵机就能移动。

效果

  1. 日志输出
... logging to /home/orangepi/.ros/log/9d210134-0872-11ef-8b65-c0f53541dcb8/roslaunch-orangepi5pro-309068.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.started roslaunch server http://orangepi5pro:42063/SUMMARY
========CLEAR PARAMETERS* /mavros/PARAMETERS* /mavros/cmd/use_comp_id_system_control: False* /mavros/conn/heartbeat_mav_type: ONBOARD_CONTROLLER* /mavros/conn/heartbeat_rate: 1.0* /mavros/conn/system_time_rate: 1.0* /mavros/conn/timeout: 10.0* /mavros/conn/timesync_rate: 10.0* /mavros/distance_sensor/rangefinder_pub/field_of_view: 0.0* /mavros/distance_sensor/rangefinder_pub/frame_id: lidar* /mavros/distance_sensor/rangefinder_pub/id: 0* /mavros/distance_sensor/rangefinder_pub/send_tf: False* /mavros/distance_sensor/rangefinder_pub/sensor_position/x: 0.0* /mavros/distance_sensor/rangefinder_pub/sensor_position/y: 0.0* /mavros/distance_sensor/rangefinder_pub/sensor_position/z: -0.1* /mavros/distance_sensor/rangefinder_sub/id: 1* /mavros/distance_sensor/rangefinder_sub/orientation: PITCH_270* /mavros/distance_sensor/rangefinder_sub/subscriber: True* /mavros/fake_gps/eph: 2.0* /mavros/fake_gps/epv: 2.0* /mavros/fake_gps/fix_type: 3* /mavros/fake_gps/geo_origin/alt: 408.0* /mavros/fake_gps/geo_origin/lat: 47.3667* /mavros/fake_gps/geo_origin/lon: 8.55* /mavros/fake_gps/gps_id: 4* /mavros/fake_gps/gps_rate: 5.0* /mavros/fake_gps/horiz_accuracy: 0.5* /mavros/fake_gps/mocap_transform: False* /mavros/fake_gps/mocap_withcovariance: False* /mavros/fake_gps/satellites_visible: 6* /mavros/fake_gps/speed_accuracy: 0.0* /mavros/fake_gps/tf/child_frame_id: fix* /mavros/fake_gps/tf/frame_id: map* /mavros/fake_gps/tf/listen: False* /mavros/fake_gps/tf/rate_limit: 10.0* /mavros/fake_gps/tf/send: False* /mavros/fake_gps/use_hil_gps: True* /mavros/fake_gps/use_mocap: True* /mavros/fake_gps/use_vision: False* /mavros/fake_gps/vert_accuracy: 0.5* /mavros/fcu_protocol: v2.0* /mavros/fcu_url: /dev/ttyACM1:57600* /mavros/gcs_url: * /mavros/global_position/child_frame_id: base_link* /mavros/global_position/frame_id: map* /mavros/global_position/gps_uere: 1.0* /mavros/global_position/rot_covariance: 99999.0* /mavros/global_position/tf/child_frame_id: base_link* /mavros/global_position/tf/frame_id: map* /mavros/global_position/tf/global_frame_id: earth* /mavros/global_position/tf/send: False* /mavros/global_position/use_relative_alt: True* /mavros/guided_target/tf/child_frame_id: target_position* /mavros/guided_target/tf/frame_id: map* /mavros/guided_target/tf/listen: False* /mavros/guided_target/tf/rate_limit: 50.0* /mavros/image/frame_id: px4flow* /mavros/imu/angular_velocity_stdev: 0.0003490659 // 0...* /mavros/imu/frame_id: base_link* /mavros/imu/linear_acceleration_stdev: 0.0003* /mavros/imu/magnetic_stdev: 0.0* /mavros/imu/orientation_stdev: 1.0* /mavros/landing_target/camera/fov_x: 2.0071286398* /mavros/landing_target/camera/fov_y: 2.0071286398* /mavros/landing_target/image/height: 480* /mavros/landing_target/image/width: 640* /mavros/landing_target/land_target_type: VISION_FIDUCIAL* /mavros/landing_target/listen_lt: False* /mavros/landing_target/mav_frame: LOCAL_NED* /mavros/landing_target/target_size/x: 0.3* /mavros/landing_target/target_size/y: 0.3* /mavros/landing_target/tf/child_frame_id: camera_center* /mavros/landing_target/tf/frame_id: landing_target* /mavros/landing_target/tf/listen: False* /mavros/landing_target/tf/rate_limit: 10.0* /mavros/landing_target/tf/send: True* /mavros/local_position/frame_id: map* /mavros/local_position/tf/child_frame_id: base_link* /mavros/local_position/tf/frame_id: map* /mavros/local_position/tf/send: False* /mavros/local_position/tf/send_fcu: False* /mavros/mission/pull_after_gcs: True* /mavros/mission/use_mission_item_int: True* /mavros/mocap/use_pose: True* /mavros/mocap/use_tf: False* /mavros/mount/debounce_s: 4.0* /mavros/mount/err_threshold_deg: 10.0* /mavros/mount/negate_measured_pitch: False* /mavros/mount/negate_measured_roll: False* /mavros/mount/negate_measured_yaw: False* /mavros/odometry/estimator_type: 3* /mavros/odometry/frame_tf/desired_frame: ned* /mavros/plugin_blacklist: ['actuator_contro...* /mavros/plugin_whitelist: []* /mavros/px4flow/frame_id: px4flow* /mavros/px4flow/ranger_fov: 0.118682* /mavros/px4flow/ranger_max_range: 5.0* /mavros/px4flow/ranger_min_range: 0.3* /mavros/safety_area/p1/x: 1.0* /mavros/safety_area/p1/y: 1.0* /mavros/safety_area/p1/z: 1.0* /mavros/safety_area/p2/x: -1.0* /mavros/safety_area/p2/y: -1.0* /mavros/safety_area/p2/z: -1.0* /mavros/setpoint_accel/send_force: False* /mavros/setpoint_attitude/reverse_thrust: False* /mavros/setpoint_attitude/tf/child_frame_id: target_attitude* /mavros/setpoint_attitude/tf/frame_id: map* /mavros/setpoint_attitude/tf/listen: False* /mavros/setpoint_attitude/tf/rate_limit: 50.0* /mavros/setpoint_attitude/use_quaternion: False* /mavros/setpoint_position/mav_frame: LOCAL_NED* /mavros/setpoint_position/tf/child_frame_id: target_position* /mavros/setpoint_position/tf/frame_id: map* /mavros/setpoint_position/tf/listen: False* /mavros/setpoint_position/tf/rate_limit: 50.0* /mavros/setpoint_raw/thrust_scaling: 1.0* /mavros/setpoint_velocity/mav_frame: LOCAL_NED* /mavros/startup_px4_usb_quirk: False* /mavros/sys/disable_diag: False* /mavros/sys/min_voltage: 10.0* /mavros/target_component_id: 1* /mavros/target_system_id: 1* /mavros/tdr_radio/low_rssi: 40* /mavros/time/time_ref_source: fcu* /mavros/time/timesync_avg_alpha: 0.6* /mavros/time/timesync_mode: MAVLINK* /mavros/vibration/frame_id: base_link* /mavros/vision_pose/tf/child_frame_id: vision_estimate* /mavros/vision_pose/tf/frame_id: map* /mavros/vision_pose/tf/listen: False* /mavros/vision_pose/tf/rate_limit: 10.0* /mavros/vision_speed/listen_twist: True* /mavros/vision_speed/twist_cov: True* /mavros/wheel_odometry/child_frame_id: base_link* /mavros/wheel_odometry/count: 2* /mavros/wheel_odometry/frame_id: map* /mavros/wheel_odometry/send_raw: True* /mavros/wheel_odometry/send_twist: False* /mavros/wheel_odometry/tf/child_frame_id: base_link* /mavros/wheel_odometry/tf/frame_id: map* /mavros/wheel_odometry/tf/send: True* /mavros/wheel_odometry/use_rpm: False* /mavros/wheel_odometry/vel_error: 0.1* /mavros/wheel_odometry/wheel0/radius: 0.05* /mavros/wheel_odometry/wheel0/x: 0.0* /mavros/wheel_odometry/wheel0/y: -0.15* /mavros/wheel_odometry/wheel1/radius: 0.05* /mavros/wheel_odometry/wheel1/x: 0.0* /mavros/wheel_odometry/wheel1/y: 0.15* /rosdistro: noetic* /rosversion: 1.16.0NODES/mavros (mavros/mavros_node)ROS_MASTER_URI=http://localhost:11311process[mavros-1]: started with pid [309103]
[ INFO] [1714669143.409109997]: FCU URL: /dev/ttyACM1:57600
[ INFO] [1714669143.411891288]: serial0: device: /dev/ttyACM1 @ 57600 bps
[ INFO] [1714669143.412705901]: GCS bridge disabled
[ INFO] [1714669143.428903362]: Plugin 3dr_radio loaded
[ INFO] [1714669143.431101037]: Plugin 3dr_radio initialized
[ INFO] [1714669143.431154119]: Plugin actuator_control blacklisted
[ INFO] [1714669143.436814116]: Plugin adsb loaded
[ INFO] [1714669143.440256314]: Plugin adsb initialized
[ INFO] [1714669143.440304146]: Plugin altitude blacklisted
[ INFO] [1714669143.440438019]: Plugin cam_imu_sync loaded
[ INFO] [1714669143.441005011]: Plugin cam_imu_sync initialized
[ INFO] [1714669143.441131300]: Plugin camera loaded
[ INFO] [1714669143.441682542]: Plugin camera initialized
[ INFO] [1714669143.441808248]: Plugin cellular_status loaded
[ INFO] [1714669143.443687720]: Plugin cellular_status initialized
[ INFO] [1714669143.443848426]: Plugin command loaded
[ INFO] [1714669143.450556657]: Plugin command initialized
[ INFO] [1714669143.450810111]: Plugin companion_process_status loaded
[ INFO] [1714669143.453026744]: Plugin companion_process_status initialized
[ INFO] [1714669143.453084201]: Plugin debug_value blacklisted
[ INFO] [1714669143.453332406]: Plugin distance_sensor loaded
[ INFO] [1714669143.465105935]: Plugin distance_sensor initialized
[ INFO] [1714669143.465258474]: Plugin esc_status loaded
[ INFO] [1714669143.466240209]: Plugin esc_status initialized
[ INFO] [1714669143.466363290]: Plugin esc_telemetry loaded
[ INFO] [1714669143.466848616]: Plugin esc_telemetry initialized
[ INFO] [1714669143.466961490]: Plugin fake_gps loaded
[ INFO] [1714669143.478653936]: Plugin fake_gps initialized
[ INFO] [1714669143.478701769]: Plugin ftp blacklisted
[ INFO] [1714669143.478843225]: Plugin geofence loaded
[ INFO] [1714669143.483765316]: Plugin geofence initialized
[ INFO] [1714669143.483918439]: Plugin global_position loaded
[ INFO] [1714669143.495304640]: Plugin global_position initialized
[ INFO] [1714669143.495446388]: Plugin gps_input loaded
[ INFO] [1714669143.497831310]: Plugin gps_input initialized
[ INFO] [1714669143.497953517]: Plugin gps_rtk loaded
[ INFO] [1714669143.500731308]: Plugin gps_rtk initialized
[ INFO] [1714669143.500851181]: Plugin gps_status loaded
[ INFO] [1714669143.502928107]: Plugin gps_status initialized
[ INFO] [1714669143.503058772]: Plugin guided_target loaded
[ INFO] [1714669143.507946156]: Plugin guided_target initialized
[ INFO] [1714669143.507991655]: Plugin hil blacklisted
[ INFO] [1714669143.508111528]: Plugin home_position loaded
[ INFO] [1714669143.511301730]: Plugin home_position initialized
[ INFO] [1714669143.511444644]: Plugin imu loaded
[ INFO] [1714669143.517553801]: Plugin imu initialized
[ INFO] [1714669143.517689424]: Plugin landing_target loaded
[ INFO] [1714669143.527333527]: Plugin landing_target initialized
[ INFO] [1714669143.527483733]: Plugin local_position loaded
[ INFO] [1714669143.532627779]: Plugin local_position initialized
[ INFO] [1714669143.532771860]: Plugin log_transfer loaded
[ INFO] [1714669143.535219198]: Plugin log_transfer initialized
[ INFO] [1714669143.535348113]: Plugin mag_calibration_status loaded
[ INFO] [1714669143.536254307]: Plugin mag_calibration_status initialized
[ INFO] [1714669143.536379722]: Plugin manual_control loaded
[ INFO] [1714669143.538830268]: Plugin manual_control initialized
[ INFO] [1714669143.538959182]: Plugin mocap_pose_estimate loaded
[ INFO] [1714669143.542492670]: Plugin mocap_pose_estimate initialized
[ INFO] [1714669143.542634126]: Plugin mount_control loaded
[ WARN] [1714669143.548015003]: Could not retrive negate_measured_roll parameter value, using default (0)
[ WARN] [1714669143.548523370]: Could not retrive negate_measured_pitch parameter value, using default (0)
[ WARN] [1714669143.548961738]: Could not retrive negate_measured_yaw parameter value, using default (0)
[ WARN] [1714669143.550396425]: Could not retrive debounce_s parameter value, using default (4.000000)
[ WARN] [1714669143.550839751]: Could not retrive err_threshold_deg parameter value, using default (10.000000)
[ INFO] [1714669143.550888459]: Plugin mount_control initialized
[ INFO] [1714669143.551008040]: Plugin nav_controller_output loaded
[ INFO] [1714669143.551628989]: Plugin nav_controller_output initialized
[ INFO] [1714669143.551729321]: Plugin obstacle_distance loaded
[ INFO] [1714669143.554010411]: Plugin obstacle_distance initialized
[ INFO] [1714669143.554116284]: Plugin odom loaded
[ INFO] [1714669143.557213446]: Plugin odom initialized
[ INFO] [1714669143.557350818]: Plugin onboard_computer_status loaded
[ INFO] [1714669143.559390996]: Plugin onboard_computer_status initialized
[ INFO] [1714669143.559542077]: Plugin param loaded
[ INFO] [1714669143.562437699]: Plugin param initialized
[ INFO] [1714669143.562566614]: Plugin play_tune loaded
[ INFO] [1714669143.565559651]: Plugin play_tune initialized
[ INFO] [1714669143.565608359]: Plugin px4flow blacklisted
[ INFO] [1714669143.565730274]: Plugin rallypoint loaded
[ INFO] [1714669143.569219721]: Plugin rallypoint initialized
[ INFO] [1714669143.569800712]: Plugin rangefinder loaded
[ INFO] [1714669143.570674823]: Plugin rangefinder initialized
[ INFO] [1714669143.571074692]: Plugin rc_io loaded
[ INFO] [1714669143.575069881]: Plugin rc_io initialized
[ INFO] [1714669143.575214254]: Plugin safety_area blacklisted
[ INFO] [1714669143.575570082]: Plugin setpoint_accel loaded
[ INFO] [1714669143.578653827]: Plugin setpoint_accel initialized
[ INFO] [1714669143.579110861]: Plugin setpoint_attitude loaded
[ INFO] [1714669143.591102553]: Plugin setpoint_attitude initialized
[ INFO] [1714669143.591638629]: Plugin setpoint_position loaded
[ INFO] [1714669143.607225641]: Plugin setpoint_position initialized
[ INFO] [1714669143.607705717]: Plugin setpoint_raw loaded
[ INFO] [1714669143.617813271]: Plugin setpoint_raw initialized
[ INFO] [1714669143.618003726]: Plugin setpoint_trajectory loaded
[ INFO] [1714669143.623503601]: Plugin setpoint_trajectory initialized
[ INFO] [1714669143.623971135]: Plugin setpoint_velocity loaded
[ INFO] [1714669143.630182082]: Plugin setpoint_velocity initialized
[ INFO] [1714669143.630821406]: Plugin sys_status loaded
[ INFO] [1714669143.643930455]: Plugin sys_status initialized
[ INFO] [1714669143.644420448]: Plugin sys_time loaded
[ INFO] [1714669143.650496355]: TM: Timesync mode: MAVLINK
[ INFO] [1714669143.651043805]: TM: Not publishing sim time
[ INFO] [1714669143.652671864]: Plugin sys_time initialized
[ INFO] [1714669143.653076108]: Plugin terrain loaded
[ INFO] [1714669143.653983760]: Plugin terrain initialized
[ INFO] [1714669143.654292922]: Plugin trajectory loaded
[ INFO] [1714669143.660550244]: Plugin trajectory initialized
[ INFO] [1714669143.660952446]: Plugin tunnel loaded
[ INFO] [1714669143.666692650]: Plugin tunnel initialized
[ INFO] [1714669143.667102144]: Plugin vfr_hud loaded
[ INFO] [1714669143.668078045]: Plugin vfr_hud initialized
[ INFO] [1714669143.668178377]: Plugin vibration blacklisted
[ INFO] [1714669143.668449915]: Plugin vision_pose_estimate loaded
[ INFO] [1714669143.677685399]: Plugin vision_pose_estimate initialized
[ INFO] [1714669143.677870896]: Plugin vision_speed_estimate blacklisted
[ INFO] [1714669143.678244515]: Plugin waypoint loaded
[ INFO] [1714669143.683621016]: Plugin waypoint initialized
[ INFO] [1714669143.683777931]: Plugin wheel_odometry blacklisted
[ INFO] [1714669143.684144550]: Plugin wind_estimation loaded
[ INFO] [1714669143.684888289]: Plugin wind_estimation initialized
[ INFO] [1714669143.685209117]: Built-in SIMD instructions: ARM NEON
[ INFO] [1714669143.685296324]: Built-in MAVLink package version: 2024.3.3
[ INFO] [1714669143.685389364]: Known MAVLink dialects: common ardupilotmega ASLUAV AVSSUAS all csAirLink cubepilot development icarous matrixpilot paparazzi standard storm32 uAvionix ualberta
[ INFO] [1714669143.685472488]: MAVROS started. MY ID 1.240, TARGET ID 1.1
[ INFO] [1714669143.686087895]: RC_CHANNELS message detected!
[ INFO] [1714669143.686329392]: IMU: Raw IMU message used.
[ WARN] [1714669143.686470848]: IMU: linear acceleration on RAW_IMU known on APM only.
[ WARN] [1714669143.686569721]: IMU: ~imu/data_raw stores unscaled raw acceleration report.
[ WARN] [1714669143.686934008]: GP: No GPS fix
[ WARN] [1714669143.687479416]: TM: Wrong FCU time.
[ INFO] [1714669143.687800828]: CON: Got HEARTBEAT, connected. FCU: ArduPilot
[ INFO] [1714669143.690577160]: RC_CHANNELS message detected!
[ WARN] [1714669144.699707135]: CMD: Unexpected command 520, result 0
[ INFO] [1714669144.699957381]: GF: Using MISSION_ITEM_INT
[ INFO] [1714669144.700057421]: RP: Using MISSION_ITEM_INT
[ INFO] [1714669144.700148420]: WP: Using MISSION_ITEM_INT
[ INFO] [1714669144.700278501]: VER: 1.1: Capabilities         0x000000000000fbef
[ INFO] [1714669144.700365416]: VER: 1.1: Flight software:     040200ff (67892169)
[ INFO] [1714669144.700452623]: VER: 1.1: Middleware software: 00000000 (        )
[ INFO] [1714669144.700553539]: VER: 1.1: OS software:         00000000 (93e6e03d    AW)
[ INFO] [1714669144.700640454]: VER: 1.1: Board hardware:      00090000
[ INFO] [1714669144.700726786]: VER: 1.1: VID/PID:             1209:5741
[ INFO] [1714669144.700811368]: VER: 1.1: UID:                 0000000000000000
[ERROR] [1714669149.469704840]: FCU: PreArm: GPS: waiting for home
[ERROR] [1714669149.470003502]: FCU: PreArm: VisOdom: not healthy
[ INFO] [1714669153.689059031]: HP: requesting home position
[ INFO] [1714669153.694639404]: FCU: ArduCopter V4.2.0 (67892169)
[ INFO] [1714669153.694854359]: FCU: ChibiOS: 93e6e03d
[ INFO] [1714669153.695034607]: FCU: fmuv3 002B003F 34385104 38363538
[ INFO] [1714669153.695188896]: FCU: RCOut: PWM:1-14
[ INFO] [1714669153.695358352]: FCU: IMU0: fast sampling enabled 8.0kHz/1.0kHz
[ INFO] [1714669153.695533349]: FCU: Frame: QUAD/X
[ INFO] [1714669158.692545714]: GF: mission received
[ INFO] [1714669158.692857793]: RP: mission received
[ INFO] [1714669158.694413811]: WP: mission received
  1. 参数查询
---
header: seq: 6320stamp: secs: 1714669724nsecs: 752245585frame_id: ''
voltage: 0.0
temperature: 0.0
current: 0.009999999776482582
charge: nan
capacity: nan
design_capacity: nan
percentage: -0.009999999776482582
power_supply_status: 2
power_supply_health: 0
power_supply_technology: 0
present: True
cell_voltage: []
cell_temperature: []
location: ''
serial_number: ''
---
header: seq: 12929stamp: secs: 1714669861nsecs: 708185206frame_id: ''
sensors_present: 1399913935
sensors_enabled: 1348500943
sensors_health: 1097923919
load: 633
voltage_battery: 0
current_battery: -1
battery_remaining: -1
drop_rate_comm: 0
errors_comm: 0
errors_count1: 0
errors_count2: 0
errors_count3: 0
errors_count4: 0
---
header: seq: 756stamp: secs: 1714669896nsecs: 413626239frame_id: ''
connected: True
armed: False
guided: True
manual_input: True
mode: "GUIDED"
system_status: 3
---
---
header: seq: 19301stamp: secs: 1714669992nsecs: 989791936frame_id: ''
rssi: 255
channels: []
---
---
header: seq: 20287stamp: secs: 1714648538nsecs: 386081928frame_id: ''
channels: [1000, 1000, 1000, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
---

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

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

认知提升的方法

认知提升的方法一、什么是认知 经验是对于过往经历的总结归纳,当把这种经验传授给别人时,这种经验对别人来说就是知识。所以,知识是人脑对客观事物的信息沉淀。 技能是人们通过练习而获得的动作方式和系统,例如操作技能中的PS技术、木工技术、电工技术、水工技术等,而能力…

将社会脆弱性纳入高分辨率全球洪水风险绘图

贡献 将高分辨率流洪水模型的年平均超标概率估计值与网格化人口和贫困数据相结合,创建了 90 米分辨率的全球洪水脆弱性调整风险指数(VARI Flood)。该指数提供了国家内部或国家之间相对风险的估计值,并通过识别以高密度和高社会脆弱性为特征的 "热点地区",改变了…

acwing351

https://www.acwing.com/activity/content/problem/content/9051/ NOIP2007提高组T4。本题是加强版。 题目描述 设 \(T=(V, E, W)\) 是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称 \(T\) 为树网(treenetwork),其中 \(V, E\) 分别表示结点与边的集…

Unity热更学习笔记--AB包的依赖 0.98

AB包的依赖 接上一小结。 在这里我们新建一个红色材质球,赋值给Cube预制体。此时不对材质球进行AB包分类,再次进行打包。运行脚本,发现红色cube成功的从AB包中加载出来。尽管我们没有将cube所依赖的材质球进行打包分类,但是打包时候unity会自动将包中的物体相关依赖打入包中…

Y2 知识和题单

Link。 0x01 进制 引入 计数原理,对于 \(N\) 进制,那么就是逢 \(N\) 进一。 计算机中常用二进制,对应电路中的通电(\(1\))断电(\(0\))。 人类从远古以来使用十进制。 常用的有二进制、三进制、八进制、十进制、十六进制等。 由于不同进制之间数值写法可能相同,在没有特…

Clock Switch,芯片时钟切换的毛刺是什么,如何消除

背景 芯片运行过程中需要时钟切换时,要考虑到是否会产生glitch,小小的glitch有可能导致电路运行的错误。所以时钟切换时需要特别的处理。 直接使用MUX进行时钟切换或者采用如下电路结构进行时钟切换:assign outclock = (clk1 & select) | (~select & clk0);或 assig…