본문 바로가기

Robot/Robot Program - ROS

ROS Moveit으로 turtlebot_arm 프로젝트 설치 후 구동해 보기

많은 예약글의 발행의 폐단으로 이 글이 발행될 때 제 상황이 어떨지 몰르겠네요^^. 현재 ROS 관련된 학습의 경우 저는 현재 겨우 초보적 수준으로 고수가 만들어 둔 프로젝트를 그저 따라만 하고 있는 수준입니다.ㅠㅠ. 그리고 제 오랜 습관대로 극 초반 따라하기 수준의 글을 더더욱 공들여서 작성하고 있구요.^^. 그건 제가 블로그를 다른 이에게 보여주는 용도보다 제가 필요할 때 다시 열람하는 노트의 의미를 더 두고 있기 때문이구요^^ 뭐 아무튼 그렇다는 거죠^^. 이 번 글은 종종 언급되는 로보티즈 표윤석 박사님의 자료를 정말 .. 정말 그~~~대로 따라하는 글입니다. 제가 표 박사님께 선물을 받았다[바로가기]는 글을 적었는데요. 이 선물을 받고 표박사님의 설명 글을 찾아서 그대로 따라하는 거죠. 그 글은 [바로가기]에 있습니다. 현재 저는 Ubuntu 14.04ROSIndigo 버젼에 맞춰서 진행 중입니다.^^

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src

일단 시작은 catkin workspace가 없다면 위 명령으로 만들어 줍니다.

그리고...

git clone https://github.com/oroca/turtlebot_arm.git

제가 선물 받은 turtlebot_arm의 프로젝트를 git에서 받도록 하죠.

그러면 저렇게 모두 잘 다운받았네요. 앞으로 저는 저 내용을 모두 학습하는 것으로 ROS 공부를 대신할려고 합니다.^^

아~ 혹시나 하고 터미널을 실행할때 마다 ROS의 프로젝트에 접근을 용이하게 할려면 위 그림처럼 116번 줄의 내용을 추가해 둡니다.

git clone https://github.com/ROBOTIS-GIT/ROBOTIS-Framework.git

그리고, robotisdynamixel관련 프레임웍도 git에서 받아 둡니다.^^.

sudo apt-get install ros-indigo-moveit-*
sudo apt-get install ros-indigo-arbotix-*
sudo apt-get install ros-indigo-ros-control

이제 위 명령들로 Moveitdynamixel관련 라이브러리를 받아 둡니다. 이제...

catkin_make

~/catkin_ws폴더에서 catkin_make를 실행해서 빌드합니다...

roslaunch turtlebot_arm_bringup arm_4dof_sim.launch

이제 위 명령을 실행하면...

RViz가 실행되면서 이런 화면과 함께 각 축을 가동 시켜 볼 수 있게 됩니다.

ㅎㅎ 여기서 이 자료의 원 저자이신 표박사님께서는 위 코드를 분석해보라고 하시네요~^^ 저도 이 글 이후에는 이 프로젝트의 내용을 학습할 생각입니다. 지금은 따라하기 계속 진행 중~~

roslaunch moveit_setup_assistant setup_assistant.launch

이제 위 명령을 실행하면...

Moveit 화면이 나타납니다. 저기서 Create_New...을 클릭하면

위 경로에서 arm_4dof.urdf.xacro를 선택하면...

저런 화면을 볼 수 있습니다. 이제 Load Files를 선택합니다.

그러면 Success~!라는 메세지를 볼 수 있습니다.^^.

이제 Self-Collisions를 선택하고, Regenerate Default Collision Matrix를 선택합니다.

충돌과 관련된 설정을 할 수 있다는데... 전 뭐 따라하기니 그냥 이대로 패스합니다.%^^

그리고 Virtual JointAdd Virtual Joint를 눌러줍니다.

거기서 위 화면 처럼 입력합니다.

그러면 위와 같이 Virtual Joints가 설정될 겁니다.

이제 Planning Groups를 선택하고 Add Group을 선택합니다.

그리고 위 화면처럼 입력한 후 Add Kin.Chain을 선택합니다.

위 화면에서 Expand All을 선택하고~~

펼쳐진 화면에서 arm_base_linkBase Link로 선택합니다.

그리고 gripper_linkTip_Link로 선택합니다. 그리고 Save~~

그러면 위 화면처럼 나타납니다^^ 위 화면에서 다시 Add Group을 선택하고...

위 그림처럼 입력해서 gripper를 만듭니다. 그리고 Add Joints를 선택합니다.

gripper_joint를 선택해서 Selected Joints로 넘겨 줍니다.

이제 위 화면에서 Links를 선택하고 Edit Selected를 누릅니다.

거기서 위에 선택된 14~17번 링크를 선택합니다. 그리고 Save~~

그러면 위 그림처럼 결과가 나옵니다.^^

이제 Robot Poses를 선택합니다. 그리고 Add Pose....

위 그림처럼 입력합니다.

그리고 forward를 잡아주구요~^^

이번에느 gripper의 close를 정의해 둡니다.

이번에는 open~~

설정이 끝나면 저런 결과를 얻어야 합니다.^^

이제 End Effectors를 선택합니다.

그리고.. 위 그림처럼 설정합니다.^^

그럼 저렇게~~~

이제 Passvie Joints를 설정하고~ Configuration Files에서

위 폴더를 선택해 주면~~

위와 같이 됩니다^^ 위에서 Generated Package를 눌러줍니다.

Successfully~~ OK~^^ 이제~ moveit 단계는 끝났네요... 편집된 moveit 설정을 재 편집할 때는

roslaunch turtlebot_arm_4dof_moveit_config setup_assistant.launch

와 같은 명령을 주면 된답니다.^^ 뭐 여하튼 잘 되었는지 확인하러 고고~~

roslaunch turtlebot_arm_4dof_moveit_config demo.launch

네~ demo.launch를 실행하면 다시 RViz 화면이 나타나면서 뭔가 멋드러진 화면이 나타납니다.^^.

저렇게 움직여 지기도 하구요~~

그 후 위 그림의 Planning탭의 Plan and Execute를 실행하면

위 그림과 같은 결과를 얻을 수 있습니다. 아 물론 kinematic chain이 설정되었으니 역기구학 정도는 손쉽게 풀리는 듯 합니다.^^

참~ 하면 할 수록 재미있는 것이 ROS이면서 또 한 편으로는 정말 공부해야 할 것이 많은 것도 ROS입니다. 대단대단~~~&^^...

반응형