1. esmini 在Server.cpp中提供了外部控制ego车的方式,以UDP的方式接收外部数据然后驱动ego运动。为了开启UDP数据接收线程,只需要命令行增加--server参数即可。

2. ScenarioGateway 类中保存了所有车辆的当前数据,UDP线程接收到数据后需要调用reportObject函数来上报数据。

3. ScenarioEngine 类中的step函数中,每一帧开始会调用ScenarioGateway的getObjectStateById函数来获取车辆数据,然后在每一帧结束会通过reportObject来上报数据。如果开启外部控制的话,UDP线程的reportObject和step的reportObject会冲突。

可以按以下方法修改:

1. ScenarioEngine类增加一个bool变量egoExternalCtl_作为控制开关,并增加设置函数。并且需要在构造函数中初始化为false

void SetEgoExternal(bool isCtrl) { egoExternalCtl_ = isCtrl; }
bool egoExternalCtl_;

2. 修改ScenarioEngine的step函数,给reportObject调用的地方加上这个开关,并判断是否是ego车。

// Report state to the gateway
if(!egoExternalCtl_ || obj->name_ != "Ego")scenarioGateway.reportObject(obj->id_, obj->name_, static_cast<int>(obj->type_), obj->category_, obj->model_id_,obj->GetActivatedControllerType(), obj->boundingbox_, simulationTime_, obj->speed_, obj->wheel_angle_, obj->wheel_rot_, &obj->pos_);

3. 在ScenarioPlayer的初始化函数中,当读取到--server参数时,会设置launch_server,在开启UDP的线程的地方,调用ScenarioEngine的SetEgoExternal即可。

if (launch_server)
{// Launch UDP server to receive external Ego stateStartServer(scenarioEngine);scenarioEngine->SetEgoExternal(true);
}

esmini接入外部ego车控制相关推荐

  1. 采用STM32外部中断模式控制LED灯亮灭

    文章目录 实验工具 一.STMCube配置项目 1.配置引脚 2.配置EXIT 3.配置SYS 4.配置GPIO 5.创建代码 二.使用KEil配置代码 1.打开生成的项目,找到stm32f1xx_i ...

  2. RTSP/Onvif安防网络摄像头无插件直播流媒体服务EasyNVR如何实现网络摄像机Onvif/RTSP接入直播与云台控制

    什么是Onvif协议 ONVIF规范描述了网络视频的模型.接口.数据类型以及数据交互的模式.并复用了一些现有的标准,如WS系列标准等.ONVIF规范的目标是实现一个网络视频框架协议,使不同厂商所生产的 ...

  3. 直立车各环的调试_大学生智能车竞赛之直立车控制,我之初见(四)

    原标题:大学生智能车竞赛之直立车控制,我之初见(四) 直立车控制之转向环 我认为转向环的控制是智能车控制的核心,前文也有提到,直立环和速度环其实可以并为一个环的控制而且控制的方法基本就是 P. D 或 ...

  4. 【单片机仿真项目】外部中断0控制8个发光二极管闪烁

    目录 1.keil代码 2.proteus 原理图 3.外部中断0控制8个发光二极管闪烁 gif 动态图

  5. 基于STC89C52单片机的智能车控制系统设计

    目 录 1系统概述 1 1.1设计目的和意义 1 1.2设计思路 2 1.3系统需求分析 2 1.3.1市场需求 2 1.3.2实现功能 2 1.4开发环境 3 1.5运行环境 3 2总体设计 4 2 ...

  6. esp8266接入Blinker小爱同学控制WS2812的RGB以及亮度调节

    esp8266接入Blinker小爱同学控制WS2812的RGB以及亮度调节 所需准备的库: Adafruit_NeoPixel Blinker 开发板选择 1.源代码部分: 源代码: //WS281 ...

  7. 怎么切换界面_PLC外部开关如何控制触摸屏界面的切换?

    点击下方图片,进入工控行业平台 PLC外部开关去控制触摸屏界面的切换,这在我们实际工控应用中很是常见的,比如自动/手动界面的切换,通过控制面板上的切换按钮来选择工作模式. 此时触摸屏的界面会随着按钮的 ...

  8. 基于STC15W4K32S4单片机仿真《外部中断INT0控制LED亮灭》

    1. 编 程 软 件:keil5版本. 2.仿 真 软 件:Proteus8.12 3.单片机选型:STC15W4K32S4 4.学 习 目 标:   1.学习外部中断INT0 5.程 序 文 件 : ...

  9. 【单片机仿真项目】 外部中断0控制发光二极管亮灭

    目录 1.keil工程代码 2.外部中断0控制发光二极管亮灭 proteus 原理图

最新文章

  1. 九价抢不到?多试试这几个GitHub上的开源项目
  2. Gotchas 44-引用和临时对象
  3. 视频质量评价方法简介
  4. 在qt中用c语言数组,在QT函数中返回一个数组/把一个数组传参给函数
  5. MOSS2007中实现表单验证
  6. YAML基础知识及搭建一台简洁版guestbook
  7. 【Pytorch神经网络理论篇】 16 过拟合问题的优化技巧(三):批量归一化
  8. 深入理解redux之从redux源码到react-redux的原理
  9. Maven Install报错:Perhaps you are running on a JRE rather than a JDK
  10. 【笔试/面试】—— Linux(块设备与字符设备/cron 和 crontab)
  11. 【python】中 type dtype astype辨析
  12. python中的计数函数_Python Numpy统计函数
  13. Unity app 如何打开商店
  14. Unity游戏开发 头发飘动效果
  15. 澳门--电话正则表达式
  16. 硬件工程师成长之路(0)----认识元件
  17. 2021图机器学习有哪些新突破?麦吉尔大学博士后一文梳理展望领域趋势
  18. 特征空间之点检测(MATLAB)
  19. 【英语】很抱歉,我一天的86400秒却没有你
  20. 分析如何编写一个timer程序(以blt_soft_timer为例)

热门文章

  1. jquery.easyui常用示例
  2. split 中文 java_Java String[] split() 方法
  3. 第六章 设计程序架构 之 设计实现WebSocket策略
  4. android 面试汇总二
  5. 如何提高英文的科研写作能力
  6. linux 配置EPEL源
  7. E - More is better (并查集)
  8. Linux下git使用
  9. windows.h和winsock2.h包含顺序问题(转)
  10. asp.net读取xml方法