다중 로봇 관리를 위한 Open-RMF 플랫폼입니다.
Open-RMF는 패키지 모음으로, 그 중 일부에는 ROS 2 종속성이 있습니다. 편의를 위해 ROS 2와 함께 Open-RMF를 배포 및 설치하며 현재 다음 ROS 2 배포판에서 지원됩니다.
humble
대모(Humble Hawksbill)iron
)jazzy
)rolling
) 우리는 주로 Ubuntu
에서 Debian 패키지를 지원하고 amd64
및 aarch64
아키텍처 모두에 대해 RHEL/Fedora
용 RPM 패키지를 선택합니다.
Open-RMF 설치 옵션:
Open-RMF를 사용해 보려면 바이너리를 설치하는 것이 좋습니다. 소스에서 빌드하는 것은 새로운 기능을 추가하거나 버그를 수정하려는 개발자에게 더 적합합니다.
아래 지침은 Ubuntu
대상으로 합니다.
먼저 설치 지침에 따라 위에 나열된 지원 버전 중에서 선택한 distro
용 ROS 2를 설치하세요. 바이너리 데비안을 통해 ROS 2를 설치하는 것이 좋습니다.
참고: Open-RMF 바이너리를 설치하려면 ROS 패키지를 설치하도록 컴퓨터를 설정하는 것이 중요합니다. 이는 ROS 2 데비안 바이너리를 설치할 때 필수 단계입니다.
Open-RMF 패키지의 모든 비 ROS 종속성을 설치합니다.
sudo apt update && sudo apt install ros-dev-tools -y
rosdep
다양한 배포판에 걸쳐 ROS 패키지에 대한 종속성을 설치하는 데 도움을 주며 ros-dev-tools
와 함께 설치됩니다. 그러나 업데이트하는 것이 중요합니다.
sudo rosdep init # run if first time using rosdep.
rosdep update
이전에 업데이트하지 않은 경우 colcon mixin
업데이트하세요.
colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
colcon mixin update default
먼저 설정 섹션의 지침을 따르십시오. 마지막으로 선택한 distro
에 대한 Open-RMF 데비안 패키지를 설치합니다.
sudo apt update && sudo apt install ros- < distro > -rmf-dev
참고: 이 문제에 설명된 이유로 rmf_demos에 있는 패키지를 제외하고 Open-RMF를 실행하는 데 필요한 모든 debian 패키지가 설치됩니다.
소스에서 rmf_demos
빌드하려면 먼저 배포판의 최신 바이너리 릴리스에 해당하는 rmf_demos
버전을 확인하세요. 예를 들어 Open-RMF의 humble
바이너리를 설치한 경우 이 릴리스의 rmf_demos
버전은 이 저장소의 humble-release
분기에 있는 rmf.repos
파일에서 찾을 수 있습니다(예: 여기).
다음으로 ROS 2 작업 공간을 생성하고 소스에서 rmf_demos
빌드합니다. 아래 2.0.3
태그를 배포용 rmf_demos
버전으로 바꾸세요.
mkdir ~ /rmf_ws/src -p
cd ~ /rmf_ws/src
git clone https://github.com/open-rmf/rmf_demos.git -b 2.0.3
cd ~ /rmf_ws
colcon build
시뮬레이션에서 Open-RMF의 일부 데모를 실행하려면 rmf_demos의 README를 참조하세요.
먼저 설정 섹션의 지침을 따르십시오.
소스 코드의 새로운 변경으로 인해 바이너리에 의해 설치된 이전 헤더 파일과 충돌 및 컴파일 오류가 발생할 수 있습니다. 따라서 계속 진행하기 전에 빌드용으로 제공될 ROS 2 배포판용 Open-RMF 바이너리를 모두 제거해야 합니다.
sudo apt purge ros- < distro > -rmf * && sudo apt autoremove
Open-RMF는 여러 저장소/패키지의 모음입니다. rmf.repos는 이러한 패키지의 스냅샷을 제공합니다. 이 저장소는 ROS 2 배포판과 릴리스 버전에 따라 이 파일의 다양한 버전을 저장합니다. 사용 사례에 따라 이 저장소의 다음 분기 중 하나에서 이 파일을 다운로드하도록 선택할 수 있습니다.
main
: 아직 바이너리 릴리스가 있거나 없을 수 있는 모든 패키지의 최신 버전입니다. 이는 개발 및 버그 수정에 권장됩니다.<distro>
: 특정 ROS 2 배포판용 패키지의 최신 버전입니다. main
에 병합된 새로운 API/ABI 중단 기능은 <distro>
브랜치로 백포트되지 않으므로 이는 main
과 다를 수 있습니다. <distro>
에서 다운로드한 패키지에는 아직 바이너리에서 사용할 수 없는 변경 사항이 있을 수 있습니다.<distro>-release
: 여기서 <distro>
는 지원되는 ROS 2 배포판입니다(예: humble
). 여기에 있는 패키지 버전은 이 배포판에 사용 가능한 최신 바이너리 버전과 일치합니다.release-<distro>-YYMMDD
: 패키지 버전이 YYMMDD
에서 사용 가능한 바이너리 버전과 일치하는 특정 <distro>
에 대한 태그입니다. 각 릴리스에 대한 추가 정보는 릴리스를 참조하십시오. 이는 사용자가 이전 릴리스에서 패키지를 빌드하려는 경우 유용합니다. 새로운 ROS 2 작업 공간을 설정하고 vcs
사용하여 데모 저장소를 가져옵니다. main
원하는 브랜치로 바꾸세요.
mkdir -p ~ /rmf_ws/src
cd ~ /rmf_ws
wget https://raw.githubusercontent.com/open-rmf/rmf/main/rmf.repos
vcs import src < rmf.repos
rosdep 정의를 업데이트하고 rosdep
통해 종속성을 설치합니다.
cd ~ /rmf_ws
sudo apt update
rosdep update
source /opt/ros/humble/setup.bash # replace humble with preferred ROS 2 distro.
rosdep install --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y
참고: clang
컴파일러로, lld
링커로 사용하여 Open-RMF 패키지를 컴파일하는 것이 좋습니다.
sudo apt update
sudo apt install clang clang-tools lldb lld libstdc++-12-dev
선택한 ROS 2 배포판을 소싱한 후 작업 공간을 컴파일합니다.
cd ~ /rmf_ws
export CXX=clang++
export CC=clang
colcon build --mixin release lld
참고: 빌드가 처음 발생하면 시뮬레이션이 실행될 때 장면을 채우기 위해 Gazebo Fuel에서 많은 시뮬레이션 모델이 다운로드됩니다. 결과적으로 첫 번째 빌드는 서버 로드 및 인터넷 연결에 따라 매우 오랜 시간이 걸릴 수 있습니다(최대 1시간까지 소요될 수 있음). 모델을 다운로드하지 않고 빌드하려면
--cmake-args -DNO_DOWNLOAD_MODELS=On
을colcon build
에 추가하세요.
시뮬레이션에서 Open-RMF의 일부 데모를 실행하려면 rmf_demos의 README를 참조하세요.
또한 Open-RMF용 Docker 이미지도 제공합니다.
open-rmf/rmf
github 레지스트리에서 docker 이미지를 가져옵니다(설정은 여기 참조).
docker pull ghcr.io/open-rmf/rmf/rmf_demos:latest
docker tag ghcr.io/open-rmf/rmf/rmf_demos:latest rmf:latest
실행하세요!
docker run -it --network host rmf:latest bash -c " export ROS_DOMAIN_ID=9; ros2 launch rmf_demos_gz office.launch.xml headless:=1 "
그러면 헤드리스 모드에서 rmf_demos
실행됩니다.
(실험적) 사용자는 로커를 통해 "헤드리스가 아닌" 그래픽 형식으로 rmf_demos
실행할 수도 있습니다.
Open-RMF 데모는 rmf_demos에 표시됩니다.
전체 Open-RMF 프로젝트( rmf_traffic
포함 및 그 이상)의 단기 로드맵은 여기 사용자 매뉴얼에서 찾을 수 있습니다.
Open-RMF와 시스템을 통합하는 방법에 대한 지침은 여기에서 찾을 수 있습니다.
다수의 상용 로봇, 인프라 시스템, 작업 셀 및 장치가 Open-RMF와 통합되었으며 해당 어댑터에 대한 링크는 awesome_adapter 저장소에서 사용할 수 있습니다.
이 목록에 추가할 수 있도록 도와주세요!
Fleet을 RMF와 통합하기 위한 유용한 시작점은 Fleet_adapter_template입니다.
로봇/플릿이 기본 ROS 탐색 엔드포인트를 노출하는 경우 free_fleet와 쉽게 통합될 수 있습니다.
개발 및 출시 프로세스에 대한 자세한 내용은 여기에서 확인할 수 있습니다.