Developing an Algorithm for Predicting Robot Position Over Time

AI Thread Summary
The discussion revolves around developing a guidance algorithm for omnidirectional wheeled robots in a robotic soccer project, focusing on predicting their position over time under constant acceleration. The researcher faces challenges defining equations of motion when the robots reach maximum speed, as only the acceleration component orthogonal to the velocity vector affects their movement. Suggestions include breaking acceleration into parallel and perpendicular components and setting the parallel component to zero when maximum speed is reached. The consensus leans towards a numerical solution rather than a closed-form equation due to the non-linear nature of the problem. Overall, the complexity of the situation necessitates advanced mathematical approaches or numerical simulations for accurate predictions.
ShowDown
Messages
1
Reaction score
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.
 
Physics news on Phys.org


ShowDown said:
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.
Hi ShowDown, welcome to PF,

Wow, this is a tough problem. It looks like a non-linear control problem to me, so I doubt that it has a closed-form solution. You will probably have to numerically solve the differential equation.

I would probably break a up into components parallel and perpendicular to v. Then you can simply set the parallel component to 0 whenever |v|=vmax. That said, I really think this will be numerical.
 


I'd rather start with 4 axle velocities, than assuming an ideal constant-acceleration and constant-velocity curve that probably isn't really happening. If it is, it would be stepper motor control, or similar, where the phase pulses are available to integrate.
 
Last edited:
The rope is tied into the person (the load of 200 pounds) and the rope goes up from the person to a fixed pulley and back down to his hands. He hauls the rope to suspend himself in the air. What is the mechanical advantage of the system? The person will indeed only have to lift half of his body weight (roughly 100 pounds) because he now lessened the load by that same amount. This APPEARS to be a 2:1 because he can hold himself with half the force, but my question is: is that mechanical...
Some physics textbook writer told me that Newton's first law applies only on bodies that feel no interactions at all. He said that if a body is on rest or moves in constant velocity, there is no external force acting on it. But I have heard another form of the law that says the net force acting on a body must be zero. This means there is interactions involved after all. So which one is correct?
Let there be a person in a not yet optimally designed sled at h meters in height. Let this sled free fall but user can steer by tilting their body weight in the sled or by optimal sled shape design point it in some horizontal direction where it is wanted to go - in any horizontal direction but once picked fixed. How to calculate horizontal distance d achievable as function of height h. Thus what is f(h) = d. Put another way, imagine a helicopter rises to a height h, but then shuts off all...

Similar threads

Back
Top