两轮差速机器人运动学模型

两轮差速底盘

1.1、底盘说明

两轮差速底盘由两个动力轮位于底盘左右两侧,两轮独立控制速度,通过给定不同速度实现底盘转向控制。一般会配有一到两个辅助支撑的万向轮。

主要底盘有:

1、Turtlebot;
2、扫地机器人;
3、无人仓AGV小车;
4、轮椅;

底盘主要特点:

1、控制简单、里程计计算简单。
2、只能给定X方向速度、Z轴方向角速度。

1.2 底盘运动学分析
1.2.1、底盘模型

在这里插入图片描述

图1.2.1 常见的两轮差速底盘模型

1.2.2、机器人本身约束方程(物理特性)

图1.2.2 a 左侧是车的两个轮子,右侧带箭头的圆圈是运动的方向和运动的圆心
图1.2.2 a 左侧是车的两个轮子,右侧带箭头的圆圈是运动的方向和运动的圆心
图1.2.2 b 两轮底盘运动解析图
图 1.2.2 b 两轮底盘运动解析图

如图1.2.2所示:车体速度为V, 左轮速度为VL ,右轮速度为VR , 车体自传速度为,转弯半径为R,两轮之间距离为D,两轮到车中心的距离为d,右轮到圆心距离为L。

约束方程(高中知识):
①、角速度、速度和运动半径之间的物理关系。
②、左轮速度分解
③、右轮速度分解
④、和速度V等于左右轮速度之和的一半。
⑤、由②、③得 得 整车角速度和两轮速度之间的关系

1.3、运动控制、控制指令分解

控制指令分解指如何通过控制左右两个轮的独立速度使整个机器人的整体运动既满足前向速度等于V,转动的角速度等于
在这里插入图片描述
图1.2.3 运动控制的输入、输出参数说明

如图1.2.3所示,运动控制器输入参数为整车速度Vx和角速度(因为轮子不能横着走所以Vy一直为零),输出参数是左右两轮速度VL 、VR。转弯半径R则由左右轮速度决定。
由约束方程②、③得:

左轮速度为:
在这里插入图片描述
(d为两轮之间距离的一半)

右轮速度为:
在这里插入图片描述

1.4、运动轨迹、里程计计算

在这里插入图片描述

图1.2.4 上电时刻机器人坐标系和世界坐标系重合

里程计(odom)计算是指以机器人上电时刻为世界坐标系的起点O(0,0)(航向为世界坐标系的X轴指向)累积计算任意时刻机器人相对于世界坐标系的位置及航向。
机器人的位置Pose.Xw、Pose.Yw的值可以看成是车体运动方向极小时间内位置增量分解到X、Y方向的积分量。
在这里插入图片描述

图1.2.5 机器人在世界坐标系的位置

此时分两种方式来推算轨迹:速度推算方式、编码器推算方式

I、速度推算轨迹:(速度积分累积误差较大,最终精度在10%左右)
在机器人坐标系下,单位时间∆t(一个控制周期:∆t = ti+1 - ti,通常为10ms、20ms)以速度V移动的距离为∆d = ∆t*V。将此距离分别分解到世界坐标系的X、Y轴:
∆xw = ∆d * cos(θ)= ∆t * V * cos(θ)
∆yw = ∆d * sin(θ)= ∆t * V * sin(θ)

同时单位时间角度变化为∆θ = *∆t。
以此方式不断累积,即可实现任意时间的位置解算。
*Xw = Xw + ∆xw = Xw + ∆t * V * cos(θ)
Yw = Yw + ∆yw = Yw + ∆t * V * sin(θ)
θ = θ + ∆t

II、编码器推算轨迹:(直接对距离做分解累积误差相对较小,最终精度1%以内,如果做修正,同时航向角较准确的情况下精度可以达到0.1%以内(已经实测))
编码器每一个脉冲对应实际轮子行走的直线距离系数为:
rate_encoder = 2𝛑r/sum_encoders
其中r为车轮半径,sum_encoders为轮子走动一圈的编码器的脉冲总数。
单位时间∆t内编码的增量为:inc_encoder = encoder_now – encoder_last,(当前编码器值减去上次编码器值)
则单位时间机器人移动的距离为∆d = inc_encoder * rate_encoder
世界坐标系下x、y方向累计里程分别为:
Xw = Xw + ∆xw = Xw + ∆d * cos(θ)
Yw = Yw + ∆yw = Yw + ∆d * sin(θ)

