0

我想在我的机器人中使用 Pilz Industrial Motion 来构建轨迹,但是在 pilz_robot_programming 上的 redme 文件中,它告诉我我需要一个名为 /get_speed_override 的服务,那么如何创建它呢?我在 ROS 的网站上做了所有的教程:( http://wiki.ros.org/pilz_robots/Tutorials ),它允许我使用 RViz 和 API Python 移动 PRBT 机器人。这些教程工作正常,所以我尝试使用我的机器人:在 Rviz 中一切看起来都很好,我可以计划和执行 PTP 和 LIN 动作,但是当我尝试使用 API 时,由于以下几行而失败:

等待连接到服务 /prbt/get_speed_override... 等待服务 /prbt/get_speed_override 时超时

所以我做一个服务:

import roslib; 
roslib.load_manifest('test_package') #I create a package to get this service
import rospy
from test_package.srv import GetSpeedOverride #Float between 0 - 1

def SpeedOveride( requisicao ):
    return 1                   #Return 1 just for test
    
rospy.init_node('simple_gui')          #my node
service = rospy.Service( 'simple_gui/get_speed_override', GetSpeedOverride, SpeedOveride )
rospy.spin()

我运行 ia new 终端,它可以跳过该行,但也许我以错误的方式创建此服务,因为每次移动都失败(但是当我运行 rosservice list 它在那里!)。终端中的错误:

在此处输入图像描述

这在API中:

pilz_robot_programming.exceptions.RobotMoveFailed:执行期间失败:Ptp vel_scale:0.2 acc_scale:0.2 参考:base_link 联合目标:(0.3、0、0.45、0、0、0)

我真的很想使用 Pilz,因为轨迹的 MoveC 和 Blend 选项,但似乎很难与其他机器人集成,因为当我使用演示时,一切都很好,但是当我尝试与其他机器人一起使用时它失败了. 但是,如果有人对另一种构建方式有想法,请告诉我。Obs:我正在使用 Ros-Noetic e Moveit 1。

4

0 回答 0