一种基于Unity3D的实时可视化无人自行车仿真系统及方法与流程

文档序号:19154098发布日期:2019-11-16 00:28阅读:844来源:国知局
一种基于Unity3D的实时可视化无人自行车仿真系统及方法与流程

本发明涉及无人自行车技术领域,特别涉及一种基于unity3d的实时可视化无人自行车仿真系统及方法。



背景技术:

无人自行车作为一个多体结构,对它的研究不仅在理论上具有重大的意义,还具有很高的实用价值。无人自行车控制是一个典型的控制平衡问题,在控制过程中能够反应控制理论中的很多关键问题,比如说镇定问题、非线性问题、鲁棒性问题以及跟踪问题等,其结构和动力学特性比较复杂,控制难度大,是研究变结构控制、非线性控制、智能控制等控制方法理想的实验平台。

人们对无人自行车控制问题的研究过程可以分为对象建模、控制器设计与仿真、硬件设计、软件编程和集成调试。对象建模和控制器设计与仿真是人们通过无人自行车的机械结构、执行机构等参数,建立无人自行车的运动学和动力学模型,再针对上述模型设计控制算法,然后通过仿真软件进行仿真验证。目前,大多数仿真过程是在计算机平台中完成的,然而实际过程中对无人自行车的控制是通过嵌入式平台实现的。考虑到仿真的时效性取决于模型建立方式、计算方法以及控制器的运算能力,并且在无人自行车集成调试的时候,若出现故障,就可能需要重新对模型进行分析,将模型数据移植到无人自行车嵌入式平台中进行再次调试,耗时耗力,大大降低了调试效率,增加了研制成本。所以,急需在无人自行车控制问题的研究过程中增加一种更加方便、直观的仿真调试方式,弥补传统研究过程的不足。



技术实现要素:

为了解决以上技术问题,本发明的目的在于提供一种基于unity3d的实时可视化无人自行车仿真系统及方法,更加方便、直观地验证无人自行车行驶模型与控制算法的准确性、硬件平台与软件程序对控制信号的响应效率以及软件与硬件的兼容性。

为了实现上述目的,本发明采用的技术方案是:

一种基于unity3d的实时可视化无人自行车仿真系统,包括控制指令给定模块、下位机和上位机;

控制指令给定模块,用于向下位机发出无人自行车相关控制指令信号,控制指令给定模块定义为下位机的外扩模块,根据不同的控制方式外接为不同的控制模块;

所述下位机包括(无人自行车)行驶仿真模块和数据发送模块;

行驶仿真模块用于采集无人自行车行驶过程的控制指令信号和进行行驶状态的实时仿真运算,以得到无人自行车连续的空间位置与姿态信息,所述的行驶仿真模块使用嵌入式微控制器平台建立行驶模型,其预置了合适的数值计算方法,通过给定控制信号和控制算法,最终输出无人自行车的行驶状态信息(空间位置与姿态),其中,系统使用的行驶模型和控制算法都是开源的,用户可以根据自己的需要植入自己设计的行驶模型和控制算法,同时嵌入式微控制器平台中也内置有行驶模型和控制算法;

所述嵌入式微控制器可选择tm32f103系列控制器,优选为stm32f103r8t6芯片作为下位机的嵌入式硬件平台。

所述数值计算方法优选为插值计算方法,通过已知数据,从相应插值表中提取数据,计算当前的电机转速、舵机转角和车体倾角。

所述行驶模型采用二阶动力学模型;

包括设dlp为刚体相对于动点p的动量矩,mp为加在刚体上的外力系对该点的主矩,m(qp)为加在刚体质心上的牵引惯性力的合力对该点之矩,根据定理(质点系相对于动点的动量矩对时间导数等于外力系对该点的主矩与加在质心上的牵引惯性力的合力对该点之矩之矢量和)对组成自行车系统的每一个刚体部分,可以得到下面的方程:

设施加在车体上的力对x轴的力矩为tθ,前叉上施加的外力矩为tδ,设m、c1、κo、κ2均为系数矩阵,v为自行车车速,g为重力加速度,将系统4个刚体的角动量平衡方程联立,在小角度的假设下,经过局部线性化,就得到整个系统的动力学平衡方程:

所述的控制算法优选为模糊控制算法。

