:)
URDF기반 자동차 3D모델링 본문
로봇 모델링 언어
- ROS는 로봇을 3D로 모델링하는 언어를 지원
- URDF : Unified Robot Description Format
- 로봇의 3D 형상 및 외관, 관성 등 물리적 특성 등을 XML 언어로 정의함
- URDF로 정의된 로봇 모델은 RVIZ에서 3차원으로 보거나 Gazebo에서 물리 시뮬레이션 가능
URDF 좌표계와 단위
- 좌표계
- 위치나 크기를 표현하기 위해 데카르트 좌표계 x,y,z 사용
- 회전을 표한하기 위해 오일러각도 roll,pitch,yaw를 사용
- 단위
- 길이 : 미터 m
- 각도 ; 라디안 radian
- 질량 : 킬로그램 kg
- 속도 : m/s (병진/직진운동)
- 각속도 : radian/s (회전운동)
URDF 형상과 색상 표현
- 형상 표현
- cylinder : 원통
- box : 상자
- sphere : 공
- 색상표현
- RGB + 투과율 A를 0~1 사이의 숫자로 정의
URDF 기구 표현
- 기구의 표현
- Base : 고정 부분(grounded)
- Link : 관절에 연결되는 로봇 팔의 부분
- Joint : 링크를 연결하는 부위로 보통 모터의 회전을 통해 움직임을 만듦
- fixed : 고정
- revolute : 작동 범위 제한
- continuous : 연속회전
URDF - XML
- link 태그의 구성
<visual> : 시각화를 위해 형상과 위치를 정의 <geometry> : 형상 정의 (원통, 상자, 공) <orgin> : 꼬정축을 기준으로 Link 형상의 roll, pitch, yall 위치를 라디안으로 나타내고 x,y,z 좌표 위치를 미터 단위로 지정함 <material> : 형상의 컬러값을 지정
- joint 태그의 구성 ( 형상으로 표현되지 않음)
<parent> : parent frame의 이름을 지정해서 child frame과 연결
<child> : child frame의 이름을 지정해서 parent frame과 연결
<orogin> : 고정축을 기준으로 형상의 Roll, pitch, yall 위치를 라디안으로 나타내고 x,y,z 좌표 위치를 미터 단위로 지정. joint는 parent의 orgin을 child는 joint의 Origin을 고정축으로 정함
<limit> : Joint의 운동범위 제한값을 지정
lower : revolute type의 joint에서 최저 각을 지정
upper : revolute type의 joint에서 최대 각을 지정
effort : N 힘의 최대값을 지정
velocity : radian/s 최대속도를 지정함
RVIZ에서 회전막대 시각화
- ex_urdf 패키지 만들기 (ROS workspace의 src 폴더에 작업)
- $ catkin_create_pkg ex_urdf roscpp tf geometry_msgs urdf rviz xacro
- 서브 폴더 만들기
- /urdf 폴더 만들기 & pan_tilt.urdf 파일작성
- 서브 폴더 만들기
- launch 폴더 만들기 & view_pan_tilt_urdf.launch 만들기
- 생성된 파일 확인
- check_urdf pan_tilt.urdf (작성된 urdf 파일에 문법적인 오류가 있는지 확인)
- urdf_to_graphiz pan_tilt.urdf ( link와 joint 관계도를 PDF 파일로 만들어준다.)
roslaunch ex_urdf view_pan_tilt_urdf.launch
'ROS' 카테고리의 다른 글
자이카 센서 (0) | 2022.03.11 |
---|---|
RVIZ 오도메트리 활용 (0) | 2022.03.10 |
자이카 ROS 패키지 (0) | 2022.03.07 |
ROS 설치와 구동 실습 (0) | 2022.03.06 |
ROS 기초 (0) | 2022.03.05 |
Comments