- #1
ShowDown
- 1
- 0
Hello everyone,
I am a researcher for a robotic soccer project, and I am developing a guidance algorithm in which I need to be able to predict the position of our robots over time, given only that they have a constant acceleration. These are omnidirectional wheeled robots, which means they can accelerate instantly in any given direction under normal conditions. This is not true, however, when the robot reaches its maximum speed, and I haven't been able to define the equations of motion for the robots under this particular case.
To clarify: suppose that at t=0 you have a point-like robot moving in an X-Y plane with a certain, known position p(0)=[px(0) py(0)]T and velocity v(0) = [vx(0) vy(0)]T, and you try to apply a constant acceleration a = [ax ay]T to it. If the speed of the robot is below a certain limit vmax, then the equations describing the position of the robot over time are trivial (p(t) = p(0)+v(0)*t+(1/2)*a*t2). However, when the robot reaches its maximum speed (i.e. ||v(t)||=vmax) then, obviously, it will not be able to accelerate in the direction of its velocity vector, and so only the component of a which is orthogonal to v will have any effect, which will be to rotate the velocity vector until both a and v are aligned. My goal is then to obtain p(t) in these conditions. My main problem is that in this case, the useful component of the acceleration (let's call it ac(t)) depends instantaneously on v(t), and I need to describe it in a simple manner so that it's possible to integrate that twice without falling into a mathematical analysis nightmare (my mathematical skills are sadly limited for an engineer). So far my only idea was to project a onto v via an inner product and obtain ac(t) = a-(a.v(t))*(v(t)/vmax), but this is probably silly.
Any help is appreciated.
PS: This is my first post here, so excuse me if this isn't in the right section.
I am a researcher for a robotic soccer project, and I am developing a guidance algorithm in which I need to be able to predict the position of our robots over time, given only that they have a constant acceleration. These are omnidirectional wheeled robots, which means they can accelerate instantly in any given direction under normal conditions. This is not true, however, when the robot reaches its maximum speed, and I haven't been able to define the equations of motion for the robots under this particular case.
To clarify: suppose that at t=0 you have a point-like robot moving in an X-Y plane with a certain, known position p(0)=[px(0) py(0)]T and velocity v(0) = [vx(0) vy(0)]T, and you try to apply a constant acceleration a = [ax ay]T to it. If the speed of the robot is below a certain limit vmax, then the equations describing the position of the robot over time are trivial (p(t) = p(0)+v(0)*t+(1/2)*a*t2). However, when the robot reaches its maximum speed (i.e. ||v(t)||=vmax) then, obviously, it will not be able to accelerate in the direction of its velocity vector, and so only the component of a which is orthogonal to v will have any effect, which will be to rotate the velocity vector until both a and v are aligned. My goal is then to obtain p(t) in these conditions. My main problem is that in this case, the useful component of the acceleration (let's call it ac(t)) depends instantaneously on v(t), and I need to describe it in a simple manner so that it's possible to integrate that twice without falling into a mathematical analysis nightmare (my mathematical skills are sadly limited for an engineer). So far my only idea was to project a onto v via an inner product and obtain ac(t) = a-(a.v(t))*(v(t)/vmax), but this is probably silly.
Any help is appreciated.
PS: This is my first post here, so excuse me if this isn't in the right section.