所述数据发送模块用于上传无人自行车的行驶状态信息(空间位置与姿态)至上位机。

所述上位机包括数据接收模块和unity3d平台,数据接收模块用于接收下位机上传的行驶状态信息,并导入unity3d平台中;unity3d平台用于实时显示无人自行车的行驶状态信息(空间位置与姿态)。

所述的数据接收模块与unity3d平台之间的通信方式优选为基于多线程和windows自定义消息的串口通信方式。

所述上位机和下位机之间采用串行通信方式。

一种基于unity3d的实时可视化无人自行车仿真系统的使用方法,包括如下步骤:

步骤1:研究人员通过所述控制指令给定模块输入相关控制指令信号;

步骤2:行驶仿真模块接收到控制指令给定模块发送的相关控制指令信号后,通过无人自行车行驶模型,通过用户给定的行驶模型和控制算法,采用预置的数值计算方法,对无人自行车的行驶过程进行实时仿真运算,得到无人自行车连续的行驶状态信息(空间位置与姿态),并输出给数据发送模块;

步骤3:数据发送模块将步骤2得到的无人自行车行驶状态信息通过串行通信方式上传给上位机的数据接收模块;

步骤4:数据接收模块接收到下位机的数据发送模块上传的行驶状态信息后,将其信息导入unity3d平台中;

步骤5:unity3d平台接收到无人自行车的行驶状态信息后,通过自己平台中的虚拟场景,以第三人称视角实时显示出来。

本发明的有益效果:

本发明将基于arm的嵌入式开发与三维视景仿真相结合,实现了无人自行车可视化仿真,为制作无人自行车实物奠定了技术基础;使研究者能更加方便、直观地验证无人自行车行驶模型与控制算法的准确性、硬件平台与软件程序对控制信号的响应效率以及软件与硬件的兼容性,提高了调试效率,降低了研制成本。

附图说明

图1为本发明系统模块功能图。

图2为本发明模糊控制器的基本结构图。

具体实施方式

下面结合附图对本发明作进一步详细说明。

如图1所示,一种基于unity3d的实时可视化无人自行车仿真系统,主要包括控制指令给定模块、下位机和上位机。

所述控制指令给定模块用于向下位机发出无人自行车相关控制指令信号,比如说车速、转向等控制信号。无人自行车的控制方式可选用人工控制、指令控制等,而控制指令给定模块可定义为下位机的外扩模块,可以根据不同的控制方式外接为不同的控制模块,举例为:若为人工控制方式,可外接按键模块或者手柄控制模块,等等;若为指令控制,可外接为按键模块或触摸屏模块,等等。不过,为了更加简明的表述本系统的技术方案,本发明优选为人工控制方式。

所述下位机包括(无人自行车)行驶仿真模块和数据发送模块;

行驶仿真模块用于采集无人自行车行驶过程的控制指令信号和进行行驶状态的实时仿真运算,以得到无人自行车连续的空间位置与姿态信息。该模块是本系统的核心部分,使用嵌入式微控制器平台建立行驶模型,其预置了合适的数值计算方法,通过给定控制信号和控制算法,最终输出无人自行车的行驶状态信息(空间位置与姿态)。其中,系统使用的行驶模型和控制算法都是开源的,用户可以根据自己的需要植入自己设计的行驶模型和控制算法,同时嵌入式微控制器平台中也内置有默认的行驶模型和控制算法;

所述嵌入式微控制器可选择tm32f103系列控制器,优选为stm32f103r8t6芯片作为下位机的嵌入式硬件平台,主要是因为其具有强大的运算能力和接口功能,可实现无人自行车行驶仿真模型与控制模型的建立与解算、控制信号采集和行驶状态数据传输功能。该系列微控制器包括cpu、ram、rom、i/o接口、定时器/计数器、uasrt、a/d和d/a转换器等多个模块,其最高工作频率为72mhz,可软件调节工作频率,并且可实现单周期乘法和硬件除法。

所述数值计算方法优选为插值计算方法,通过已知数据,从相应插值表中提取数据,计算当前的电机转速、舵机转角和车体倾角。

所述默认行驶模型包括无人自行车动力学模型、运动学模型、电机模型和舵机模型等,而建立无人自行车动力学模型是本系统的关键,为了方便客户理解,本系统默认行驶模型采用二阶动力学模型,其具体建立过程如实施例一所示。

