• 大小: 184KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签: 路径规划  

资源简介

该算法可躲避多个移动的物体,进行路径规划,由北卡的教授编写,此代码至可读,可以为需要的朋友借鉴。

资源截图

代码片段和文件信息

#ifndef _WIN32_WINNT    // Allow use of features specific to Windows XP or later.
#define _WIN32_WINNT 0x0501  // Change this to the appropriate value to target other versions of Windows.
#endif

#include 
#include 

#ifdef _MSC_VER
#include 
#else
#define _TCHAR char
#define _tmain main
#endif

#include “RVOSimulator.h“

void setupScenario( RVO::RVOSimulator * sim ) {
  // Specify global time step of the simulation
  sim->setTimeStep( 0.25f );

  // Specify default parameters for agents that are subsequently added
  sim->setAgentDefaults( 250 15.0f 10 2.0f 3.0f 1.0f 2.0f 7.5f 1.0f );

  // Add agents (and simulataneously their goals) specifying their start position and goal ID
  sim->addAgent( RVO::Vector2(-50.0f -50.0f) sim->addGoal( RVO::Vector2(50.0f 50.0f) ) );
  sim->addAgent( RVO::Vector2(50.0f -50.0f) sim->addGoal( RVO::Vector2(-50.0f 50.0f) ) );
  sim->addAgent( RVO::Vector2(50.0f 50.0f) sim->addGoal( RVO::Vector2(-50.0f -50.0f) ) );
  sim->addAgent( RVO::Vector2(-50.0f 50.0f) sim->addGoal( RVO::Vector2(50.0f -50.0f) ) );

  // Add (line segment) obstacles specifying both endpoints of the line segments
  sim->addObstacle( RVO::Vector2(-7.0f -20.0f) RVO::Vector2(-7.0f 20.0f) );
  sim->addObstacle( RVO::Vector2(-7.0f 20.0f) RVO::Vector2(7.0f 20.0f) );
  sim->addObstacle( RVO::Vector2(7.0f 20.0f) RVO::Vector2(7.0f -20.0f) );
  sim->addObstacle( RVO::Vector2(7.0f -20.0f) RVO::Vector2(-7.0f -20.0f) );

  // Add roadmap vertices specifying their position
  sim->addRoadmapVertex( RVO::Vector2(-10.0f -23.0f) );
  sim->addRoadmapVertex( RVO::Vector2(-10.0f 23.0f) );
  sim->addRoadmapVertex( RVO::Vector2(10.0f 23.0f) );
  sim->addRoadmapVertex( RVO::Vector2(10.0f -23.0f) );

  // Do not automatically create edges between mutually visible roadmap vertices
  sim->setRoadmapAutomatic( -1 );

  // Manually specify edges between vertices specifying the ID‘s of the vertices the edges connect
  sim->addRoadmapEdge( 0 1 );
  sim->addRoadmapEdge( 1 2 );
  sim->addRoadmapEdge( 2 3 );
  sim->addRoadmapEdge( 3 0 );
}


void updateVisualization( RVO::RVOSimulator * sim ) {
  // Output the current global time
  std::cout << sim->getGlobalTime() << “ “;

  // Output the position and orientation for all the agents
  for (int i = 0; i < sim->getNumAgents(); ++i) {
    std::cout << sim->getAgentPosition( i ) << “ “ << sim->getAgentOrientation( i ) << “ “;
  }

  std::cout << std::endl;
}


int _tmain(int argc _TCHAR* argv[])
{
  // Create a simulator instance
  RVO::RVOSimulator * sim = RVO::RVOSimulator::Instance();

  // Set up the scenario
  setupScenario( sim );

  // Initialize the simulation
  sim->initSimulation();

  // Perform (and manipulate) the simulation
  do {
    updateVisualization( sim );
    sim->doStep();
  } while ( !sim->getReachedGoal() );

  delete sim;

  return 0;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-05-08 23:50  RVO\
     文件         117  2013-02-08 01:03  RVO\AUTHORS
     文件        2039  2014-05-08 23:48  RVO\COPYING
     文件          81  2009-02-14 20:52  RVO\Makefile.am
     文件       23068  2013-02-08 01:34  RVO\Makefile.in
     文件          64  2013-02-08 01:26  RVO\README
     目录           0  2013-02-08 01:34  RVO\RVOLIB\
     文件       11146  2009-02-14 20:52  RVO\RVOLIB\Agent.cpp
     文件        5695  2009-02-14 20:52  RVO\RVOLIB\Agent.h
     文件        1724  2009-02-14 20:52  RVO\RVOLIB\Goal.cpp
     文件         831  2009-01-26 19:44  RVO\RVOLIB\Goal.h
     文件       11734  2009-02-14 20:52  RVO\RVOLIB\KDTree.cpp
     文件        1881  2009-02-14 20:52  RVO\RVOLIB\KDTree.h
     文件         614  2009-02-14 20:52  RVO\RVOLIB\Makefile.am
     文件       19181  2013-02-08 01:34  RVO\RVOLIB\Makefile.in
     文件         255  2009-01-26 19:44  RVO\RVOLIB\Obstacle.cpp
     文件         869  2009-02-14 20:52  RVO\RVOLIB\Obstacle.h
     文件        4208  2009-02-14 20:52  RVO\RVOLIB\RVODef.h
     文件        1083  2009-01-26 19:44  RVO\RVOLIB\RVOLIB.sln
     文件        6772  2009-02-14 20:52  RVO\RVOLIB\RVOLIB.vcproj
     文件       11805  2009-02-14 20:52  RVO\RVOLIB\RVOSimulator.cpp
     文件       38946  2009-02-14 20:52  RVO\RVOLIB\RVOSimulator.h
     文件         818  2009-02-14 20:52  RVO\RVOLIB\RoadmapVertex.cpp
     文件        1456  2009-02-14 20:52  RVO\RVOLIB\RoadmapVertex.h
     文件        5796  2009-02-14 20:53  RVO\RVOLIB\vector2.h
     文件       38531  2013-02-08 01:33  RVO\aclocal.m4
     目录           0  2013-02-08 01:34  RVO\build-aux\
     文件        5826  2013-02-08 01:34  RVO\build-aux\ar-lib
     文件       23491  2013-02-08 01:34  RVO\build-aux\depcomp
     文件       13997  2013-02-08 01:34  RVO\build-aux\install-sh
     文件        6873  2013-02-08 01:34  RVO\build-aux\missing
............此处省略41个文件信息

评论

共有 条评论