Developing an Algorithm for Predicting Robot Position Over Time

In summary, the conversation discusses the challenges of predicting the position of omnidirectional wheeled robots over time with a constant acceleration, particularly when the robot reaches its maximum speed. The main problem lies in defining the equations of motion for this particular case, and the proposed solution involves breaking the acceleration into parallel and perpendicular components and setting the parallel component to 0 when the robot's speed reaches its maximum. However, it is likely that numerical solutions will be necessary for this problem.
  • #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.
 
Physics news on Phys.org
  • #2


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.
 
  • #3


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:

Related to Developing an Algorithm for Predicting Robot Position Over Time

1. What is an algorithm?

An algorithm is a set of instructions or steps that a computer program follows in order to solve a problem or complete a task.

2. Why is it important to develop an algorithm for predicting robot position over time?

Developing an algorithm for predicting robot position over time is important because it allows for more efficient and accurate control of robots. This is especially crucial in tasks such as navigation or manipulation, where precise positioning is required.

3. How do you develop an algorithm for predicting robot position over time?

To develop an algorithm for predicting robot position over time, you first need to understand the dynamics of the robot and its environment. This involves gathering data and analyzing the movement patterns of the robot. Then, you can use mathematical and programming techniques such as kinematics, sensors, and machine learning to create the algorithm.

4. What are the challenges in developing an algorithm for predicting robot position over time?

Some common challenges in developing an algorithm for predicting robot position over time include dealing with imperfect or noisy data, accounting for unpredictable changes in the environment, and handling complex movements or interactions with objects. It also requires a thorough understanding of the robot's capabilities and limitations.

5. How can the accuracy of the algorithm be evaluated?

The accuracy of the algorithm can be evaluated by comparing the predicted positions with the actual positions of the robot. This can be done through simulation or real-world testing. Other metrics such as error rates or mean squared error can also be used to assess the performance of the algorithm.

Similar threads

  • Engineering and Comp Sci Homework Help
Replies
18
Views
1K
  • Introductory Physics Homework Help
Replies
4
Views
233
  • Mechanics
Replies
13
Views
1K
  • Engineering and Comp Sci Homework Help
Replies
9
Views
2K
Replies
8
Views
1K
  • Mechanics
Replies
20
Views
1K
Replies
15
Views
824
Replies
3
Views
693
Replies
31
Views
2K
Replies
3
Views
1K
Back
Top