티스토리 친구하기

본문 바로가기

Python

(15)
Writing a simple service and client (Python) Background노드들이 Service를 이용해 통신할 때, 데이터를 요청하는 노드를 클라이언트 노드(Client node)라고 하고, 요청에 응답하는 노드를 서비스 노드(Service node)라고 합니다. 요청과 응답의 구조는 .srv 파일에 의해 결정됩니다.여기 사용된 예는 간단한 정수 덧셈 시스템입니다. 한 노드가 두 정수의 합을 요청하면 다른 노드는 결과를 응답합니다.Prerequisites이전 튜토리얼에서는 workspace를 생성하고 pakage를 생성하는 방법을 학습했습니다.Task1 Create a pakage새 터미널을 열고 ROS 2 installation을  source로 설정하여 ros2 명령이 작동하도록 만듭니다.이전 튜토리얼에서 생성한 ros2_ws 디렉터리로 이동합니다.패키..
ROS2 humble Writing a simple publisher and subscriber (Python) Background 이 튜토리얼에서는 문자열 메시지에 있는 정보를 topic을 통해 서로 주고받는 node들을 생성하는 방법에 대해 설명합니다. 여기서 사용하는 example은 "talker"와 "listener" 시스템입니다. "talker" 노드는 데이터를 publish하고 "listener" 노드는 topic을 subscribe 해서 데이터를 수신합니다. 본 튜토리얼은 Python으로 진행됩니다. prerequisites 이전 튜토리얼에서는, 어떻게 workspace와 pakage를 만드는지 배웠습니다. Python의 전체적인 이해가 필수적인건 아니지만, 기본적인 이해가 있으면 좋습니다. Task 1 Create a package ros2 command가 작동하도록, 터미널을 열고 ROS2 inta..
ROS2 Creating a package 2 [ROS2 패키지 만들기 2] Create a package [패키지 만들기] ROS2에서 새로운 패키지를 만들려면 다음 단계를 따르면 됩니다. 1. 새로운 터미널 창을 열고 ROS 2 워크스페이스의 디렉토리로 이동합니다. 예를 들어, 다음과 같이 작성할 수 있습니다. $ cd ~/ros2_ws/src 2. `ros2 pkg create` 명령어를 사용하여 새로운 패키지를 생성합니다. 패키지 이름은 소문자로 작성해야 하며, 여러 단어의 경우 하이픈(`-`)을 사용합니다. 예를 들어, `package_name`라는 이름의 패키지를 만들고 싶다면 다음과 같이 작성할 수 있습니다. # CMake ros2 pkg create --build-type ament_cmake # Python ros2 pkg create --build-type am..
ROS2 executable ROS 2에서 `executable`은 빌드된 바이너리 파일로, 하나 이상의 노드를 실행하는 데 사용됩니다. `executable`은 ROS 2 노드의 실행 가능한 인스턴스이며, ROS 2 시스템에서 독립적으로 실행됩니다. `executable`은 C++로 작성된 노드 또는 Python으로 작성된 노드일 수 있습니다. ROS 2에서는 `executable`을 빌드하기 위해 CMakeLists.txt 파일에 `add_executable` 명령어를 사용합니다. `add_executable` 명령어는 빌드하려는 `executable`의 이름과 해당 `executable`을 빌드하는 데 필요한 소스 파일을 지정합니다. 또한 해당 `executable`이 사용하는 모든 메시지, 서비스 및 의존성 패키지도 선언해야..
IndexError: arrays used as indices must be of integer (or boolean) type python으로 코딩을 할 때, index를 integer(정수형)으로 쓰지 않으면 위와 같은 Error가 발생한다. a[0.1] = 10 % 위와 같이 쓰면 에러발생 a[0] = 10 % 괄호안은 항상 integer 값을 넣어야함. % 실수로 float형이나 index를 계산할 경우 위와 같은 문제가 발생할 수 있음.
TypeError: only size-1 arrays can be converted to Python scalars 이 오류의 주요 원인은 스칼라 값을 허용하는 매개 변수에 배열을 전달하는 것입니다. 아래의 예제처럼 배열과 scalar 값을 비교하도록 잘 못 코딩을 하면 발생할 수 있습니다. a[0] = [10, 20] if a[0] > 15: ~~~ else: ~~~ 따라서, 아래와 같이 코딩하면 문제를 해결할 수 있습니다. a[0] = [10, 20] if a[0,0] > 15: ~~~ else: ~~~ Reference [1] https://www.pythonpool.com/only-size-1-arrays-can-be-converted-to-python-scalars-error-solved/
Ubuntu(우분투)에서 sublime text 설치하기 PPA를 이용한 설치 방법 sudo add-apt-repository ppa:webupd8team/sublime-text-3 위의 명령어를 치면 되는데 다음과 같은 오류가 발생할 수 있습니다. 이것은 python3의 버전이 달라서 생기는 error 입니다. 아래의 명령어로 사용하고 있는 python의 버전을 확인하고 python의 버전을 python3.5로 바꿔줍니다. [참조: https://intuitive-robotics.tistory.com/43] sudo update-alternatives --config python3 python의 버전을 python3.6 --> python3.5로 바꿔준 후, 아래의 명령어를 입력합니다. sudo apt-get update sudo apt-get install..
ModuleNotFoundError: No module named 'PIL' 다음 명령어를 터미널에 입력하여 PIL을 다운로드 합니다. python3 -m pip install pillow --user Reference [1] https://www.it-swarm.dev/ko/python/pil%EC%9D%B4%EB%9D%BC%EB%8A%94-%EB%AA%A8%EB%93%88-%EC%97%86%EC%9D%8C/825860178/