ROS2로 STELLA N1 제어중 좌우 회전은 문제없으나 전진/후진은 제어와 반대로 동작하는 현상이 나타났다.
ROS1에서 사용시에는 문제가 없었으므로 모터나 모터드라이브 문제는 아닐거라 판단해 컨트롤러쪽 코드를 변경해주었다.
제어 코드 변경을 위해 모터제어와 연관된
~/colcon_ws/src/STELLA_RASPBERRYPI_ROS2/stella/stella_md/src/main.cpp
를 찾아가 Topic Callback 함수인
void stellaN1_node::command_velocity_callback(const geometry_msgs::msg::Twist::SharedPtr cmd_vel_msg)
{
goal_linear_velocity_ = cmd_vel_msg->linear.x;
goal_angular_velocity_ = cmd_vel_msg->angular.z;
calculate_wheel_vel(cmd_vel_msg->linear.x, cmd_vel_msg->angular.z, &left_rpm, &right_rpm);
}
에서 전/후진 속도를 나타내는 linear.x를
void stellaN1_node::command_velocity_callback(const geometry_msgs::msg::Twist::SharedPtr cmd_vel_msg)
{
goal_linear_velocity_ = cmd_vel_msg->linear.x*-1;
goal_angular_velocity_ = cmd_vel_msg->angular.z;
calculate_wheel_vel(cmd_vel_msg->linear.x*-1, cmd_vel_msg->angular.z, &left_rpm, &right_rpm);
}
와 같이 수정후
cd ~/colcon_ws && colcon build --symlink-install && source ~/.bashrc
적용 결과 문제가 해결되었다.
'로봇 개발(ROS)' 카테고리의 다른 글
[230224] 모터 Wheel tick 데이터 추출 및 publish 하기 (1) | 2023.02.24 |
---|---|
[230220] 라즈베리파이 부팅시 crontab으로 자동실행 & 콘솔로 출력 확인 (0) | 2023.02.20 |
[230207] 맥북(Ubuntu 20.04)에 Ros Noetic과 Foxy 같이 설치하기 (0) | 2023.02.07 |
[230203] 맥북(Mac M1 Pro)에 ROS noetic 설치하기 (0) | 2023.02.03 |
[230203] Mac M1 Pro + Ubuntu 20.04 (0) | 2023.02.03 |