j_con b_con 这些属于name字段。由代码动态解析。(*it)->first完成。
具体到每一个名字下面的topic名称,根据不同的controller来定义。
对于base_controller 需要有topic /cmd_vel和odom_topic /odom
1. yaml文件 参数服务器
编码时,需要提供yaml文件。里面存放着控制器和sensor等的参数信息。代码需要解析这些参数。
参数解析时,如果没有某个参数,可以使用默认值。这时使用param函数来做。通常先判断hasParam是否有,有的话再直接getParam来获取。
应用程序函数库中,有这样的代码:
self.cmd_vel_pub=rospy.Publisher('/cmd_vel', Twist)
self.cmd_joints_pub=rospy.Publisher('/cmd_joints', JointState) joint_controller /controllers/j_con
self.cmd_lcd_pub=rospy.Publisher('/cmd_lcd', LCD)
# subscriptions
rospy.Subscriber('/joint_states', JointState, self.jointsCb, queue_size=1) main主控里面来定义和发布
rospy.Subscriber('/mics_states', NoiseLevels, self.micsCb, queue