Px4源码框架结构图

2023-05-16

此篇blog的目的是对px4工程有一个整体认识,对各个信号的流向有个了解,以及控制算法采用的控制框架。

PX4自动驾驶仪软件可分为三大部分:实时操作系统、中间件和飞行控制栈。

1.NuttX实时操作系统
提供POSIX-style的用户操作环境(如printf(), pthreads,/dev/ttyS1,open(),write(),poll(),ioctl()),进行底层的任务调度。
2.PX4中间件
PX4中间件运行于操作系统之上,提供设备驱动和一个微对象请求代理(micro object request broker,uORB)用于驾驶仪上运行的单个任务之间的异步通信。Px4被3DR开源后,整个代码结构被⼤改,原先的系统被摒弃,进而采用Nuttx,但是核心思想没变-为了简化开发而采用牺牲部分效率的消息传递机制,这是Px4 与ArduPilot 最本质的差别。
3.PX4飞行控制栈
飞行控制栈可以使用PX4的控制软件栈,也可以使用其他的控制软件,如APM:Plane、APM:Copter,但必须运行于PX4中间件之上。

此部分又可分为

决策导航部分:根据飞行器自身安全状态和接收到的命令,决定工作于什么模式,下一步应该怎么做。

位置姿态估计部分:根据传感器得到自身的位置和姿态信息,此部分算法含金量最高,算法也相当多。

位置姿态控制部分:根据期望位置和姿态设计控制结构,尽可能快、稳的达到期望位置和姿态。

控制器输出部分:mixer和执行器,pwm限幅。





算法在Firmware/src/modules,驱动在Firmware/src/drivers

px4原生固件模块列表:

系统命令程序

mavlink –通过串口发送和接收mavlink信息

sdlog2 –保存系统日志/飞行数据到SD卡

tests –测试系统中的测试程序

top –列出当前的进程和CPU负载

uORB – 微对象请求代理器-分发其他应用程序之间的信息

驱动

mkblctrl–blctrl电子模块驱动

esc_calib –ESC的校准工具

fmu –FMU引脚输入输出定义

gpio_led –GPIO LED驱动

gps –GPS接收器驱动

pwm –PWM的更新速率命令

sensors –传感器应用

px4io –px4io驱动

uavcan –uavcan驱动

飞行控制的程序

飞行安全和导航

commander –主要飞行安全状态机

navigator –任务,失效保护和RTL导航仪

估计姿态和位置

attitude_estimator_ekf –基于EKF的姿态估计

ekf_att_pos_estimator –基于EKF的姿态和位置估计

position_estimator_inav–惯性导航的位置估计

multirotor姿态和位置控制器

mc_att_control–multirotor姿态控制器

mc_pos_control –multirotor位置控制器

fixedwing姿态和位置控制器

fw_att_control –固定翼飞机的姿态控制

fw_pos_control_l1 –固定翼位置控制器

垂直起降姿态控制器

vtol_att_control –垂直起降姿态控制器

3.1决策

3.1.1 任务决策。以任务为导向,任务决策主要决定多旋翼下一步“去哪儿”,进一步,需要规划路径,使得整个过程能满足诸如:飞向航路点并沿航线飞,以及飞向航路点并避障等要求。
3.1.2 健康管理和失效保护。以安全为导向, 失效保护主要决定多旋翼下一步“去哪儿”。多旋翼飞行器在飞行前或飞行中,可能会发生通信故障、传感器失效和动力系统异常等,这些意外会直接导致控制任务无法完成。这一部分包括安全问题的介绍、机载设备的健康评估、机载设备的健康监测、失效后的保护建议。

传感器校正在commander里面

对应的程序在Firmware/src/modules/commander和Firmware/src/modules/navigator

完成任务模式切换,同时考虑电池电量、GPS等传感器是否正常工作等信息。


