본문 바로가기

ROS2

[두산로보틱스] 협동로봇 스포츠 스태킹 프로젝트

협동로봇 프로젝트.pdf
1.72MB

 

 

 


프로젝트 개요

두산로보틱스 협동로봇을 활용하여 스포츠 스태킹(컵 쌓기) 작업을 자동화하는 프로젝트를 진행했습니다. 본 프로젝트는 trans 함수를 활용해 상대 좌표값으로 로봇 동작을 제어하여 티칭 과정 없이 작업을 수행하는 혁신적인 방식을 도입하였습니다. 또한, Docker 기반 Visual/Real 모드 전환 기능을 추가해 시뮬레이션과 실제 작업 환경 간 유연한 전환이 가능하도록 구현하였습니다. DevOps 접근법을 적용하여 효율적인 개발, 테스트, 배포 프로세스를 구축하였습니다.


주요 구현 사항

1. 상대 좌표계 기반 컵 쌓기

  • trans 함수를 사용하여 모든 컵의 위치를 상대적으로 계산.
  • 힘 제어를 통해 컵의 정확한 위치를 감지하고 안정적으로 배치.
  • 티칭 없이도 모든 동작이 정밀하게 수행되도록 설계.

2. Docker 기반 Visual/Real 모드 전환

  • Visual 모드: 시뮬레이션 환경에서 로봇 동작을 검증.
  • Real 모드: 실제 로봇과 연동하여 작업 수행.
  • Docker 패키징을 통해 간단히 실행 및 배포 가능.

3. DevOps 접근법 적용

  • CI/CD(Continuous Integration/Continuous Deployment) 파이프라인 구축.
  • Docker 이미지를 활용한 개발 환경 통일로 협업 및 유지보수 효율성 향상.
  • 모든 배포 프로세스 자동화로 오류 최소화.

4. GUI 통합 제어 시스템

  • 작업 시작/정지 및 비상 정지 기능 제공.
  • 실시간 로그로 작업 상태 확인.

기술적 구현

로봇 동작 알고리즘

  • 컵 픽업:
    def pick_up():
        movel(cup_pos, vel=30, acc=30, ref=DR_BASE)
        grip_gripper()
        movel(trans(cup_pos, posx(0, 0, 30, 0, 0, 0)), vel=30, acc=30, ref=DR_BASE)
    
  • 목표 위치 배치:
    def place_cup(target_pos):
        intermediate_pos = trans(target_pos, posx(0, 0, 50, 0, 0, 0))
        movel(intermediate_pos, vel=30, acc=30, ref=DR_BASE)
        release_gripper()
        movel(trans(intermediate_pos, posx(0, 0, -50, 0, 0, 0)), vel=30, acc=30, ref=DR_BASE)
    

Visual/Real 모드 전환

  • Docker 환경을 활용해 두 가지 모드를 지원:
    # Visual 모드 실행
    docker run -e MODE=visual project:latest
    
    # Real 모드 실행
    docker run -e MODE=real project:latest
    

힘 제어를 통한 위치 정밀성 확보

  • 힘 조건 확인 후 컵의 높이를 자동으로 감지하여 배치:
    while not check_force_condition(DR_AXIS_Z, max=5):
        wait(0.1)
    release_compliance_ctrl()
    

DevOps 자동화 파이프라인

  • Docker 이미지를 활용하여 빌드, 테스트, 배포 프로세스 자동화.
  • GitLab CI/CD를 통해 코드 변경 사항을 지속적으로 통합하고 배포.
  • 개발 환경과 프로덕션 환경 간 일관성 유지.

성과

  • 11개의 컵으로 380mm 높이의 안정적인 피라미드를 5분 내에 완성.
  • 작업 오류: 0건.
  • 티칭 없이 상대 좌표 계산만으로 작업 완수.
  • Visual/Real 모드 전환으로 개발 및 테스트 효율성 향상.
  • DevOps 접근법으로 배포 과정에서 발생할 수 있는 오류를 대폭 감소.

결론

본 프로젝트는 협동로봇을 활용하여 티칭 과정 없이 상대 좌표값으로 작업을 제어하는 혁신적인 방식을 성공적으로 구현했습니다. Docker 기반의 Visual/Real 모드 전환 기능과 DevOps 접근법을 통해 개발, 테스트, 배포의 효율성을 크게 개선하였으며, 힘 제어를 통해 정밀성과 안정성을 극대화하였습니다. 이는 협동로봇의 가능성을 확장하고 다양한 산업 분야에 응용할 수 있는 잠재력을 보여줍니다.