I found what I believe is a relevant answer here, and I think it's relevant because of the following lines in your serial_server.py file:
#When it has been initialized, it'll start executing the following callback.
def executeCallback(self, goalHandle):
# <other code>
#Send a small Hello to Arduino.
arduino = serial.Serial(port=&...
Conceptually multiple-dof join is a series of 1-dof joints in sequence. Such decomposition allows you to model your control system and do stuff like inverse- and forward kinematics.
For example - if you have something like a 'ball-joint', 2-dof, you will still need two motors to control it, two control signals to calculate (and transmit), each of them might ...
I'm not sure if this helps or not, but Discovery models manufactured before November 2005 do not contain the entirety of the SCI set. For more information on this, see the first paragraph of the SCI specification for Discovery Series. It is possible that your robot is one of the unlucky ones. Unfortunately, I'm not aware that the OSMO upgrade modules for ...
I'm not sure if/how pyserial works with a bytearray, but the way it is typically done is with the struct library. Here is some sample code:
ser = serial.Serial("/dev/ttyUSB0", 57600)
# compute left and right wheel velocities
right_vel = int(velocity + (rotation/2))
left_vel = int(velocity - (rotation/2))
cmd = struct....
This might be "normal", depending on how the signal is acquired. Whenever a signal is derived, timing of the signal acquisition is crucial.
Counting ticks is not time sensitive, as it does not matter if one tick is acquires a few microseconds later or earlier, what matter is, that it is acquired.
For deriving a velocity from the ticks of an encoder,...