实施例一:为了合理地简化方程建立,做了如下假设:

①自行车包含4个刚体:前轮、后轮、车体和前叉;

②车轮足够细,与地面仅有一个接触点;

③车轮在滚动过程中没有相对滑动;

④系统所有角度均为小量;

设dlp为刚体相对于动点p的动量矩,mp为加在刚体上的外力系对该点的主矩,m(qp)为加在刚体质心上的牵引惯性力的合力对该点之矩,根据定理(质点系相对于动点的动量矩对时间导数等于外力系对该点的主矩与加在质心上的牵引惯性力的合力对该点之矩之矢量和)对组成自行车系统的每一个刚体部分,可以得到下面的方程:

设施加在车体上的力对x轴的力矩为tθ,前叉上施加的外力矩为tδ,设m、c1、κo、κ2均为系数矩阵,v为自行车车速,g为重力加速度。将系统4个刚体的角动量平衡方程联立,在小角度的假设下,经过局部线性化,就得到整个系统的动力学平衡方程:

所述的默认控制算法优选为模糊控制算法:由于自行车的动力学特性与速度有非常密切的联系,尤其在特定的临界速度点上,而且一般的控制器很难在各种不同的速度下都达到良好的控制效果,又实际中自行车车速难以精确测量,所以本系统优选用模糊控制,其模糊控制器可以将各个局部控制器进行加权求和,可以增加整个闭环系统的鲁棒性。图2给出了模糊控制器的基本结构。

所述数据发送模块用于上传无人自行车的行驶状态信息(空间位置与姿态)至上位机。

所述上位机包括数据接收模块和unity3d平台;

所述数据接收模块用于接收下位机上传的行驶状态信息,并导入unity3d平台中;

其中数据接收模块与unity3d平台之间的通信方式优选为基于多线程和windows自定义消息的串口通信方式,该方式利用多线程的编程方式,将三维视景程序分为两个线程部分:作为主线程的行驶状态显示处理、更新部分和作为从线程的串口数据读取部分;同时,为了保证主、从线程之间灵活的数据交互,程序在使用共享存储区的基础之上,通过自定义消息来实现主、从线程之间的高速通讯功能,从而保证了较高的异步串行通信数据收发速率,有效的解决了利用传统的定时器采集处理消息的单线程方式无法满足高速的传输模式问题。

所述unity3d平台用于实时显示无人自行车的行驶状态信息(空间位置与姿态);

对于无人自行车的行驶状态信息在unity3d平台的实时显示,需要建立一个虚拟场景,而所需的虚拟场景都是由三维和二维物体模型构成的,现提出一种unity3d平台中的虚拟场景建立方法:使用3dsmax建立无人自行车、建筑物、地形等三维模型,将建立的模型导出为.fbx格式文件,并配置到unity3d的资源文件夹assets中,unity3d将自动导入对应的三维模型及相应的贴图和动画文件。

为了使研究人员可以直观的看到无人自行车的运动状况,本系统优选为第三人称视角的虚拟展示,对主摄像机编写carcamera.cs脚本,使主摄像机的位置一直处在无人自行车模型的后上方,并使摄像机对着车辆模型的中部,实现摄像机相对于无人性自行车的伴随性移动。

所述上位机和下位机之间采用串行通信方式;

一种基于unity3d的实时可视化无人自行车仿真系统的工作方法,包括如下步骤:

步骤1:研究人员通过所述控制指令给定模块输入相关控制指令信号;

步骤2:行驶仿真模块接收到控制指令给定模块发送的相关控制指令信号后,通过无人自行车行驶模型,通过用户给定的行驶模型和控制算法,采用预置的数值计算方法,对无人自行车的行驶过程进行实时仿真运算,得到无人自行车连续的行驶状态信息(空间位置与姿态),并输出给数据发送模块;

步骤3:数据发送模块将步骤2得到的无人自行车行驶状态信息通过串行通信方式上传给上位机的数据接收模块;

步骤4:数据接收模块接收到下位机的数据发送模块上传的行驶状态信息后,将其信息导入unity3d平台中;

步骤5:unity3d平台接收到无人自行车的行驶状态信息后,通过自己平台中的虚拟场景,以第三人称视角实时显示出来。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1