본문 바로가기
Robotics 🤖/Ubee

아두이노 + ROS 2 튜토리얼

by 우직한 사람 2023. 8. 28.
반응형

개요

이번 글은 아두이노에서 ROS topic을 발행하여 값을 확인하는 과정을 기록한 글이다.

 

Version Dependencies

Arduino SAM Boards (32-bits ARM Cortex-M3) : 1.6.11

micro-ros-arduino : ros-humble 2.0.7

Ubuntu : 22.04

ROS 2 Version : Humble

 

 

1. 패키지 설치 및 git clone

#본인의 ROS2 워크스페이스에서 작업하면 됩니다.
cd ~/robot2_ws/src 
git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git

# rosdep으로 의존 패키지 업데이트
sudo apt update && rosdep update
rosdep install --from-paths . --ignore-src -y

# pip 설치
sudo apt-get install python3-pip

# micro-ROS tools 과 소스 빌드
cd ~/robot2_ws
colcon build --packages-select micro_ros_setup
source install/local_setup.bash

# micro-ROS agent 패키지 설치

cd ~/robot2_ws
ros2 run micro_ros_setup create_agent_ws.sh

ros2 run micro_ros_setup build_agent.sh
source install/local_setup.bash

 

아두이노 DUE를 연결 했을 때

연결 해제 했을 때

 

아두이노 Sketch를 열어준다. 아래와 같이 아두이노 듀에 관련 패키지를 설치하라고 하면 설치한다.

 

2. 아래 깃허브에 들어가서 자신의 ROS 버전에 맞게 micro ros 라이브러리 .zip 파일을 설치한다.

 

Releases · micro-ROS/micro_ros_arduino

micro-ROS library for Arduino. Contribute to micro-ROS/micro_ros_arduino development by creating an account on GitHub.

github.com

3. Arduino 환경 설정

Sketch -> Include library -> Add .ZIP Library로 들어가서 설치한 라이브러리를 추가한다.

업로드 시 아래와 같은 오류가 발생한다. 

이 때 File -> Preference로 가서 아래에 있는 preference.txt 파일이 있는 디렉토리로 간다음,

Package -> arduino -> hardware -> sam -> 1.6.11 (버전) 에서 터미널을 열고 아래 명령어를 입력한다.

curl https://raw.githubusercontent.com/micro-ROS/micro_ros_arduino/main/extras/patching_boards/platform_arduinocore_sam.txt > platform.txt

 

혹시 몰라 paltform.txt 파일 첨부

platform.txt
0.01MB

 

4. 실행 방법 (중요)

1) 먼저 아두이노 코드를 업로드 한다. ( ros2 run 을 먼저해서 읽어오면 안됨)

micro-ros_publisher.ino
0.00MB

2. 그 다음 터미널을 열어서 아래 명령어를 입력한다.

ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyACM0

그러면 아래와 사진과 같이 나온다. (다르게 나오면 듀에 보드 reset 버튼을 눌러준다)

3. 또 다른 터미널을 열어서 아래 명령어를 입력하여 듀에보드가 출력하는 토픽을 확인한다.

ros2 topic echo /micro_ros_arduino_node_publisher

not found 에러가 뜨면 아래 명령어를 입력 후 다시 실행한다.

source install/local_setup.bash

 

Reslut ( Success )

 

trobule shooting

ERROR 1)

sol 1)

sudo apt update
sudo apt -y install ament-cmake

result : ERROR 2)

 

ERROR 2)

sol 2)

주석 처리

result

 

 

후..너무 어려웠다

이렇게 해서 나중에 아두이노 보드에서 받는 센싱 데이터를  ROS 를 통해서 integration을 할 수 있다.

 

 

[참고 자료]

https://huroint.tistory.com/30

https://soulful-magenta-dog-467.medium.com/micro-ros-with-arduino-ros2-arduino-7e754ba5210

https://github.com/micro-ROS/micro_ros_arduino

반응형