【发布时间】:2025-12-11 01:40:01
【问题描述】:
实际上,我的机器人想通过避障从源移动到目标。我以像素为单位找出障碍物(矩形)和目标(圆形)。但我不知道如何找到从源到目标的路径...请帮助我。
这是寻找障碍物和目标的代码。
for (int i = 0, n = blobs.Length; i < n; i++)
{
List<IntPoint> edgePoints = blobCounter.GetBlobsEdgePoints(blobs[i]);
AForge.Point center;
float radius;
// is circle ?
if (shapeChecker.IsCircle(edgePoints, out center, out radius))
{
g.DrawEllipse(whitePen, (float)(center.X - radius), (float)(center.Y - radius),
(float)(radius * 2), (float)(radius * 2));
target.Add(center.ToString());
}
else
{
List<IntPoint> corners;
// is triangle or quadrilateral
if (shapeChecker.IsConvexPolygon(edgePoints, out corners))
{
// get sub-type
PolygonSubType subType = shapeChecker.CheckPolygonSubType(corners);
Pen pen;
if (subType == PolygonSubType.Unknown)
{
pen = (corners.Count == 4) ? redPen : bluePen;
}
else
{
pen = (corners.Count == 4) ? greenPen : brownPen;
}
g.DrawPolygon(pen, ToPointsArray(corners));
}
}
}
上述编码将检测障碍物和目标位置像素值并将其存储在单独的数组中。但是从这些像素值如何计算路径呢?等待你的建议.....
【问题讨论】: