宝贝车——机器人创新实验报告

0校标2005 

中国农业大学

       课程论文

     (20##-20##学年秋季学期)

论文题目:   仿尺蠖爬行机器人           

课程名称:   机器人创新实验(1           

任课教师:   吴刚           

班  级:   车辆112           

学  号:   1107140216          

姓  名:    刘鹏          

机器人创新实验(1)实验报告

实验名称:仿尺蠖爬行机器人

小组成员:刘鹏 程鹏飞 王思洋

实验时间:2013.11.27

实验目的:使用机器人创意组件组装并使用TKstdio软件编写调试程序完成对尺蠖爬行动作的机械仿真

实验流程:

1.       通过对教材上的实例进行装配熟悉机器人创意组件的组装方法、部件功能以及TKstidio的使用方法

2.       对尺蠖的运动过程进行分析,初步拟定组装所需部件结构以及控制程序的内容。

3.       进行实际装配和调试并根据结果对装配方案和控制程序进行调整。

4.       得到最终方案

5.       总结,反思,撰写实验报告

装配方案:

机器人可视为由五个结构相同的单元体以及主控板和电源组成

单元体包括:

标准舵机M01x1

输出头A05x1

马达支架J26x1

10mm滑轨J01x1

90度转接支J05x1

足支架J12x1

组装后效果如下图:

程序设计:

根据需要将程序设计为闭环控制,不需要获得外部参数,只需按一定的时间间隔完成规定动作即可,而动作的设计如下图:

程序所控制的电机数为四个,另一电机作为配重保持整体重量的均衡,各动作下电机所处角度如下表:

根据分析设定每个电机所应处于的角度并设定动作的保持时间为1s后对应的程序如下:

#include "config.h"

#include "lib_io.h"

#include "lib_arm.h"

int main(void)

{

       Initial_ARM();

while(1)

{

Servo(1,0);

Servo(2,180);

Servo(3,90);

Servo(4,90);

DelayNS(1000);

Servo(1,30);

Servo(2,60);

Servo(3,120);

Servo(4,90);

DelayNS(1000);

Servo(1,135);

Servo(2,0);

Servo(3,135);

Servo(4,90);

DelayNS(1000);

Servo(1,120);

Servo(2,30);

Servo(3,30);

Servo(4,120);

DelayNS(1000);

Servo(1,0);

Servo(2,150);

Servo(3,0);

Servo(4,120);

DelayNS(1000);

Servo(1,90);

Servo(2,90);

Servo(3,90);

Servo(4,90);

DelayNS(1000);

}

}

实验总结

创新点:1.通过对尺蠖运动的仿真实现了除轮式、足式之外的另一种机器人运动方式

2.足部支架的设计克服了机器人运动时左右摇摆易倾倒的问题

不足的地方:机器人的运动速度较慢且无法转向,主控板没有地方放置。

附:机器人演示效果

实验心得体会:

通过本次机器人创新实验使我深深感受到团队中的分工和交流对于创新活动的重要性。在本次实验中,我们首先通过合理的分工使得每一位同学的能力能够得到充分的发挥,其次,在各自分工不同的同时,面对比较艰难的问题,例如程序控制方法等,我们又会通过共同合作的方式将每个人的观点均加入考虑,通过头脑风暴的方式得到我们最后的方案。通过这样的方式,达到了最终1+1+1>3的效果,从而能够产生超出个人能力的合力,并最终在花费了较少的时间的情况下实现我们的设计方案。当看到最终机器人迈出他笨拙的“脚步”的时候,每一位队员都感受到了由衷的自豪。

 

第二篇:机器人实验报告

    

 


  机器人实验报告

       

          班级:测控0802

           姓名:(24)任晓亮(06082059)

                 23张肖肖(06082058

实验一创意之星(标准版)开发环境入门

一实验目的

1 熟悉NorthSTAR图形化开发环境

2 掌握流程图和代码编程方法,以及程序的下载、调试方法

3 掌握RobotSevo Terminal舵机调试设置软件的使用

二实验内容

1 使用RobotSevo Terminal软件设置设置CDS5500的ID、工作方式等参数

2 采用流程图或代码编程方法实现输入(如碰撞开关)控制输出(如舵机的正反转)

三实验要求

1 编写相应流程图或代码程序,并下载调试,实现相应要求。

2 详细纪录实验过程和结果,完成和提交实验报告。

3 实验报告应包括流程图或代码及对应的实验结果。

      

#include  "Apps/SystemTask.h"

uint8 SERVO_MAPPING[1] = {5};

int main()

{

int  useful = 0;

MFInit();

MFInitServoMapping(&SERVO_MAPPING[0],1);

MFSetPortDirect(0x00000FFE);

MFSetServoMode(5,1);

while (1)

    {

useful = MFGetDigiInput(0);

if (useful==1)

        {

MFSetServoRotaSpd(5,1000);

MFServoAction();

        }

else

        {

MFSetServoRotaSpd(5,0);

MFServoAction();

        }

DelayMS(1000);

    }

}

实验心得

通过本次实验,得知:总线舵机与模拟舵机不同之处在于:1.处理接收机的输入信号的方式;2.控制舵机马达初始电流的方式,减少无反应区(对小量信号无反应的控制区域),增加分辨率以及产生更大的固定力量。

    实验二避障机器人

实验目的

1 熟悉创意之星标准版模块搭建方法

2 掌握简单应用程序的编写方法

实验内容

采用创意之星模块化套件组装四轮机器人,编写代码程序,利用红外传感器和舵机等传感和执行器件,实现四轮机器人的无碰撞自主移动。

实验要求

1 编写代码程序,并编译调试,实现要求的功能。

2 详细纪录实验结果,完成和提交实验报告。

3 实验报告应包括代码及对应的实验结果。

实验步骤

1 搭建小车模型

2 编写代码程序,并编译调试,实现要求的功能。

 

#include  "Apps/SystemTask.h"

uint8 SERVO_MAPPING[4] = {4,1,2,3};

int main()

{

    int  io0 = 0;

    int  io1 = 0;

    MFInit();

    MFInitServoMapping(&SERVO_MAPPING[0],4);

    MFSetPortDirect(0x00000FC0);

    MFSetServoMode(4,1);

    MFSetServoMode(1,1);

    MFSetServoMode(2,1);

    MFSetServoMode(3,1);

    DelayMS(1000);

    while (1)

    {

        io0 = MFGetDigiInput(0);

        io1 = MFGetDigiInput(1);

        if ((io0==1)&&(io1==1))

        {

            MFSetServoRotaSpd(4,512);

            MFSetServoRotaSpd(1,512);

            MFSetServoRotaSpd(2,-512);

            MFSetServoRotaSpd(3,-512);

            MFServoAction();

            DelayMS(1000);

        }

        else

        {

            if ((io0==0)&&(io1==1))

            {

                MFSetServoRotaSpd(4,-512);

                MFSetServoRotaSpd(1,-512);

                MFSetServoRotaSpd(2,512);

                MFSetServoRotaSpd(3,512);

                MFServoAction();

                DelayMS(1000);

                MFSetServoRotaSpd(4,512);

                MFSetServoRotaSpd(1,512);

                MFSetServoRotaSpd(2,512);

                MFSetServoRotaSpd(3,512);

                MFServoAction();

                DelayMS(1000);

            }

            else

            {

                MFSetServoRotaSpd(4,-512);

                MFSetServoRotaSpd(1,-512);

                MFSetServoRotaSpd(2,512);

                MFSetServoRotaSpd(3,512);

                MFServoAction();

                DelayMS(1000);

                MFSetServoRotaSpd(4,-512);

                MFSetServoRotaSpd(1,-512);

                MFSetServoRotaSpd(2,-512);

                MFSetServoRotaSpd(3,-512);

                MFServoAction();

                DelayMS(1000);

            }

        }

    }

}

3 实验实物成果。

图像1897

       

实验心得

通过本次实验熟悉了创意之星标准版模块的搭建方法,初步掌握掌握简单应用程序的编写方法

本次实验内容是:采用创意之星模块化套件组装四轮机器人,编写代码程序,利用红外传感器和舵机等传感和执行器件,实现四轮机器人的无碰撞自主移动。通过不懈努力,最终完成实验!

   

          实验三四足机器人

实验目的

1 熟悉创意之星标准版模块搭建方法

2 掌握简单应用程序的编写方法

3 掌握四足机器人步态规划方法

实验内容

采用创意之星模块化套件组装四足机器人,编写代码程序,利用光敏传感器和舵机等传感和执行器件,实现四足机器人的趋光移动。

实验要求

1 编写代码程序,并编译调试,实现要求的功能。

2 详细纪录实验结果,完成和提交实验报告。

3 实验报告应包括流程图及对应的实验结果。

实验操作

#include  "Apps/SystemTask.h"

uint8 SERVO_MAPPING[10] = {1,2,3,4,5,6,7,8,9,10};

int main()

{

    int  Diff = 0;

    int  Left = 0;

    int  Right = 0;

    MFInit();

    MFInitServoMapping(&SERVO_MAPPING[0],10);

    MFSetPortDirect(0x00000FFF);

    MFSetServoMode(1,0);

    MFSetServoMode(2,0);

    MFSetServoMode(3,0);

    MFSetServoMode(4,0);

    MFSetServoMode(5,0);

    MFSetServoMode(6,0);

    MFSetServoMode(7,0);

    MFSetServoMode(8,0);

    MFSetServoMode(9,0);

    MFSetServoMode(10,0);

    while (1)

    {

        //Left

        Left = MFGetAD(0);

        //Right

        Right = MFGetAD(1);

        //Diff

        Diff = Left - Right;

        //Diff > 50

        if (Diff > 50)

        {

            //Turn Left

            MFSetServoPos(1,512,512);

            MFSetServoPos(2,512,512);

            MFSetServoPos(3,512,512);

            MFSetServoPos(4,512,512);

            MFSetServoPos(5,512,512);

            MFSetServoPos(6,512,512);

            MFSetServoPos(7,512,512);

            MFSetServoPos(8,512,512);

            MFSetServoPos(9,405,512);

            MFSetServoPos(10,512,512);

            MFServoAction();

        }

        //Diff < -50

        if (Diff < -50)

        {

            //Turn Right

            MFSetServoPos(1,512,512);

            MFSetServoPos(2,512,512);

            MFSetServoPos(3,512,512);

            MFSetServoPos(4,512,512);

            MFSetServoPos(5,512,512);

            MFSetServoPos(6,512,512);

            MFSetServoPos(7,512,512);

            MFSetServoPos(8,512,512);

            MFSetServoPos(9,654,512);

            MFSetServoPos(10,512,512);

            MFServoAction();

        }

        //Diff = 50

        if (Diff = 50)

        {

            //Forward

            MFSetServoPos(1,512,512);

            MFSetServoPos(2,512,512);

            MFSetServoPos(3,512,512);

            MFSetServoPos(4,512,512);

            MFSetServoPos(5,512,512);

            MFSetServoPos(6,512,512);

            MFSetServoPos(7,512,512);

            MFSetServoPos(8,512,512);

            MFSetServoPos(9,512,512);

            MFSetServoPos(10,512,512);

            MFServoAction();

        }

        //Delay 500

        DelayMS(500);

    }

}

实验心得

通过前两次实验,已经熟悉了创意之星标准版模块的搭建方法,并已熟练掌握了简单应用程序的编写方法。本次实验中能掌握四足机器人的步态规划方法。其内容是:采用创意之星模块化套件组装四足机器人,编写代码程序,利用光敏传感器和舵机等传感和执行器件,实现四足机器人的趋光移动。 

相关推荐