ROS

이종욱·2023년 8월 16일

launch 파일 뜯어보기

<group 옵션="옵션값"></group> <!--노드 묶는 태그-->
<node/> 노드실행태그, pkg,type(노드명),name(실행명)
<machine/> 노드실행하는 PC 이름,
<include/> 다른 launch 불러와 하나의 launch파일처럼 실행 가
<remap/> 노드에서 사용중인 ROS 변수 이름 변경, from,to
<env/> 경로, ip 등 환경변수 설정
<param/> if문도 작성하네? 파라미터 이름,값 설정, name,value
<rosparam/> 명령어처럼 load,dump 등 파라미터 정보 확인 및 수정 command,file
<test/> 노드테스트할 때 사용
<arg/> launch파일 내 변수 정의 가능, name,default,doc

ros명령어

모터 드라이버 패키지(각종 하드웨어)
의존성패키지 설치 및 확인 (rospack list, rospack find [package name])

패키지 설치는
1.바이너리설치 sudo apt-get install [package name]
2.소스 설치 후 빌드 /src에 git clone 후 /catkin_ws에서 catkin_make

Open CR

cortex-M7 코어를 사용해 최대 216Mhz 로 구동되는게 좋은건가?
아두이노 IDE사용
다양한 통신 인터페이스 지원(UART, TTL, RS485, SPI, I2C, CAN ...)
IMU센서 MPU9250보드에 내장(SPI 통신으로 센서데이터 처리하기 때문데 고속으로 읽/쓰 가능)
전원 출력 지원(전원 출력 회로를 통해 7~24V입력일 때 다양한 출력 지원)
전원 핫스왑 가능(SMPS 전원, 배터리 전원 안 끄고 두개 바꾸기 가능, 핫스왑 회로)

홈페이지에서 하드웨어 사양, 펌웨어(플래시 메모리 맵 등) 보기
아두이노 ROS Open CR 공부
USB 꼽아서 펌웨어 업데이트 가능

일반적으로 MCU는 ROS에서 기본 통신으로 사용하는 TCP/IP보다 UART통신 많이 사용
rosserial protocol이라는 중계자 역할 필요
PC가 rosserial server, MCU가 client

예를 들어 MCU에 연결된 센서값을 ADC로 디지털값화 시킨 후 시리얼로 전송하게 되면, PC의 rosserial_server노드는 데이터 값을 받아서 ROS에서 사용하는 토픽으로 변환하여 전송하게 된다. 반대도 작동 (모터제어 속도값)

rosserial은 SBC를 포함한 일반 컴퓨터의 경우, 제어에 있어서 실시간성이 보장 못되는데 이렇게 보조 하드웨어 제어기로 마이크로컨트롤러를 사용하면 실시간성을 확보할 수 있게 된다.
실시간성? https://namu.wiki/w/%EC%8B%A4%EC%8B%9C%EA%B0%84%20%EC%9A%B4%EC%98%81%20%EC%B2%B4%EC%A0%9C
rosserial protocol 패킷 형태로 송수신

마이크로컨트롤러는 사용할 수 있는 메모리가 제한적, 작은용량을 가지고 있기 때문에 Publisher,Subscriber 개수 및 송수신 버퍼 크기를 미리 정의해야 함.

rossserial_arduino는 64비트 실수연산 지원 x 32비트형으로 자동 변경
rosseerial 설치(client lib에)
패키지 설치 -> 라이브러리 생성 -> 통신포트 변경

rosrun rosserial_python serial_node.py __name:=turtlebot3_core _port:=/dev/ttyACM0

터틀봇 펌웨어는 하나의 다이나믹셀에 한정되어 동작, 반드시 하나의 다이나믹셀만 연결해서 펌웨어 설정할것

노드 하나하나 런치할때마다 토픽리스트 확인하고 rqt그래프로 관계 확인할 것
/cmd_vel 이 로봇을 제어하는 실질적인 토픽
퍼블리시 토픽들 보기

병진속도?회전속도?
Gmapping의 알고리즘 특징적 요소
위치 추정 방법론(칼만 필터, 마르코프 위치추정...)

2차원 점유 격자 지도
scan과 tf(병진속도, 회전속도 계산후 추측항법 데드레커닝에 따라 로봇 pose측정되서 tf로 퍼블리시 ) 정보로 slam

turtlebot3 slam흐름도
내비게이션 흐름도 + 이론

정기구학,역기구학

profile
안녕하세요!

0개의 댓글