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

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

相关推荐
PHOSKEY7 小时前
光子精密闪测仪检测机器人谐波减速器部件,赋予AI执行柔顺运动
人工智能·机器人
minglie111 小时前
飞书AI机器人agent+MCP+Skill设计与实现
机器人·飞书
Deepoch11 小时前
Deepoc具身模型开发板:为机械臂清洁机器人注入“智慧灵魂”
大数据·科技·机器人·机械臂·清洁机器人·具身模型·deepoc
天空属于哈夫克312 小时前
私域自动回复机器人:构建 7x24 小时智能客户响应系统
机器人
韶关亿宏科技-光纤通信小易12 小时前
管道打磨机器人-300–700mm 内径打磨解决方案
机器人
晓纪同学14 小时前
ROS2 -03-工作空间与功能包
机器人
兮动人14 小时前
Linux 云服务器部署 OpenClaw 全攻略:从环境搭建到 QQ 机器人集成
linux·服务器·机器人·openclaw
广州赛远16 小时前
SRA166防静电防护服安装保养指南:避免机器人静电损伤的实操详解
人工智能·机器人
物联网软硬件开发-轨物科技16 小时前
【轨物方案】“比特”驱动“瓦特”:详解光伏清洁机器人无刷与有刷智能硬件方案
机器人·智能硬件
视***间16 小时前
视程空间全系列产品解析:以边缘算力为核,铸就全场景智能硬件标杆
人工智能·机器人·边缘计算·智能硬件·视程空间