ROS 활용방법#
주요 내용#
00:22 📚 두산로보틱스는 다양한 교육 과정을 온라인과 오프라인으로 제공하고 있습니다.
01:09 🤖 로스(ROS) 패키지 활용 방법에 대한 3시간 강의 예정입니다.
01:41 📖 로스에 대한 개략적인 설명 후 두산 로스 패키지 사용 방법을 상세히 설명할 예정입니다.
02:02 🌐 로스는 로봇 응용 프로그램 개발을 위한 포괄적인 소프트웨어 플랫폼입니다.
02:47 👥 로스는 활성화된 커뮤니티와 안정적인 생태계를 갖추고 있습니다.
03:35 🔄 로스 키네틱 버전 기반 강의 진행, 우분투 16.04에서 작동합니다.
04:23 📦 두산 로스 패키지는 로스1 및 로스2 지원 계획을 가지고 지속적으로 업데이트됩니다.
05:30 ☁️ AWS RoboMaker와 두산 로스 패키지 연동 가능합니다.
06:28 💻 윈도우즈 환경에서 로스 개발을 지원할 예정입니다.
07:12 🔧 두산 로보틱스 로스 패키지 설치 및 빌드 방법 안내입니다.
08:38 🛠️ 패키지 클론 후 필요한 의존성 패키지 설치가 필요합니다.
09:46 🏗️ 빌드 완료 후 ROS 환경에 패키지를 등록하여 사용합니다.
10:35 🤖 조인트 상태 퍼블리셔 GUI와 RViz를 통해 두산 로봇 모델의 움직임 확인 가능합니다.
14:28 🖥️ 런치 파일 실행으로 3D 시각화 도구에서 로봇 모델 시뮬레이션 가능합니다.
17:44 🔄 로스의 통신 메커니즘에 대한 설명, 토픽, 서비스, 액션의 개념을 소개합니다.
20:38 📦 로스의 소프트웨어 구성은 패키지 단위로 이루어지며, 응용 프로그램은 패키지 단위로 개발됩니다.
20:53 📦 매 패키지는 공통된 목적을 지닌 패키지들의 집합입니다. 각 패키지는 패키지 정보를 담은 XML 파일을 포함합니다.
21:39 🛠️ 로스 명령어 및 도구는 로스 개발 환경에서 지속적으로 사용됩니다. 자세한 정보는 로스 위키에서 확인 가능합니다.
22:34 ⚙️ 실행 명령어는 로스 노드의 실행을 주관하며, 로스코어는 로스의 필수적인 마스터를 실행시키는 명령어입니다.
23:22 📋 패키지 정보, 설치, 로스 패키지 조작에 사용되는 명령어들이 있습니다. 주로
rosrun
과roslaunch
명령어가 자주 사용됩니다.24:27 📊 RViz는 로스의 3차원 시각화 도구로, 사용자는 로스의 메시지를 3차원으로 표시할 수 있습니다.
25:49 🖥️ Gazebo는 오픈 소스 가상 시뮬레이션 툴로, 로스와 연동하여 로봇의 가상 시뮬레이션을 진행할 수 있습니다.
28:10 📈 RQT는 다양한 GUI 도구를 제공하여, 현재 노드나 메시지 상태를 쉽게 확인하고 디버깅할 수 있게 해줍니다.
29:41 🤖 두산 로스 패키지는 로스 상에서 두산 로봇을 제어하기 위한 환경을 제공합니다.
31:12 🔧 DSR 컨트롤 패키지는 로봇 제어를 위한 핵심 모듈이며, 실제 제어기와 통신합니다.
32:21 🔄 조인트 포지션 컨트롤러는 각 관절을 독립적으로 제어할 수 있는 컨트롤러입니다.
33:04 📚 두산 로스 패키지의 소스는 공개적으로 접근 가능하며, 다양한 브랜치를 통해 관리됩니다.
34:26 🛠️ 각 패키지는 특정 기능에 따라 구성되며, 예제 파일을 포함하여 사용자가 참고할 수 있습니다.
37:25 🌐 DSR Gazebo 패키지는 Gazebo 환경 실행을 위한 설정 파일과 런치 파일을 포함합니다.
39:20 🔄 MoveIt! 컴피그 패키지는 각 모델별로 구성되며, 로봇의 모션 플래닝을 지원합니다.- 43:37 🖥️ 버추얼 모드와 리얼 모드를 선택하여 로봇 시뮬레이션과 실제 로봇 제어가 가능합니다.
44:31 🤖 다양한 런치 파일을 통해 단일 로봇 실행, RViz 및 Gazebo와의 연동이 지원됩니다.
45:13 🔄 네임스페이스, 호스트 IP, 포트 등 다양한 실행 옵션을 제공하여 유연한 환경 설정을 지원합니다.
46:14 🎨 로봇 모델의 색상을 선택할 수 있는 옵션을 제공하며, 시뮬레이터 상에 그리퍼와 모바일 확장 모듈의 디스플레이가 가능합니다.
47:31 📌 RViz와 Gazebo에서 로봇 모델의 움직임을 동시에 시뮬레이션할 수 있습니다.
48:19 🛠️ 로스 서비스 명령어를 사용하여 로봇에 다양한 동작 명령을 전송할 수 있습니다.
49:04 📖 DSR 예제 파일을 통해 특정 조인트를 이동시키는 등의 복잡한 로봇 작동이 가능합니다.
50:13 🌍 실제 로봇과의 연결을 위해 런치 파일에 로봇 제어기의 IP와 포트 설정이 필요합니다.
51:34 ⚙️ MoveIt 커맨더를 사용하여 CLI 환경에서 로봇의 동작을 직접 제어할 수 있습니다.
53:22 💬 DSR 메시지 패키지에는 로스 토픽과 서비스를 위한 메시지 파일이 정리되어 있어, 통신 기능을 쉽게 구현할 수 있습니다.
01:06:31 🔄 서비스 콜백을 통해 로봇의 다양한 기능을 사용자 정의 서비스로 활용할 수 있습니다.
01:07:04 🤖 컨트롤 노드는 DRFL API를 통해 로봇 제어기와 통신하여 로봇을 작동시킵니다.
01:07:50 📊 로봇의 다양한 상태는 16개로 분류되며, 각 상태별 사용 가능한 명령어가 다릅니다.
01:08:52 💻 컨트롤 노드의 콜백 함수는 DRFL과 연결되어 TCP/IP 통신을 통해 명령어를 전송합니다.
01:10:10 🏠 홈 완료 시 실행되는 콜백 함수를 통해 로봇의 초기화 상태를 확인하고 추가 기능을 구현할 수 있습니다.
01:11:12 📈 모니터링 데이터 콜백 함수는 로봇 제어기로부터 주기적인 데이터 수신 시 실행되어 중요한 정보를 제공합니다.
01:14:27 🆕 2.5 버전 이상의 제어기를 사용할 경우, 확장된 모니터링 데이터에 대해 EX 콜백 함수를 사용해야 합니다.
01:17:09 🛠️ 예제 파일의 네임스페이스는 컨트롤 노드의 네임스페이스와 일치해야 서비스와 토픽이 정상적으로 작동합니다.
01:21:09 🐍 예제 파일은 Python으로 구현되어 있으며, DRL과 호환 가능한 문법을 지원합니다.
01:31:48 🕹️ 조이스틱을 이용한 두산 로봇의 움직임 제어 예제 소개
01:32:10 📝 싱글 로봇 심플 파이썬 파일을 복사하여 조이스틱 테스트 파일 작성 방법 설명
01:32:52 🛠️ 조이 메세지 사용을 위한 센서 메세지 모듈 추가 및 변수 선언 과정
01:34:11 🚀 조이스틱 아날로그 스틱 및 버튼 입력에 따른 플래그 변수 추가 설명
01:36:14 🔧 멀티 조그 기능 활용을 위한 퍼블리싱 설정 및 조그 벨로시티 변수 설정
01:37:01 📈 조이 콜백 함수를 통한 조이스틱 입력 처리 및 로봇 명령어 실행 과정
01:38:01 🧵 멀티 조그 발행을 위한 별도 스레드 생성 및 반복 실행 설정
01:39:33 🔄 조이 콜백 함수 내 조이스틱 입력에 따른 플래그 설정 및 명령어 지정 방법
01:41:20 🎮 조이스틱 버튼 이벤트에 따른 플래그 변화 및 로봇 명령어 전송 과정
01:45:28 🤖 조그 기능의 단축 및 다축 조작 방법 설명 및 실제 조작 예시 시연