ROS_Python编程 之 案例代码核心解析(第二版)

ROS_Python编程 之 案例代码核心解析(第二版)通过Handsfree mini机器人平台配套的中级教程,我对ros_python编程实现 自主导航 的知识做以下归纳:文章目录ROS_Python编程 之 案例代码核心解析(第二版)3. 导航发送目标点3.1 set_goal.py3.2 set_two_goal.py3.3 set_four_goals.py3. 导航发送目标点通过 ros 的 navigation 接口向 move_base 导航系统发送 goal,让机器人导航到目标点。
摘要由CSDN通过智能技术生成

ROS_Python编程 之 案例代码核心解析(第二版)

通过Handsfree mini机器人平台配套的中级教程,我对ros_python编程实现 自主导航 的知识做以下归纳:

3. 导航发送目标点

通过 ros 的 navigation 接口向 move_base 导航系统发送 goal,让机器人导航到目标点。

handsfree mini 机器人工控机自带的ros系统一共有三份代码,分别是 set_goal.py,set_two_goal.py 和 set_four_goals.py

  • set_goal.py 设置一个点
  • set_two_goal.py 设置两个点
  • set_four_goals.py 设置四个点
3.1 set_goal.py

其中,set_goal.py 源码的精髓如下:

# 精髓1
self.move_base = actionlib.SimpleActionClient("move_base", MoveBaseAction)

# 解析:
# "move_base"为话题通信中的话题名称,self.move_base中的move_base为客户端,而 MoveBaseAction 为一消息类,定义如下:
# move_base_msgs/MoveBaseAction Message
# MoveBaseActionGoal action_goal
# MoveBaseActionResult action_result
# MoveBaseActionFeedback action_feedback
# 精髓2
self.move_base.wait_for_server()

# 解析:等待动作服务器actionlib成功启动。ros通信机制中服务通信的特色:客户端请求被处理时,需要保证服务端已经启动
# 精髓3
goal = MoveBaseGoal()

# 解析:
# move_base_msgs/MoveBaseGoal Message 定义如下:
# geometry_msgs/PoseStamped target_pose
# 精髓4
self.move_base.send_goal(goal,self.donecb,self.activecb,self.feedbackcb)

# 解析1:
# 第一个参数goal是 客户端发布的目标点

# 解析2:利用回调函数
# 第二个参数是 机器人到达时的回调函数,一旦机器人到达目标点,就调用此函数
def donecb
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值