我看了在行走过程中,有这样的代码(我的问题在第2行):
- def walking(self, delta_x, delta_y, theta):
- rospy.wait_for_message('/requestGaitCommand', Bool, self.timeout)
- self.gait_cmd_pub.publish(data=[delta_x, delta_y, theta])
复制代码 代码来源:/home/fan/robot_ros_application/catkin_ws/src/gaitcommander/scripts/key_cmd.py
然后查了 requestGaitCommand 的发布者是 bodyhub 节点。但没有理解行走前为什么要等待 requestGaitCommand 话题。如果 requestGaitCommand 发布失败或错误,会不会影响正常行走?我检索了所有代码,没有找到发布 requestGaitCommand 的代码或发布条件。我看了README文档中的说明是:
- /requestGaitCommand ([std_msgs/Bool][std_msgs/Bool])
行走模式下,机器人中脚步指令低于一定值时,请求新的控制脚步。 我没有理解什么是“脚步指令”,还有它是谁发出来的;这个“一定值”是需要参赛者指定的还是参赛者不用管?还有我觉得应该是上位机主动控制行走,而不是由下位机“请求新的控制脚步”。
归纳一下,我的问题都是围绕 requestGaitCommand 的产生原理和使用目的:
1. requestGaitCommand 在满足什么条件时候发布?
2. requestGaitCommand 会影响行走吗,会不会有累计误差?之前用Roban实物走slam的时候,发现走着走着会突然卡住停下,总感觉哪有问题。
3. 使用 requestGaitCommand 控制行走的合理性是什么?
|