【问题标题】:Player stage commands玩家阶段命令
【发布时间】:2013-05-08 18:10:48
【问题描述】:

我正在使用玩家阶段模拟 2.0 在 C++ 中编写基于前沿的探索算法,但我被困在特定部分。据我了解,laserProxy 可对机器人前方的环境进行 180 度扫描。我有一个循环遍历机器人的所有 180 个光束,并分析每个光束。

for (int i = 0; i < lp->GetCount(); i++) {

lp 是一个指向 LaserProxy 的指针。 我查看了laserProxy 的参考手册,GetCount() 假设返回扫描中的点数。我假设这将始终为 180,因为这是从机器人投射的光束数量,但事实并非如此,有时 GetCount() 为 0,有时为 90,以及其他值。谁能解释一下为什么会这样?

谢谢

【问题讨论】:

    标签: c++ robotics


    【解决方案1】:

    这个问题需要你看代码。我在另一个开源机器人模拟器中实现了激光扫描仪。最容易做的是投射光线并计算交点。这些线不一定需要相交。因此,可以理解的是,当它们不相交时,根本不会返回任何点(交点)。您必须查看的文件:

    $ grep -lr scan_count .  | grep drivers 
    ./server/drivers/laser/laserrescan.cc
    ./server/drivers/laser/sickLDMRS.cc
    ./server/drivers/mixed/mricp/src/mricp_driver.cpp
    

    laserrescan 文件总是返回 181 个点,但 SICK 激光不返回,请参阅代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-01
      • 1970-01-01
      • 2020-08-25
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      相关资源
      最近更新 更多