ZBLOG

The constructor of the Droid class initializes various parameters and variables for controlling a robot. It reads in a YAML configuration file, extracts relevant information such as the robot name, PID gains, and impedance model type. It also sets...

Droid类的构造函数初始化了控制机器人所需的各种参数和变量。它读取一个YAML配置文件,提取相关信息,如机器人名称、PID增益和阻抗模型类型。还设置共享内存通信,用于发送和接收命令到/从机器人。最后,它将两条腿的关节角度初始化为零。

具体来说,该函数做了以下工作:

  1. 打印输出“construct Droid()”,表示正在构造Droid对象。

  2. 定义一个字符串数组cfgFn,并将其初始化为”../EnvReal/m04k/configA.yaml”。注释掉的另外两个定义分别是用于不同配置文件的路径。

  3. 使用do-while循环将cfgFn复制到字符数组cfgFile中,并在末尾添加一个空字符’\0’。

  4. 创建一个Yaml::Node对象root,并使用Yaml::Parse函数解析cfgFile中指定的YAML文件内容。

  5. 从root节点中提取出机器人名称rbtname,并打印输出相关信息。

  6. 从root节点中提取出Leg子节点下的ImpMod、Kp和Kd字段,并将其存储到成员变量ImpMod、Kp和Kd中。其中str2vec函数将以逗号分隔的字符串转换为向量形式,printVec函数打印输出相关信息。

  7. 初始化控制层与执行层之间的共享内存通信(shm)。fd_gc和fd_gt分别表示控制层(gc)和执行层(gt)的共享内存文件描述符。mmap函数将共享内存映射到进程地址空间,以便进行读写操作。

  8. 将gt->task设置为ALL_OFF,表示停止机器人运动。将两条腿的五个关节角度都初始化为零。

总之,该构造函数的主要作用是读取配置文件、初始化通信和状态变量,并准备机器人进行控制。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=4140

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?