机器人控制导论实验报告.docx
《机器人控制导论实验报告.docx》由会员分享,可在线阅读,更多相关《机器人控制导论实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
![机器人控制导论实验报告.docx](https://file1.bdocx.com/fileroot1/2023-7/13/7f03c042-fb2e-48f1-bba1-f7589fa2b16f/7f03c042-fb2e-48f1-bba1-f7589fa2b16f1.gif)
机器人控制导论实验报告
《机器人控制导论》
实验报告
姓名:
李小强
学号:
1110200125
南京理工大学自动化学院
实验一机器人U-II测试
一.实验目的
1、熟悉AS-UII机器人的组成结构和工作原理;
2、熟练操作使用AS-UII机器人;
3、掌握AS-UII机器人各项基本功能。
二、实验要求
1、可以明确能力风暴机器人的各个组成部分。
2、指出主要组成部分的结构和功能。
3、学会程序的调试和下载。
三、实验内容、步骤:
1.记录自检程序运行的结果,回答每一步用到的传感器和执行器。
(1).LCD液晶显示是否正常?
运行结果:
显示正常,字符显示清晰,16×2个字符不应有缺行、缺列现象。
执行器:
LCD液晶显示器
(2).扬声器(喇叭)是否正常?
运行结果:
正常。
扬声器所播放的乐曲应清晰洪亮,无明显噪声。
执行器:
扬声器
(3).光敏传感器是否正常?
运行结果:
正常。
左右光敏传感器的感应数值随光强不同而变化,其范围为0~255。
光强越弱,数值越大,光强越强,数值越小。
在相同光强条件下,左右两光敏传感器数值偏差小于10。
传感器:
光敏传感器
执行器:
LCD液晶显示器
(4).红外传感器是否正常?
运行结果:
正常。
屏幕上不显示测量值,只显示障碍物的方向,将障碍物放在机器人正前方,显示====,放在左侧,显示<<<<<,放在右侧,显示>>>>>。
传感器:
红外传感器
执行器:
LCD液晶显示器
(5).话筒是否正常?
运行结果:
对着AS-UII话筒槽孔(蜂窝状小孔)说话,看LCD上的>增加。
传感器:
话筒
执行器:
LCD液晶显示器
(6).碰撞传感器是否正常?
运行结果:
按动机器人下部的碰撞环,在LCD上能显示碰撞方位。
传感器:
碰撞传感器
执行器:
LCD液晶显示器
(7).运动系统是否正常?
运行结果:
机器人可移动、转弯,同时在LCD上显示光电编码器累计计数值和瞬时电机转速。
传感器:
光电编码器
执行器:
直流电机、LCD液晶显示器
(8).光电编码器是否正常?
运行结果:
机器人左、右轮子分别转动1圈,轮子内侧码盘也随之转动1圈,LCD上显示光电编码器的计数值约为33。
轮子连续转动,LCD上则显示光电编码器的累计计数值。
传感器:
光电编码器
执行器:
LCD液晶显示器
2.记录表演程序运行的结果,回答每一步用到的传感器和执行器。
(1)电子琴Piano
运行结果:
从不同的方位触动碰撞环,机器人会发出不同的声音。
传感器:
碰撞传感器
执行器:
扬声器
(2)声与光I'mindark
运行结果:
在明暗不同的光线下,机器人会发出不一样的叫声。
光线越暗,频率越高。
传感器:
光电传感器
执行器:
扬声器
(3)跟我走Follow
运行结果:
机器人会跟着前方的物体走。
能力风暴就像一个可爱的宠物。
如果碰撞刚刚结束,等待一会儿再跟踪;如果有碰撞,就地停下;如果没有发现可跟踪物就地停下;如果正前方有物体,向前走;如果右前有障碍,向右转弯;如果左前有障碍,向左转弯。
传感器:
碰撞传感器、红外传感器
执行器:
直流电机
(4)回声Echo
运行结果:
叫机器人一声,机器人就会回应一声。
传感器:
话筒
执行器:
扬声器
(5)走向亮光Gotolight
运行结果:
如果房间里点着一支蜡烛,机器人就会向蜡烛走过去。
把机器人放在黑暗的地方,机器人会朝有亮光的地方走去。
传感器:
光敏传感器
执行器:
直流电机
(6)三步舞I'mdancing
运行结果:
机器人会跳舞。
执行器:
直流电机
实验二机器人传感器实验
一.实验目的
1、掌握AS-UII机器人各传感器工作原理;
2、掌握简单的程序设计、了解流程图文件的使用。
3、掌握各传感器测试和使用方法
二.实验要求
使用VJC编写程序,并通过程序输出结果判断,测试传感器能否正常工作,如果不能工作,试分析原因。
三、实验内容、步骤
1.红外传感器实验
(1)红外传感器的库函数:
intir_detector()红外传感器检测。
返回值意义:
0=>无障碍,1=>左边有障碍,2=>右边有障碍,4=>前方有障碍。
(2)测试程序
voidmain()
{
while
(1)
{
printf("IR=%b\n",ir_detector());
wait(0.5);
}
}
(3)程序输出结果与分析
测试时将手放在机器人左边,LCD显示屏上显示00000001;将手放在机器人右边,LCD显示屏上显示00000010;将手放在机器人前方,LCD显示屏上显示00000100。
2.光敏传感器实验
(1)光敏传感器的库函数:
intphoto()光敏传感器检测。
photo
(1)为检测左光敏,photo
(2)为检测右光敏,返回值为0~255的数字量。
(2)编写程序,当光线暗于一定值时,机器人将叫两声
voidmain()
{
intright;
while
(1)
{
right=photo
(2);
if(right>240)
{
beep();
beep();
}
}
}
(3)程序输出结果与分析
将机器人置于光电较暗的环境中,机器人会叫两声。
3.碰撞传感器实验
(1)碰撞传感器的库函数:
intbumper()碰撞传感器检测。
返回值的意义:
1左前,2右前,4左后,8右后,3前,12后,5左,10右。
(2)编写程序,碰到障碍物后,机器人自动绕开并发出声音。
voidmain()
{
intbumpvalue;
while
(1)
{
bumpvalue=bumper();
if(bumpvalue==1)
{
beep();
beep();
stop();
wait(1.0);
drive(-50,0);
wait(1.0);
drive(50,50);
wait(0.5);
}
elseif(bumpvalue==2)
{
beep();
beep();
stop();
wait(1.0);
drive(-50,0);
wait(1.0);
drive(50,-50);
wait(0.5);
}
drive(50,0);
}
}
(3)程序输出结果与分析
当左前方检测到障碍物时,机器人叫两声,后退并右转;当右前方检测到障碍物时,机器人叫两声,后退并左转;无障碍时机器人会一直往前走。
4.声音传感器实验
(1)声音传感器的库函数:
intmicrophone()声音传感器检测。
返回值为0~255的数字量。
(2)编写程序,听到声音后,机器人开始运动。
voidmain()
{
intb=1;
intmic;
while
(1)
{
mic=microphone();
printf("mic=%d\n",mic);
wait(0.5);
if(mic>40)b=b*(-1);
if(b==-1)drive(100,0);
if(b==1)stop();
}
}
(3)程序输出结果与分析
第一次声音大于40时,能力风暴智能机器人全速前进,第二次声音大于40时能力风暴智能机器人停止运动;如此循环。
实验三机器人运动控制实验
一.实验目的
1、掌握AS-UII机器人运动控制系统组成和工作原理;
2、熟练编写运动控制程序。
二.实验要求
应用VJC语言编写程序,使机器人能够按照要求实现运动。
三、实验内容、步骤:
1.速度75,前进3秒,停止2秒,再以速度100,前进2秒,停止。
voidmain()
{
drive(75,0);
wait(3.0);
stop();
wait(2.0);
drive(100,0);
wait(2.0);
stop();
}
2.把1中动作做完循环体,执行三次。
voidmain()
{
inti=0;
for(i=0;i<3;i++)
{
drive(75,0);
wait(3.0);
stop();
wait(2.0);
drive(100,0);
wait(2.0);
stop();
}
stop();
}
3.为什么机器人直走远了,轨迹会偏,如何调校
上述的控制为开环控制,不反馈任何速度值和方向值,由于摩擦等扰动的存在,机器人会偏离理想路线,而且机器人没有自校正能力,所以当机器人直走远了,轨迹会偏。
引入反馈,可以采用PID控制,将采集到的方向值和速度值送入控制器,计算机器人的轨迹偏差,产生控制量去纠正偏差,这样必须合理选择PID参数。
实验四机器人避障实验
一.实验目的
1、掌握AS-UII机器人避障工作原理;
2、熟练编写机器人避障控制程序。
二、实验要求:
分别用流程图和VJC编写程序,要求机器人直行或者避开障碍物前行。
*用红外线传感器判断障碍物,并且躲避发出警报。
*机器人可以绕过障碍物,回到直线行走。
三.实验场地
实验场地范围大体为2.5m×2.5m的正方形区域,内有分隔小区及障碍物,隔板距离及长度不小于20cm。
四、实验内容、步骤
1、程序流程图
2、VJC程序
intir_1=0;
voidmain()
{
while
(1)
{
drive(80,0);
wait(0.500000);
stop();
ir_1=ir_detector();
if(ir_1==2)
{
drive(0,-30);
wait(1.000000);
stop();
}
else
{
if(ir_1==1)
{
drive(0,30);
wait(1.000000);
stop();
}
else
{
if(ir_1==4)
{
drive(-30,0);
wait(1.000000);
stop();
drive(0,30);
wait(1.000000);
stop();
}
}
}
}
}
3、运行结果
当前方有障碍物时,机器人会避开障碍物前行。