move_base_simple/goal
是一个ROS话题(Topic),用于发布移动目标的简单消息。它是一个geometry_msgs/PoseStamped
类型的消息,包含目标位置的位姿信息,包括三维坐标和四元数。
与move_base_msgs/MoveBaseActionGoal
消息相比,它更加简单,只包含一个位置和一个方向,而不是包含更多的导航行为和状态信息。这使得它在一些简单的应用场景中更加方便使用,例如在移动机器人上通过编写脚本实现一些简单的运动控制等
move_base_simple/goal
和 move_base_msgs/MoveBaseActionGoal
的区别在于消息类型和发送方式。move_base_simple/goal
是一个简单的消息类型,只需要在其中设置目标点的坐标,而 move_base_msgs/MoveBaseActionGoal
则需要设置更多的参数,如目标点的姿态、机器人的速度等等,需要通过 actionlib
发送。简单来说,move_base_simple/goal
更加方便快捷,而 move_base_msgs/MoveBaseActionGoal
更加灵活,可以设置更多参数控制机器人的运动
import rospy from geometry_msgs.msg import PoseStamped def send_goal(x, y, theta): # 初始化节点 rospy.init_node('send_goal_node', anonymous=True) # 创建一个发布者,发布目标位置消息 pub = rospy.Publisher('/move_base_simple/goal', PoseStamped, queue_size=10) # 创建一个PoseStamped消息对象,填充位置信息 goal = PoseStamped() goal.header.stamp = rospy.Time.now() goal.header.frame_id = "map" goal.pose.position.x = x goal.pose.position.y = y goal.pose.orientation.z = theta # 发布目标位置消息 pub.publish(goal) # 等待一段时间,让小车到达目标位置 rospy.sleep(5) if __name__ == '__main__': # 发送目标位置为 x=1.0, y=1.0, theta=0.0 的消息 send_goal(1.0, 1.0, 0.0)