修正速度和档位

This commit is contained in:
lyq 2025-11-04 16:09:01 +08:00
parent dbd3a49331
commit 83cbd55c00
2 changed files with 12 additions and 10 deletions

View File

@ -256,8 +256,8 @@ private:
int reliability = 0; // RTK信号质量 1行 0不行 int reliability = 0; // RTK信号质量 1行 0不行
// 发布消息的参数 // 发布消息的参数
int publish_speed = 0; // 转速占空比 0-100 int publish_speed = 0; // 转速占空比 0-1500
int publish_angle = 0; // [-66.0,66.0],负数表示左转,正数表示右转 int publish_angle = 0; // [-40.0,40.0],负数表示左转,正数表示右转
// 车体矩形边界(栅格坐标) // 车体矩形边界(栅格坐标)
int vehicle_min_x_; // 车体最小行坐标(顶部) int vehicle_min_x_; // 车体最小行坐标(顶部)
@ -790,7 +790,9 @@ private:
// 发布控制指令 // 发布控制指令
sweeper_interfaces::msg::McCtrl message; sweeper_interfaces::msg::McCtrl message;
message.sweep = true; message.sweep = false;
message.brake = 1; // 0开;1关
message.gear = 2; // 0空挡;1后退;2前进
if (reliability == 1) if (reliability == 1)
message.rpm = publish_speed; message.rpm = publish_speed;
@ -849,7 +851,7 @@ private:
float target_angle = calculate_the_angle(x, y); float target_angle = calculate_the_angle(x, y);
// 初始化控制参数 // 初始化控制参数
publish_speed = 30; publish_speed = 800;
publish_angle = static_cast<int>(target_angle); publish_angle = static_cast<int>(target_angle);
// 安全检查:未检测到车体位置 // 安全检查:未检测到车体位置
@ -986,7 +988,7 @@ private:
else else
{ {
// 距离足够,可以减速接近 // 距离足够,可以减速接近
publish_speed = std::max(10, publish_speed / 2); publish_speed = std::max(600, publish_speed / 2);
RCLCPP_INFO(this->get_logger(), "障碍物较宽,减速接近中,距离=%d格", RCLCPP_INFO(this->get_logger(), "障碍物较宽,减速接近中,距离=%d格",
obstacle_analysis_.obstacle_distance); obstacle_analysis_.obstacle_distance);
} }
@ -1203,7 +1205,7 @@ private:
} }
// 速度控制:横向偏移时限速 // 速度控制:横向偏移时限速
publish_speed = 15; publish_speed = 600;
// 角度控制:保持较大角度进行横向偏移 // 角度控制:保持较大角度进行横向偏移
int shift_angle = calculateLateralShiftAngle(); int shift_angle = calculateLateralShiftAngle();
@ -1482,7 +1484,7 @@ private:
} }
// 速度控制:平行前进时可以适当提速 // 速度控制:平行前进时可以适当提速
publish_speed = 20; publish_speed = 700;
// 角度控制:回正,保持直行 // 角度控制:回正,保持直行
publish_angle = 0; publish_angle = 0;
@ -1625,7 +1627,7 @@ private:
{ {
// 回正完成 // 回正完成
publish_angle = target_angle_int; publish_angle = target_angle_int;
publish_speed = speed; publish_speed = 800;
avoid_ctx_.reset(); avoid_ctx_.reset();
RCLCPP_INFO(this->get_logger(), RCLCPP_INFO(this->get_logger(),
@ -1644,7 +1646,7 @@ private:
publish_angle -= std::min(RETURN_RATE, -angle_diff); publish_angle -= std::min(RETURN_RATE, -angle_diff);
} }
publish_speed = 20; // 回正时保持低速 publish_speed = 700; // 回正时保持低速
if (avoid_ctx_.counter % 10 == 0) if (avoid_ctx_.counter % 10 == 0)
{ {

View File

@ -2,7 +2,7 @@
"serial_port": "/dev/uartPort", "serial_port": "/dev/uartPort",
"baudrate": 100000, "baudrate": 100000,
"rmoctl_para": { "rmoctl_para": {
"mcu_rpm_max": 3000, "mcu_rpm_max": 1500,
"eps_angle_max": 40.0 "eps_angle_max": 40.0
} }
} }