当前位置: 首页 > article >正文

ROS 简单导航

        导航是现代机器人可以说是必备的功能,很多机器人都不可以缺少这个功能,本文仍然是通过ros的topic话题通讯机制,结合了map和导航相关的话题,通过手动设置目标点,完成了对于机器人导航的控制。       

1.首先需要导包:

import rospy
import actionlib
from move_base_msgs.msg import MoveBaseAction, MoveBaseGoal

        导入了必要的库和消息类型:
        rospy:ROS Python库,用于与ROS系统通信。
        actionlib:用于处理动作服务器和客户端的库。
        MoveBaseAction 和 MoveBaseGoal:这些是与导航相关的消息类型。

2.初始化ros节点,此处不做过多的赘述。

rospy.init_node("nav_client")

3.创建了一个SimpleActionClient,它将连接到名为“move_base”的动作服务器:

actionclient = actionlib.SimpleActionClient('move_base', MoveBaseAction)
actionclient.wait_for_server()

4.手动设置了目标点的位置,和机器人到达目标点的方向:

goal = MoveBaseGoal()
goal.target_pose.header.frame_id = "map"
goal.target_pose.pose.position.x = -3.0
goal.target_pose.pose.position.y = 2.0
goal.target_pose.pose.position.z = 0.0
goal.target_pose.pose.orientation.x = 0.0
goal.target_pose.pose.orientation.y = 0.0
goal.target_pose.pose.orientation.z = 0.0
goal.target_pose.pose.orientation.w = 1.0

5.发送目标点给动作服务器并等待结果:

actionclient.send_goal(goal)
rospy.logwarn("导航开始")
actionclient.wait_for_result()

6.检查导航是否成功:

if actionclient.get_state() == actionlib.GoalStatus.SUCCEEDED:
    rospy.loginfo("导航成功")
else:
    rospy.loginfo("导航失败")

        但是这样进行导航,需要手动用地图坐标确定目标点的位置,未免有点过于冗杂和误差,而航点导航就能解决这个问题。 

 

 


 


 


http://www.kler.cn/a/282450.html

相关文章:

  • GoogleCloud服务器的SSH连接配置
  • 【linux学习指南】VSCode部署Ubantu云服务器,与Xshell进行本地通信文件编写
  • Qwen2.5-Coder-32B-Instruct Docker 部署openai接口
  • 如何利用WebSockets实现高效的实时通信应用
  • cmake生成器表达式
  • ollama+springboot ai+vue+elementUI整合
  • E30.【C语言】练习:sizeof和strlen的习题集(B)
  • Oracle TDE和表空间中的数据量有关系吗?
  • CMake构建学习笔记7-freetype库的构建
  • 【pgAdmin4】创建/删除:数据库Database和数据库表Table
  • Python办公自动化 获取文本数据 支持多种类型文件
  • android MutableLiveData 赋值
  • 甲基化组学全流程生信分析教程
  • 链游开发教学
  • 项目配置在nacos配置中心进行管理
  • SK Hynix明年将开发基于96/128 GB DDR5的CXL 2.0内存解决方案
  • 深入理解Python中的装饰器链(Chaining Decorators)
  • git pull时如何避免输入用户名和密码?
  • flowable源码解读——内存缓存设计
  • 探秘紫白洋桔梗花语:勇气、爱情、希望与清晰的象征解读
  • vue前端获取电脑本机的mac和ip地址
  • 国密起步2:GmSSL3使用SM4(对称加密)
  • C语言阴阳迷宫
  • 【Python机器学习】NLP词频背后的含义——隐性语义分析
  • java 读取json文件并写入Excel
  • 【功能自动化】使用测试套件运行测试函数