-1

I am working on a locomotion system for the Aldebaran Nao. I noticed that my robot's motions are very disjoint as compared to those on other robots - a problem that I am pretty sure is code related.

I am updating my robots motions using code similar to Aldebaran's fast get set DCM.

(http://doc.aldebaran.com/1-14/dev/cpp/examples/sensors/fastgetsetdcm/fastgetsetexample.html).

I am updating the joint angles every 10 ms (the fastest possible update rate). However, it is clear that the motors move to the newly commanded angle very quickly and are motionless for the majority of the 10 ms. Is there any way to control the velocity of the motors during this 10ms update period?

Austin
  • 79
  • 1
  • 6
  • SO won't let me comment so I have to use "answer". You can't directly control the current inflow of Nao's motors. In my experience 10 ms is a very fine time step already - 100 frames of motion per second and should not appear "disjoint" to naked eyes given that your entire motion is smooth. Could you elaborate a little on what you are trying to achieve? Did you interpolate / smooth the actuator positions with respect to time? – Jerry Hu Jun 30 '16 at 06:41

1 Answers1

1

There's many way to send order to joints using DCM or ALMotion.

The easiest way is using ALMotion, with that you can use

  • angleInterpolationWithSpeed, where you'll specify a ratio of speed.
  • angleInterpolation, where you'll specify a time. In this example 0.01 sec.

Using the DCM, you just have to ask for the movement to finish 10ms later.

The ALMotion and DCM documentation are well wrotten, you should have a look...

Alexandre Mazel
  • 2,462
  • 20
  • 26