应用系统:ubuntu16.04
ROS平台:kinetic
关于arbotix在控制两轮差速小车时使用diff_controller控制器,并在rviz中模拟小车运动。载入配置文件中
controllers: {
base_controller: {type: diff_controller, base_frame_id: car_base_footprint, odom_frame_id: floor_link, base_width: 0.261, ticks_meter: 4100, Kp: 12, Kd: 12, Ki: 0, Ko: 50, accel_limit: 1.0 }
}
可以将odom_frame_id:修改为自己想固定的坐标系,默认为odom
在分析arbotix功能包中arbotix_python的源文件diff_controller.py发现
# parameters: rates and geometry
self.rate = rospy.get_param('~controllers/'+name+'/rate',10.0)
self.timeout = rospy.get_param('~controllers/'+name+'/timeout',1.0)
self.t_delta = rospy.Duration(1.0/self.rate)
self.t_next = rospy.Time.now() + self.t_delta
self.ticks_meter = float(rospy.get_param('~controllers/'+name+'/ticks_meter'))
self.base_width = float(rospy.get_param('~controllers/'+name+'/base_width'))
self.base_frame_id = rospy.get_param('~controllers/'+name+'/base_frame_id', 'base_link')
self.odom_frame_id = rospy.get_param('~controllers/'+name+'/odom_frame_id', 'odom')
# parameters: PID
self.Kp = rospy.get_param('~controllers/'+name+'/Kp', 5)
self.Kd = rospy.get_param('~controllers/'+name+'/Kd', 1)
self.Ki = rospy.get_param('~controllers/'+name+'/Ki', 0)
self.Ko = rospy.get_param('~controllers/'+name+'/Ko', 50)
# parameters: acceleration
self.accel_limit = rospy.get_param('~controllers/'+name+'/accel_limit', 0.1)
这些都是可在.yaml文件中载入的数据。如果自己不去自定义会有相应的默认值。
原创文章,转载请注明(学习使用): 转载自 小世界