Developing an Algorithm for Predicting Robot Position Over Time

Click For Summary
SUMMARY

This discussion focuses on developing a guidance algorithm for omnidirectional wheeled robots in a robotic soccer project, specifically addressing the challenge of predicting robot position over time under constant acceleration. The key equations of motion are defined for scenarios where the robot's speed is below a maximum limit (vmax), using the formula p(t) = p(0) + v(0)*t + (1/2)*a*t². However, complications arise when the robot reaches vmax, as only the orthogonal component of acceleration affects the robot's velocity vector. The proposed approach involves breaking acceleration into parallel and perpendicular components to velocity, suggesting a numerical solution to the non-linear control problem.

PREREQUISITES
  • Understanding of kinematics, specifically equations of motion for constant acceleration
  • Familiarity with vector mathematics, including inner products and vector projections
  • Knowledge of numerical methods for solving differential equations
  • Experience with control systems, particularly non-linear control problems
NEXT STEPS
  • Research numerical methods for solving non-linear differential equations
  • Explore vector decomposition techniques in the context of motion dynamics
  • Learn about control strategies for omnidirectional robots
  • Investigate simulation tools for modeling robot motion under varying acceleration conditions
USEFUL FOR

This discussion is beneficial for roboticists, control engineers, and researchers involved in robotics, particularly those working on motion prediction and control algorithms for mobile robots.

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:

Similar threads

  • · Replies 15 ·
Replies
15
Views
2K
Replies
18
Views
3K
  • · Replies 9 ·
Replies
9
Views
1K
  • · Replies 27 ·
Replies
27
Views
4K
  • · Replies 15 ·
Replies
15
Views
2K
  • · Replies 9 ·
Replies
9
Views
3K
  • · Replies 41 ·
2
Replies
41
Views
4K
  • · Replies 13 ·
Replies
13
Views
2K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 31 ·
2
Replies
31
Views
3K