ROS答疑(二)

问1:
srv如何使用自定义的数据类型,好比自定义的一个类
答1:
wiki上教程,http://wiki.ros.org/ROS/Tutorials/WritingServiceClient(c%2B%2B)
问2:
连接,上面的srv输入输出都是int等内置数据类型,能不能是自定义的比较复杂的类做为srv的输入
答2:
srv里边的数据是能够嵌套的,好比msg里边套用另一个msg,生成的头文件相似于数据结构嵌套,能够参考下其余机器人的消息定义,常常会看到这种嵌套结构python

问3:
请问 我用matlab和ros相连 为何 rostopic echo没有显示, rostopic list 能够
在这里插入图片描述在这里插入图片描述答3:
防火墙关掉就好啦linux

问4:
.launch 文件与.launch.xml有什么区别吗?
答4:
两种文件是同样的,linux并非之后缀识别文件类型,launch文件也是xml语法的,因此两个文件一样解析git

问5:
为何连上机械臂后,我真实机械臂上没法走完规划出来的路径,走了一部分之后就停了(仍是机械臂加速那个例子),若是不连机械臂的话,它就是正常的?
答5:
用真实机械臂的话,最大的区别是控制器用的是机器人上的,有可能会出现控制超时之类的问题,致使中间中止, moveit规划的轨迹会有时间限制,超时就会中间中止,因此须要匹配控制器端的速度,让机器人在规定时间完成运动,控制器端的速度不禁规划好的速度提供,规划的是指望的速度,可是控制器不必定能按照指望速度运动,好比咱们控制器上强制限速,这个时候就出现不一致了,若是没有限速这类状况的话,只要控制性能好,通常都可以按规划好的速度,走完规划好的路径。github

问6:
在运行机械臂加速运动那个代码时,对这个过程进行了重复,但我发现每次运动到的结果是不一样的,在第一次运动到终点位置的时候,我把鼠标挪到那做了个定位,但是后面每次都都不一样。这是什么缘由?
我在实际机械臂上的偏差会更大,就每次到达的目标点不一样,会有必定的偏差?
答6:
ompl用的rrt是采样算法,每次计算的路径不必定相同,能够缩小采样空间,尽可能一致,修改ompl.yaml里的参数。
由于传的pose,因此把对应的PositionTolerance和OrientationTolerance的值该小了,以前的值大了点,而后不连机械臂的时候仿真结果就行了,基本每次到的目标点位置都同样web

问7:
ABORTED: Solution found but controller failed during execution,我把限制的执行时间 给改了,不过 好像仿真中仍是会运动 可是仍是会报这个错误
答7:
控制器没有执行运动,那个限制执行时间只影响moveit等待,具体执行是无论的算法

问8:
wiki.ros或github上有没有从moveit运动规划到ros_cotrol与底层硬件通信(read/write部分)都写好的开源的机器人例程啊?ros_control的个个部分似懂非懂,不知道如何才能把他们都串起来?
答8:
大族有一个cute arm,是开源的,能够找来看看api

问9:
我如今用abb的yumi机器人。如今用的是python的api为何实际机器人比gazebo运动起来要慢好多呀?用的是set pose target和set name target,连续运动四个点
答9:
gazebo里边有仿真节拍的设置,仿真的时间能够比实际时间快,具体配置我还不太清楚,能够看下gazebo的说明数据结构