资源简介
本项目主要是实现移动机器人多站点循环导航和自主探索建图功能,并拓展加入UI可视化界面增加导航目标和寻墙检测建图。在多站点循环导航任务中,首先要完成多点导航函数的撰写,实现单次导航任务,然后在函数中加入里程计清零环节和循环次数设定环节,最后使用UI界面实现循环次数和导航点的设定。在自主探索建图任务中,首先配置好自主避障参数,然后实现自主建图探索功能,接下来根据建图效果确立停止条件,最后完成停止条件函数的撰写。
代码片段和文件信息
//代码说明:接收循环次数和多个导航点,对数据进行处理,循环发布导航点至move_base
//需要的头文件
#include
#include
#include se_msgs/MovebaseAction.h>
#include
#include
#include
//定义一个vector用以接收多个导航点
std::vector pose_list;
//声明循环次数和多导航点的接收者
ros::Subscriber vec_sub;
ros::Subscriber tim_sub;
nav_msgs::Odometry odom;
ros::Publisher odom_pub;
//声明循环次数,导航目标个数,循环需要的中间值
int Cycle_timesGoals_numcount = 0;
//接收循环次数
void timcallback(const std_msgs::Int8::ConstPtr& msg)
{
Cycle_times = msg->data;
}
//接收导航点数组,循环发布导航点到move_base
void callback(const geometry_msgs::PoseArray::ConstPtr& pose_array)
{
//取得导航点个数
Goals_num = pose_array->poses.size();
//存入多个导航点
for(int i =0;i {
pose_list.push_back(pose_array->poses[i]);
}
actionlib::SimpleActionClientse_msgs::MovebaseAction> cycle_client(“move_base“true);
ROS_INFO(“Waiting for move_base action server...“);
if(!cycle_client.waitForServer(ros::Duration(60)))
{
ROS_INFO(“Can‘t connected to move base server“);
}
ROS_INFO(“Connected to move base server“);
ROS_INFO(“Starting navigation “);
ROS_INFO(“cycle times is %d“Cycle_times);
ROS_INFO(“cycle goals is %d“Goals_num);
//多次循环
for (int i =0 ; i {
//循环一次所发布的多个导航点
while(count {
move_base_msgs::MovebaseGoal goal;
goal.target_pose.header.frame_id = “map“;
goal.target_pose.header.stamp = ros::Time::now();
goal.target_pose.pose = pose_list[count];
cycle_client.sendGoal(goal);
//60S内如果不能达到目标点则放弃该目标点
bool finished_within_time = cycle_client.waitForResult(ros::Duration(60));
if(!finished_within_time)
{
cycle_client.cancelGoal();
ROS_INFO(“Timed out achieving goal“);
}
else
{
//导航成功
if(cycle_client.getState() == actionlib::SimpleClientGoalState::SUCCEEDED)
{
ROS_INFO(“Goal %d succeeded!“count+1);
}
//导航失败
else
{
ROS_INFO(“move plan is error“);
}
}
count += 1;
}
count = 0;
odom.header.stamp = ros::Time::now();
odom.header.frame_id = “odom“;
odom.child_frame_id = “base_link“;
odom.pose.pose.position.x = 0.0;
odom.pose.pose.position.y = 0.0;
odom.pose.pose.position.z = 0.0;
odom.pose.pose.orientation.z = 0.0;
odom.pose.pose.orientation.z = 0.0;
odom.pose.pose.orientation.z = 0.0;
odom.pose.pose.orientation.w = 1.0;
odom_pub.publish(odom);
ROS_INFO(“Odom is clear“);
ROS_INFO(“odom.pose.pose.position.x = %lf“odom.pose.pose.position.x);
ROS_INFO(“odom.pose.pose.position.y = %lf“odom.pose.pose.position.y);
ROS_INFO(“odom.pose.pose.position.z = %lf“odom.pose.pose.position.z);
}
//导航结束,清空存放多个导航点的vector
ROS_INFO(“The Cycle Goals is over“);
pose_list.clear();
}
int main(int argcchar** argv)
{
//初始化并设置节点名
ros::init(argcargv“cycle_nav“);
//创建句柄
ros::NodeHandle n;
ROS_INFO(“Cycle_nav is start...“);
odom_pub = n.advertise (“/odom“ 50);
//定义循环次数的接收者
t
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-11-25 15:46 移动机器人项目功能包--ROS功能包\
文件 21315 2018-08-23 03:36 移动机器人项目功能包--ROS功能包\1移动机器人项目需求.docx
目录 0 2018-11-25 15:45 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\
目录 0 2018-11-25 15:45 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\
目录 0 2018-11-25 15:45 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\
目录 0 2018-11-25 15:45 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\cycle_nav\
文件 6901 2018-09-06 06:57 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\cycle_nav\CMakeLists.txt
目录 0 2018-11-25 15:45 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\cycle_nav\include\
目录 0 2018-09-06 05:43 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\cycle_nav\include\cycle_nav\
文件 3039 2018-09-06 06:56 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\cycle_nav\package.xm
目录 0 2018-11-25 15:45 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\cycle_nav\src\
文件 3604 2018-09-11 02:24 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\cycle_nav\src\cycle_nav.cpp
目录 0 2018-11-25 15:45 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_panel\
文件 7611 2018-09-06 06:12 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_panel\CMakeLists.txt
目录 0 2018-11-25 15:45 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_panel\include\
目录 0 2018-09-06 06:01 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_panel\include\nav_panel\
文件 310 2018-09-06 06:30 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_panel\nav_panel.xm
文件 2914 2018-09-06 06:13 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_panel\package.xm
目录 0 2018-11-25 15:45 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_panel\src\
文件 3269 2018-09-11 02:23 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_panel\src\nav_panel.cpp
文件 1384 2018-09-06 07:46 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_panel\src\nav_panel.h
目录 0 2018-11-25 15:45 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_tool\
文件 7623 2018-09-06 06:52 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_tool\CMakeLists.txt
目录 0 2018-11-25 15:45 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_tool\include\
目录 0 2018-09-06 06:01 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_tool\include\nav_tool\
文件 292 2018-09-06 06:48 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_tool\nav_tool.xm
文件 2910 2018-09-06 06:04 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_tool\package.xm
目录 0 2018-11-25 15:45 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_tool\src\
文件 1905 2018-09-06 08:01 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_tool\src\nav_tool.cpp
文件 751 2018-09-06 07:59 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_tool\src\nav_tool.h
文件 912 2018-10-03 08:21 移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\README.md
............此处省略1319个文件信息
相关资源
- ROS中文最新版书
- iMacrosSetup_12.0.501.6698__x64加破解文件
- ROS 6.43.14已经激活授权,L5证书ova虚拟
- ROS机器人开发实践,全书全部的配套
- Win 10系统自带 Microsoft Store安装包,方
- turtlebot3.tar.gz
- ros6.42.7-v3,最高L6授权证书,已激活,
- MikroTik RouterOS x86 6.44.1,已激活L6授权
- 仿Rose聚合直播盒子源码+后台,最完整
- Transmission Electron Microscopy - A Textbook
- ROS by example入门中文版+源码).zip
- RouterOS 6.44.2 已激活授权,L6最高证书
- Ros6.42.7+L6授权
- MikroTik RouterOS v6.40.5 L6许可
- 2017年IROS稀疏点SLAM论文集合
- Microsoft.RdlcDesigner.vsix
- MicrostripFiltersforRFMicrowaveApplications第二
- Windows下tail -f 命令的安装包-微软Mic
- A Systematic Approach to Learning Robot Progra
- A Systematic Approach to Learning Robot Progra
- 图书推荐数据集Book-Crossing
- Microsoft.ACE.OLEDB.12.0 驱动
- MicrosoftMathematics(微软数学软件)v4
- ros_qtc_plugin插件的使用视频教程
- Cross-Platform Desktop Applications Using Node
- Roslyn Cookbook epub
- Radar Cross Section - 2nd - Eugene F. Knott.pd
- Microsystem design
- Microsoft-AZ-100.pdf
- Microscope Image Processing
评论
共有 条评论