tuw_multi_robot多机器人规划算法,看笔记运动规划

tuw_multi_robot多机器人规划算法,看笔记运动规划

 

生成路由地图

 

 

上面使用不同的segment length

里面有很多参数的含义暂时不知道;

 

参数的含义看下面的博客,看开源项目总结;

segment_length (float default: 0.9)

连接线段的长度。

crossing_opimization (float default: 0.2)

距离小于该值的交叉点将进行合并。

end_segment_optimization (float default: 0.4)

低于该值的末端段(只有一个邻居)将被删除。

 

使用路由路径规划路径

 

 

 

 

 

tuw_multi_robot/demo01.md at master · tuw-robotics/tuw_multi_robot · GitHub

 

 

论文已下载论文地址

reposiTUm: Spatio-temporal prioritized planning (tuwien.at)

论文已下载

E:\[opencv_source_navigation]\tuw_multi_robot-master.pdf

交互界面设计,设置地图,增加order,增加station

 

查找最近的segment

E:\[opencv_source_navigation]\tuw_multi_robot-master\tuw_multi_robot_router\src\router.cpp

计算posesegment的距离

 

float Router::distanceToSegment(const Segment &_s, const Eigen::Vector2d &_p) const

{

Eigen::Vector2d n = _s.getEnd() - _s.getStart();

Eigen::Vector2d pa = _s.getStart() - _p;

 

float c = n.dot(pa);

 

// Closest point is a

if (c > 0.0f)

return std::sqrt(pa.dot(pa));

 

Eigen::Vector2d bp = _p - _s.getEnd();

 

// Closest point is b

if (n.dot(bp) > 0.0f)

return std::sqrt(bp.dot(bp));

 

// Closest point is between a and b

Eigen::Vector2d e = pa - n * (c / n.dot(n));

 

return std::sqrt(e.dot(e));

}

 

创建多机器任务路由表,计算冲突

getRoutingTable

 

 

 

posted @ 2023-02-08 18:36  tmjDD  阅读(123)  评论(0编辑  收藏  举报