我想通过在传感器上应用一些算法来改进turtlebot3 LDS-01传感器.因此,我的策略是通过订阅“Laserscan.ranges”主题,将该算法应用于Laserscan.ranges,并将其再次发布到“/scan”主题,从而改进和修改Laserscan.ranges的值(即传感器到障碍物之间的距离)。我怎么能做到呢?我脑子里有个想法:
。
最后,如果有任何建议,教程或在线课程,我可以采取与这个问题,我将非常高兴听到。
这张图片是想法1的摘要。

发布于 2021-09-07 12:59:34
在修改消息之后,您不应该在传感器主题上发布。如果这样做,其他订阅者只会看到修改消息和未修改消息的混合。相反,将其发布到一个单独的主题上,如下所示:
scan_msg_pub = rospy.Publisher('/scan/edited', LaserScan, queue_size=10)
def scan_msg_cb(msg):
#Edit message here
msg.header.frame_id = "new_frame_id" #You can change msg fields like this
scan_msg_pub.publish(msg)
def main():
rospy.Subscriber('/scan', LaserScan, scan_msg_cb)
rospy.spin()
if __name__ == '__main__':
rospy.init_node('scan_edit')
main()https://stackoverflow.com/questions/69079603
复制相似问题