//-----------------------计算机器人曲率--------------------------------------------------
*output_kappa = calcCurvature(next_target_position_); //机器人曲率计算 参考公式R=L^2/(2*x)
//---------------- 发布机器人速度---------------------------
ts.twist.linear.x = can_get_curvature ? computeCommandVelocity() : 0; //给定线速度
ts.twist.angular.z = can_get_curvature ? kappa * ts.twist.linear.x : 0; //给定角速度
//----------------------------------路径跟随--------------------------
waypoint_follower::ControlCommandStamped ccs; // way_following
ccs.header.stamp = ros::Time::now();
ccs.cmd.linear_velocity = can_get_curvature ? computeCommandVelocity() : 0; //计算机器人的线速度
ccs.cmd.steering_angle = can_get_curvature ? convertCurvatureToSteeringAngle(wheel_base_, kappa) : 0; //计算机器人的转角,wheel_base为车的轴距
convertCurvatureToSteeringAngle(){}
return atan(wheel_base * kappa); //参考公式theta=arctan(H/R)
//----------------------------------------------------------
dtlane.msg:
float64 dist
float64 dir
float64 apara
float64 r
float64 slope
float64 cant
float64 lw
float64 rw
geometry_msgs/PoseStamped: //坐标 xyz 四元数
std_msgs/Header header
geometry/Pose pose
geometry_msgs/TwistStamped:
Header header
Twist twist //控制
waypoint.msg :
geometry_msgs/PoseStamped pose
geometry_msgs/TwistStamped twist
dtlane dtlane
int32 change_flag
lane.msg:
Header header
int32 increment
waypoint[] waypoints
LaneArray.msg:
lane[] lanes
ControlCommand.msg:
float64 linear_velocity
float64 steering_angle
ControlCommandStamped.msg:
Header header
ControlCommand cmd