-
Notifications
You must be signed in to change notification settings - Fork 27
Description
Dear author,
First of all, thank you for developing franky—it has been a great tool for my single-arm robotic projects!
Recently, I started working on a dual-arm setup, and I’d like to continue using franky to control both Franka Emika arms from the same computer. However, I’ve encountered an issue when trying to control both robots concurrently.
Problem Description
When I run motions on both robots in the same script, the first robot to start moving exhibits unexpected disturbances or jerky behavior (as shown in this video). The issue does not occur when controlling each robot individually.
from franky import Robot, Gripper, JointWaypoint, JointWaypointMotion
def move_home_async(robots, grippers):
home_joint_angles = [-0.00297146, -1.27808701, -0.06180186, -2.59758093, -0.01405989, 1.3100147, 0.78735533]
motion = JointWaypointMotion([JointWaypoint(home_joint_angles)])
for robot, gripper in zip(robots, grippers):
gripper.open(0.1)
robot.recover_from_errors()
robot.move(motion, asynchronous=True)
for robot in robots:
robot.join_motion()
if __name__ == "__main__":
robot_ip_list = ['172.16.0.2', '172.16.1.2']
robots_list = []
grippers_list = []
for robot_ip in robot_ip_list:
robot = Robot(robot_ip)
robot.relative_dynamics_factor = 0.15
robots_list.append(robot)
grippers_list.append(Gripper(robot_ip))
move_home_async(robots_list, grippers_list)Does franky officially support controlling multiple Franka robots from a single host machine?
If yes, what is the recommended approach (e.g., separate threads, processes, or specific API patterns)?
Any guidance or example code for multi-robot control would be greatly appreciated!
Thank you again for your excellent work!
Best regards,