moveit / panda_moveit_config

The Panda robot is the flagship MoveIt integration robot
http://docs.ros.org/kinetic/api/moveit_tutorials/html/
100 stars 171 forks source link

Two panda robots #105

Closed MahmoudSalem92 closed 1 year ago

MahmoudSalem92 commented 2 years ago

Dear all,

I am working with two real panda robots. I built a MoveIT package for interface with the two panda robots and it works fine in the simulator. Then, I configured the controllers.yaml to act with the real two robots via the combined_panda/effort_joint_trajectory_controller and I can read and visualize the robots state/joints values (/combined_panda/joints) in the Rviz.

I have three planning groups in the moveIT package. 1- panda_1 (panda_1_joint1 … panda_1_joint7) 2- pnada_2 (panda_1_joint1 … panda_2_joint7) 3- combined_panda (panda_1_joint1 … panda_1_joint7 … panda_2_joint1 … panda_2 _joint7)

From rviz, I can control both robots (combined_panda planning group) to reach different/random poses, and it is working fine. But I can not control one robot separately (I can not use ( panda_1 planning group or panda_2 planning group), it gives the following error, franka_comined_control “ERROR: joints on incoming goal don’t match the controller joints”

So, I run different move_groups on a script: 1- for panda_1 2- for panda_2 and execute the two move_goups as two threads in the script. But it still doesn’t work.

When I worked with the combined group (14 joints → which has the two subgroups (panda_1 and panda_2)), and I set a target pose for every robot (panda_1 and panda_1) and execute them from one planning group by setting the pose target and gripper link of every robot. It give me these error: ‘’ Unable to solve planning problem’’ ‘’ More than one constraint is set. If your move_group does not have multiple end effector/arms, this is unusual. and a move_group interface and forgetting to call clearPoseTargets () or equivalent?’’

Can anyone help me in this regard ?

rhaschke commented 2 years ago

Sorry for the late reply. Looks like nobody tracks issues here...

I guess franka_combined_control expects all joint targets to be present in a command. Instead of using combined control, I suggest using two separate franka_ros controllers, one for each robot. Then, in MoveIt you can define to use different controllers for the two separate robot groups. The combined group automatically splits trajectory commands onto the available controllers.