ArbotiX+rviz功能仿真

146 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第14天,点击查看活动详情

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转向 在这里插入图片描述