move_base_simple/goal 是一个ROS话题(Topic),用于发布移动目标的简单消息。它是一个geometry_msgs/PoseStamped类型的消息,包含目标位置的位姿信息,包括三维坐标和四元数。

move_base_msgs/MoveBaseActionGoal消息相比,它更加简单,只包含一个位置和一个方向,而不是包含更多的导航行为和状态信息。这使得它在一些简单的应用场景中更加方便使用,例如在移动机器人上通过编写脚本实现一些简单的运动控制等

 

move_base_simple/goalmove_base_msgs/MoveBaseActionGoal 的区别在于消息类型和发送方式。move_base_simple/goal 是一个简单的消息类型,只需要在其中设置目标点的坐标,而 move_base_msgs/MoveBaseActionGoal 则需要设置更多的参数,如目标点的姿态、机器人的速度等等,需要通过 actionlib 发送。简单来说,move_base_simple/goal 更加方便快捷,而 move_base_msgs/MoveBaseActionGoal 更加灵活,可以设置更多参数控制机器人的运动

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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)

  

posted on   黑逍逍  阅读(2016)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!



点击右上角即可分享
微信分享提示