본문 바로가기
반응형

ros18

[ROS] source /opt/ros/humble/setup.bash 와 source install/local_setup.bash 의 차이 우선 후자에 어떤 내용이 있는지 모르는 경우로 설명을 한다. source /opt/ros/humble/setup.bash : 해당 명령어는 '/opt/ros/humble' 경로에 설치된 ROS의 릴리스 환경을 설정하는데 사용 - ROS의 패키지, 라이브러리의 환경 변수를 현재 터미널 세션에 추가하여 해당 ROS 릴리스의 도구 및 패키지를 사용할 수 있게 하는 것이다. - /opt/ros/humble 은 설치된 ROS 버전의 디렉토리 경로를 나타낸다. source install/local_setup.bash : 현 작업 중인 ROS의 WORKSPACE의 환경 설정에 사용된다. - 직접적으로 설치된 경로가 아니기 때문에, USER가 직접 작성하거나 다운로드한 ROS패키지와 노드의 환경 변수를 서정하여, 해당.. 2023. 10. 25.
[ROS2] Underlay? Overlay? ROS를 사용하다보면 Underlay와 Overlay라는 말이 많이보인다. 이는 패키지 및 환경 구성에 사용되는 중요한 개념이다. Underlay : Ros 환경에서 사용 가능한 기본 ROS 설치를 말한다. 일반적으로 Ros release로 설치되는 ROS 코어 및 표준 라이브러리와 도구를 포함한다. Underlay는 시스템에 설치되며, '/opt/ros/' 디렉토리에 위치한다 는 ROS 릴리스 명을 나타낸다 ROS Underlay는 기본 라이브러리, 도구, 메시지 및 서비스 정의 + 기본 ROS 기능을 제공 Overlay : User가 설치하거나 개발 중인 패키지를 포함하는 사용자 지정 ROS 작업 공간을 가리킨다. 사용자는 ROS 자체 패키지 및 노드를 추가, 확장한다. Overlay는 사용자 홈 디.. 2023. 10. 25.
ROS2 : BUILD SYSTEM & BUILD TOOLS - 2 🔔패키지 생성 - ROS 2 패키지 생성 방법에는 두 가지가 있다. 1. 직접 패키지 폴더를 만들어 그 안에 필수적인 파일 시스템에 필수적인 package.xml이나 CMakeLists.txt나 setup.py 등을 포함시켜 소스코드를 작성 2. ros2cli 명령어를 이용하는 것 보통은 주로 사용하는 기능을 중심으로 기본 패키지를 복사, 붙여넣기로 패키지를 만든 후 이름과 몇 가지 설정만 변경해 사용하는 방법이 편하다. 초반에는 익숙하지 않기에 ros2cli 명령어를 통한 작업이 더 편할 수도 있다. ros2 pkg create [패키지이름] --build-type[빌드 타입] --dependencies [의존패키지1] [의존패키지n] 빌드 타입에서 RCL로 C++을 사용한다면 ament_cmake를 .. 2023. 7. 13.
ROS2 : BUILD SYSTEM & BUILD TOOLS - 1 서두(서쪽머ㄹ) : BUILD에 있어서 SYSTEM과 TOOLS는 어떤 차이가 있을까? 그냥 뭐, 쓰니까 쓰던대로 틀에 익숙해져서 쓰는 것보다 왜 그렇게 쓰는지가 궁금했다. BUILD SYSTEM과 BUILD TOOLS의 차이는 패키지의 대상으로 명확히 할 수 있다. 단일 패키지를 대상으로 하는지, 전체 패키지를 대상으로 하는 지의 차이이다. 빌드 시스템은 단일 패키지를 대상으로, 빌드 툴은 시스템 전체를 대상으로 한다. 그럼 의문점이 생긴다. 굳이 왜? 단일 패키지와 시스템 전체로 나눠야할까? 알다시피 의존성 때문이다. ROS는 코드의 재사용성 때문에 패키지와 노드 단위로 구성되어 있고, 각 패키지는 다른 패키지와의 상호 호환을 위해 의존성을 갖게 된다. 의존성 레벨에 따라서 지니는 패키지가 역할이 다.. 2023. 7. 11.
[ROS] ROS Doctor? 🐢ROS Doctor : ROS(로봇 운영체제)의 진단 도구 ROS는 로봇 소프트웨어 개발을 위한 오픈 소스 프레임워크로, 로봇 제어 및 통신에 사용된다. ROS Doctor는 ROS 시스템의 문제를 진단하고 해결하기 위해 설계된 도구이며, 사용자가 ROS 시스템에서 발생하는 오류나 불일치를 분석하고 수정하는 데 도움을 준다. ROS Doctor는 ROS 그래프, 통신, 파라미터, 토픽, 서비스 등 ROS 시스템의 다양한 측면을 분석한다. 예를 들어, ROS 그래프의 노드 간의 연결을 확인하고, 토픽과 서비스의 상태를 검사하며, 파라미터 값의 일관성을 확인할 수 있다. 또한, ROS Doctor는 특정 노드, 토픽 등의 관련된 문제를 식별하여 개발자에게 알려준다. ROS Doctor는 ROS 개발자가 시.. 2023. 7. 7.
[ROS] CMake Error at CMakeLists.txt: 22 (add_executable): Cannot find source file: 대부분의 에러가 CMake 파일에서 발생한다. 처음에는 위처럼 나와서 확장자 문제인줄 알고 코드를 검토했으나, 아니었다. 어제와 같이 의존성 선언 시에 순서가 잘못되어 build시에 에러가 발생한 것이다. add_executable과 ament_target_dependencies, install~~ 를 find_package(rclcpp REQUIRED) 아래로 적어주었다. 이후 다음과같이 잘 출력됐다. 2023. 7. 6.
[ROS] Getting a CMake Error: Cannot specify link libraries for target which is not built by the project CMakeLists.txt를 작성 중에 다음과 같이 작성 후에, 빌드 시 Getting a CMake Error: Cannot specify link libraries for target which is not built by the project 계속 다음과 같은 에러가 났다 해결 방법은 매우 간단했다. target_link_libraries를 add_executable 과 find_package 를 작성한 라인 뒤에 적어주면 링크 요소들을 알 수 있게 된다. find_package는 필자의 경우 CMakelists의 초반부에 적어줘서 add_executable만 신경쓰면 됐었다. 2023. 7. 5.
반응형