I struggling days with this problem :

I have joystick values 0~FF for each axis. So the higher this value, the faster the axis moves. I am trying to find a way to control a robot with these values.

For instance:

The 1. axis of the robot should move 50 cm into z-direction. For this experiment there is not any feedback system from the robot. So we dont know how much the robot has moved with each joystick values. Will there be a solution for this given circumstance?

At first, I tried to solve this problem with a simulation model. After building a robot model, I could calculate the desired joint angle value changes for each axis with a IK solver. Then again, the problem is to convert the calculated joint angle value changes into joystick values. Since the robot is controlled with this values.

  • $\begingroup$ how do you control the robot now? .... it seems that your question has nothing to do with a joystick, and it has everything to do with controlling a robot $\endgroup$
    – jsotola
    Nov 3 '18 at 23:32
  • $\begingroup$ Right now, I am controlling the robot with my joystick. And I want to replace this joysitck with my laptop. My question here is how I can controll the robot with these joystick values. $\endgroup$
    – Joe
    Nov 4 '18 at 8:31
  • $\begingroup$ that does not clearly explain how you are controlling the robot ..... how is the joystick connected? $\endgroup$
    – jsotola
    Nov 4 '18 at 17:02
  • $\begingroup$ How many joints in your robot arm, and what is the arrangement? $\endgroup$
    – Ben
    Nov 5 '18 at 0:45
  • $\begingroup$ How is your system currently providing feedback on whether you have moved 50cm in the right direction or not? Pretty much every robotic system needs a feedback mechanism, and I'm would guess that you are the feedback mechanism. $\endgroup$
    – Mark Booth
    Nov 5 '18 at 18:09

What you are attempting to achieve is called Dead Reckoning. Given the velocity at every instant in time and current position, one can calculate the new position by taking the integral of velocity with respect to time. The relationship between position, time and acceleration is discussed here in a lecture note from uiuc.edu.

It is almost always better to use feed back to determine a new position. As any errors accumulate during these types of calculations.


Joysticks are good for velocity control. Whether you control each joint independently, or control the end effector position using inverse kinematics, the process is the same:

  1. Determine the maximum velocity the controlled variable can achieve.
  2. Calculate the ratio of Maximum velocity divided by FF.
  3. When a new command is issued, multiply its value by the ratio computed above to determine the new velocity command to send to the robot.

Not the answer you're looking for? Browse other questions tagged or ask your own question.