Finished grip steering

This commit is contained in:
Иван Грачёв
2021-09-19 23:38:05 +05:00
parent d5bbad6f1d
commit f5192ebfff
3 changed files with 115 additions and 14 deletions

View File

@@ -10,6 +10,7 @@ function Slave:initialize(options)
self.caster = options.Caster
self.ackermann = options.Ackermann
self.isLeft = options.IsLeft
self.offset = options.Offset
end
function Slave:rotate(ang)
@@ -17,9 +18,12 @@ function Slave:rotate(ang)
self.entity:setFrozen(1)
end
local angle = Angle(0, ang, 0)
local ackermann = math.sin(math.rad(ang)) ^ 2 * self.ackermann * (self.isLeft and -1 or 1)
local yaw = self.offset + ang + ackermann
local roll = (self.isLeft and 1 or -1) * self.camber - ang / 270 * self.caster
local angle = Angle(0, yaw, roll)
local transformedAngle = self.base:localToWorldAngles(angle)
self.entity:setAngles(transformedAngle)
-- rotate slave here
end