ROS(Robot Operating System)은 언뜻 보면 운영체제로 생각할 수 있지만,
응용 프로그램이고, 운영체제처럼 동작한다고 생각하면 된다.
이 ROS는 이기종간 msg 통신을 지원한다.
어떤 HW에 어떤 OS가 설치돼있든, ROS를 설치하기만 하면 기종이 달라도 msg 통신이 가능하다.
ROS 설치를 위해 아래 페이지를 참고해 우분투에 설치를 진행했다. (참고로 ROS2 humble을 설치하려면 Ubuntu 버전이 22.04여야 한다.)
https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html
Ubuntu (deb packages)
Table of Contents: Resources, Set locale, Setup Sources, Install ROS 2 packages, Environment setup- Sourcing the setup script., Try some examples- Talker-listener., Next steps after installing, Usi...
docs.ros.org
ROS 설치를 위한 작업을 먼저 해주겠다.
#===== Set locale
locale # check for UTF-8
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
locale # verify settings
#===== Setup Sources
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F'"' '{print $4}')
curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb"
sudo dpkg -i /tmp/ros2-apt-source.deb
이제 ROS를 설치하겠다.
sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop
(ros docs에 나온 ros-humble-ros-base나 ros-dev-tools는 실행하지 않았다.)
ROS가 잘 설치되었나 확인을 위해,
ros2
를 입력해보고, 만약 찾지 못한다면,
source /opt/ros/humble/setup.bash
ros2
이렇게 실행해보면 ros2에 대한 출력이 뜰 것이다.
이제 약간의 예제를 진행해보겠다.
터미널 두 개를 열어서, 각각 아래의 두 명령어를 실행시켜본다.
[첫 터미널]
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker
[두 번째 터미널]
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_py listener
첫 터미널에서 생성되는 결과가 두 번째 터미널에 전송되는 것을 확인할 수 있다.
추가로, ROS 에서 쏘는 결과를 Window에서 읽어들이기 위한 웹소켓 서버를 활성화하기 위해서는,
두 번째 터미널에서 아래와 같이 실행 후, 웹에서 localhost:9090 에 접속해보면 Can "Upgrade" only to "WebSocket".라고 뜬다.
sudo apt install ros-humble-rosbridge-server
ros2 launch rosbridge_server rosbridge_websocket_launch.xml
'로보테크' 카테고리의 다른 글
| STM32로 광센서(조도센서)값을 읽어와 터미널(Tera Term)에 출력하기 (0) | 2026.09.18 |
|---|