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
计算pose到segment的距离
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