본 포스팅에서는 ROS를 이용하여 OpenCM9.04 보드.
OpenCM9.04는 아두이노IDE를 사용할 수 있고, 또한, 아두이노 IDE는 ROS 라이브러리를 제공하고 있기 때문에 세 가지 방법을 통합하여 사용을 해본다.
OS: Ubuntu
ROS 버전: melodic
개발보드: OpenCM9.04
개발환경: 아두이노 IDE
먼저, 아두이노 ROS 패키지를 위한 소프트웨어를 설치한다. 터미널에 아래와 같이 입력한다.
ros-melodic-rosserial-arduino
* 만약, ros의 버전이 kinetic이면 melodic을 대신 kinetic을 입력하면 된다.
아래 rosserial은 ROS에서 시리얼 통신을 해줄 수 있도록 설치하는 것이다.
ros-melodic-rosserial
아래 링크에서 아두이노 IDE를 설치한다.
https://www.arduino.cc/en/Main/Donate
- Conribute & download 옆에 Just download를 클릭하여, 다운로드를 진행한다.
- 아두이노 IDE 설치 후에, ros_lib를 아두이노 IDE가 있는 곳에 설치를 해준다.
>cd arduino 경로/libraries
> rosrun rosserial_arduino make_libraries.py .
- 위의 화면처럼 ros_lib 가 성공적으로 설치되어 진다.
- 아두이노 IDE에서 OpenCM9.04를 사용하기 위해, USB port를 세팅해준다.
> wget https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCM9.04/master/99-opencm-cdc.rules
> sudo cp ./99-opencm-cdc.rules /etc/udev/rules.d/
> sudo udevadm control --reload-rules sudo udevadm trigger
> sudo apt-get install libncurses5-dev:i386
File>Preference>AdditionalBoaardsManager URLs:에 다음 링크를 입력해준다.
- 위의 화면처럼, Tools>Board>Boards Manager에 들어가서, OpenCm을 입력하고, Install을 해준다.
- 시간이 조금 걸린다. 약 10분 정도.
2. 예제
그럼, 설치가 끝났으면, OpenCM9.04 보드에 아두이노 IDE를 이용하여 예제를 다운로드해보고, ROS로 통신시켜본다.
아두이노 IDE를 이용하여 아래 예제코드를 OpenCM9.04 보드에 다운로드 한다.
#include #include <std_msgs/String.h> ros::NodeHandle nh; std_msgs::String str_msg; ros::Publisher chatter("chatter", &str_msg); char hello[13] = "hello world!"; void setup() { nh.initNode(); nh.advertise(chatter); } void loop() { str_msg.data = hello; chatter.publish( &str_msg ); nh.spinOnce(); delay(1000); } |
- 아래와 같이 roscore를 실행시키고,
- 아래와 같이 rosserial를 이용하여 포트를 open 한다. ttyACM은 아두이노를 연결했을때 연결되며, ls /dev/ttyACM* 를 입력하여 포트 번호를 확인할 수 있다.
> rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=57600
- 정상적으로 연결된 것을 확인한 후, 새로운 터미널을 열어서 아래 명령어를 입력한다.
> rostopic echo chatter
- 정상적으로 "hello world!"가 출력된다.
'ROS (Robot Operating System)' 카테고리의 다른 글
[ROS: Robot Operating System] 3-1. ROS 파일시스템 (0) | 2019.04.08 |
---|---|
[ROS: Robot Operating System] 2-3. ROS Message (메세지)의 이해 (0) | 2019.04.05 |
[ROS: Robot Operating System] 2-1. ROS Node (노드)의 이해 (0) | 2019.04.05 |
[ROS: Robot Operating System] 1-3. ROS 용어 정리 (0) | 2019.04.04 |
[ROS: Robot Operating System] 1-2. ROS 설치 (0) | 2019.04.04 |