目前正在使用 LGSVL Simulator 学习 ROS。我想发布到“/move_base_simple/goal”主题。
在主代码中只显示重要的“导入”和代码的结尾
import rospy
import roslibpy
from rospy import rostime
import lgsvl
import logging
from environs import Env
from geometry_msgs.msg import PoseStamped
import publisher
### LGSVL SETUP ###
...
###################
ego.set_destination(publisher.GoalPublisher.publish_2d_nav_goal(self=publisher.GoalPublisher,pose_x=9425.16015625, pose_y=9823.15527344, pose_z=0.0))
ros = roslibpy.Ros(host='localhost', port=9090)
ros.run()
sim.run()
这是我的出版商
import rospy
import rospkg
import std_msgs
from geometry_msgs.msg import PoseStamped
class GoalPublisher():
def __init__(self):
rospy.init_node('webapp', disable_signals=True)
self.goal_publisher = rospy.Publisher("move_base_simple/goal", PoseStamped, queue_size=10)
def publish_2d_nav_goal(self, pose_x, pose_y, pose_z):
goal = PoseStamped()
goal.header.stamp = rospy.Time.now()
goal.header.frame_id = "map"
goal.pose.position.x = pose_x
goal.pose.position.y = pose_y
goal.pose.position.z = pose_z
goal.pose.orientation.x = 0.0
goal.pose.orientation.y = 0.0
goal.pose.orientation.z = -0.663932738254
goal.pose.orientation.w = 0.747792296747
self.goal_publisher.publish(goal)
当我尝试启动我的主代码时,我收到此错误:rospy.exceptions.ROSInitException: time is not initialized。你有没有调用 init_node()?
我需要在主代码中添加“rospy.init_node(...)”吗?或者我该如何解决这个问题?