$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$ sudo apt install curl
$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
$ sudo apt update
$ sudo apt install ros-noetic-desktop-full
$ sudo apt install python3-rosdep
$ sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
$ echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
$ roscore
ros에서 코딩을 하기 위해 workspace라는 공간이 필요하다.
새로운 소스코드, 패키지 등 수정이 발생하면 ros 시스템이 알도록 ROS 프로그래밍 작업과 관련있는 모든 것들을 깔끔하게 정리해서 최신 상태로 빌드(build) 작업을 수행한다.
workspace 생성 코드:
// create workspace
$ cd // home directory
$ mkdir xycar_ws // workspace 폴더 생성
$ cd xycar_ws // workspace 폴더로 이동
$ mkdir src // 소스 폴더 생성
$ catkin_make //패키지 생성 (build, devel, src 폴더 및 패키지 파일 생성)
생성된 폴더 구조:
참고 링크 : https://enssionaut.com/board_robotics/812
.bashrc를 수정하여 source 명령어가 터미널을 켤 때마다 자동적으로 실행되도록 설정
$ vi ~/.bashrc
bash file에 아래 코드를 추가하여 ros 명령어 단축어, 소스파일 경로, master(roscore)의 uri 주소 등록
source ~/xycar_ws/devel/setup.bash
export ROS_MASTER_URI=http://localhost:11311
export ROS_HOSTNAME=localhost
alias cw='cd ~/xycar_ws'
alias cs='cd ~/xycar_ws/src'
alias cm='cd ~/xycar_ws && catkin_make'
source .bashrc
printenv | grep ROS # ros 이름을 포함한 환경 변수 리스트 출력
패키지: 개발된 소프트웨어를 논리적 묶음으로 만든 것
참고 링크: http://wiki.ros.org/ko/ROS/Tutorials/catkin/CreatingPackage
패키지 생성 명령어
// pakage create
$ cd ~/xycar_ws/src // catkin 작업공간의 소스 폴더로 이동
$ catkin_create_pkg my_pkg1 std_msgs rospy
$ cm
$ cd ~/xycar_ws/src/my_pkg1/src
패키지 관련 기능을 수행하는 명령어
명령어 | 설명 |
---|---|
rospack list | 패키지 리스트 출력 grep 으로 연계하여 원하는 키워드 포함 리스트의 경로 출력 |
rospack find | 패키지가 존재하는 경로 출력 |
rospack depends[#n] | 패키지가 의존하는 파일 리스트 출력 # 숫자 1 입력 시 필터링됨 |
roscd | 패키지가 존재하는 경로로 이동 |