【问题标题】:Gazebo simulated PR2 robot maximum speed is not respectedGazebo 模拟 PR2 机器人最大速度不被尊重
【发布时间】:2020-10-25 15:36:24
【问题描述】:

运行 ROS melodic、gazebo 版本 9.11.0 和官方 Gazebo/PR2 插件。

我正在使用在凉亭内模拟的 PR2 机器人并通过 ROS 发送控制命令。然而,机器人最多在 0.25 m/s 内移动,而最大速度为 1 m/s(根据规范)。我正在使用 PR2/Gazebo 插件提供的 Teleop 应用程序。

PR2 Teleop 启动文件teleop_keyboard.launch 正确指示正确值

<launch>
        
    <node pkg="pr2_teleop" type="teleop_pr2_keyboard" name="spawn_teleop_keyboard" output="screen">
      <remap from="cmd_vel" to="robot1/base_controller/command" />

      <param name="walk_vel" value="0.5" />
      <param name="run_vel" value="1.0" />
      <param name="yaw_rate" value="1.0" />
      <param name="yaw_run_rate" value="1.5" />
    </node>
</launch>

访问robot1 里程表直接表明了问题:最大速度不知何故被限制在0.261 m/s。但是 pr2_teleop 中的行走速度设置为 0.5 m/s!

twist: 
  twist: 
    linear: 
      x: 0.261318236589
      y: 4.47927095593e-06
      z: 0.0
    angular: 
      x: 0.0
      y: 0.0
      z: -1.72120462594e-06
  covariance: <removed>

【问题讨论】:

  • 通过查看 rostopic 回波输出,您如何知道 twist.twist.linear.x 实际上的上限为 0.261 m/s?
  • 当您在运行roslaunch pr2_teleop teleop_keyboard.launch 的shell 中发出键盘命令时,您是否检查过设置点是否发生变化?
  • @csg 我尝试使用 cmd_vel 直接发送扭曲命令,也尝试使用 teleop_keyboard。里程计线性扭转 (xy) 速度从未超过 0.261。如果将速度设置为低于该值,则会正确复制。我会检查设定值。

标签: ros


【解决方案1】:

根据teleop_pr2_keyboard.cppgeometry_msgs::Twist 的值必须是:

0.5 for twist.twist.linear.x -> forward moving

-0.5 for twist.twist.linear.x -> backward moving

等等,见http://docs.ros.org/en/melodic/api/pr2_teleop/html/teleop__pr2__keyboard_8cpp_source.html。 我的问题是您如何在linear.yangular.z 中获得如此小的偏差,您是否更改了上述文件中的某些内容?

【讨论】:

  • 我没有,teleop 是原始版本。我怀疑这个小变化是由于模拟错误(PR2 有很多活动部件)。我会对此进行评估。
  • 你知道你必须使用你重新映射的主题。代替 cmd_vel 使用主题 robot1/base_controller/command。
  • 谢谢,我确实做到了。我有两个机器人独立接收命令,唯一的问题是最大速度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-06
  • 1970-01-01
  • 2023-01-25
  • 1970-01-01
  • 2012-03-02
  • 1970-01-01
相关资源
最近更新 更多