OpenManipulator机械臂入门教程-Master Slave示例
说明
介绍在OpenManipulator机械臂运行Master Slave示例
在该示例中,需要用到两个OpenManipulator机械臂,一个是Master角色,一个是Slave角色
在Master-Slave模式中,Master机械臂将会与Slave机械臂同步移动
在Record模式中,其将会保存Master机械臂和Slave机械臂在录制过程中移动过的轨迹;然而在play模式中,Slave机械臂将会执行此前Master被记录下的轨迹
前提准备
- 准备两个OpenManipulator机械臂,两个U2D2控制板或者OpenCR控制板和一台电脑
- Master机械臂由使用者来控制,其舵机ID设置如下,波特率为1000000bps
Name | Dynamixel ID |
---|---|
Joint 1 | 1 |
Joint 2 | 2 |
Joint 3 | 3 |
Joint 4 | 4 |
Gripper | 5 |
- Slave机械臂将与Master OpenManipulator同步移动,其舵机ID设置如下,波特率为1000000bps
Name | Dynamixel ID |
---|---|
Joint 1 | 11 |
Joint 2 | 12 |
Joint 3 | 13 |
Joint 4 | 14 |
Gripper | 15 |
注:若两个机械臂的ID都相同,那么可以用
R+ manager 2.0
工具来更改舵机ID
操作步骤
- 运行roscore
$ roscore
- 查看两个机械臂是否连上PC;U2D2控制板连接的端口为
ttyUSB*
,OpenCR控制板连接的端口为ttyACM*
$ ls /dev/ttyUSB*
or
$ ls /dev/ttyACM*
正常会出现
ttyUSB0
和ttyUSB1
或者ttyACM0
和ttyACM1
启动Slave机械臂
$ roslaunch open_manipulator_controller open_manipulator_controller.launch dynamixel_usb_port:=/dev/ttyUSB0
##如果Master机械臂正常启动的话,该终端将显示以下内容
SUMMARY
========
PARAMETERS
* /open_manipulator/control_period: 0.01
* /open_manipulator/moveit_sample_duration: 0.05
* /open_manipulator/planning_group_name: arm
* /open_manipulator/using_moveit: False
* /open_manipulator/using_platform: True
* /rosdistro: kinetic
* /rosversion: 1.12.14
NODES
/
open_manipulator (open_manipulator_controller/open_manipulator_controller)
ROS_MASTER_URI=http://localhost:11311
process[open_manipulator-1]: started with pid [23452]
Joint Dynamixel ID : 11, Model Name : XM430-W350
Joint Dynamixel ID : 12, Model Name : XM430-W350
Joint Dynamixel ID : 13, Model Name : XM430-W350
Joint Dynamixel ID : 14, Model Name : XM430-W350
Gripper Dynamixel ID : 15, Model Name :XM430-W350
[ INFO] [1544509070.096942788]: Succeeded to init /open_manipulator
- 启动Master机械臂
$ roslaunch open_manipulator_master_slave open_manipulator_master.launch usb_port:=/dev/ttyUSB1
##如果Slave机械臂正常启动的话,该终端将显示以下内容
SUMMARY
========
PARAMETERS
* /open_manipulator/open_manipulator_master/gripper_id: 5
* /open_manipulator/open_manipulator_master/joint1_id: 1
* /open_manipulator/open_manipulator_master/joint2_id: 2
* /open_manipulator/open_manipulator_master/joint3_id: 3
* /open_manipulator/open_manipulator_master/joint4_id: 4
* /open_manipulator/open_manipulator_master/service_call_period: 0.01
* /rosdistro: kinetic
* /rosversion: 1.12.14
NODES
/open_manipulator/
open_manipulator_master (open_manipulator_master_slave/open_manipulator_master)
ROS_MASTER_URI=http://localhost:11311
process[open_manipulator/open_manipulator_master-1]: started with pid [32026]
Joint Dynamixel ID : 1, Model Name : XM430-W350
Joint Dynamixel ID : 2, Model Name : XM430-W350
Joint Dynamixel ID : 3, Model Name : XM430-W350
Joint Dynamixel ID : 4, Model Name : XM430-W350
Gripper Dynamixel ID : 5, Model Name :XM430-W350
- 同时可以在Master机械臂的启动终端窗口看到以下信息;从中可以查看当前的控制模式和机器臂的状态(关节角度和Tool Position)
-----------------------------
Control Your OpenManipulator!
-----------------------------
Present Control Mode
Master - Slave Mode
-----------------------------
1 : Master - Slave Mode
2 : Start Recording Trajectory
3 : Stop Recording Trajectory
4 : Play Recorded Trajectory
-----------------------------
Present Joint Angle J1: -0.170 J2: 0.367 J3: -0.046 J4: 0.959
Present Tool Position: 0.000
-----------------------------
其中有四种控制模式
- Master-Slave Mode: Master机械臂将会与Slave机械臂同步移动;可以尝试用手去移动Master机械臂,那么Slave机械臂会跟着同步移动
- Start Recording Trajectory: Master机械臂将会与Slave机械臂同步移动,程序会记录移动轨迹。
- Stop Recording Trajectory: 停止记录
- Play Recorded Trajectory: 只有Slave机械臂将会执行此前被记录下的轨迹
演示视频
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号