Arduino

[Arduino] ROS 통신 시 싱크가 끊기는 이유에 관하여

devJua 2023. 4. 28. 14:01

ROS통신을 이용하여 아두이노를 작동 시키고 있었는데 계속해서 싱크가 끊기고 돌아오지 않는 상황이 발생하였다.

우선 완벽하게 해결했던 방법은 아래와 같다.

 

1. 아두이노로 전달되는 데이터의 양을 줄인다 or sleep과 같은 걸 사용하여 의도적으로 지연시킨다.
2. 큐 사이즈를 줄인다.

 

아두이노 자체가 시리얼 통신으로 받은 데이터들을 병렬이 아닌 직렬로 처리하다보니

계속해서 빠르게 데이터를 전송해버리면 C++ 에서 core dump가 일어나는 것 처럼

뻑나버리는 것 같았다.

 

확실한 에러 메시지에 대한 정보는 없어서 확신은 할 수 없지만,

큐 사이즈를 줄이고 의도적으로 지연시켰을 때 해결된 것을 보면

직렬로 데이터를 처리하는 아두이노에 한계였던 것 같다.