其中航向角θ的获取分两种情况:
A、底盘带具有稳定航向角的IMU,此方式可以使得最终解算的位置十分准确(电子罗盘受电机干扰交大不可用)
θ直接等于IMU的航向角Yaw。(IMU的Yaw上

### 回答1: UGUI翻页动画Shader是一种用于Unity引擎中用户图形用户界面(UGUI)元素交互动画效果的特殊Shader。该Shader实现了各种UI元素(例如按钮、进度条、文本框等)的翻页动画效果。当用户在UI元素上进行互动时,翻页动画效果会在屏幕上呈现出来,为UI元素增添了动感和生动性。 该Shader的实现原理是基于OpenGL ES Shading Language(GLSL)语言,通过在shader中定义相关变量、函数、计算等操作,实现不同UI元素的翻页动画效果。例如,实现按钮按下时的翻页动画效果,可以通过以下操作实现:先定义一个时间变量t,通过逐渐递增这个变量,实现按钮的“翻页”效果,和控制按钮的不透明度变化,实现按钮尺寸变化及颜色变化等,从而达到翻页动画效果的目的。 UGUI翻页动画Shader具有高效运行、易于实现、定制性高等特点,在游戏制作、APP开发等领域被广泛应用。该Shader不仅可以实现基本的翻页动画效果,还可以实现更复杂的动画效果,例如卡片翻转、书页翻动等。 总之,UGUI翻页动画Shader是拥有广泛应用前景和开发价值的一种Shader,具有灵活性和多样性,可以大大增强游戏、APP等项目的用户体验效果。 ### 回答2: UGUI是Unity自带的UI系统,可以用于制作UI界面。而翻页动画则是一种常见的UI效果,在翻页过程中,页面会根据鼠标的拖动或者触摸移动,并且具有一定的阻尼效果,这样用户可以更加自然的翻页。 UGUI翻页动画的实现离不开Shader技术,Shader可以控制UI界面中每个元素的材质,包括颜色、纹理、透明度、反射率、折射率等属性,通过改变这些属性的值来制作出不同的效果。 翻页动画使用的Shader技巧主要包括: 1. 数学计算:通过计算页面的位置和距离来实现页面的移动和旋转,并且加入阻尼效果,使得页面翻转更加自然。 2. 材质属性:通过修改材质属性来实现不同的效果,比如设置不同的透明度来模拟页面翻转的过程,设置反射率和折射率来模拟页面的光影效果。 3. 贴图:通过贴图来实现页面内容的翻转效果,比如将背面的贴图翻转过来来模拟翻页过程中页面内容的变化。 总之,在实现UGUI翻页动画的过程中,Shader技术起到了至关重要的作用,通过合理的使用数学计算、材质属性和贴图等技巧,可以制作出各种不同的翻页动画效果,为UI界面增添更多的视觉效果和用户体验。 ### 回答3: ugui翻页动画shader实质上是一种用于实现翻页动画的渲染技术。这种技术能够让UI界面的元素在翻页时呈现出更加真实的效果,使得用户交互更加自然、流畅。该技术对于游戏或其他需要实现UI交互的应用程序都具有较高的实用性。 ugui翻页动画shader通常是由基于OpenGL或DirectX API等底层图形库实现的。它使用了像纹理映射、着色器等高级渲染技术,将翻页过程的各个阶段的纹理映射和着色组合起来,从而生成一种类似于真实书本翻页的效果。在使用过程中,ugui翻页动画shader需要许多参数来进行自定义配置,比如翻页速度、翻页曲率、阴影、透明度、边缘变形等等,可以根据实际需求进行相关设置。 在实现ugui翻页动画shader时,需要使用着色器编程语言进行编写,并且需要深入了解OpenGL或DirectX API的渲染原理。目前,许多专业3D制作软件都提供了ugui翻页动画shader的可视化开发工具,使得非专业人员也可以用较少的时间和精力实现比较高质量的翻页效果。 总的来说,ugui翻页动画shader技术的出现,不仅仅是UI界面效果的提升,更是对UI交互带来的革新和用户体验的提升。随着技术的不断发展,ugui翻页动画shader也将不断完善和更新,为用户的交互体验提供更加细致、流畅的支持。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值