Dynamics 示例¶
注意
示例目录:[SimOne 安装目录]\SimOneAPI\Tutorial\Dynamics
算法构思
Dynamics 动力学示例通过调用 SimOneAPI 对主车执行标准动力学测试,包括全制动、加速至目标速度、正弦转向等场景,用于验证车辆动力学响应。
示例代码
以下为 main.cpp 完整示例,展示了 API 初始化及三种动力学测试的调用方式:
#include "SimOneServiceAPI.h"
#include "SimOnePNCAPI.h"
#include "SimOneSensorAPI.h"
#include "TestSample.hpp"
#include <string.h>
using namespace std;
int main(int argc, char* argv[])
{
// Step1: 初始化 SimOne API,连接至本地仿真服务
if (SimOneAPI::InitSimOneAPI("0", false, "127.0.0.1"))
{
cout << "InitSimOneAPI Done" << endl;
}
// Step2: 设置驾驶员名称(用于区分多车场景中的控制来源)
SimOneAPI::SetDriverName("0", "DynaTest");
// 可选:通过命令行参数指定输出 CSV 路径
std::string csvPath = "";
for (int i = 1; i < argc; ++i) {
if (strcmp(argv[i], "-csvPath") == 0) {
csvPath = argv[i + 1];
++i;
}
else {
csvPath = "resultsALL.csv";
}
}
TestSample test;
// Step3: 执行动力学测试(三选一,取消注释以启用)
/* 测试1:全制动——以 1.0 的制动强度紧急制动 */
test.FullBrakeTest("0", 1.0f, csvPath);
/* 测试2:加速至目标速度(100 km/h,加速强度 1.0) */
// test.DriveToSpeed(0, 100.f, 1.0f, csvPath);
/* 测试3:正弦转向动力学测试(初速 60 km/h) */
// test.SteerDynamicTest(0, 60.f, TestSample::SteerType::sineSteer, csvPath);
return 0;
}
编译环境
CMakeLists.txt 支持生成 Windows / Ubuntu 的项目工程。
编译:
-
Windows:
-
进入
Build目录,运行gen_vs_proj_debug.bat或gen_vs_proj_release.bat生成 Visual Studio 工程 -
打开 Visual Studio 示例工程,选择
DynamicsTest工程编译 -
Linux:
-
cd Build -
./gen_make_debug.sh(或./gen_make_release.sh) -
cd build_debug(或cd build_release) -
make -j4
使用流程
-
启动 SimOne,新建测试用例
-
新建测试主车(配置控制系统为 手动 / API 控制)
-
运行用例(选择主车为该主车)
-
编译测试代码,
bin目录下生成可执行文件 -
运行示例程序,查看运行结果