线程评级:
通过API c++改变机器人的配置
# 1
你好,

是否可以通过c++ API改变机器人的配置(正面/正面/正面)?
我知道我可以用

tConfig配置;

关节机器人- > JointsConfig(机器人- >(),配置);

但我想改变配置,例如只肘部向下,但仍然有信心,机器人EE具有与以前相同的笛卡尔姿势!
你应该这样做:

代码:
//计算所有可用的解:
t关节关节= ROBOT->关节();
QList< t关节> joints_list = ROBOT->SolveIK_All(ROBOT->SolveFK(关节));

//迭代所有可用的解决方案:
For (int i=0;我< joints_list.length ();我+ +){
//选择你喜欢的机器人关节
tConfig jnts_config;
机器人——> JointsConfig (joints_list[我],jnts_config);


//设置你喜欢的/最优的机器人关节:
机器人——> setJoints (new_joints);
# 3
(01-28-2020, 10:58 pm)艾伯特写道:你应该这样做:

代码:
//计算所有可用的解:
t关节关节= ROBOT->关节();
QList< t关节> joints_list = ROBOT->SolveIK_All(ROBOT->SolveFK(关节));

//迭代所有可用的解决方案:
For (int i=0;我< joints_list.length ();我+ +){
//选择你喜欢的机器人关节
tConfig jnts_config;
机器人——> JointsConfig (joints_list[我],jnts_config);


//设置你喜欢的/最优的机器人关节:
机器人——> setJoints (new_joints);

嗨,阿尔伯特,

我完全照你说的做了。现在我遇到了一个意想不到的问题。我已经调试过了,看起来SolveIK_All有时失败。


所以当我运行这段代码时,有时(奇怪的是)我会得到这些消息之一:
沟通问题RoboDKAPI
有时
RoboDKAPI错误:”“

我在另外两台机器上试过。在一个(更强大)没有发生。在另一个(不那么强大)它发生了,也许甚至更多。这就是为什么我认为这可能是超时的问题?我不确定。

而且,我正在循环求解IK 136次。有时,它只显示其中一条消息,然后继续工作,因为什么都没有发生,但是在调用SolveIK_All 5次以上之后,它会因这些消息而崩溃。

下面是一段代码:


代码:
t关节new关节= ROBOT->关节();
cout << " Solve-all-started ";
QList< t关节> joints_list = ROBOT->SolveIK_All(ROBOT->SolveFK(new关节));
Cout << "done ";
tConfig jnts_config;
//迭代所有可用的解决方案:
For (int i=0;我< joints_list.length ();我+ +){
cout << " select -config ";
//选择你喜欢的机器人关节
机器人——> JointsConfig (joints_list[我],jnts_config);
If (jnts_config[0]==0 && jnts_config[1]==0){
//设置你喜欢的/最优的机器人关节:
*jointResult = joints_list[i];
打破;


cout << " set - nodes ";
机器人——> setJoints (currentJoints);

返回true;
并对多次尝试的结果进行总结:


可以看到,在第9个目标之后,它无法通信,因此不需要任何配置,然后它拖着问题去了目标10和11,最后它崩溃了。


在这里,

错误在目标107之后出现一次,之后一切正常,最后代码继续正常运行。


在这里,

错误显示在11和17之后,而不是问题一直到45,它崩溃!


可以看出,问题发生在“全部解决”开始之后和“完成”之前。

你知道为什么会这样吗?
# 4
这可能是一个错误。如果你能提供一个Qt项目来显示这个问题和RDK文件,那就太好了。




浏览此线程的用户:
1客人(年代)

Baidu
map