ArbotiX功能包
ArbotiX:本身是一个硬件板卡,但是他提供相关功能包的驱动支持,其中就包括差速控制器功能包-更新机器人里程计。
安装到src路径下成为功能包:git clone https://github.com/vanadiumlabs/arbotix_ros.git
给python文件添加可执行权限:python/bin下的所有python文件 右键-属性-权限-可执行打勾。
搭建仿真环境:
(1)创建launch文件:arbotix_mbot_with_camera_xacro.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)"/>
<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>
(2)创建配置文件-参数(控制器)配置文件(config文件夹下):fake_mbot_arbotix.yaml
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
}
}
launch启动文件连接rviz、模型文件、arbotix控制器。(控制器控制模型在rviz上可视化)
还可以启动键盘控制功能包给控制器命令,转换成机器人的执行信息执行。
导航实例(ArbotiX+rviz)
ROS BY EXAMPLE源码学习,对实践很有帮助。
实现的简单的导航仿真实例-只能用于仿真验真-小玩具吧。
反正就是各种launch,对自己的学习有什么实际意义?-熟悉操作流程。
roslaunch rbx1_bringup fake_turtlebot.launch
roslaunch rbx1_nav fake_amcl.launch map:=test_maap.yaml
rosrun rviz -d ‘rospack find rbx1_nav’/amcl.rviz