我正在尝试使用以下公式将 Twist 转换为左右轮的速度:
float speed_wish_right = (cmd_vel.angle*WHEEL_DIST)/2 + cmd_vel.speed;
float speed_wish_left = cmd_vel.speed*2-speed_wish_right;
Run Code Online (Sandbox Code Playgroud)
Twist.angular是一个向量 [x, y, z],所以是Twist.linear。x、y、z 在向量中是什么意思,如何从两个向量中获得角度和速度?
这是我在 Arduino 中的回调函数
const int WHEEL_DIST = 16;
void velCallback(geometry_msgs::Twist vel) {
float linear = vel.linear.x;
float angle = vel.angular.z;
float speed_wish_right = (angle * WHEEL_DIST) / 2 + linear;
float speed_wish_left = linear * 2 - speed_wish_right;
motors.setSpeeds(speed_wish_left, speed_wish_right);
}
Run Code Online (Sandbox Code Playgroud) ros ×1