feat(轨迹控制): 为start_traj命令添加参数解析功能
扩展start_traj命令以支持从消息中解析轨迹参数,包括模式、比例、速度等配置项。这使得轨迹控制更加灵活可配置。
This commit is contained in:
@@ -772,7 +772,42 @@ bool CustomRobot::processSportCmd(const std::string& cmd, const nlohmann::json&
|
||||
} else if (cmd == "CrossStep") {
|
||||
return controller_->CrossStep(message["param"]["flag"]);
|
||||
} else if (cmd == "start_traj") {
|
||||
return startTraj();
|
||||
TrajectoryParams params;
|
||||
|
||||
// 从消息中解析参数(如果有的话)
|
||||
if (message.contains("param")) {
|
||||
const auto& param = message["param"];
|
||||
|
||||
// 解析轨迹模式
|
||||
if (param.contains("pattern")) {
|
||||
int pattern_int = param["pattern"];
|
||||
if (pattern_int >= 0 && pattern_int <= 4) {
|
||||
params.pattern = static_cast<TrajectoryPattern>(pattern_int);
|
||||
}
|
||||
}
|
||||
|
||||
// 解析其他参数
|
||||
if (param.contains("scale")) {
|
||||
params.scale = param["scale"];
|
||||
}
|
||||
if (param.contains("speed")) {
|
||||
params.speed = param["speed"];
|
||||
}
|
||||
if (param.contains("frequency")) {
|
||||
params.frequency = param["frequency"];
|
||||
}
|
||||
if (param.contains("amplitude")) {
|
||||
params.amplitude = param["amplitude"];
|
||||
}
|
||||
if (param.contains("points_count")) {
|
||||
params.points_count = param["points_count"];
|
||||
}
|
||||
if (param.contains("time_step")) {
|
||||
params.time_step = param["time_step"];
|
||||
}
|
||||
}
|
||||
|
||||
return startTraj(params);
|
||||
} else if (cmd == "stop_traj") {
|
||||
stopTraj();
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user