[cpp]  view plain  copy
  1. commander  
  2.   
  3. orb_publish(ORB_ID(home_position), homePub, &home);  
  4. orb_publish(ORB_ID(offboard_mission), mission_pub, &mission);  
  5. orb_publish(ORB_ID(vehicle_control_mode), control_mode_pub, &control_mode);  
  6. orb_publish(ORB_ID(vehicle_status), status_pub, &status);  
  7. orb_publish(ORB_ID(actuator_armed), armed_pub, &armed);  
  8. orb_publish(ORB_ID(vehicle_command_ack), command_ack_pub, &command_ack);  
  9.   
  10. orb_copy(ORB_ID(vehicle_status), state_sub, &state);  
  11. orb_copy(ORB_ID(parameter_update), param_changed_sub,&param_update;  
  12. orb_copy(ORB_ID(manual_control_setpoint), sp_man_sub, &sp_man);  
  13. orb_copy(ORB_ID(offboard_control_mode), offboard_control_mode_sub, &offboard_control_mode);  
  14. orb_copy(ORB_ID(telemetry_status), telemetry_subs[i], &telemetry);  
  15. orb_copy(ORB_ID(sensor_combined), sensor_sub, &sensors);  
  16. orb_copy(ORB_ID(differential_pressure), diff_pres_sub, &diff_pres);  
  17. orb_copy(ORB_ID(system_power), system_power_sub, &system_power);  
  18. orb_copy(ORB_ID(safety), safety_sub, &safety);  
  19. orb_copy(ORB_ID(vtol_vehicle_status), vtol_vehicle_status_sub, &vtol_status);  
  20. orb_copy(ORB_ID(vehicle_global_position), global_position_sub, &gpos);  
  21. orb_copy(ORB_ID(vehicle_local_position), local_position_sub, &local_position);  
  22. orb_copy(ORB_ID(vehicle_attitude), attitude_sub, &attitude);  
  23. orb_copy(ORB_ID(vehicle_land_detected), land_detector_sub, &land_detector);  
  24. orb_copy(ORB_ID(battery_status), battery_sub, &battery);  
  25. orb_copy(ORB_ID_VEHICLE_ATTITUDE_CONTROLS, actuator_controls_sub, &actuator_controls);  
  26. orb_copy(ORB_ID(subsystem_info), subsys_sub, &info);  
  27. orb_copy(ORB_ID(position_setpoint_triplet), pos_sp_triplet_sub, &pos_sp_triplet);  
  28. orb_copy(ORB_ID(vehicle_gps_position), gps_sub, &gps_position);  
  29. orb_copy(ORB_ID(mission_result), mission_result_sub, &mission_result);  
  30. orb_copy(ORB_ID(geofence_result), geofence_result_sub, &geofence_result);  
  31. orb_copy(ORB_ID(vehicle_command), cmd_sub, &cmd);  
[cpp]  view plain  copy
  1. navigator  
  2.   
  3. orb_publish(ORB_ID(position_setpoint_triplet), _pos_sp_triplet_pub, &_pos_sp_triplet);  
  4. orb_publish(ORB_ID(mission_result), _mission_result_pub, &_mission_result);  
  5. orb_publish(ORB_ID(geofence_result), _geofence_result_pub, &_geofence_result);  
  6. orb_publish(ORB_ID(vehicle_attitude_setpoint), _att_sp_pub, &_att_sp);  
  7.   
  8. orb_copy(ORB_ID(vehicle_global_position), _global_pos_sub, &_global_pos);  
  9. orb_copy(ORB_ID(vehicle_gps_position), _gps_pos_sub, &_gps_pos);  
  10. orb_copy(ORB_ID(sensor_combined), _sensor_combined_sub, &_sensor_combined);  
  11. orb_copy(ORB_ID(home_position), _home_pos_sub, &_home_pos);  
  12. orb_copy(ORB_ID(navigation_capabilities), _capabilities_sub, &_nav_caps);  
  13. orb_copy(ORB_ID(vehicle_status), _vstatus_sub, &_vstatus)  
  14. orb_copy(ORB_ID(vehicle_control_mode), _control_mode_sub, &_control_mode)   
  15. orb_copy(ORB_ID(parameter_update), _param_update_sub, &param_update);  
  16. orb_copy(ORB_ID(vehicle_command), _vehicle_command_sub, &cmd);  

3.2位置估计和姿态估计

此部分需要大量理论知识,暂时还比较欠缺。

sensors是对陀螺仪、加速度计地磁计的一个处理

[cpp]  view plain  copy
  1. sensors  
  2.   
  3. orb_publish(ORB_ID(airspeed), _airspeed_pub, &_airspeed);  
  4. orb_publish(ORB_ID(differential_pressure), _diff_pres_pub, &_diff_pres);  
  5. orb_publish(ORB_ID(battery_status), _battery_pub, &_battery_status);  
  6. orb_publish(ORB_ID(rc_channels), _rc_pub, &_rc);  
  7. orb_publish(ORB_ID(manual_control_setpoint), _manual_control_pub, &manual);  
  8. orb_publish(ORB_ID(actuator_controls_3), _actuator_group_3_pub, &actuator_group_3);  
  9. orb_publish(ORB_ID(sensor_combined), _sensor_pub, &raw);  
  10.   
  11. orb_copy(ORB_ID(sensor_accel), _accel_sub[i], &accel_report);  
  12. orb_copy(ORB_ID(sensor_gyro), _gyro_sub[i], &gyro_report);  
  13. orb_copy(ORB_ID(sensor_mag), _mag_sub[i], &mag_report);  
  14. orb_copy(ORB_ID(sensor_baro), _baro_sub[i], &_barometer);  
  15. orb_copy(ORB_ID(differential_pressure), _diff_pres_sub, &_diff_pres);  
  16. orb_copy(ORB_ID(vehicle_control_mode), _vcontrol_mode_sub, &vcontrol_mode);  
  17. orb_copy(ORB_ID(parameter_update), _params_sub, &update);  
  18. orb_copy(ORB_ID(rc_parameter_map), _rc_parameter_map_sub, &_rc_parameter_map);  
  19. orb_copy(ORB_ID(input_rc), _rc_sub, &rc_input);  

[cpp]  view plain  copy
  1. ardrone_interface  
  2. orb_publish(ORB_ID(actuator_outputs), pub, &outputs);  
  3. orb_copy(ORB_ID_VEHICLE_ATTITUDE_CONTROLS, actuator_controls_sub, &actuator_controls);  
  4. #define ORB_ID_VEHICLE_ATTITUDE_CONTROLS    ORB_ID(actuator_controls_0)  
  5. orb_copy(ORB_ID(actuator_armed), armed_sub, &armed);  
  6.   
  7. batt_smbus  
  8. orb_publish(_batt_orb_id, _batt_topic, &new_report);  
  9. orb_copy(ORB_ID(battery_status), sub, &status)  
  10.   
  11. bma180  
  12. orb_publish(ORB_ID(sensor_accel), _accel_topic, &report);  
  13.   
  14. GPS  
  15. orb_publish(ORB_ID(vehicle_gps_position), _report_gps_pos_pub, &_report_gps_pos);  
  16. orb_publish(ORB_ID(satellite_info), _report_sat_info_pub, _p_report_sat_info);  
  17.   
  18. hmc5883  
  19. orb_publish(ORB_ID(sensor_mag), _mag_topic, &new_report);  
  20.   
  21. hott  
  22. orb_publish(ORB_ID(esc_status), _esc_pub, &esc);  
  23. orb_copy(ORB_ID(sensor_combined), _sensor_sub, &raw);  
  24. orb_copy(ORB_ID(battery_status), _battery_sub, &battery);  
  25. orb_copy(ORB_ID(airspeed), _airspeed_sub, &airspeed);  
  26. orb_copy(ORB_ID(esc_status), _esc_sub, &esc);  
  27.   
  28. l3gd20  
  29. orb_publish(ORB_ID(sensor_gyro), _gyro_topic, &report);  
  30.   
  31. lsm303d  
  32. orb_publish(ORB_ID(sensor_accel), _accel_topic, &accel_report);  
  33. orb_publish(ORB_ID(sensor_mag), _mag->_mag_topic, &mag_report);  
  34.   
  35. mpu6000  
  36. orb_publish(ORB_ID(sensor_accel), _accel_topic, &arb);  
  37. orb_publish(ORB_ID(sensor_gyro), _gyro->_gyro_topic, &grb);  
  38.   
  39. mpu9250  
  40. orb_publish(ORB_ID(sensor_accel), _accel_topic, &arb);  
  41. orb_publish(ORB_ID(sensor_gyro), _gyro->_gyro_topic, &grb);  
  42.   
  43. ms5611  
  44. orb_publish(ORB_ID(sensor_baro), _baro_topic, &report);  
  45.   
  46. pwm_out_sim  
  47. orb_publish(ORB_ID(actuator_outputs), _outputs_pub, &outputs);  
  48. orb_copy(_control_topics[i], _control_subs[i], &_controls[i]);  
  49. actuator_controls_s _controls[actuator_controls_s::NUM_ACTUATOR_CONTROL_GROUPS];  
  50. orb_copy(ORB_ID(actuator_armed), _armed_sub, &aa);  
  51.   
  52. px4flow  
  53. orb_publish(ORB_ID(optical_flow), _px4flow_topic, &report);  
  54. orb_publish(ORB_ID(distance_sensor), _distance_sensor_topic, &distance_report);  
  55. orb_publish(ORB_ID(subsystem_info), pub, &info);  
  56.   
  57. px4fmu  
  58. orb_publish(ORB_ID(actuator_outputs), _outputs_pub, &outputs);  
  59. orb_publish(ORB_ID(safety), _to_safety, &safety);  
  60. orb_publish(ORB_ID(input_rc), _to_input_rc, &_rc_in);  
  61. orb_copy(_control_topics[i], _control_subs[i], &_controls[i]);  
  62. orb_copy(ORB_ID(actuator_armed), _armed_sub, &_armed);  
  63. orb_copy(ORB_ID(parameter_update), _param_sub, &pupdate);  
  64.   
  65. px4io  
  66. orb_publish(ORB_ID(vehicle_command), pub, &cmd);  
  67. orb_publish(ORB_ID(safety), _to_safety, &safety);  
  68. orb_publish(ORB_ID(battery_status), _to_battery, &battery_status);  
  69. orb_publish(ORB_ID(servorail_status), _to_servorail, &_servorail_status);  
  70. orb_publish(ORB_ID(input_rc), _to_input_rc, &rc_val);  
  71. orb_publish(ORB_ID(actuator_outputs), _to_outputs, &outputs);  
  72. orb_publish(ORB_ID(multirotor_motor_limits), _to_mixer_status, &motor_limits);  
  73. orb_copy(ORB_ID(actuator_armed), safety_sub, &safety);  
  74. orb_copy(ORB_ID(vehicle_command), _t_vehicle_command, &cmd);  
  75. orb_copy(ORB_ID(parameter_update), _t_param, &pupdate);  
  76. orb_copy(ORB_ID(actuator_controls_0), _t_actuator_controls_0, &controls);  
  77. orb_copy(ORB_ID(actuator_controls_x), _t_actuator_controls_0, &controls);  
  78. orb_copy(ORB_ID(vehicle_control_mode), _t_vehicle_control_mode, &control_mode);  
  79.   
  80. stm32(adc)  
  81. orb_publish(ORB_ID(system_power), _to_system_power, &system_power);  

3.3位置控制和姿态控制





3.4pwm输出

3.4.1mixer

官方地址(已失效)对应的内容

混合器输出定义控制器的输出是如何映射到电机和伺服输出。所有内置mixer文件位于ROM文件系统的/etc/mixers目录,并编译成固件。Mixer是一组独立的映射器,从控制读入写入,写入执行器输出。一个模块,结合一组根据预先定义的规则和参数的输入,产生一组输出。


(1)语法:
Mixer的定义是文本文件,用一个大写字母后跟一个冒号开头的行。所有其他的行都会被忽略,这意味着解释性文本可与定义相混合。每个文件可以定义多个Mixer。由一个Mixer产生的执行器输出的数量是特定的。
起始形式如下:
<tag>:<mixer arguments>
标签选择Mixer的类型,“M”为一种简单求和Mixer,“R”为多转子(多旋翼)Mixer等。
一个空的Mixer不消耗控制,并产生一个执行机构的输出,其值始终为零。通常一个空的Mixer被用作占位符Mixer的集合中,以实现制动器输出的特定模式。
空的Mixer定义形式:
Z:
 
(2)简单的Mixer
一个简单的Mixer的开始:
M: <control count>
O: <-ve scale> <+ve scale> <offset> <lower limit> <upper limit>

如果为零,则输出就为零,Mixer输出的固定值是受限制的。
第二行定义了输出输出定标器和标量参数。虽然计算作为浮点运算进行的,存储在所述定义文件中的值是由10000倍缩放,-0.5偏移被编码为-5000.
 
该定义继续描述控制输入和缩放项:
S: <group> <index> <-ve scale> <+ve scale> <offset> <lower limit> <upper limit>
这些值定义了控制组从那些定标器中读取数据,和该组内的值的偏移。是特定于设备读取Mixer的定义。
 
当用于混合车辆的控制,混合器组0是车辆姿态控制组,索引值从0到3通常分别是:roll,pitch,yaw,thrust。
 
具体详解见:https://pixhawk.org/dev/mixing?s[]=mixer
 
(3)多旋翼Mixer
在多旋翼混合器结合四个控制输入(roll,pitch,yaw,thrust)为一组用于驱动电机速度控制器制动输出。
Mixer定义的形式:
R: <geometry> <roll scale> <pitch scale> <yaw scale> <deadband>
参数解释:
    机械:包括quad(4x,4+),hex(6x,6+),octo(8x,8+)
    单独的roll,pitch和yaw控制因子
    电机输出死区  

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

Px4源码框架结构图 的相关文章

  • ardupilot & px4 书写自己的app & drivers (二)

    新建任务列表任务 打印时间 任务列表 const AP Scheduler span class hljs tag Task span Copter span class hljs tag scheduler tasks span span
  • PX4二次开发中查无资料的踩坑总结

    写在前 xff1a 2021年9月下旬开始摸索px4飞控的二次开发 xff0c 从C 43 43 零基础到第一个修改算法后的版本稳定运行 xff0c 大概用了2个月 xff0c 从12月初改用新版本px4源码到现在又过去了约1个月 xff0
  • PX4使用I2C方式添加自定义传感器(1)

    PX4使用I2C方式添加自定义传感器 xff08 1 xff09 前言 毕业设计就是要在PX4上添加一个传感器 xff08 角度传感器 xff09 xff0c 由于板子上的接口数量很少 xff0c 很是宝贵 最后只能选择通过I2C通信方式
  • PX4通过I2C方式添加自定义传感器(3)

    添加自定义传感器并实现数据的发送和订阅 1 前期准备 1 1 建立文件夹和相关文件配置 我是在src drivers distance sensor文件夹下操作的 xff0c 当然其他文件夹下都类似 首先建立了两个文件夹angle sour
  • PX4 Offboard Control with MAVROS--Takeoff(一键起飞)

    警告 xff1a 请先在仿真环境下进行测试 xff0c 能达到预期效果后在进行实际飞行测试 xff0c 以免发生意外 本篇文章只是用作学习交流 xff0c 实际飞行时如出现意外情况作者不予以负责 所需材料 1 PIXhawk或者Pixrac
  • 【2020-8-9】APM,PX4,GAZEBO,MAVLINK,MAVROS,ROS之间的关系以及科研设备选型

    0 概述 无人机自主飞行平台可以分为四个部分 xff1a 动力平台 xff0c 飞行控制器 xff0c 机载电脑和模拟平台 动力平台 xff1a 负责执行飞行任务 xff0c 包括螺旋桨 电机 机架等 xff0c 用于科研的一般都是F380
  • 【8-12】树莓派部署t265+px4飞控实现无人机视觉定位

    在之前的文章中 xff0c 我们已经成功在树莓派 xff08 ubuntu mate 18 04 xff09 上部署了T265的追踪摄像头 本文将利用MAVROS协议 xff0c 将T265测量的位姿信息发送给px4固件 xff0c 实现室
  • 关于PX4中的高度若干问题

    飞行的高度是如何测量的 xff1f 地面的高度和海平面的高度差别很大 xff0c 飞控又是如何有效判别进行降落的 xff1f 这是我脑子里的疑问 搜索的一圈发现很少有人讨论这方面的问题 xff0c 于是本次我就直接看一下源代码 xff0c
  • PX4+Offboard模式+代码控制无人机起飞(Gazebo)

    参考PX4自动驾驶用户指南 https docs px4 io main zh ros mavros offboard cpp html 我的另一篇博客写了 键盘控制PX4无人机飞行 PX4无人机 键盘控制飞行代码 可以先借鉴本篇博客 xf
  • PX4代码学习系列博客(6)——offboard模式位置控制代码分析

    分析offboard模式的代码需要用到以下几个模块 local position estimator mavlink mc pos control mc att control mixer 程序数据走向 mavlink 一般的offboar
  • PX4模块设计之五:自定义MAVLink消息

    PX4模块设计之五 xff1a 自定义MAVLink消息 1 MAVLink Dialects1 1 PX4 Dialects1 2 Paprazzi Dialects1 3 MAVLink XML File Format 2 添加自定义M
  • PX4模块设计之九:PX4飞行模式简介

    PX4模块设计之九 xff1a PX4飞行模式简介 关于模式的探讨1 需求角度1 1 多旋翼 MC multi copter 1 1 1 RC控制模式1 1 1 1 Position Mode1 1 1 2 Altitude Mode1 1
  • PX4模块设计之十八:Logger模块

    PX4模块设计之十八 xff1a Logger模块 1 Logger模块简介2 模块入口函数2 1 主入口logger main2 2 自定义子命令Logger custom command2 3 日志主题uORB注册 3 重要实现函数3
  • PX4模块设计之二十四:内部ADC模块

    PX4模块设计之二十四 xff1a 内部ADC模块 1 内部ADC模块简介2 模块入口函数2 1 主入口board adc main2 2 自定义子命令custom command 3 内部ADC模块重要函数3 1 task spawn3
  • PX4模块设计之三十六:MulticopterPositionControl模块

    PX4模块设计之三十六 xff1a MulticopterPositionControl模块 1 MulticopterPositionControl模块简介2 模块入口函数2 1 主入口mc pos control main2 2 自定义
  • px4_simple_example和uorb机制

    px4 simple app PX4 Autopilot src exampes px4 simple app xff0c 这个程序是用c语言调用orb API和poll机制订阅和发布通讯数据 xff0c 但是这个例子并不是既有接收又有发送
  • PX4-4-任务调度

    PX4所有的功能都封装在独立的模块中 xff0c uORB是任务间数据交互和同步的工具 xff0c 而管理和调度每个任务 xff0c PX4也提供了一套很好的机制 xff0c 这一篇我们分享PX4的任务调度机制 我们以PX4 1 11 3版
  • PX4软件在环仿真注意点

    注 xff1a 最新内容参考PX4 user guide 点击此处 PX4下载指定版本代码和刷固件的三种方式 点击此处 PX4sitl固件编译方法 点击此处 PX4开发指南 点击此处 PX4无人机仿真 Gazebo 点击此处 px4仿真 知
  • PX4模块设计之二十七:LandDetector模块

    PX4模块设计之二十七 xff1a LandDetector模块 1 LandDetector模块简介2 模块入口函数2 1 主入口land detector main2 2 自定义子命令custom command 3 LandDetec
  • PX4通过参数脚本给飞控导入参数

    PX4通过参数脚本给飞控导入参数 先找一架正常能飞的无人机连接地面站 在参数页面右上角点击工具 gt 保存到文件 保存的时候文件名注明参数的相关信息 然后将需要加载参数的无人机连接至地面站 xff0c 注意需要加载参数的无人机必须和保存的参

随机推荐

  • COLMAP+OpenMVS实现物体三维重建mesh模型

    一 环境准备 1 COLMAP 进入COLMAP官网 xff0c 打开下载页面 xff0c 下载COLMAP程序 2 OpenMVS OpenMVS可以自己从源码下载进行编译 如果觉得编译openmvs可能要费点时间 xff0c 那也可以直
  • 解决ubuntu火狐无法上网问题

    之前安装Ubuntu时是可以上网的 xff0c 呆了一个月没怎么用突然不能搜索了 xff0c 记录一下 xff0c 已解决 只需一条命令 打开终端 xff0c 输入 sudo apt get install firefox 问题解决啦 xf
  • C语言基本数据类型int, short int, long int, long long int, unsigned int, signed int等解析

    一 普通int类型 int类型是有符号整型 xff0c 即int类型的值必须是整数 xff0c 可以是正整数 xff0c 负整数 xff0c 零 int类型取值范围因计算机系统而异 早起的16位IBM PC兼容机使用16位来存储一个int值
  • Docker容器内更新apt-get 国内加速

    Docker容器内更新源apt get的方法 由于不使用国内镜像网速缓慢 xff0c 所以使用国内镜像加速就很必要了 xff0c 但是经过博主测试大部分apt get加速都是针对Ubuntu 的 xff0c 根本解决不了Docker 容器内
  • STM32F4 422串口通信

    STM32F429 422串口通信 422串口的硬件原理图如下 xff1a 422串口和232串口不同的是引脚的电平控制 xff0c 还有DE是发送使能 xff0c 置高即可 xff1a RE是接收使能 xff0c 置低即可 422接出来的
  • Java基础学习记录

    一 基础DOS操作 dir xff1a directory 列出当前目录内容 md xff1a make directory 创建目录 rd xff1a remove directory 删除目录 cd xff1a change direc
  • 6、杂项:rtk原理简要说明

    目录 x1f345 点击这里查看所有博文 随着自己工作的进行 xff0c 接触到的技术栈也越来越多 给我一个很直观的感受就是 xff0c 某一项技术 经验在刚开始接触的时候都记得很清楚 往往过了几个月都会忘记的差不多了 xff0c 只有经常
  • 树莓派控制直流电机

    古月金真 1 直流电机 直流电机是一种将直流电能转换为机械能的装置 xff0c 被广泛的用于驱动各种设备 xff0c 如电风扇 遥控小车 电动车窗等 xff0c 在控制设备运转领域中 xff0c 它是不可或缺的一种设备 小型直流电机的的电压
  • SVN创建指定版本号的分支

    SVN创建分支下面三个选择的具体含义 xff1a 最新版本 xff08 HEAD revision in therepository xff09 直接从版本库中最新创建 xff0c 由于不需要从你的工作拷贝中传输数据 xff0c 创建过程会
  • 图像降噪算法——图像降噪算法总结

    图像降噪算法 图像降噪算法总结 图像降噪算法 图像降噪算法总结 图像降噪算法 图像降噪算法总结 前面这段时间我看了几篇和图像降噪相关的Review xff0c 给我的感觉就是SLAM这一研究领域像是一片汪洋 xff0c 而图像降噪领域则是另
  • 图像降噪算法——图像噪声模型

    图像降噪算法 图像噪声模型 图像降噪算法 图像噪声模型1 图像噪声建模2 C 43 43 代码实现3 结论 图像降噪算法 图像噪声模型 1 图像噪声建模 首先 xff0c 我们要区分图像传感器噪声和图像噪声 xff0c 图像传感器噪声我在博
  • 图像降噪算法——维纳滤波

    图像降噪算法 维纳滤波 图像降噪算法 维纳滤波1 基本原理2 C 43 43 代码实现3 结论 图像降噪算法 维纳滤波 维纳滤波是在频域中处理图像的一种算法 xff0c 是一种非常经典的图像增强算法 xff0c 不仅可以进行图像降噪 xff
  • 图像降噪算法——Variance Stabilizing Transform / Generalization Anscombe Transform算法

    图像降噪算法 Variance Stabilizing Transform Generalization Anscombe Transform算法 图像降噪算法 Variance Stabilizing Transform Generali
  • 图像降噪算法——DnCNN / FFDNet / CBDNet / RIDNet / PMRID / SID

    图像降噪算法 DnCNN FFDNet CBDNet RIDNet PMRID SID 图像降噪算法 DnCNN FFDNet CBDNet RIDNet PMRID SID1 基本原理1 1 DnCNN1 2 FFDNet1 3 CBDN
  • SLAM算法总结——经典SLAM算法框架总结

    SLAM算法总结 经典SLAM算法框架总结 SLAM算法总结 经典SLAM算法框架总结 SLAM算法总结 经典SLAM算法框架总结 从研究生接触SLAM算法到现在也有两三年了 xff0c 期间学习了很多经典的SLAM算法框架并写了一些相关的
  • 计算机视觉算法——基于Anchor Free的目标检测网络总结

    计算机视觉算法 基于Anchor Free的目标检测网络总结 计算机视觉算法 基于Anchor Free的目标检测网络总结1 CornerNet1 1 关键知识点 网络结构及特点1 2 关键知识点 正负样本匹配1 3 关键知识点 损失计算
  • 计算机视觉算法——基于Transformer的语义分割(SETR / Segmenter / SegFormer)

    计算机视觉算法 基于Transformer的语义分割 xff08 SETR Segmenter SegFormer xff09 1 SETR1 1 网络结构及特点1 1 1 Decoder 1 2 实验 2 Segmenter2 1 网络结
  • 计算机视觉算法——基于深度学习的高精地图算法(HDMapNet / VectorMapNet / MapTR / VectorNet)

    计算机视觉算法 基于深度学习的高精地图算法 xff08 HDMapNet VectorMapNet MapTR VectorNet xff09 计算机视觉算法 基于深度学习的高精地图算法 xff08 HDMapNet VectorMapNe
  • VINS-Mono关键知识点总结——前端详解

    VINS Mono关键知识点总结 前端详解 VINS Mono关键知识点总结 前端详解1 VINS Mono的前端流程概述2 setMask 函数的作用3 rejectWithF 函数的作用4 addPoints 函数和 updataID
  • Px4源码框架结构图

    此篇blog的目的是对px4工程有一个整体认识 xff0c 对各个信号的流向有个了解 xff0c 以及控制算法采用的控制框架 PX4自动驾驶仪软件 可分为三大部分 xff1a 实时操作系统 中间件和飞行控制栈 1 NuttX实时操作系统 提