반응형

프로그래밍 9

[ROS] CAN communication 통신 data parsing 비트연산

[ROS] CAN communication 통신 data parsing Ubuntu에서 수신받은 CAN Raw Data를 Start bit 와 Length 그리고 factor와 offset을 고려하여 data를 parsing하는 방법에 대해 설명해드리려고 합니다. 우선 CAN gateway로 부터 CAN Raw Data를 받았다고 가정하고 진행하도록 하겠습니다. 을 사용해서 비트연산을 통해 계산하는 예제입니다. 이해하기 쉽게하기 위해 복잡한 내용은 생략하고 기본적인 base code를 가지고 설명을 진행하겠습니다. 이 코드를 토대로 각자 상황에 맞는 코드를 구성하시면 됩니다.사용자 정의 메시지로 각 Signal에 맞도록 변수명을 구성하시는게 나중에 한눈에 어떤 신호인지 파악하기 쉬울 것입니다. #incl..

프로그래밍/ROS 2021.05.01

tcp_python_communication with json

tcp_python_communication with json 안녕하세요 오늘은 python tcp통신을 사용해서 json형식의 data를 수신하는 방법에 대한 코드를 공유하려고 합니다. Server에서 json형식의 데이터를 지속적으로 보내는 경우와 client가 해당 데이터를 받아오는 경우를 가정하였습니다. import socket import sys import json HOST, PORT = "127.0.0.1", 9999 json_object = {"name": "abcd", "vel": 10} # 먼저 딕셔러니를 선언한 뒤 json_string = json.dumps(json_object, indent=2) # json.dumps() 함수를 사용하여 json형식으로 바꾸어줍니다. print(j..

Stanley Method Path Tracking 자율주행 시뮬레이션 with ROS

Stanley method를 ROS 환경에서 Bicycle Model을 사용하여 구현하였습니다. 향후 feedforward term과 고속에의 급격한 steering 회전을 (차를 전복시킬 수 있기 때문에)막기 위해 damping term을 추가하여 보완할 예정입니다. --------------------------------------------------------------------------------- 2020.09.30(수) 추가내용 게인 튜닝을 어느정도 완료한 후 녹화한 동영상입니다. --------------------------------------------------------------------------------- 2020.10.11(일) 추가내용 실제 모든 텀들을 그래프를 ..

프로그래밍/ROS 2020.09.22

ubuntu Gave up wating for suspend/resume device error UUID=xxx deos not exist solution 해결방법

컴퓨터 교체후 혹은 마더보드 교체후 우분투 18.04를 부팅하려는데 위에 해당하는 error가 발생하고 부팅이 진행 되지 않았습니다.해결 방법을 공유하려고 합니다. 환경에 따라 다를 수 있으니 참고만 부탁드립니다. 1. 컴퓨터 부팅시 F2 or DEL 키를 [BIOS진입 키는 다를 수 있음] 눌러서 바이오스(BIOS) 모드로 진입합니다. 2. SATA 관련 설정하는 곳에 들어갑니다. 못 찾으시겠으면 검색기능이 있다면 검색창에 SATA를 입력해보세요. 3. 그 뒤 항목을 보시면 RAID라고 설정되어 있을 겁니다. 그 것을 AHCI 로 변경후 저장을 하고 부팅을 하시면 정상적으로 부팅이 될 것입니다. ----------------------------------------- 내용 추가 2020.09.21 -..

프로그래밍/ROS 2020.09.18

ROS2 Autoware강의 추천 Apex.AI강의

ROS와 자율주행 자동차에 관심이 있으신 분은 ROS2로 진행하는 Autoware강의를 추천합니다. 강의는 1강~14강까지 총 14강입니다. 현재 모두 제작 및 업로드 완료되어 있는 상태입니다. 제가 이 강의를 처음 접하게 되었을 때 막 1강이 올라왔었는데 (2020. 5. 11. 업로드) 벌써 14강까지 (2020. 8. 18. 에 업로드)가 완료되었습니다. 강의는 Apex AI 제공하며 공식 홈페이지 주소는 아래와 같습니다. https://www.apex.ai/ Apex.AI | Autonomous Driving Software Reliable, safe, and certified software for autonomous mobility. We enable automotive developers t..

프로그래밍/ROS 2020.08.23

ROS Joy message를 이용한 UDP 통신 Python 코드

ROS가 설치된 우분투(ubuntu) 컴퓨터에서 ROS가 설치되지 않은 윈도우 컴퓨터로 UDP 통신 방식으로 우분투와 블루투스로 연결된 플레이스테이션 듀얼쇼크 4 조이스틱(Joystick)의 값을 전송해주는 코드를 구현해보았습니다. 먼저 UDP통신을 하기 위해 두 개의 컴퓨터를 동일한 네트워크에 연결을 하였습니다. joystick을 사용한 UDP 통신 left joystick을 상,하,좌,우 그리고 스윙 모션을 할 때 값이 실시간으로 업데이트되는 것을 확인할 수 있습니다. Client(윈도우 컴퓨터)가 필요한 정보를 Server(우분투 컴퓨터)가 전달해주는 프로세스를 가지고 있습니다. UDP 통신이 되는 것을 확인하였으니 자율주행 자동차를 시뮬레이션 상에서 제어하기 위해 "horizontal left s..

프로그래밍/ROS 2020.08.23

pygame으로 구현한 추억의 오락실게임 (pang game)

아래의 게임은 90년대 생이라면 한 번쯤은 해봤거나 본 적이 있을 'pang'이라는 game이다. 아래의 프로젝트는 '나도코딩'님의 파이썬 무료 강의 (활용 편 1) - 추억의 오락실 게임 만들기(3시간) 강의의 결과물이다. 이 강의를 수강한 이유는 '나도코딩'님의 python기본강의를 듣고 난 뒤 python에 익숙해지기 위함이다. pygame으로 구현한 추억의 오락실 게임인 'pang game'이다. 배경은 아실 분은 아시겠지만 KAIST이다. 모든 공을 성공적으로 없애면 'Mission Complete' 공과 캐릭터가 부딪히면 "Game Over" 이번 활용편 1 강의가 상속, 클래스 등의 개념을 사용해서 게임을 만드는 강의인 줄 알았는데 상속, 클래스 관련 내용은 다루지 않았다. 강의를 수강하실 ..

python pygame으로 구현한 똥 피하기 게임

추억의 똥 피하기 게임 본 프로젝트는 '나도코딩'님의 파이썬 무료 강의 (활용편1) - 추억의 오락실 게임 만들기(3시간) 강의의 결과물 중 하나이다. python 이론을 공부하고 python에 익숙해지기 위해 실습을 한 것이므로 GUI에 크게 신경 쓰지 않았다. pygame으로 구현한 똥피하기 게임 위 동영상은 pygame으로 구현한 똥피하기 게임의 플레이 영상이다. 똥과 충돌하게 될경우 2초 후 게임이 종료되며 터미널 창에 충돌하였다는 안내 메시지가 출력된다. time은 tick함수를 이용하여 출력하였다. 앞으로 python을 이용하여 인공지능을 공부할 것인데 빨리 python에 익숙해졌으면 좋겠다.

반응형