본문 바로가기

Robotics

43일차 - OpenManipulator 의존성 패키지 설치 및 RViz & Gazebo 테스트

반응형

OpenManipulator & MoveIt! 의존성 패키지 설치

https://emanual.robotis.com/docs/en/platform/openmanipulator_x/quick_start_guide/

sudo apt-get install ros-melodic-moveit* ros-melodic-gazebo* ros-melodic-industrial-core ros-melodic-ros-controllers
cd ~/catkin_ws/src
git clone -b melodic-devel https://github.com/ROBOTIS-GIT/dynamixelSDK.git
git clone -b melodic-devel https://github.com/ROBOTIS-GIT/dynamixel-workbench.git
git clone -b melodic-devel https://github.com/ROBOTIS-GIT/dynamixel-workbench-msgs.git

git clone -b melodic-devel https://github.com/ROBOTIS-GIT/open_manipulator.git
git clone -b melodic-devel https://github.com/ROBOTIS-GIT/open_manipulator_msgs.git
git clone -b melodic-devel https://github.com/ROBOTIS-GIT/open_manipulator_simulations.git
git clone -b melodic-devel https://github.com/ROBOTIS-GIT/robotis_manipulator.git
cd ~/catkin_ws && catkin_make

RViz 실행하기

다음 명령어를 실행하여 이전 시간에 했던 것처럼 Open ManipulatorRViz를 통해 시각화 해볼 수 있습니다.

roslaunch open_manipulator_description open_manipulator_rviz.launch

다만, 이번에는 urdf가 약간 다릅니다. Open Manipulator는 이전에도 설명했었던 xacro(XML Macro)를 사용합니다. xacro를 사용하면 반복되는 부분을 쉽게 처리할 수 있습니다. xacro 문법이 기타 urdf 태그와 충돌하는 걸 방지하기 위해 xmlns:xacro="http://ros.org/wiki/xacro" 속성을 설정하여 xacro 태그에 대한 접두사를 지정해줍니다.

<robot name="open_manipulator" xmlns:xacro="http://ros.org/wiki/xacro">
  <!-- ... -->
  <xacro:include filename="$(find open_manipulator_description)/urdf/open_manipulator.gazebo.xacro" />
  <xacro:include filename="$(find open_manipulator_description)/urdf/materials.xacro" />
  <!-- ... -->
  <limit velocity="4.8" effort="1" lower="${-pi*0.9}" upper="${pi*0.9}" />
  <!-- ... -->
</robot>

이외에도 기존 urdf에서 불가능한 연산 작업 등을 할 수 있습니다.

더 알아보기: http://ros.org/wiki/xacro

Gazebo 실행하기

다음 명령어를 실행하여 Gazebo에서 Open Manipulator를 시뮬레이션할 수 있습니다.

roslaunch open_manipulator_gazebo open_manipulator_gazebo.launch

rostopic에서 다음과 같은 토픽을 발행하면 자세를 움직일 수 있습니다.

rostopic pub /open_manipulator/joint2_position/command std_msgs/Float64 "data: -1.0" --once

joint2 대신 다른 관절 이름을 사용하면 해당 관절이 회전하는 걸 볼 수 있습니다.

반응형