[자율주행] ROS 설치

­윤다빈·2022년 8월 8일
1

[Devlog] - 자율주행

목록 보기
3/6

현재 상태 : VMware를 사용하여 Ubuntu 20.04 설치되어있음

Ros noetic 공식문서를 통한 설치

firefox에 "ros noetic install"을 설치하여 나오는 제일 첫 페이지를 통하여 ros noetic 설치

Ros 설치 완료

참고 영상
https://www.youtube.com/watch?v=8PmJQ8OcOKM&list=PLoc4bSmQajN-2N7BXdf2M7TaZ9EyZJRBa&index=4


개발 툴 설치

chrome 설치

https://www.google.co.kr/chrome/thank-you.html?brand=CHBD&statcb=0&installdataindex=empty&defaultbrowser=0

설치를 둘러 deb 파일 다운 받기

해당 파일 경로에서 터미널을 열어 압축 풀기

dpkg: error: dpkg frontend lock is locked by another process

라는 오류가 발생

-> 다른 프로세스들이 실행되고 있어서 다음과 같은 오류 발생

=> sudo killall apt apt-get
을 실행하면 된다고 함
but!!!

프로세스 없다고 함..
그래서 하나하나 kill 해주고 update해주는 방식으로 초기화함

sudo killall apt apt-get
  - 진행중인 프로세스가 없다라고 뜨면, 아래와 같이 하나하나씩 디렉토리를 삭제해주세요.
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*
sudo dpkg --configure -a 
sudo apt update
출처: https://enant.tistory.com/18 [ENAN:티스토리]

=== 해결!

Qtcreator 설치

??VScode로도 실행할 수 있나..


ROS 예제 풀기

참고 사이트
https://velog.io/@jaewon_/ROS-%EA%B0%84%EB%8B%A8-%EC%98%88%EC%A0%9C

터미널 1

roscore를 입력해 실행시킴으로써 ros 실행 필수!!!

터미널 2

rosnode list
명령어를 통해 현재 어떤 node들이 있고 실행되고 있는지 확인

(현재 실행되고 있는 node)
/rosout

~$ rosrun turtlesim turtlesim_node

[ INFO] [1659971260.734762851]: Starting turtlesim with node name /turtlesim

해당 검색어를 통해 /turtlesim 이라는 노드 실행
(움직이지 않는 거북이가 있는 창이 뜸)

터미널 3

rosrun turtlesim turtle_teleop_key
명령어를 통해 키보드 입력을 받아 거북이를 이동시킴 (터미널 3 안에서 키보드를 조작해야 거북이가 움직임)
teleop_key 가 키보드 입력을 받는 명령어

터미널 4

rosnode list 명령어를 통해 현재 어떤 node들이 있고 실행되고 있는지 확인

(현재 실행되고 있는 node)
/rosout
/teleop_turtle
/turtlesim

rqt 혹은 rqt_graph
명령어를 통해 현재 실행되고 있는 node들의 상관관계를 파악할 수 있음

=> 현재 /teleop_turtle 노드에서 /turtlesim 노드로 신호를 보내고 있음

rostopic list

명령어를 입력하면 어떤 토픽이 날아다니는지 확인할 수 있음
(현재)
/rosout
/rosout_agg
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose

여기서 토필 하나를 선택하여 echo하면 어떤 값인지 알 수 있음

rostopic list -v

하면 published topic과 subscribed topics을 더 자세히 볼 수 있음

토픽 직접 발행

rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0,0.0,0.0]' '[0.0,0.0,1.8]'

-1 ==> 한번만
/turtle1/cmd_vel -> 토픽
geometry_msgs/Twist -> 메시지 타입 (rostopic type /turtle1/cmd_vel )으로 알 수 있다.
뒤에는 메시지 내용

-r : 발행 주기 Hz ex)

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0,0.0,0.0]' '[0.0,0.0,1.8]'

==> 발행 주기 1Hz -> 1초에 한 번

profile
Web-Front / SW-AI 개발자

0개의 댓글