arbotix 模拟器差速小车控制

应用系统: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文件中载入的数据。如果自己不去自定义会有相应的默认值。

 

 

原创文章,转载请注明(学习使用): 转载自  小世界

你可能感兴趣的:(ROS学习)