@小鱼 求助,怎么通过界面输入修改海龟模拟器的背景颜色
重要提示
鱼香小铺正式开业,最低499可入手一台能建图会导航的移动机器人,淘宝搜店:鱼香ROS 或点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
275253468 发布的最新帖子
-
结合ros2和pyqt5编写小乌龟控制界面
class MainWindowTurtle(QWidget, Ui_turtel, SubAndPub): def __init__(self): super(MainWindowTurtle, self).__init__() Ui_turtel.__init__(self) SubAndPub.__init__(self) self.setupUi(self) self.timer = QTimer(self) self.timer.timeout.connect(self.sensor_data_update) self.timer.start(10) self.pushButton_5.clicked.connect(self.color_set) def sensor_data_update(self): self.label_7.setText(str(self.pose_msg_x)) self.label_8.setText(str(self.pose_msg_y)) self.label_10.setText(str(self.pose_msg_th)) self.label_13.setText(str(self.cmd_msg_x)) self.label_14.setText(str(self.cmd_msg_z)) rclpy.spin_once(self) def color_set(self): # self.color_msg.r = int(self.lineEdit.text()) # self.color_msg.g = int(self.lineEdit_2.text()) # self.color_msg.b = int(self.lineEdit_3.text()) # r = rclpy.parameter.Parameter('/turtlesim background_r', rclpy.Parameter.Type.INTEGER, self.color_msg.r) # g = rclpy.parameter.Parameter('/turtlesim background_g', rclpy.Parameter.Type.INTEGER, self.color_msg.g) # b = rclpy.parameter.Parameter('/turtlesim background_b', rclpy.Parameter.Type.INTEGER, self.color_msg.b) self.declare_parameters('turtlesim', [('turtlesim background_r', 0), ('turtlesim background_g', 0), ('turtlesim background_b', 0)]) print(self.get_parameter('/turtlesim background_r').get_parameter_value().integer_value) self.lineEdit.setText(str(self.get_parameter('/turtlesim background_r').get_parameter_value().string_value)) self.lineEdit_2.setText(str(self.get_parameter('/turtlesim background_g').get_parameter_value().string_value)) self.lineEdit_3.setText(str(self.get_parameter('/turtlesim background_b').get_parameter_value().string_value)) # all_new_parameters = [r,g,b] # print(all_new_parameters) # self.set_parameters(all_new_parameters) class SubAndPub(Node): def __init__(self): self.cmd_msg_z = None self.cmd_msg_x = None self.pose_msg_th = None self.pose_msg_y = None self.pose_msg_x = None rclpy.init(args=None) super().__init__('sub_and_pub') self.color_pub = None self.cmd_pub = None self.pose_msg = None self.sub_pose = None self.cmd_msg = None self.sub_cmd_vel = None self.cmd_pub = self.create_publisher(Twist, '/turtle1/cmd_vel', 10) self.color_pub = self.create_publisher(Color, '/turtle1/color_sensor', 10) self.sub_cmd_vel = self.create_subscription(Twist, '/turtle1/cmd_vel', self.CmdVelCallBack, 10) self.sub_pose = self.create_subscription(Pose, '/turtle1/pose', self.PoseCallBack, 10) self.color_msg = Color() self.cmd_vel_msg = Twist() def CmdVelCallBack(self, msg): self.cmd_msg_x = msg.linear.x self.cmd_msg_z = msg.angular.z def PoseCallBack(self, msg): self.pose_msg_x = msg.x self.pose_msg_y = msg.y self.pose_msg_th = msg.theta
报错:
Traceback (most recent call last):
File "control_main.py", line 45, in color_set
print(self.get_parameter('/turtlesim background_r').get_parameter_value().integer_value)
File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/node.py", line 513, in get_parameter
raise ParameterNotDeclaredException(name)
rclpy.exceptions.ParameterNotDeclaredException: ('Invalid access to undeclared parameter(s)', '/turtlesim background_r')