# vision_pid_ws **Repository Path**: chenshanhan/vision_pid_ws ## Basic Information - **Project Name**: vision_pid_ws - **Description**: No description available - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-11 - **Last Updated**: 2025-04-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Vision PID Control 软件包运行指南 ## 1. 编译工作空间 ```bash # 进入工作空间目录 cd ~/vision_pid_ws # 编译工作空间 colcon build ``` ## 2. 设置环境变量 ```bash # 设置环境变量 source install/setup.bash ``` ## 3. 运行PID控制器节点 有两种方式可以运行节点: ### 方式一:直接运行 ```bash # 运行PID控制器节点 ros2 run vision_pid_control vision_pid_controller ``` ### 方式二:使用launch文件(推荐) ```bash # 使用launch文件运行节点 ros2 launch vision_pid_control vision_pid_controller.launch.py ``` ## 4. 测试数据发布 在新的终端中执行以下命令: ```bash # 设置环境变量 source ~/vision_pid_ws/install/setup.bash # 发布x方向像素偏差(整数类型) ros2 topic pub /x_pixel_error std_msgs/msg/Int32 "{data: 10}" --once # 发布y方向像素偏差(整数类型) ros2 topic pub /y_pixel_error std_msgs/msg/Int32 "{data: 5}" --once # 发布距离信息(浮点数类型,单位:米) ros2 topic pub /distance std_msgs/msg/Float32 "{data: 2.0}" --once ``` ## 5. 查看输出 在新的终端中执行以下命令: ```bash # 设置环境变量 source ~/vision_pid_ws/install/setup.bash # 查看角度控制输出(单位:弧度) ros2 topic echo /angle_control ``` ## 6. 查看话题信息 ```bash # 查看所有活跃的话题 ros2 topic list # 查看特定话题的信息 ros2 topic info /angle_control # 查看话题的发布频率 ros2 topic hz /angle_control ``` ## 7. 参数调整 ### 通过launch文件调整 修改`src/vision_pid_control/launch/vision_pid_controller.launch.py`中的参数: ```python parameters=[ {'x_pid_kp': 0.01}, # x方向比例系数(偏航角控制) {'x_pid_ki': 0.001}, # x方向积分系数(偏航角控制) {'x_pid_kd': 0.005}, # x方向微分系数(偏航角控制) {'y_pid_kp': 0.01}, # y方向比例系数(俯仰角控制) {'y_pid_ki': 0.001}, # y方向积分系数(俯仰角控制) {'y_pid_kd': 0.005} # y方向微分系数(俯仰角控制) ] ``` ### 运行时动态调整 ```bash # 查看当前参数 ros2 param list # 修改参数 ros2 param set /vision_pid_controller x_pid_kp 0.02 ``` ## 8. 停止节点 - 在运行节点的终端中按 `Ctrl+C` 停止节点 - 或者关闭终端窗口 ## 注意事项 1. 每次打开新的终端都需要重新设置环境变量 2. 可以修改发布的数据值来测试不同的输入 3. PID参数可以通过launch文件或运行时动态调整 4. 控制频率为10Hz 5. 输出为角度控制量(Vector3类型,单位:弧度): - x: 俯仰角(pitch,弧度) - y: 偏航角(yaw,弧度) - z: 滚转角(roll,保持为0弧度) 6. 输入说明: - x_pixel_error: x方向像素偏差(整数) - y_pixel_error: y方向像素偏差(整数) - distance: 距离信息(米)