Re: STELLA N1 드라이버 관련문의
페이지 정보
본문
안녕하세요.
엔티렉스 강규하 전임연구원입니다.
문의주신 내용에 대해 답변을 드리겠습니다.
사용하시는 STELLA N1의 SBC의 ~/catkin_ws/src 폴더 내의 stella/stella_md/src 폴더를 보시면, listener.cpp 파일이 있습니다.
파일 내의 소스코드를 보시면, cmd_vel을 subscribe 할 시 chatterCallback 함수가 callback 됩니다.
위의 chatterCallback 함수를 보시면, calculate_wheel_vel(msg->linear.x, msg->angular.z, &left_rpm, &rigth_rpm) 를 실행합니다.
이 부분에서 cmd_vel의 twist msg 값을 이용하여, left_rpm값과 right_rpm 값을 계산합니다.
그 후 함수 마지막 부분을 보시면, MD_input("move") 를 실행합니다.
이제 소스코드 내의 MD_input 함수를 보시면,
if (!strcmp(str, "move"))
{
sprintf(write_buf, "mvc=%0.3f,%0.3f\r\n", left_rpm, rigth_rpm); //
for (int i = 0; i < strlen(write_buf); i++)
{
unsigned char buf = (unsigned char)(write_buf[i]);
write(serial_port, &buf, sizeof(buf));
}
}
이 부분이 있는데, 이 부분에서 위에서 계산되었던 left_rpm 값과 right_rpm값을 시리얼을 통해 모터드라이버로 송신하게됩니다.
답변이 되었길 바랍니다.
감사합니다.
엔티렉스 강규하 전임연구원입니다.
문의주신 내용에 대해 답변을 드리겠습니다.
사용하시는 STELLA N1의 SBC의 ~/catkin_ws/src 폴더 내의 stella/stella_md/src 폴더를 보시면, listener.cpp 파일이 있습니다.
파일 내의 소스코드를 보시면, cmd_vel을 subscribe 할 시 chatterCallback 함수가 callback 됩니다.
위의 chatterCallback 함수를 보시면, calculate_wheel_vel(msg->linear.x, msg->angular.z, &left_rpm, &rigth_rpm) 를 실행합니다.
이 부분에서 cmd_vel의 twist msg 값을 이용하여, left_rpm값과 right_rpm 값을 계산합니다.
그 후 함수 마지막 부분을 보시면, MD_input("move") 를 실행합니다.
이제 소스코드 내의 MD_input 함수를 보시면,
if (!strcmp(str, "move"))
{
sprintf(write_buf, "mvc=%0.3f,%0.3f\r\n", left_rpm, rigth_rpm); //
for (int i = 0; i < strlen(write_buf); i++)
{
unsigned char buf = (unsigned char)(write_buf[i]);
write(serial_port, &buf, sizeof(buf));
}
}
이 부분이 있는데, 이 부분에서 위에서 계산되었던 left_rpm 값과 right_rpm값을 시리얼을 통해 모터드라이버로 송신하게됩니다.
답변이 되었길 바랍니다.
감사합니다.
- 이전글STELLA N1 드라이버 관련문의 22.04.13
- 다음글STELLA N1 ROS1 SLAM 문의 22.04.12
댓글목록
등록된 댓글이 없습니다.