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

3.10 坐标导航

1.编写代码

新建文件nav_clienr.cpp编写代码

#include<ros/ros.h>
#include<move_base_msgs/MoveBaseAction.h>
#include<actionlib/client/simple_action_client.h>typedef actionlib::SimpleActionClient<move_base_msgs::MoveBaseAction> MoveBaseClient;int main(int argc, char *argv[])
{ros::init(argc,argv,"nav_client");//这里为true自动阻塞,调用结果MoveBaseClient ac("move_base",true);//等待服务时间为-5swhile(!ac.waitForServer(ros::Duration(5.0))){ROS_INFO("Waiting for the move_base action server to come up");}move_base_msgs::MoveBaseGoal goal;goal.target_pose.header.frame_id="map";goal.target_pose.header.stamp=ros::Time::now();//map 为原点goal.target_pose.pose.position.x=-3.0;goal.target_pose.pose.position.y=2.0;//目标姿态goal.target_pose.pose.orientation.w=1.0;ROS_INFO("Sending goal");ac.sendGoal(goal);ac.waitForResult();if(ac.getState() == actionlib::SimpleClientGoalState::SUCCEEDED)ROS_INFO("Mission complete---*u*");elseROS_INFO("Mission failed---TuT");return 0;
}

文件路径为

在CMakeLists.txt增加编译规则 

add_executable(nav_client src/nav_client.cpp)
add_dependencies(nav_client ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(nav_client${catkin_LIBRARIES}
)

2.启动仿真环境

新建3个终端,分别执行命令

roslaunch wpr_simulation wpb_stage_robocup.launch 
roslaunch nav_pkg nav.launch 
 rosrun nav_pkg nav_client 

可视化结果

3.航点导航插件

下载插件

git clone https://github.com/6-robot/waterplus_map_tools.gi

进入脚本文件安装依赖

cd waterplus_map_tools/scripts/

执行新建航点程序(地图文件默认在~/catkin_ws/src/wpr_simulation/maps)

roslaunch waterplus_map_tools add_waypoint_simulation.launch

add waypoint 一共增加4个节点

 新建终端保存航点

rosrun waterplus_map_tools wp_saver

 新建终端,执行命令

roslaunch wpr_simulation wpb_map_tool.launch

可视化结果,机器人在门口

新建终端,执行 航点导航程序

rosrun wpr_simulation demo_map_tool

修改nav.launch文件

<launch><node pkg="move_base" type="move_base" name="move_base"><rosparam file="$(find wpb_home_tutorials)/nav_lidar/costmap_common_params.yaml" command="load" ns="global_costmap" /><rosparam file="$(find wpb_home_tutorials)/nav_lidar/costmap_common_params.yaml" command="load" ns="local_costmap" /><rosparam file="$(find wpb_home_tutorials)/nav_lidar/global_costmap_params.yaml" command="load" /><rosparam file="$(find wpb_home_tutorials)/nav_lidar/local_costmap_params.yaml" command="load" /><param name="base_global_planner" value="global_planner/GlobalPlanner" /> <param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" /><rosparam file="$(find wpb_home_tutorials)/nav_lidar/dwa_local_planner_params.yaml" command="load"/></node><node pkg="map_server" type="map_server" name="map_server" args="$(find wpr_simulation)/maps/map.yaml"/><node pkg="amcl" type="amcl" name="amcl"/><node pkg="rviz" type="rviz" name="rviz" args="-d $(find nav_pkg)/rviz/map_tool.rviz"/><node pkg="waterplus_map_tools" type="wp_navi_server" name="wp_navi_server" output="screen"/><node pkg="waterplus_map_tools" type="wp_manager" name="wp_manager" output="screen"/></launch>

启动仿真环境:新建3个终端,分别执行下列命令

roslaunch wpr_simulation wpb_stage_robocup.launch 
roslaunch nav_pkg nav.launch
rosrun wpr_simulation demo_map_tool

航点导航结果可视化

4.航点导航代码编写

启动仿真环境:新建3个终端,分别执行下列命令

roslaunch wpr_simulation wpb_stage_robocup.launch 
roslaunch nav_pkg nav.launch
rosrun nav_pkg wp_node

可视化结果

修改msg.data="2",重新编译并运行

rosrun nav_pkg wp_node

机器人前往航点2

http://www.lqws.cn/news/470521.html

相关文章:

  • C++ 函数模板
  • 【基础算法】贪心 (一) :简单贪心
  • JavaWeb后端部分
  • win2003_ddk.3790里面有windbg--6.1.0017.2----备忘
  • 【环境配置】在Ubuntu Server上安装5090 PyTorch环境
  • Python 正确重载运算符(增量赋值运算符)
  • C++重点知识详解(命名空间,缺省参数,函数重载)
  • 【舞蹈】编排:如何对齐拍子并让小节倍数随BPM递减
  • 两个python独立进程通信
  • Kubernetes 节点故障自愈方案:结合 Node Problem Detector 与自动化脚本
  • Java面试题025:一文深入了解数据库Redis(1)
  • 自定义 Hook:在 Vue3 中复用逻辑
  • Vue3 + TypeScript + xlsx 导入excel文件追踪数据流转详细记录(从原文件到目标数据)
  • Vue+spring boot前后端分离项目搭建---小白入门
  • 2025云服务器磁盘空间告急全解析:日志管理策略与智能扩容方案
  • 98. 验证二叉搜索树
  • Redis哨兵模式的学习(三)
  • React JSX语法
  • Hologres 使用 FDW
  • 「Linux文件及目录管理」输入输出重定向与管道
  • 网络编程及原理(六):三次握手、四次挥手
  • 什么是跨域问题?后端如何解决跨域问题?
  • 基于FPGA的白噪声信号发生器verilog实现,包含testbench和开发板硬件测试
  • ffmpeg(六):图片与视频互转命令
  • Python编程语言:2025年AI浪潮下的技术统治与学习红利
  • python的校园兼职系统
  • 分享两个可以一键生成sql server数据库 html格式巡检报告的脚本
  • 张之瞳全新单曲《6:30am》上线:以音乐定格青春遗憾中的诗意守望
  • Python 邻接表详细实现指南
  • 【软考高级系统架构论文】论面向服务架构设计及其应用