Skip to content

Grasp with Sandia hands

kyungmin5257 edited this page Mar 22, 2018 · 2 revisions

Overview

이번 장에서는 단순히 ROS 토픽 퍼블리셔를 사용하여 Atlas robot에 달린 Sandia 손이 잡는 동작을 하도록 할 것이다. In this tutorial, we'll send desired grasp pose to Sandia hands mounted on an Atlas robot in simulation through the use of a simple ROS topic publisher.

Running the Simulation

DRC robot simulation을 시작 하여라.

roslaunch drcsim_gazebo atlas_sandia_hands.launch

다음 타이핑 하여 Sandia 손을 제어하는 노드를 확인하여라.

$ rosservice list | grep sandia_hand

출력에 쥐는 동작을 위해 Sainda 손 서비스를 포함한다.

/sandia_hands/l_hand/simple_grasp
/sandia_hands/r_hand/simple_grasp

제공되는 서비스의 유형에 대한 더 많은 정보를 얻기 위해서 다음을 타이핑 하여라.

rosservice info /sandia_hands/l_hand/simple_grasp

다음의 출력물이 나온다.

Node: /sandia_hands/l_hand/simple_grasp_left
URI: rosrpc://lcp1:37083
Type: sandia_hand_msgs/SimpleGraspSrv
Args: grasp

서비스 타입은 sandia_hand_msgs/SimpleGraspSrv이다. 이것은 SimpleGrasp message를 포함한다. 그것이 무엇 인지 확인 하자.

rosmsg show SimpleGrasp

출력물은 다음과 같다.

[sandia_hand_msgs/SimpleGrasp]:
string name
float64 closed_amount

name은 쥐는 유형에 따라 "cylindrical", "prismatic", "spherical" 값을 가진다. 쥐는 양의 값은 0과 1사이다. 0은 손을 편 상태이며 1은 쥔 상태이다. 다음 제어기에 대한 코드는 여기에서 simple_grasp.py in the sandia_hand_teleop package 확인 가능하다.

다른 터미널에서 왼쪽 손의 절반 정도를 쥐는 서비스 콜을 실행한다.

rosservice call /sandia_hands/l_hand/simple_grasp ' { grasp: { name: "spherical", closed_amount: 0.8 } }'

Table of Contents




Clone this wiki locally