justagist / panda_robot

A ROS python interface for using the franka robot (requires franka_ros_interface). Simplified control and management API.
https://justagist.github.io/panda_robot
Apache License 2.0
84 stars 17 forks source link

Unable to identify any set of controllers/Apparently trajectory initialization failed #9

Closed pytalha closed 3 years ago

pytalha commented 3 years ago

I'm trying to control the Panda arm in Gazebo via Python terminal but I keep getting some errors and warnings which can be seen in the screenshots. P.S. I can open and close the gripper but can't quite get the arm moving.

es02 es01

justagist commented 3 years ago

You may be missing the trajectory controller package. Try executing apt install ros-melodic-moveit ros-melodic-ros-control ros-melodic-joint-trajectory-controller and try again.

pytalha commented 3 years ago

Installed the trajectory controller package but the problem persists. Please let me know if you need more details to solve this issue.

justagist commented 3 years ago

Do you still get "Unable to identify any set of controllers" error?

pytalha commented 3 years ago

Yes, still getting the same error.

justagist commented 3 years ago

Can you tell me the sequence of commands you are running to start the simulator? Make sure you are starting the moveit server separately (and not along with panda_world.launch) as explained in the readme of the simulator.

pytalha commented 3 years ago

Oh I wasn't running the MoveIt server. It works now :)

Thanks for the quick reply, Saif!

Please help me understand the parameters in the following command. r.move_to_joint_position([-8.48556818e-02, -8.88127666e-02, -6.59622769e-01, -1.57569726e+00, -4.82374882e-04, 2.15975946e+00, 4.36766917e-01])

I want to pick up the small boxes and then place them on the other box (as shown in the screenshot below). Would be great if you could guide on how this can be done using Python interface. g1

justagist commented 3 years ago

Glad to know it works now. Marking this issue as resolved.

The move_to_joint_positions command takes in as input the 7 joint angles to go to. For your task, you can specify the joint positions (or end-effector positions) for the robot to go to, and execute them using move_to_joint_position or move_to_cartesian_pose methods. If you want to avoid collisions with the big boxes in your plans and trajectory execution, you may want to add them to your planning scene using the ExtendedPlanningSceneInterface which can be accessed using r.get_movegroup_interface().scene. See [create_demo_planning_scene.py]() for example on how to define collision objects in the planning scene. Once you've properly defined them, you can visualise them in RViz for verification.

See documentations for franka_ros_interface and panda_robot for other available methods. Note that all methods from franka_ros_interface.ArmInterface are available with the panda_robot.PandaArm object (r in your code example). Documentations for all methods you need should be available in the above links, as well as in the source code as docstrings. If you are using python interactively in the command-line you can directly access these docs using the help() method (eg. run help(r.move_to_joint_position) to get info about the specified method, or simply help(r) to get all available methods and their docs).

P.S. From the screenshot you show, it looks like the robot description package may be outdated. You may want to update the franka_panda_description package by git pulling the latest version.

dechaojiang commented 7 months ago

Oh I wasn't running the MoveIt server. It works now :)

Thanks for the quick reply, Saif!

Please help me understand the parameters in the following command. r.move_to_joint_position([-8.48556818e-02, -8.88127666e-02, -6.59622769e-01, -1.57569726e+00, -4.82374882e-04, 2.15975946e+00, 4.36766917e-01])

I want to pick up the small boxes and then place them on the other box (as shown in the screenshot below). Would be great if you could guide on how this can be done using Python interface. g1

Hi Pytalha, I encountered same problem as you did. Can you elaborate more on how you run the "MoveIt server" then solve your problem?