小编Fab*_*rer的帖子

机器人模拟器

哪个是最好的机器人模拟器?截至目前,我只是希望得到潜在场方法,Bug算法,A*算法等的简单模拟!

已知的机器人模拟器列表是;

  1. 播放器项目 (2D模拟器 - 舞台 - 3D模拟器 - Gazebo - 和控制界面 - 开源,ROS项目的一部分)
  2. MORSE(通用室内/室外3D模拟器)
  3. Microsoft Robotics Studio(模拟器+控制界面)
  4. KiKS(Matlab插件,仅适用于Khepera +控制界面)
  5. MobotSim(用于类似机器人的点,更多的算法实现)
  6. Karel(漂亮的Kiddish,我猜它是Pascal/Logo之类的)
  7. Peekabot(看起来很酷!)
  8. MRPT(看起来非常好,很快就会尝试)
  9. Carmen(Robot Vision等易于实现(?))
  10. Webots(开源 - 多平台 - 多语言[ROS,Python,Matlab等] - 最先进的外观 - Web导出)
  11. Simbad(Java和Jython中的2D/3D模拟器)
  12. Robocode(Java/.NET套装)
  13. 罗森的剧场(C/C++套装)
  14. V-REP(3D,可用源代码,Lua脚本,C/C++ API,Python,Java,Matlab,URBI,2个物理引擎,完整的运动学求解器等)

一些更通用的平台/中间件也提供模拟工具:

  1. ROS(目前是此类平台的最大集成)
  2. URBI
  3. YARP
  4. OROCOS(对此一无所知!)

关于机器人模拟器的一些参考:

  1. 自动移动机器人的开发环境:一项调查
  2. 开源机器人工具包
  3. 机器人软件平台的更新评论
  4. 现有模拟器 - webpage@laas.fr
  5. 在Asaf Matan的网站上列出

robotics robotics-studio mobile-robots

56
推荐指数
1
解决办法
3万
查看次数

升级到Mac OS X 10.9/Xcode 5.0.1后,C++链接错误

升级到Mac OS X 10.9/Xcode 5.0.1后,创建共享库(.dylib)的命令行失败,出现了几个未定义的符号.

clang++ -dynamiclib -install_name test.dylib *.o -o test.dylib
Undefined symbols for architecture x86_64:
  "std::allocator<char>::allocator()", referenced from:
      _main in test.o
  "std::allocator<char>::~allocator()", referenced from:
      _main in test.o
  "std::ostream::operator<<(std::ostream& (*)(std::ostream&))", referenced from:
      _main in test.o
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)", referenced from:
      _main in test.o
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()", referenced from:
      _main in test.o
  "std::ios_base::Init::Init()", referenced from:
      ___cxx_global_var_init in test.o
  "std::ios_base::Init::~Init()", referenced from:
      ___cxx_global_var_init in test.o
  "std::cout", referenced from:
      _main in test.o
  "std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> …
Run Code Online (Sandbox Code Playgroud)

c++ linker clang++ osx-mavericks

26
推荐指数
1
解决办法
6万
查看次数

暂时阻止两个QObject之间的信号

我想在QObjects不修改其他信号/插槽行为的情况下,一般地和暂时地阻止两者之间的信号,并且不知道它们的上下文.

QObject :: blockSignals(bool)之类的东西,但只在两个之间起作用QObjects.

也就是说,实现以下SignalBlocker::blockSignals(bool)功能:

class SignalBlocker {

public:
  SignalBlocker(QObject *sender, QObject *receiver) :
    mSender(sender), mReceiver(receiver) {}
  void blockSignals(bool block);

private:
  QObject *mSender, *mReceiver;
}
Run Code Online (Sandbox Code Playgroud)

通过断开和重新连接对象是可能的,但首先必须存储信号/时隙列表.似乎自省方法不足够强大来实现这一(我看了看QMetaObject,并QSignalSpy没有成功).

qt signals qobject slot

5
推荐指数
1
解决办法
1万
查看次数

查看QTextStream

我想查看读取QFile的QTextStream的下一个字符,以便创建一个有效的标记器.

但是,我没有找到任何令人满意的解决方案.

QFile f("test.txt");
f.open(QIODevice::WriteOnly);
f.write("Hello world\nHello universe\n");
f.close();

f.open(QIODevice::ReadOnly);
QTextStream s(&f);
int i = 0;
while (!s.atEnd()) {
  ++i;
  qDebug() << "Peek" << i << s.device()->peek(3);
  QString v;
  s >> v;
  qDebug() << "Word" << i << v;
}
Run Code Online (Sandbox Code Playgroud)

给出以下输出:

Peek 1 "Hel" # it works only the first time
Word 1 "Hello" 
Peek 2 "" 
Word 2 "world" 
Peek 3 "" 
Word 3 "Hello" 
Peek 4 "" 
Word 4 "universe" 
Peek 5 "" 
Word 5 ""
Run Code Online (Sandbox Code Playgroud)

我尝试了几个实现,也使用了QTextStream :: …

qt seek peek qtextstream

5
推荐指数
1
解决办法
1332
查看次数

与libbluetooth.so链接

在Ubuntu 14.04上,我正在尝试做一个蓝牙设备列表的小例子,但我正面临着一个关于在编写这个简约演示时与蓝牙共享库链接的简单问题http://people.csail.mit.edu/albert /bluez-intro/c404.html:

$ sudo apt-get install libbluetooth-dev

$ gcc -lbluetooth simplescan.c -o simplescan
/tmp/ccuwRsB5.o: In function `main':
simplescan.c:(.text+0x79): undefined reference to `hci_get_route'
simplescan.c:(.text+0x8c): undefined reference to `hci_open_dev'
simplescan.c:(.text+0x132): undefined reference to `hci_inquiry'
simplescan.c:(.text+0x18f): undefined reference to `ba2str'
simplescan.c:(.text+0x1f0): undefined reference to `hci_read_remote_name'
collect2: error: ld returned 1 exit status

$ nm -D /usr/lib/x86_64-linux-gnu/libbluetooth.so.3.13.0 | grep hci_get_route
0000000000008f00 T hci_get_route
Run Code Online (Sandbox Code Playgroud)

似乎找到蓝牙共享库并包含所需的功能,但链接阶段无法实现.

linker bluetooth

3
推荐指数
1
解决办法
5366
查看次数

ThreeJS: Get useful shader build log

When my ThreeJS custom shaders contains errors, I get the very cryptic INVALID_OPERATION message in the JS console during the rendering stage:

WebGL: INVALID_OPERATION: useProgram: program not valid
Run Code Online (Sandbox Code Playgroud)

Is there a way to get a more useful log, such as the one returned by getShaderInfoLog()?

(To test this quickly, one can add errors in the shaders of this app.)

shader three.js

2
推荐指数
1
解决办法
124
查看次数