首页 > 其他分享 >ROS 简单导航

ROS 简单导航

时间:2024-08-29 22:53:34浏览次数:5  
标签:target pose actionclient rospy 简单 ROS 导航 goal

        导航是现代机器人可以说是必备的功能,很多机器人都不可以缺少这个功能,本文仍然是通过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("导航失败")

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

 

 


 


 

标签:target,pose,actionclient,rospy,简单,ROS,导航,goal
From: https://blog.csdn.net/Aishangyuwen/article/details/141690268

相关文章

  • 使用zig语言制作简单博客网站(六)文章详情页
    前端代码前端代码<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><link......
  • 【ROS教程】用CLion编译和调试ROS包的全流程及可能遇到的问题
    @目录1.工作空间目录2.加载环境变量3.打开CLion4.配置CLion5.编译和调试软件包1.工作空间目录我们的一个工作空间目录应该是这样的2.加载环境变量先进入工作空间再加载source./devel/setup.bash3.打开CLion一定要在第二步的同一个终端下clion.sh如果打不开,......
  • 简单介绍数据库
    基本概念数据库(DataBase,DB)定义数据库是相互关联的数据项的集合简单来说,就是存储数据的地方特点结构化:数据通常以表格、行和列的形式组织持久性:数据长期保存,防止丢失数据关联:数据项之间可以定义关系即不同的表格之间通过相同的信息联系起来,这个相同的信息就叫做......
  • python读取配置文件&&简单封装 公共配置文件 config
    之前有做过把爬虫数据写到数据库中的练习,这次想把数据库信息抽离到一个ini配置文件中,这样做的好处在于可以在配置文件中添加多个数据库,方便切换(另外配置文件也可以添加诸如邮箱、url等信息)1.configparser模块python使用自带的configparser模块用来读取配置文件,配置文......
  • 【挖矿病毒】简单逆向分析
    在虚拟机中执行explorer.exe后,它会在/Windows/Fonts/目录中释放恶意文件,包括主加密挖掘程序文件、包含启动挖掘过程的恶意命令的批处理文件以及两个注册表文件,其注册表子项和值稍后将被插入到系统注册表使用regedit.exe。释放的恶意文件包括:svchost.exe1.batserver.reg......
  • 通过vue-draggable-plus实现一个简单的菜单拖拽功能
    <divclass="my-content-list"v-draggable="[nameList,{animation:300,}]":onStart="onStart":onUpdate="onUpdate">......
  • 【ROS教程】服务通信
    @目录1.流程2.自定义请求和响应的数据2.1std_msgs内置类型2.2编写.srv文件2.3修改package.xml文件2.4修改CMakeLists.txt文件2.4.1修改find_package指令2.4.2添加add_message_files指令2.4.3添加generate_messages指令2.5查看头文件3.编写cpp文件3.1功能包目录文件树3.2......
  • 网课录屏软件哪个好?学会它,电脑录屏超简单
    随着在线教育的普及,越来越多人加入到网课学习的行列中,网课也成为当下教育比较重要的一种学习方式。这时老师就需要一款录屏软件录制网课,那网课录屏软件哪个好?小编今天给大家带来了两款录屏软件的分享,快来看看吧。一、QQ网课录屏二、专业网课录屏软件一、QQ网课录屏有些老......
  • DCN V2 Improved Deep & Cross Network and Practical Lessons for Web-scale Learnin
    目录概DCN-v2WangR.,ShivannaR.,ChengD.Z.,JainS.,LinD.,HongL.andChiE.D.DCNV2:Improveddeep&crossnetworkandpracticallessonsforweb-scalelearningtoranksystems,2020.概DCN的升级版.DCN-v2DCN-v2的cross/deep的结合方式上有上......
  • 「ComfyUI」增强图像细节只需要一个节点,SD1.5、SDXL、FLUX.1 全支持,简单好用!
    ‍‍‍‍‍前言今天给小伙伴们介绍一个非常简单,但又相当好使的一个插件。功能很简单,就是增加或者减少图像的细节,节点也很简单,就一个节点,只需要嵌入我们的ComfyUI的基础工作流中就可以了,随插随用。而且该插件不仅支持SD1.5和SDXL,甚至最新出的FLUX.1模型也是支持的......