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

这段代码是用来控制机器人在不同模式下的行为,具体是处理 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),控制机器人的行走行为,包括站立高度、前进速度、转向速度以及步态类型。这些参数的调整和计算是为了使机器人能够在不同的环境下稳定地行走并准确地按照预定路线前进。

相关推荐
诗远Yolanda19 小时前
【EI检索会议】第二届国际人工智能创新研讨会(IS-AII 2026)
图像处理·人工智能·深度学习·机器学习·计算机视觉·机器人
万俟淋曦20 小时前
【论文速递】2025年第37周(Sep-07-13)(Robotics/Embodied AI/LLM)
人工智能·ai·机器人·大模型·论文·robotics·具身智能
万俟淋曦20 小时前
【论文速递】2025年第42周(Oct-12-18)(Robotics/Embodied AI/LLM)
人工智能·ai·机器人·大模型·论文·robotics·具身智能
万俟淋曦1 天前
【论文速递】2025年第41周(Oct-05-11)(Robotics/Embodied AI/LLM)
人工智能·深度学习·机器人·大模型·论文·robotics·具身智能
AiTEN_Robot1 天前
内部物流自动化集成应用:效率与吞吐能力优化的关键技术突破
机器人·自动化·制造
min1811234561 天前
具身智能(Embodied AI)逼近:机器人如何更好地理解物理世界?
人工智能·机器人
PNP Robotics1 天前
聚焦具身智能,PNP机器人展出力反馈遥操作,VR动作捕捉等方案,获得中国科研贡献奖
大数据·人工智能·python·学习·机器人
数说星榆1811 天前
多代理系统(MAS):机器人集群如何实现知识共享与协同?
机器人
心无旁骛~1 天前
【VLA】如何构建高质量的机器人训练数据集?
数码相机·机器人
万俟淋曦1 天前
【论文速递】2025年第39周(Sep-21-27)(Robotics/Embodied AI/LLM)
人工智能·深度学习·机器学习·机器人·大模型·论文·具身智能