I have an ABB IRB 1200 robotic arm that I'm controlling with MoveIt in ROS Noetic.
Using move_group.set_pose_target(pose)move_group.set_pose_target(pose)
, I'm getting weird inefficient motions sometimes.
Using move_group.set_joint_value_target(pose,True)move_group.set_joint_value_target(pose,True)
, I'm NOTnot getting weird motions.
However, obstacle avoidance is only supported using set_pose_target()set_pose_target()
, because it plans in cartesian space.
How can I get the best of both worlds, ie. efficient motions and obstacle avoidance?
I tried:
- increasing planning attempts: move_group.set_num_planning_attempts(20)
move_group.set_num_planning_attempts(20)
- didntdidn't work
- increase tollerancetolerance: move_group.set_goal_tolerance(0.01)
move_group.set_goal_tolerance(0.01)
- weird motions occurred less often.
I'm using the Trac solver:
- kinematics_solver: trac_ik_kinematics_plugin/TRAC_IKKinematicsPlugin
- kinematics_solver_search_resolution: 0.005
- kinematics_solver_timeout: 0.005
- solve_type: Distance
- kinematics_solver: trac_ik_kinematics_plugin/TRAC_IKKinematicsPlugin
- kinematics_solver_search_resolution: 0.005
- kinematics_solver_timeout: 0.005
- solve_type: Distance
And BiTRRT for path planning:
planner_configs:
BiTRRT:
type: geometric::BiTRRT
range: 0.0
temp_change_factor: 0.1
init_temperature: 100
frountier_threshold: 0.0
frountier_node_ratio: 0.1
cost_threshold: 1e300
manipulator:
default_planner_config: BiTRRT
planner_configs:
- BiTRRT
- etc
projection_evaluator: joints(joint_1,joint_2)
longest_valid_segment_fraction: 0.005