Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

What are the pros and cons of using compute_cartesian_path vs. move_group.go()? And when should one be used vs. the other?

  1. Planning to a Pose Goal: When you know the full position(x,y,z) and orientation(x,y,z,w) at that time you have to use this planning to a pose goal. For example, in the world you want your robot to go at a fixed position at that time you can use this.

It is just like telling your robot to go at this axis, but there is a quaternion position over here. You can use this as a hardcoding that means the robot has to go there.

pose_goal.position.x = 0.4
pose_goal.position.y = 0.1
pose_goal.position.z = 0.4
pose_goal.orientation.x =0
pose_goal.orientation.y = 0
pose_goal.orientation.z = 0
pose_goal.orientation.w = 0

Here, these three x,y,z positions you have to give from the robot base_link. Another one is orientation on that location; how the robot orientation should stand how the gripper will be pointing towards the position(X, Y, Z) location.

  1. Cartesian Paths: Example: Let's say I am using a 3d camera, and I got my quaternion from my current_robot_pose; at that time, I have to adjust my robot into x,y,z position to reach the particular location. At that time, I will use Cartesian Paths. Note in place of 3d camera; you can get data from any other sensor also.

In short:

Planning to a Pose Goal- 1. Planning is done from the robot base position. 2. Location should be known.

Cartesian Paths- 1. Planning is done from the robot's current position. 2. Location is unknown.

I hope this helps you. I have tried my best to answer this question, but if you feel wrong or any issue with any point, please! feel free to comment.

Thanks!

What are the pros and cons of using compute_cartesian_path vs. move_group.go()? And when should one be used vs. the other?

  1. Planning to a Pose Goal: When you know the full position(x,y,z) and orientation(x,y,z,w) at that time you have to use this planning to a pose goal. For example, in the world you want your robot to go at a fixed position at that time you can use this.

It is just like telling your robot to go at this axis, but there is a quaternion position over here. You can use this as a hardcoding that means the robot has to go there.

pose_goal.position.x = 0.4
pose_goal.position.y = 0.1
pose_goal.position.z = 0.4
pose_goal.orientation.x =0
pose_goal.orientation.y = 0
pose_goal.orientation.z = 0
pose_goal.orientation.w = 0

Here, these three x,y,z positions you have to give from the robot base_link. Another one is orientation on that location; how the robot orientation should stand how the gripper will be pointing towards the position(X, Y, Z) location.

  1. Cartesian Paths: Example: Let's say I am using a 3d camera, and I got my quaternion from my current_robot_pose; at that time, I have to adjust my robot into x,y,z position to reach the particular location. At that time, I will use Cartesian Paths. Note in place of 3d camera; you can get data from any other sensor also.

In short:

Planning to a Pose Goal- 1. Planning is done from the robot base position. 2. Location should be known.

Cartesian Paths- 1. Planning is done from the robot's current position. 2. Location is unknown.

I hope this helps you. I have tried my best to answer this question, but if you feel wrong or any issue with any point, please! feel free to comment.

Thanks!