ROS学习-ur5机器人的gazebo仿真以及controller的使用
这篇文章主要介绍了如何在gazebo
中对ur5
进行仿真和controller
的使用,包括controller_manager
的使用和控制器command
的主题数据发布。
ur 机器人的下载编译可以参考官方的帮助文档,下载源码,然后
catkin_make
,然后source devel/setup.bash
载入资源文件。在
gazebo
中启动ur5
模型,终端输入:
1 | roslaunch ur_gazebo ur5.launch limited:=true |
- ur5 模型的参数服务器中包含两个控制器,
position_controllers/JointTrajectoryController
和position_controllers/JointGroupPositionController
这里先用位置控制模式JointGroupPositionController
,就是单独控制关节轴,这样我们可以直观看到关节轴响应了下发的位置指令。
1 | arm_controller: |
ur5 的
launch
文件中,默认启动的控制器是关节轨迹控制,所以这里涉及到如何切换控制器的操作,详细内容可以参考controller_manager
这篇文章。一下给出实际的操作。首先查看已载入的控制器:可以看到 ur 内部载入了两个控制器,就是在参数文件中显示的两个,
arm_controller
和joint_group_position_controller
。
rosrun controller_manager controller_manager list
1 | arm_controller - hardware_interface::PositionJointInterface ( stopped ) |
- 暂停
arm_controller
,执行成功后会显示成功执行信息:
rosrun controller_manager controller_manager stop arm_controller
1 | Stopped ['arm_controller'] successfully |
- 启动
joint_group_position_controller
,同样也有执行成功与否的信息输出:
rosrun controller_manager controller_manager start joint_group_position_controller
1 | Started ['joint_group_position_controller'] successfully |
controller_manager
的详细指令如下:
1 | $ rosrun controller_manager controller_manager <command> <controller_name> |
以下command
可用:
load : |
加载控制器 (construct and initialize) |
unload : |
卸载控制器 (destruct) |
start : |
启动控制器 |
stop : |
结束控制器 |
spawn : |
加载并启动控制器 |
kill : |
停止并卸载控制器 |
开始输入关节位置控制指令
这里可以先查看一下关节位置指令的数据结构
输入:
rostopic list
- 可以看到有控制器的一个主题:
/joint_group_position_controller/command
- 查看主题信息:该
topic
的type
是std_msgs/Float64MultiArray
。因此我们pub
这个topic
时就需要发送这个数据结构。
rostopic info /joint_group_position_controller/command
1 | Type: std_msgs/Float64MultiArray |
- 发布主题。因为这里
Float64MultiArray
是一个数组,如果是单个数据类型,那在数据结构后面直接跟具体的数据即可。如果是数组,那需要以python list
的方式发送。这里-r 50
表示这个topic
的发布速率是50hz
。然后就可以在gazebo
中看到机器人五轴转了一个角度。
rostopic pub -r 50 /joint_group_position_controller/command std_msgs/Float64MultiArray '{data: [0,0,0,0,10,30]}'
- 同时可以打开另一个终端,看到发布的
topic
的详细信息
rostopic echo /joint_group_position_controller/command
1 | --- |
本文标题:ROS学习-ur5机器人的gazebo仿真以及controller的使用
文章作者:xwnb
发布时间:2019-10-26
最后更新:2023-04-17
原始链接:https://xwnb.github.io/posts/1500545740/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!并保留本声明。感谢您的阅读和支持!
分享