I have just worked through the Ex 3.4 and the solution section has a few what seem to be typos rather than genuine issues: in the
def publish(self,x,y):
msg = PoseWithCovarianceStamped()
msg.header.frame_id = '/map'
msg.pose.pose.position.x = x
msg.pose.pose.position.y = y
self.get_logger().info('Publishing Initial Position \n X= %f \n Y= %f '% (msg.point.x, msg.point.y))
self.publisher_.publish(msg)
the logger info should be
self.get_logger().info('Publishing Initial Position \n X= %f \n Y= %f '% (msg.pose.pose.position.x, msg.pose.pose.position.y))
the PoseWithCovarianceStamped has pose.pose.position.x
format rather than point.x