2024年智能机器人大赛,调了这么久车,写了这么多代码最后告诉我报告写的不行,既然这是个报告设计大赛,那我分享一下代码吧。
先看一下我们的全程视频:b站视频分享
1.结构设计
由于打印机较小,将结构打印为3个部分,再利用M3螺丝连接,摄像头用M2螺丝连接
文件分享:摄像头连接件3d结构
上面50度连接件连接1号摄像头
下面平视连接普通2号摄像头,摄像头支持160*120分辨率,这样可以得到最高的帧率。
2.代码设计
我直接把代码分享出来,但要注意有几个库函数需要修改底层,官方提供的库函数未在分享文件里,所以请按下面操作:
(1)针对robotpi_Cmd文件
###这里需要设置为你设置的自定义动作编号,如我们是动作1所以data[0] = 1
###在robotpi_Cmd文件里可以看到它,修改就可以了
def hit(self):
data = [0] * 1
data[0] = 1 & 0xFF
buffer, length = self.GenerateCmd(0x07, 0x55, 0x01, data)
print(type(buffer))
return buffer
###这个是启动普通模式,按着我写的复制到robotpi_Cmd
def Mode_set0(self):
data = [0]*1
data[0]=0 & 0xFF
buffer,length = self.GenerateCmd(0x08,0x01,0x01,data)
print(type(buffer))
return buffer
###这个是启动双闭环模式,也按照我写的粘贴到robotpi_Cmd
def Mode_set(self):
data = [0]*1
data[0]=2 & 0xFF
buffer,length = self.GenerateCmd(0x08,0x01,0x01,data)
print(type(buffer))
return buffer
(2)针对robotpi_movement文件
###这个是在库里有的
def hit(self):
if self.isOpen:
command = self.cmd.hit()
self.action.write_serial(command)
time.sleep(3)
return True
return False
###这个是它没有的 复制粘贴
def Mode0(self):
if self.isOpen:
command = self.cmd.Mode_set0()
self.action.write_serial(command)
time.sleep(3)
return True
return False
###这个是它没有的 复制粘贴
def Mode(self):
if self.isOpen:
command = self.cmd.Mode_set()
self.action.write_serial(command)
time.sleep(3)
return True
return False
自己写的代码包含4个文件
1.Mybot:主框架函数,启动它就可以了,启动后等待输出“55”后任意输入即会发车
2.xunkun:1号摄像头寻迹避障函数
3.distance:2号摄像头测距函数
4.pid:pid计算函数
竞赛提供的文件包括
代码为原创,具体思路请在文件里自行摸索。
文件分享:原创代码请放心下载,允许转载