728x90
- Arduino 관련 issue로 인해 ubuntu 설치 디스크 삭제 후 재설치
- 어제 회의 때 OpenCR이 고장났음이 확인되어 arduino + raspberry pi 4로 구성 변경
$ sudo chmod +x arduino-1.8.18-linuxaarch64.tar.xz
- arduino-1.8.18-linuxaarch64.tar.xz에 실행 권한 부여
$ tar -xvf arduino-1.8.18-linuxaarch64.tar.xz
- 압축 해제
cd ~/arduino-1.8.18/
su
./install.sh
su [lim]
- arduino-1.8.18 디렉터리에 들어가서 su 명령어로 관리자 계정(root)으로 전환하고./install.sh을 입력하여 아두이노를 설치한다.
- 설치를 완료하고 나서 관리자 계정(root)에서 일반 계정(lim)으로 전환하기 위해서는 'su 계정명'을 입력하면 된다.
- Arduino 실행 후 Sketch -> Include Library -> Manage Libraries 를 통해 rosserial library 설치
- 설치 후 예제를 실행하려 하자 아래와 같은 오류가 뜸
- /home/lim/Arduino/libraries/Rosserial_Arduino_Library/src/ros directory에 있는 msg.h 파일을 연 후 아래와 같이 수정함
- #include <cstring>는 더이상 동작하지 않아 string.h로 변경
- memcpy 함수는 더이상 std의 member가 아니므로 위와 같이 수정
- 에러 해결
- "hello world!" 예제 실행
/*
* rosserial Publisher Example
* Prints "hello world!"
*/
#include <ros.h>
#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);
}
- 위 코드 upload 후 서로 다른 3개의 터미널창에서 아래의 명령어들 입력
$ roscore
$ rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=57600
$ rostopic echo chatter
- "hello world!" 가 표시되는 것을 볼 수 있다
참고자료 :
https://95mkr.tistory.com/entry/ROS8
https://github.com/ros-drivers/rosserial/issues/518
https://answers.ros.org/question/361930/rosserial-arduino-compilation-error-no-cstring/
'Project > KUSMO' 카테고리의 다른 글
[KUSMO] 11/18 (IMU, RPLidar 케이블, rosserial-arduino) (0) | 2022.11.18 |
---|---|
[KUSMO] 11/4 (Navigation Stack 구성법) (0) | 2022.11.04 |
[KUSMO] 10/31 (진행 상황 정리) (0) | 2022.11.01 |
[KUSMO] 10/29 (0) | 2022.10.29 |
[KUSMO] 10/28 (0) | 2022.10.28 |