基于Webots_ros2软件包构建一个外部控制器来控制软件Webots中的NAO机器人。我想通过''self.__node.get_logger().info(“HERE IS THE STEP”)''将MSG发送到终端。但它不起作用。但是,当我用它来控制名为“my_robot”的tutorial机器人时,它可以做到。
External Controller:
import rclpy
from geometry_msgs.msg import Twist
from controller import Robot
class NAO:
def init(self, webots_node, properties):
self.__robot = webots_node.robot
self.__target_twist = Twist()#initializing the command
rclpy.init(args=None)
self.__node = rclpy.create_node('RED0_driver')
self.__node.create_subscription(Twist, 'cmd_vel', self.__cmd_vel_callback, 1)
def __cmd_vel_callback(self, twist):
self.__target_twist = twist
#self.__node.get_logger().info("HERE IS THE INFOMATION")
def step(self):
rclpy.spin_once(self.__node, timeout_sec=0)
self.__node.get_logger().info("HERE IS THE STEP")
至于控制不同的机器人(my_robot,RED0是Webots中两个机器人的名称), 我只在launch文件中更改了机器人的名称.
有人可以帮我把消息发送到终端吗?please