• 大小: 17MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-21
  • 语言: 其他
  • 标签: ros  

资源简介

本项目主要是实现移动机器人多站点循环导航和自主探索建图功能,并拓展加入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.xml
     目录           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.xml
     文件        2914  2018-09-06 06:13  移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_panel\package.xml
     目录           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.xml
     文件        2910  2018-09-06 06:04  移动机器人项目功能包--ROS功能包\仿真机器人原功能包\fake_robot_pkg\CBH_cycle_nav\nav_tool\package.xml
     目录           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个文件信息

评论

共有 条评论