gpt4 book ai didi

c - 与 4x4 网格比较时如何设置阈值

转载 作者:行者123 更新时间:2023-11-30 17:37:06 25 4
gpt4 key购买 nike

我有一个问题,该程序将允许 iRobot 创建移动并在接近障碍物时以 90 度右转。我使用热传感器与 iRobot Create 一起捕获温差,网格将为 4x4。

我的想法是,借助 4x4 网格,我需要进行比较。

  • 从热传感器读取 4x4 网格温度数据
  • 计算各行的平均温度(R1=j,R2=k,R3=l,R4=m)
  • 查找所有行中最高的平均温度
  • 按最高平均温度划分各行
  • 设 X=(R1+R2)/2 且 Y=(R3+R4)/2
  • 比较X和Y,条件:如果X小于Y=0.08,则向前移动。如果超过0.08,就会转身离开

-

void detection(void) 
{
int j,k,l,m,a,b,c,d,x,y

%average values for each row (RowAverage)

readbuff[i] = recv_data;
j=(readbuff[2]+readbuff[3]+readbuff[4]+readbuff[5]+readbuff[6]+readbuff[7]+readbuff[8]+readbuff[9])/4
k= (readbuff[10]+readbuff[11]+readbuff[12]+readbuff[13]+readbuff[14]+readbuff[15]+readbuff[16]+readbuff[17])/4
l= (readbuff[18]+readbuff[19]+readbuff[20]+readbuff[21]+readbuff[22]+readbuff[23]+readbuff[24]+readbuff[25])/4
m= (readbuff[26]+readbuff[27]+readbuff[28]+readbuff[29]+readbuff[30]+readbuff[31]+readbuff[32]+readbuff[33])/4`

%find the highest average among the 4 rows (HighestAverage)

if (j > k)
{
a=j;
}
else (a>k)
{
a=k;
}

if (k > l)
{
a=k;
}
else (a>l)
{
a=l;
}

if (l > m)
{
a=l;
}
else (a>m)
{
a=m;
}

%divide individual row
b=j/a
c=k/a
d=l/a
e=m/a

%average of the top 2 rows and bottom 2 rows
x=(j+k)/2
y=(l+m)/2
...
}

我可以知道如何设置阈值,以便当x小于y时,它不会超过0.08吗?

最佳答案

如果您想确保当 x 小于 y 时,x 的值永远不会超过 0.08,您可以执行以下操作:

if (x < y) {        
if (x > 0.08) {
x = 0.08;
}
}

关于c - 与 4x4 网格比较时如何设置阈值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22512425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com