使机器人在执行任务倒快递

这段代码是用来控制机器人在不同模式下的行为,具体是处理 residencerightresidenceleft 两种模式下的过渡过程。代码中使用了一个 mythread 结构体,该结构体包含了机器人的当前模式 (mode) 和过渡过程的阶段 (residenceTransientProcess)。以下是对这段代码的详细解释:

模式 residenceright

cpp 复制代码
if(mythread.mode==residenceright){
    if(mythread.residenceTransientProcess==1){
        stand_height=0.3;
        v_des[0]=0.03;
    }else if(mythread.residenceTransientProcess==2){
        stand_height=0.3;
        v_des[0]=0.0;
        gait_type=4;
        rpy_des[0]=0.4;
    }else if(mythread.residenceTransientProcess==3){
        average=getAverage(frame);
        gait_type=3; step_height=0.03; stand_height=0.25;
        rpy_des[0]=0; rpy_des[1]=0; rpy_des[2]=0;
        v_des[0]=0.1; // 前进
        v_des[2]=0.01*(goalAverage-average); // 转向
    }else if(mythread.residenceTransientProcess==4){
        mythread.mode=track;
        mythread.residenceTransientProcess=1;
    }
}
  1. mythread.residenceTransientProcess==1

    • 设置站立高度为 0.3。
    • 设置机器人前进速度为 0.03。
  2. mythread.residenceTransientProcess==2

    • 站立高度仍为 0.3。
    • 停止前进 (v_des[0]=0.0)。
    • 设置步态类型为 4 (gait_type=4)。
    • 设置期望的横滚角为 0.4 (rpy_des[0]=0.4)。
  3. mythread.residenceTransientProcess==3

    • 计算当前帧的平均值 (average=getAverage(frame))。
    • 设置步态类型为 3,步高为 0.03,站立高度为 0.25。
    • 将期望的横滚、俯仰、偏航角设置为 0 (rpy_des[0]=0; rpy_des[1]=0; rpy_des[2]=0)。
    • 设置前进速度为 0.1 (v_des[0]=0.1)。
    • 根据目标平均值与当前平均值的差异设置转向速度 (v_des[2]=0.01*(goalAverage-average))。
  4. mythread.residenceTransientProcess==4

    • 切换模式为 track
    • 重置过渡过程阶段为 1 (mythread.residenceTransientProcess=1)。

模式 residenceleft

cpp 复制代码
if(mythread.mode==residenceleft){
    if(mythread.residenceTransientProcess==1){
        stand_height=0.3;
        v_des[0]=0.03;
    }else if(mythread.residenceTransientProcess==2){
        stand_height=0.3;
        v_des[0]=0.0;
        v_des[2]=0.0;
        gait_type=4;
        rpy_des[0]=-0.4;
    }else if(mythread.residenceTransientProcess==3){
        average=getAverage(frame);
        gait_type=3; step_height=0.03; stand_height=0.25;
        rpy_des[0]=0; rpy_des[1]=0; rpy_des[2]=0;
        v_des[0]=0.1; // 前进
        v_des[2]=0.01*(goalAverage-average); // 转向
    }else if(mythread.residenceTransientProcess==4){
        mythread.mode=track;
        mythread.residenceTransientProcess=1;
    }
}
  1. mythread.residenceTransientProcess==1

    • 设置站立高度为 0.3。
    • 设置机器人前进速度为 0.03。
  2. mythread.residenceTransientProcess==2

    • 站立高度仍为 0.3。
    • 停止前进 (v_des[0]=0.0)。
    • 停止转向 (v_des[2]=0.0)。
    • 设置步态类型为 4 (gait_type=4)。
    • 设置期望的横滚角为 -0.4 (rpy_des[0]=-0.4)。
  3. mythread.residenceTransientProcess==3

    • 计算当前帧的平均值 (average=getAverage(frame))。
    • 设置步态类型为 3,步高为 0.03,站立高度为 0.25。
    • 将期望的横滚、俯仰、偏航角设置为 0 (rpy_des[0]=0; rpy_des[1]=0; rpy_des[2]=0)。
    • 设置前进速度为 0.1 (v_des[0]=0.1)。
    • 根据目标平均值与当前平均值的差异设置转向速度 (v_des[2]=0.01*(goalAverage-average))。
  4. mythread.residenceTransientProcess==4

    • 切换模式为 track
    • 重置过渡过程阶段为 1 (mythread.residenceTransientProcess=1)。

总结

这段代码通过不同的模式 (residencerightresidenceleft) 以及相应的过渡过程阶段 (residenceTransientProcess),控制机器人的行走行为,包括站立高度、前进速度、转向速度以及步态类型。这些参数的调整和计算是为了使机器人能够在不同的环境下稳定地行走并准确地按照预定路线前进。

相关推荐
小坏坏的大世界2 天前
ROS2中的QoS(Quality of Service)详解
linux·机器人
贾全2 天前
从LLM到VLM:视觉语言模型的核心技术与Python实现
人工智能·python·ai·机器人·视觉语言模型·vlm
xiaoyaolangwj2 天前
AGX Xavier 搭建360环视教程【一、先确认方案】
目标检测·机器人·自动驾驶
pk_xz1234562 天前
在Intel Mac的PyCharm中设置‘add bin folder to the path‘的解决方案
ide·人工智能·科技·算法·macos·pycharm·机器人
搬砖的小码农_Sky2 天前
AI:机器人行业发展现状
人工智能·机器人
Blossom.1182 天前
用一张“冰裂纹”石墨烯薄膜,让被动散热也能做 AI 推理——基于亚波长裂纹等离激元的零功耗温度-逻辑门
人工智能·深度学习·神经网络·目标检测·机器学习·机器人·语音识别
kyle~2 天前
Opencv---深度学习开发
人工智能·深度学习·opencv·计算机视觉·机器人
探讨探讨AGV3 天前
以科技赋能未来,科聪持续支持青年创新实践 —— 第七届“科聪杯”浙江省大学生智能机器人创意竞赛圆满落幕
人工智能·科技·机器人
沫儿笙4 天前
弧焊机器人气体全方位节能指南
网络·人工智能·机器人
Axis tech4 天前
丰田将协作机器人与现有设备相结合,以实现超高负载能力和安全性
机器人