본문 바로가기

전체 글258

assert https://wikidocs.net/21050 03_가정 설정문(assert) assert는 뒤의 조건이 True가 아니면 AssertError를 발생한다. ``` >>> a = 3 >>> assert a == 2 #결과 Traceback (mos ... wikidocs.net assert는 개발자가 프로그램을 만드는 과정에 관여한다. 원하는 조건의 변수 값을 보증받을 때까지 assert로 테스트 할 수 있다. 이는 단순히 에러를 찾는것이 아니라 값을 보증하기 위해 사용된다. 예를 들어 함수의 입력 값이 어떤 조건의 참임을 보증하기 위해 사용할 수 있고 함수의 반환 값이 어떤 조건에 만족하도록 만들 수 있다. 혹은 변수 값이 변하는 과정에서 특정 부분은 반드시 어떤 영역에 속하는 것을 보증하기 위해 가.. 2022. 7. 5.
gmqtt ( Retain Message, Clean Session and Qos Table ) 참고 : http://www.steves-internet-guide.com/mqtt-clean-sessions-example/ MQTT Clean Sessions and QOS Examples A look at persistent and non persistent connections and how they are controlled using the clean session flag and how QOS settings affect them. www.steves-internet-guide.com 결론 부터 example 설명 : " client1 ( subscriber 구독 ) client2 ( publisher 게시) " 상황에서 client1 의 Clean Session Flag, Retain Fl.. 2022. 6. 29.
ros2_msg 토픽 example(executor사용==싱글쓰레드) ROS2 msg sub 부분 code : # =========================================================================================== # !/usr/bin/python # -*- coding: utf-8 -*- import rclpy from rclpy.executors import Executor # noqa: F401 from rclpy.qos import QoSProfile import threading import time from std_msgs.msg import String class SubNodeMakerAgent: """ 멀티 쓰레드 에 멀티 노드 구조 멀티쓰레딩 subscribe 내용을 참조 사이트 https:/.. 2022. 6. 28.
wsl2의 ros2,venv 라이브러리를 pycharm 에 연동하기 방법 요약 설명 1. 인터프리터로 wsl2에 venv환경을 잡고 2. 콘텐츠 추가로 스크립트랑 venv가 있는 폴더를 추가한다. 3. 로컬에 있는 /opt/ros/로스버전/lib 에 있는 python패키지에 sit-packages or dist-packages를 추가함 3번을 하는 이유 : 실행하면 잘되지만, pycharm에서 빨간줄이 그어진다. 왜냐면 venv에 있는 python3.8라이브러리인 rospkg가 로컬에 있는 ros라이브러리인 rospy를 참조를 못해서임 ( 실제론 참조하지만 pycharm안에서는 못하는 상황 ) 1. python 인터프리터 설정 ( venv가상환경 라이브러리 연동 ) 2. python 인터프리터 관련 가상환경 셋업 확인 3. 사용할 프로젝트 구조 경로 설정( 주 scrip.. 2022. 6. 22.
4_Asyncio,coroutine Asyncio 단일 thread 에 마치 multi tasking을 하는 것과 유사한 기능을 수행할 수 있게 된다. 이를 이해하기 위하여는 먼저 기존 python의 thread나 process 에서의 concurrent 프로그래밍 방식으로 python 3.2에 추가된 future (PEP 3148 – futures - execute computations asynchronously) 를 이해할 필요가 있다. 이후에 만들어진 asyncio도 이와 동일한 API로 만들어진 것이다. Future는 쉽게 말해서 work thread(process)의 핸들이라고 볼수 있다. 이를 future.result()와 같이 종료가 끝날때 까지 기다리게 되면, 해당 work funtion에서 결과를 완료하거나, except.. 2022. 6. 15.
5_iter_gen_yield기반coroutine 함수기반정리 Iterator __iter__() : iterator object 리턴 __next__() : 호출될 때 마다 다음 값을 리턴 generator yield : generator 함수를 멈추고, 값을 next(x)를 호출한 함수로 전달 next() : generator의 yield를 만날 떄까지 실행시키고 값을 반환받음 yield 기반 coroutine ( 사실 generator와 동일 ) yield : coroutine 함수를 멈추고, 값을 next(x)를 호출한 함수로 전달 next() : coroutine 의 yield를 만날 떄까지 실행시키고 값을 반환받음 send(y) : caller가 coroutine 의 yield 부분에 y값을 전달할 수 있음 + next와 동일작동 throw(type, v.. 2022. 6. 15.