ArbotiX
ArbotiX是一款控制电机、舵机的硬件控制板
提供了相应的ROS功能包
提供了一个差速控制器,通过接收速度控制指令,更新机器人的里程计状态
安装Arbotix功能包
放到src文件夹下
$ git clone https://github.com/vanadiumlabs/arbotix_ros.git
注意:arbotix_ros中的python文件需要添加可执行权限
回到工作空间编译
$ catkin_make
配置launch文件
<launch>
<arg name="model" default="$(find xacro)/xacro --inorder '$(find mbot_description)/urdf/xacro/mbot_with_camera.xacro'" />
<arg name="gui" default="false" />
<param name="robot_description" command="$(arg model)" />
<!-- 设置GUI参数,显示关节控制插件 -->
<param name="use_gui" value="$(arg gui)"/>
<!-- 启动 arbotix_python 节点-->
<node name="arbotix" pkg="arbotix_python" type="arbotix_driver" output="screen">
<!-- 加载控制器参数-->
<rosparam file="$(find mbot_description)/config/fake_mbot_arbotix.yaml" command="load" />
<param name="sim" value="true"/>
</node>
<!-- 运行joint_state_publisher节点,发布机器人的关节状态 -->
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
<!-- 运行robot_state_publisher节点,发布tf -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<!-- 运行rviz可视化界面 -->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find mbot_description)/config/mbot_arbotix.rviz" required="true" />
</launch>
配置控制器参数
controllers: {
base_controller: {
type: diff_controller,
base_frame_id: base_footprint,
base_width: 0.26,
ticks_meter: 4100,
Kp: 12,
Kd: 12,
Ki: 0,
Ko: 50,
accel_limit: 1.0
}
}
启动仿真
$ roslaunch mbot_description arbotix_mbot_with_camera_xacro.launch
rivz出现如下情况
启动键盘控制节点
$ roslaunch mbot_teleop mbot_teleop.launch
i小车向前
u转向