분류 전체보기

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

Programming/Linux System

WSL2 설정하기

Docker 명령어 Dockerfile에서 자주 쓰이는 명령어 | Engineering Blog by Dale Seo Dockerfile에서 자주 쓰이는 명령어 Engineering Blog by Dale Seo www.daleseo.com 가상화 재설정 >> bcdedit >> bcdedit /set hypervisorlaunchtype auto Docker Port 차단 검색 netsh interface ipv4 show excludedportrange protocol=tcp 관련 내용 : Unable to bind ports: Docker-for-Windows & Hyper-V excluding but not using important port ranges · Issue #3171 · docker..

Developments/VTK

[VTK] vtkTransform 사용하기

vtkTransform 에서는 모든 Transform 을 concatenate 방식으로 적재하여 최종 transform 을 구한다. Concatenate 된 Transform 을 무시하고 원하는 위치나 회전 값으로 변경하기 위해서는 새로운 객체에 값을 입력하고 Matrix로 업데이트 하는 방식을 해야한다. var originXfm = vtkTransform.New(); originXfm.Translate(10, 20, 30); originXfm.RotateX(50); originXfm.Translate(100, 200, 100); originXfm.GetMatrix().SetElement(0,3, -50);// Warning 발생 직접 Transform의 Matrix에 접근하여 Element 업데이트를 ..

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

Programming/Linux System

Samba 접속 Ubuntu to Windows

Synergy 를 활용한 키보드 마우스 공유를 사용하고 있는데 여기에서는 파일이나 이미지에 대한 공유가 되지 않고 단순히 Text clipboard 공유만 가능하다. 이를 해결하기 위해 Samba(SMB) 파일 공유를 설정한다. 1. Windows 공유 폴더 설정 1. Windows 에서 공유로 사용할 사용자 계정을 등록한다. 2. 공유할 폴더에 대해 사용자 공유를 추가한다. 3. Windows 기능 켜기/끄기 에서 SMB를 추가한다. 2. Ubuntu Client 설정 # 마운트할 폴더 추가 $ sudo mkdir /media/windows #패키지 설치 $ sudo apt-get install smbclient cifs-utils $ sudo smbclient -L [IP주소] -U [사용자ID] $..

RichardBang
'분류 전체보기' 카테고리의 글 목록 (7 Page)