본문 바로가기

Robot/ROS13

[CMake] add_custom_target cannot create target package 에러코드 --- stderr: app CMake Error at /opt/ros/humble/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:213 (add_custom_target): add_custom_target cannot create target "app" because another target with the same name already exists. The existing target is an executable created in source directory "/home/id/ros2_ws/src/app". See documentation for policy CMP0002 for more details. Call Stack (.. 2023. 3. 10.
[Micro-ROS] Micro XRCE-DDS 특징 이전에 언급한 것처럼 Micro-ROS는 DDS를 차용하여 운용하는 시스템입니다. Micro XRCE-DDS라는 eProsima에서 제작한 DDS를 기본적으로 사용합니다. Micro XRCE-DDS는 OMG의 eXtremely Resource Constrained Environment standard 를 준수한 DDS로서, 제한된 메모리를 가진 환경에서 사용할 수 있는 DDS입니다. DDS-XRCE DDS-XRCE 프로토콜의 목표는 제한된 메모리 가진 디바이스의 데이터를 Global-Data-Space(PC와 같은) 환경에 접근할 수 있도록하는 것입니다. DDS-XRCE 프로토콜 속에서 제한된 메모리 디바이스와 PC의 연결 구조는 서버-클라이언트 구조를 가집니다. 디바이스는 XRCE Client로서, P.. 2023. 2. 18.
[Micro-ROS] 특징 Micro-ROS를 사용하고 있지만, 이에 대한 특징을 제대로 이해하지 못하는 것처럼 느껴져서 이를 공부하며 정리해보았습니다. Micro-ROS의 특징 ROS 주요 컨셉을 담고 있는 마이크로컨트롤러 최적용 클라이언트 API ROS2에서 지원하는 노드, 토픽, 클라이언트와 서버, 라이프사이클 등의 개념을 차용하였습니다. 마이크로로스의 클라이언트 API는 rcl과 rclc 기반으로 생성되었습니다. ROS2와 자연스러운 연동 MicroROS 에이전트는 MicroROS로 작성된 MCU를 노드로 만들어 ROS2시스템에 연결을 자연스럽게 만들어줍니다. 이를 통해 사용자는 마치 마이크로컨트롤러의 기능들을 일반 노드처럼 다룰 수 있고 다른 ROS2 도구들을 활용할 수 있게 해줍니다. 리소스가 제한된 환경에서도 사용할 .. 2023. 2. 18.
[ROSCon] ROSCon2022 교토 참관 후기 2022년 10월 20일부터 10월 21일까지 일본 교토에서 열리는 ROSCon 2022에 참석했습니다. 코로나 이후로 처음 오프라인으로 개최되는 ROSCon였습니다. 과거 처음 ROSCon의 존재를 인지했을 때, '겨우 미들웨어 소프트웨어일 뿐인데, 컨퍼런스를 국제적으로 크게 하다니..' 라는 생각과 '도대체 저기 모인 사람들은 어떤 이야기들을 주고 나눌까' 라는 생각이 들었습니다만 지금은 '그럴만 하네'라는 생각합니다. 이 소프트웨어가 품고있는 자원이 다 다루기에는 너무나 방대하니까요. 19년에 처음 ROS 멜로딕을 만난 후 참가해보는 오프라인 로스 커뮤니티이며, 또 저희 회사 Floatic이 스폰서로 참여해서 개인적으로는 상당히 기대되었네요. 로스콘은 2개의 세미나 장소과 로봇 전시장으로 구성되어있.. 2022. 10. 29.
[DDS] DDS와 RTPS 잡설 Micro-ROS 때문에 DDS도 공부하게 되네요. 🤨 Micro-ROS는 일반적인 DDS 말고 DDS-XRCE(eXtremely Resource Constrained Environments DDS)라는 리소스가 제한된 환경에서 사용하는 DDS가 사용합니다. 마이크로로스에서 발생하는 문제를 다루기 위해서는 DDS-XRCE를 이해해야하는데, 그것에 앞서 일반적인 DDS를 다루어보겠습니다. (Micro-ROS는 eProsima의 Micro XRCE-DDS를 사용합니다. eProsima는 ROS2에 기본DDS인 FAST-DDS를 만든 곳입니다.) 시작 아마 ROS2로 넘어오면서 가장 당황스러울 것이 ROS1에 없었던 DDS일 것입니다. ROS1이 실제 산업에서 쓰기에 부적합했기 때문에, 안정성이나 보안 .. 2022. 10. 2.
[ros2_control] 아키텍처 분석 본 글에서는 ros2_control의 아키텍처 시스템을 분석해보려고 합니다. ros2_control_architecture Getting Started — ROS2_Control: Rolling Aug 2022 documentation The ros2_control framework’s source can be found in ros2_control and ros2_controllers GitHub-repositories. The following figure shows the architecture of the ros2_control framework. Resource Manager The Resource Manager (RM) abstracts physical hardware a control.ros.. 2022. 8. 21.
[ros2_contorl] ros2_control과 ros2_control_demo ros2_control ros2_control은 수 많은 컨트롤 알고리즘과 컨트롤 시스템을 쉽게 사용할 수 있게 도와주는 패키지입니다. 센서나 모터의 컨트롤에 익숙치 않아 어려움을 겪는 개발자들 혹은 그런 로우 레벨 엔지니어링 개발 시간을 줄여주기 위해 ros2_control은 하드웨어와 컨트롤러를 이어주는 역할을 해줍니다. 기존 ros1의 ros_control은 PR2라는 로봇을 제어하는 패키지를 변형하여 사용했지만, ros2_control은 스크래치부터 새로 작성하여 기존보다 더 안정적으로 제작되고 있습니다. 이 글에서는 간략한 ROS2_control에 대한 내용과 ros2_control_demo에 포함된 RRBOT예제를 돌려봅니다. Welcome to the ros2_control documenta.. 2022. 8. 15.
[ROS2] 치트시트 원래 자꾸 까먹는 것은 모아두고 필요할 때마다 봐야합니다. 어떻게 그걸 다 외우나요? ROS2 삭제 #본인의 ROS 버전을 적습니다. sudo apt remove ~nros-foxy-* && sudo apt autoremove sudo rm /etc/apt/sources.list.d/ros2.list sudo apt update sudo apt autoremove # Consider upgrading for packages previously shadowed. sudo apt upgrade ROS2 CLI 패키지 패키지 생성하는 명령어 ros2 pkg create --build-type ament_cmake --dependencies --node-name LOG # Foxy 버전 ros2 run --ro.. 2022. 8. 14.
[MicroROS] 참고할만한 자료들 [2022-08-06 업데이트] 마이크로로스가 워낙 신생 라이브러리라 어떻게 구성하고 구조화할지가 항상 고민이라, 참고할만한 자료들을 모아봤습니다. 문서 https://docs.vulcanexus.org/en/latest/rst/tutorials/micro/micro_tutorials.html 4. Vulcanexus Micro Tutorials — Vulcanexus 1.0.0 documentation © Copyright 2022, eProsima. Revision b0e0eb89. docs.vulcanexus.org Github Repository https://github.com/linorobot/linorobot2_hardware GitHub - linorobot/linorobot2_hardwa.. 2022. 8. 6.
[MicroROS] Publisher와 Subscriber 생성하기 MicroROS + Arduino DUE 글에서 이어집니다. [MicroROS] MicroRos + Arduino DUE 튜토리얼 레퍼런스 https://github.com/micro-ROS/micro_ros_arduino GitHub - micro-ROS/micro_ros_arduino: micro-ROS library for Arduino micro-ROS library for Arduino. Contribute to micro-ROS/micro_ros_arduino d.. huroint.tistory.com 마이크로로스의 ROS 클라이언트 라이브러리는 C언어로 생성된 rclc를 사용합니다. 본 예제의 개발 환경은 보드 - 아두이노 DUE PC의 OS - Mac M1 + 패러렐즈 Ubuntu 20.0.. 2022. 8. 6.
[MicroROS] MicroROS + Arduino DUE 튜토리얼 레퍼런스 https://github.com/micro-ROS/micro_ros_arduino GitHub - micro-ROS/micro_ros_arduino: micro-ROS library for Arduino micro-ROS library for Arduino. Contribute to micro-ROS/micro_ros_arduino development by creating an account on GitHub. github.com Micro-ROS ROS1에서는 아두이노, STM 등 MCU와 통신하기 위해 ROSSerial 을 사용했습니다만 ROS2로 넘어오면서 Micro-ROS로 전환되었습니다. 기존 로스시리얼은 시리얼통신만 가능했던 부분에서 마이크로로스는 CAN이나 이더넷, Wi-Fi로도.. 2022. 7. 24.
[MicroROS] ST Nucleo에 MicroROS 설치하기 미리 준비해야하는 것 - ROS2 - Docker - CubeMX 마이크로로스는 지원보드가 있습니다. https://micro.ros.org/docs/overview/hardware/ Supported Hardware ROS 2 for microcontrollers micro.ros.org 지원하는 ST사 누클레오로는 - F446ZE - F746ZG - H743ZI 이렇게 3개만 오피셜하게 커뮤니티가 지원한다고 기술되어있습니다. 하지만, 제가 소유하고 있는 누클레오 보드는 STM32F429ZI 입니다. 그래서 이걸로 마이크로로스를 탑재해보려고 합니다. https://www.devicemart.co.kr/goods/view?no=1361243 NUCLEO-F429ZI 고성능 MCU STM32 F4 32비트.. 2022. 6. 29.