我目前正在尝试编写一个pythonros程序,它可以作为ROS节点执行(使用rosrun),它实现在单独的Python文件中声明的def手臂.py(网址:https://github.com/nortega1/dvrk-ros/..)。程序首先检查手臂的当前笛卡尔位置。随后,当提供了手臂必须经过的一系列点时,程序计算一个多项式方程,并给定一个x值的范围,程序计算该方程以找到相应的y值。在
在arm.py
文件中,有一个发布服务器set_position_cartesian_pub
,它设置手臂的笛卡尔位置,如下所示:
self.__set_position_cartesian_pub = rospy.Publisher(self.__full_ros_namespace + '/set_position_cartesian', Pose, latch = True, queue_size = 1)
问题是,发布者set_position_cartesian没有向机器人发布newPose的值-有人知道可能是什么问题吗?我可以确认def lagrange正确地计算了x和y坐标的值,这些值通过命令打印到终端rospy.loginfo(新姿势)。任何帮助将不胜感激,因为我一直在努力解决这个问题在过去两天!在
^{pr2}$
您没有发布,因为当您调用
application.configure()
时,代码停止在rospy.spin()
。据我所知,你正在尝试做什么,代码将发布10个姿势到一个主题,然后你不再需要它了。在我已经移动了
rospy.spin()
的位置,但是代码需要更多的修改。在想想:
configure
方法移动到__init__
方法。在g()
函数置于lagrange()
之外。在最好使用相对主题名,而不是绝对主题名(absolute:topicname以
/
开头,例如:'/dvrk/PSM1'
)。在相关问题 更多 >
编程相关推荐