Robotics/ROS

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/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/ROS' 카테고리의 글 목록