赞
踩
在上一节中,我们通过solidwork获得urdf文件夹后,能够实现的只是一个静态模型,那么如何控制模型运动呢。
首先通过roscreate -pkg yuanpan11 std_msgs roscpp 建立文件夹
把5个文件夹拖入新建的文件夹内
那么这时需要有src目录在文件夹中才会被编译
实现流程:
安装 Arbotix
创建新功能包,准备机器人 urdf、xacro 文件
添加 Arbotix 配置文件
编写 launch 文件配置 Arbotix
启动 launch 文件并控制机器人模型运动
1.安装 Arbotix
方式1:命令行调用
- sudo apt-get install ros-<<VersionName()>>-arbotix
Copy
将 <<VsersionName()>> 替换成当前 ROS 版本名称,如果提示功能包无法定位,请采用方式2。
方式2:源码安装
先从 github 下载源码,然后调用 catkin_make 编译
git clone https://github.com/vanadiumlabs/arbotix_ros.git
结果:
3.添加arbotix所需文件
control.yaml文件
# 该文件是控制器配置,一个机器人模型可能有多个控制器,比如: 底盘、机械臂、夹持器(机械手)....
# 因此,根 name 是 controller
controllers: {
# 单控制器设置
base_controller: {
#类型: 差速控制器
type: diff_controller,
#参考坐标
base_frame_id: base_footprint,
#两个轮子之间的间距
base_width: 0.2,
#控制频率
ticks_meter: 2000,
#PID控制参数,使机器人车轮快速达到预期速度
Kp: 12,
Kd: 12,
Ki: 0,
Ko: 50,
#加速限制
accel_limit: 1.0
}
}
然后display.launch修改为
<launch>
<arg
name="model" />
<param
name="robot_description"
textfile="$(find yuanpan11)/urdf/yuanpan11.urdf" />
<!-- 启动机器人状态和关节状态发布节点 -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher" />
<!-- 启动图形化的控制关节运动节点 -->
<node
name="joint_state_publisher_gui"
pkg="joint_state_publisher_gui"
type="joint_state_publisher_gui" />
<!-- 启动 rivz -->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find yuanpan11)/config/yuanpan.rviz" />
<!--集成arbotix运动控制节点,并且加载参数-->
<node pkg="arbotix_python" type="arbotix_driver" name="driver" output='screen' >
<rosparam command="load" file="$(find yuanpan11)/config/control.yaml"/>
<param name="sim" value="true"/>
</node>
</launch>
此时调用 rostopic list 会发现一个熟悉的话题: /cmd_vel
使小车运动起来
rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.2, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0.5}}'
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。