Robotics

Robotics/ROS

[ROS] Topic 알아보기

1.Topic이란 ? 간단한 설명으로는 Node 간의 메시지 기반으로 정보를 공유하는 방법이다. 특징은 단방향 통신이다. (publisher / subscriber) 익명성, broadcasting 방식으로 전송되는 데이터로 누가 보냈는지는모른다 메세지 형식 Node 안에서 구현된다 Node는 여러개의 Topic에 대한 publisher / subscriber를 구현할 수 있다. Topic list 현재 publish 되고 있는 topic 리스트 정보를 출력한다 ros2 topic list Topic echo 현재 publish 되고 있는 topic 의 데이터를 출력한다 ros2 topic echo [topic이름] 2. Interface Topic 을 메시지의 프로토콜이다. 메시지의 데이터가 어떤 fo..

Robotics/ROS

[ROS] ros2 run에서 node 이름 변경하기

1. Node name remap ros2 run 을 이용하여 Node는 여러개의 객체를 실행할 수 있다. 하지만 같은 Node를 실행하면 node info에서는 같은 이름의 Node가 여러개 표시되므로 제대로 제어하지 못할 수가 있다. Node는 갖지만 이름을 변경하면 이 문제를 해결 할 수 있다. ros2 run my_package my_node --ros-args __node:=new_node_name

Robotics/ROS

[ROS] Debug and Monitor

Node List 검색 ros2 node list Node Info ros2 node info [Node이름] rqt graph rqt rqt_graph 현재 실행되고 있는 Node 와 Topic 정보를 graph 로 보여준다. 참고로 타원이 Node이고 사각형이 Topic 이다.

Robotics/ROS

[ROS] AMENT_PREFIX_PATH doesn't exist

1. 문제점 Colcon build 시에 이전에 했던 Package 정보가 환경설정 값에 저장되어 있어서 build를 할 때 삭제된 package에 대한 경고 메시지가 발생한다. WARNING:colcon.colcon_ros.prefix_path.ament:The path '/home/richard/ros2_ws/install/my_py_pkg' in the environment variable AMENT_PREFIX_PATH doesn't exist 2. 해결방법 Build 정보가 남아 있어서 clean 하기 위해 workspace 의 build, install 폴더를 삭제하였으나 해결되지 않는다. 기존에 저장되어 있던 환경설정 값을 초기화하고 다시 build를 수행한다. export AMENT_PRE..

Robotics/ROS

[ROS] Python Node 생성하기

Pakcage create 를 생성하면 package 폴더가 생성되고 같은 이름의 하위 폴더가 하나 더 생성된다. Node에 대한 코드는 그 하위 폴더에 작성하면 된다. 1. Python Node 코드 작성 작성되는 파일의 이름은 Node와는 전혀 상관없고 그냥 파일의 이름일 뿐이다. 실제로 Node의 이름과 Node 실행 파일의 이름은 다른 곳에서 정의가 된다. #my_py_node.py #!/usr/bin/env python3 import rclpy from rclpy.node import Node def main(args=None): rclpy.init(args=args) node = Node("py_test") # Node Name node.get_logger().info("Hello ROS2")..

Robotics/ROS

[ROS] Package, Node, Colcon 알아보기

1. 기본 개념 Workspace : ROS 개발하는 작업 root 경로 Package : 개발하는 기능의 큰 묶음이다. 여러개의 기능을 분산하여 Node로 구성하고 이를 관리한다. Node : 최소 단위의 실행 기능을 구현한 어플리케이션이다. 각 Node 끼리 통신을 수행한다. Graph 로 Node 객체들이 표시된다. Build System [참고 Build system] : package에 대해 cmake -> make -> make install 순의 build 작업을 수행하는 시스템이다. ROS2에서는 cmake 기반의 ament 를 사용하고 있으며, ROS1 에서는 catkin 을 사용했었다. ament는 ament_cmake, ament_python 으로 build type이 있다. Buil..

Robotics/ROS

[ROS] Workspace 생성하기

Workspace 폴더 생성 $ mkdir -p ~/ros2_ws/src $ cd ~/ros2_ws/src Colcon Build bulid를 수행하면 workspace 폴더에 build, install, log 폴더가 생성된다. $ colcon build Workspace 환경 설정 ROS2 패키지를 실행하기 위해서 패키지 실행 파일에 대한 정보를 환경설정에 추가하도록 한다. $ echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc

Robotics

[Omniverse] Introduction and Installation

Nvidia의 Omniverse 의 toolkit 인 Issac Sim 을 공부하기 시작한다. 공식 Documents What Is Isaac Sim? What Is Isaac Sim? — Omniverse Robotics documentation NVIDIA Omniverse™ Isaac Sim is a robotics simulation toolkit for the NVIDIA Omniverse™ platform. Isaac Sim has essential features for building virtual robotic worlds and experiments. It provides researchers and practitioners with the tools and workflow docs.o..

Robotics

[Jetson] Jetson Nano + Realsense SDK 2.0 설치

1. Jetson Nano Version 오래전에 구매해서 잠깐 설치까지 해보고 구석에 박혀있던 Jetson Nano를 다시 꺼냈다. Nano 의 경우에는 버전이 여러게 있어서 헷갈리는데.. 간단히는 2019년에 처음 발매된 A02 버전, 2020년 초기에 발매된 B02버전, 2020년 말에 발매된 2GB 버전으로 나뉜다. 자세한 버전의 차이는 아래의 링크를 참고하자. Nvidia Jetson Nano Developer Kit A02 vs B01 vs 2GB – Tutorials of Cytron Technologies Nvidia Jetson Nano Developer Kit A02 vs B01 vs 2GB In January 2020, Nvidia has released major upgrade on..

Robotics/ROS

[ROS] Ubuntu 20.04 + Ros2 Foxy 설치하기

그동안 미뤄왔던 Robot Operating System ROS2를 설치하기로 하였다. ML을 공부하기 위해서 Ubuntu 20.04 를 설치해서 사용하고 있기 때문에 ROS2 의 경우에는 Foxy 패키지를 설치해야 한다. ROS 의 경우는 Ubuntu 의 버전에 따라서 맞는 OS를 설치해야 하는것 같다. Ubuntu 22.04 Jammy 가 있는 경우에는 ROS2에서는 Humble 을 설치해야 한다. 설치하는 방식은 버전에 상관없이 거의 동일하다. 설치하는 것은 Docker 이미지를 다운받아서 설치하는 것도 편하지만, Ubuntu 에 직접 설치하려고 하는 거라서 Virtual Box를 활용해서 설치한다. 어떤 도구를 사용해서 설치하든 상관없겠지만.. 우선 ROS2 공홈에서 나와 있는 cli 명령어를 순..

RichardBang
'Robotics' 카테고리의 글 목록