Qt 常用控件速查、事件系统、绘图与文件操作。
一、UI 设计两种方式可视化设计(Qt Designer)适合灵活性不高的项目。在 Designer 中拖拽控件,右键按钮 → “转到槽” 自动生成代码。连接指令写入 ui_xxx.h,自定义连接写在 .cpp 构造函数中。
12345MainWindow::MainWindow(QWidget *parent) : QWidget(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // 自定义槽连接写在这里 connect(ui->okBtn, &QPushButton::clicked, this, &MainWindow::onOk);}
代码化设计适合需要动态创建控件的场景:
1234567891011121314151617class Manual : public QDialog { Q_OBJECTpublic: explicit Manual(QWidget *parent...
Qt 是一套跨平台的 C++ 应用程序开发库。与 MFC 不同,Qt 支持 Windows、Linux、macOS 甚至嵌入式平台。
环境搭建安装123456# Qt Designersudo apt-get install qt5-default qttools5-dev-toolsdesigner # 启动# PyQt5(可选)sudo pip3 install pyqt5
CLion 不能打开 .ui 文件,需要借助 Qt Designer。两者可以同时部署给同一个项目——把 build 文件夹设为同一个,共同读取 CMakeLists.txt。
项目结构1234567project/├── Sources/ # .cpp 源文件│ └── main.cpp├── Headers/ # .h 头文件├── Forms/ # .ui 界面文件├── lib/ # 第三方库 .dll/.a└── include/ # 第三方库头文件
开发目录不要含中文路径。
元对...
从 ROS1 过渡到 ROS2 的关键变化、开发环境搭建和控制器编写。
基础变化创建功能包12345# ROS1catkin_create_pkg my_pkg roscpp std_msgs# ROS2ros2 pkg create my_pkg --build-type ament_cmake --dependencies rclcpp std_msgs
编译系统
ROS1
ROS2
构建工具
catkin_make / catkin build
colcon build
包格式
package.xml (format 2)
package.xml (format 3)
CMake
find_package(catkin REQUIRED)
find_package(ament_cmake REQUIRED)
元包(metapackage)12345# ROS1<export><metapackage/></export># ROS2 <export><build_type>am...
ros_control 是 ROS 中连接控制器算法与真实/仿真硬件的核心框架。理解它,才能真正掌握机器人底层控制。
一、整体架构1234567891011121314151617181920212223242526┌──────────────────────────────────────────────┐│ ros_control ││ ││ ┌──────────────┐ ┌────────────────────┐ ││ │ Controllers │───→│ Controller Manager │ ││ │ (PID/轨迹等) │ └────────┬───────────┘ ││ └──────────────┘ │ ││ ↓ ...
从 URDF 建模到 Gazebo 仿真、控制器驱动、TF 坐标变换,完整走一遍搭建小车和机械臂的流程。
一、搭建四轮小车启动命令速查12345678# Gazebo 仿真roslaunch urdf_sim_tutorial gazebo.launch model:=rbo.urdf.xacro# RViz 可视化roslaunch urdf_sim_tutorial display.launch model:=rbo.urdf.xacro# 发布速度指令rostopic pub -r 30 /cmd_vel geometry_msgs/Twist -- '[1.0,0,0]' '[0,0,0.0]'
轮子建模(xacro 复用)四个轮子结构完全相同,用 xacro 宏避免重复:
1234567891011121314151617181920212223242526272829303132<xacro:macro name="wheel" params="name x y z"> &...
从零掌握 URDF 建模:基础结构、xacro 宏、Transmission、Fusion360 导出及常见问题。
一、URDF 基础结构一个 link 包含三个核心标签:
12345678910111213141516171819202122<link name="car_link"> <!-- 可视化:在图形界面中显示 --> <visual> <geometry> <box size="2.0 1.0 0.5"/> </geometry> </visual> <!-- 碰撞检测:传感器和物理引擎使用 --> <collision> <geometry> <box size="2.0 1.0 0.5"/> </geometry> </collision> <!-- 惯性:物理引擎需要(Gazebo...
基于 ROS + Gazebo 仿真环境,从零搭建带激光雷达的机器人并实现自主导航。
一、在 URDF 中添加激光雷达定义雷达 link1234567891011121314151617181920212223<link name="sensor_laser"> <inertial> <mass value="1" /> <inertia ixx="0.02" ixy="0" ixz="0" iyy="0.02" iyz="0" izz="0.02"/> </inertial> <visual> <geometry> <cylinder radius="0.05" length="0.1"/> </geometry> <mat...
PID(比例-积分-微分)是应用最广泛的控制算法。算法简单、鲁棒性好,适用于温度、压力、流量、液位等几乎所有现场。但它的不足在于:对非线性、时变不确定的系统难以建立精确模型,参数整定也较为繁琐。
三个环节比例环节(P)成比例地反映偏差信号 e(t),偏差一旦产生,控制器立即产生控制作用以减小偏差。
Kp 越大,比例作用越强,动态响应越快
但实际系统有惯性——Kp 过大时,输出可能因惯性越过目标值
仅有比例控制时,系统会存在稳态误差
积分环节(I)输出与误差信号的积分成正比,主要用于消除静差。
只要有误差存在,积分就持续累加,直到误差为零。但引入积分后系统稳定裕度减小,曲线波动增大,需要较长时间才能趋于平整。
积分作用消除静差的原理:只要误差存在就积分 → 输出增大/减小 → 误差归零 → 积分停止 → 输出稳定。
微分环节(D)反映偏差信号的变化趋势,在偏差变得太大之前引入早期修正信号。
比例和积分是”事后调节”——发生误差后才调节
微分是”事前预防”——发现有变化趋势就提前干预,防止过冲和超调
Kd 从小往大调,不能太强,否则会引起振荡。微分只能作为 P...
提示词系统架构示例1234567891011121314151617181920212223
初始化提示(System Prompt)
定义AI角色、能力范围和交互规则
设置背景知识和基本约束
任务分解提示(Task Decomposition)
将复杂问题拆解为子任务
为每个子任务设计专用提示
数据处理提示(Data Processing)
指导AI如何分析、转换和规范化输入数据
处理边缘情况和异常数据
推理与决策提示(Reasoning & Decision)
引导AI进行逐步推理
评估可能的解决方案并做出决策
输出格式化提示(Output Formatting)
规范最终输出的结构和样式
确保一致性和可用性
质量控制提示(Quality Assurance)
指导AI自我评估输出质量
修正潜在错误和偏差
元提示模板1234567891011121314151617181920212223242526<指令>创建一个能够自我改进的提示系统,用于{{具体应用领域}}<...