Pick - IRS-group/isr_tiago_docs GitHub Wiki
Run
-
Camera launch:
roslaunch perception azure_custom.launch
-
Navigation launch:
roslaunch tiago_navigation bringup_navigation.launch
-
Detectron launch:
roslaunch detectron2_ros detectron2_ros.launch
-
Object Localizer launch:
roslaunch tiago_object_localization tiago_object_localization
Make sure that the method visual_servoing_detection from perception api is running. To run call the method and pass as an argument the name of the object.
Note: visual_servoing_detection runs until the process is killed by the user.
Pick Object modes
The 4 different modes of pick are chosen using the following arguments of the pick_object
method from manipulation api:
moveit = True
: Only uses MoveIt!full_vs = True
: Only uses Visual Servoingmoveit_vs = True
: Uses MoveIt! to pregrasp pose and then Visual Servoing to grasp the objectvs_moveit_vs = True
: Uses Visual Servoing to approach the pregrasp pose, MoveIt! corrects the orientation and after Visual Servoing moves to the grasp pose
For modes that use Visual Servoing, its essential that visual_servoing_detection is running, for mode moveit = True
the pose can be passed as an argument.
Note: moveit_vs
is recommended if the robot is already in a correct position to grasp otherwise, vs_moveit_vs
is recommended if the robot is not in a correct position to grasp the object.
Relevant Arguments and ROS Topics
Arguments
-
pregrasp_shift=[]
: xyz shift apllied to the position received from the object localizer. This shifted position will used as the pregrasp position. The shift is made in the object frame. -
shift_xyz=[]
: xyz shift applied to the position received from the object localizer. This shifted position will used as the grasp position. The shift is made in the object frame. -
new_orientation=None
: The orientation the gripper will have when MoveIt! is used. -
lift = False
: Used to lift the object after pick. Mainly used for demonstration. -
Single_pose = False
: If true, Visual Servoing uses a single pose, passed as argument, instead of visual_servoing_detection continuous publish. Not recommended. -
initial_gain
: Visual Servoing gain (ifvs_moveit_vs
is selected is the gain for the first Visual Servoing) -
final_gain
: ifvs_moveit_vs
is selected is the gain for the final Visual Servoing otherwise irrelevant
ROS Topics
-
/visual_servoing/noMove
: if 1 is published the publishing of joint values is stopped (robot does not move). To start joint movement the flag must be 0. -
/visual_servoing/use_torso
: if 1 is published Visual Servoing will include the torso in the motion else if 0 the torso won't be considered. -
/visual_servoing/use_base
: if 1 is published Visual Servoing will include the base in the motion else if 0 the base won't be considered. (if the flag is 1 the torso will always be included) -
/visual_servoing/visual_servoing_k
: Visual Servoing gain (must be < 0). -
/visual_servoing/visual_servoing_stopping_distance
: distance threshold to stop Visual Servoing.