You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi,
I am trying to control two panda-robots via libfranka (without ros).
The robots are directly connected to my network card.
I set IP addresses "172.16.0.2" and "172.16.1.2" and can ping them both.
I can control them individually without any problem.
Unfortunately, I did not find an example for multi-panda control, so I wrote my own one, see below.
The following test program is able to control a single robot, but fails when controlling two robots.
The control_command_success_rate received is always zero for the first robot and drops to zero for the second robot after approximately 40-60 iterations.
Note that the motion_id received is identical for both pandas. Is this a problem?
Could you please provide a running example?
kind regards
Niels
As already state by Christoph in the Franka Community, the problem here is that you control everything in one thread, so I would not consider that as a bug of libfranka.
To elaborate on this a bit more: The FCI control loop operates at 1kHz, so we need every millisecond a control command. The time you have on the libfranka side is even far lower, as the network delay, processing and checking of your commands, etc. takes time. Late control commands are considered as lost, we check that through the sequence number which is sent out in the robot state and received by a control command. There is no buffering of your commands happening, we will just interpolate depending on your previous commands or stop the robot if the control_command_success_rate is too low.
The problem now of having two robots controlled in one thread is that the internal FCI clock is not synchronized between the robots (how should they). So the cycles between robot 1 and robot 2 are shifted by a (random) delta (with 0 <= delta < 1ms). In your code you wait for the robot states after each other, what only works when delta is near 0. If delta is nearer to 1ms all packets for one robot arrive late at the FCI and are dropped.
You can use our ROS implementation or I would be happy reviewing a PR for a libfranka implementation (example).
Hi,
I am trying to control two panda-robots via libfranka (without ros).
The robots are directly connected to my network card.
I set IP addresses "172.16.0.2" and "172.16.1.2" and can ping them both.
I can control them individually without any problem.
Unfortunately, I did not find an example for multi-panda control, so I wrote my own one, see below.
The following test program is able to control a single robot, but fails when controlling two robots.
The
control_command_success_rate
received is always zero for the first robot and drops to zero for the second robot after approximately 40-60 iterations.Note that the
motion_id
received is identical for both pandas. Is this a problem?Could you please provide a running example?
kind regards
Niels
The text was updated successfully, but these errors were encountered: