在arbotix的yaml文件中
# 该文件是控制器配置,一个机器人模型可能有多个控制器,比如: 底盘、机械臂、夹持器(机械手)....
# 因此,根 name 是 controller
controllers: {
# 单控制器设置
base_controller: {
#类型: 差速控制器
type: diff_controller,
#参考坐标
base_frame_id: base_footprint,
#两个轮子之间的间距
base_width: 0.4869646685,
#控制频率
ticks_meter: 2000,
#PID控制参数,使机器人车轮快速达到预期速度
Kp: 12,
Kd: 12,
Ki: 0,
Ko: 50,
#加速限制
accel_limit: 1.0
}
}
base_frame_id为base_footprint,这里odom没有TF转换的原因是没有定义base_footprint,需要在小车urdf中加入link和joint。
<link name="base_link">
<inertial>
<origin xyz="-0.0297223458239662 0.00885393359209172 0.0908337009417238" rpy="0 0 0" />
<mass value="26.9449323487092" />
<inertia ixx="0.161309568708359" ixy="-3.60659406063394E-05" ixz="-0.000200143769478037" iyy="0.162151895045931" iyz="-5.52382803734224E-05" izz="0.294908497251133" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://robot_model/meshes/base_link.STL" />
</geometry>
<material name="">
<color rgba="0.752941176470588 0.752941176470588 0.752941176470588 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://robot_model/meshes/base_link.STL" />
</geometry>
</collision>
</link>
<link name="base_footprint">
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<box size="0.001 0.001 0.001" />
</geometry>
</visual>
</link>
<joint name="base_footprint_joint" type="fixed">
<origin xyz="0 0 0.033" rpy="0 0 0" />
<parent link="base_footprint"/>
<child link="base_link" />
</joint>