机械臂的控制
1 滑块控制
点击桌面上的ROS1 Shell
图标或者桌面下方栏的对应图标,打开ROS1环境终端:
然后运行命令:
roslaunch mercury_a1 slider_control.launch
它将打开 rviz 和一个滑块组件,你将看到如下画面:
接着你可以通过拖动滑块来控制 rviz 中的模型移动。如果你想让真实的 Mercury 跟着一起运动,需要再打开一个ROS1环境终端:
然后运行命令:
rosrun mercury_a1 slider_control.py
请注意:由于在命令输入的同时机械臂会移动到模型目前的位置,在您使用命令之前请确保rviz中的模型没有出现穿模现象 不要在连接机械臂后做出快速拖动滑块的行为,防止机械臂损坏
2 模型跟随
除了上面的控制,我们也可以让模型跟随真实的机械臂运动。打开一个ROS1环境终端:
然后运行命令:
rosrun mercury_a1 follow_display.py
然后打开另一个ROS1环境终端:
然后运行命令:
roslaunch mercury_a1 mercury_follow.launch
它将打开 rviz 展示模型跟随效果。
3 GUI 控制
在前面的基础上,本包还提供了简单的 Gui 控制界面。 该方式意在于真实机械臂相互联动,请连接 Mercury.
打开一个ROS1环境终端:
然后运行命令:
roslaunch mercury_a1 simple_gui.launch
运行效果:
4 键盘控制
在 mercury_a1
的包中添加了键盘控制的功能,并在 rviz 中实时同步。本功能依赖 pythonAPI,所以确保与真实机械臂连接。
打开一个ROS1环境终端:
然后运行命令:
roslaunch mercury_a1 teleop_keyboard.launch
运行效果如下:
命令行中将会输出 Mercury 信息,如下:
SUMMARY
========
PARAMETERS
* /mercury_services/baud: 115200
* /mercury_services/port: /dev/ttyAMA1
* /robot_description: <?xml version="1....
* /rosdistro: noetic
* /rosversion: 1.15.14
NODES
/
mercury_services (mercury_a1_communication/mercury_services.py)
real_listener (mercury_a1/listen_real.py)
robot_state_publisher (robot_state_publisher/robot_state_publisher)
rviz (rviz/rviz)
ROS_MASTER_URI=http://localhost:11311
process[robot_state_publisher-1]: started with pid [14764]
process[rviz-2]: started with pid [14765]
process[mecharm_services-3]: started with pid [14766]
process[real_listener-4]: started with pid [14782]
[INFO] [1646649869.148017]: start ...
[INFO] [1646649869.156531]: /dev/ttyAMA1,115200
Mercury Status
--------------------------------
Joint Limit:
joint 1: -165 ~ +165
joint 2: -100 ~ +100
joint 3: -165 ~ +165
joint 4: -175 ~ +4
joint 5: -165 ~ +165
joint 6: -1 ~ +180
joint 7: -165 ~ +165
Connect Status: True
Servo Infomation: unknown
Servo Temperature: unknown
Atom Version: unknown
[INFO] [1646649869.427899]: ready
然后打开另一个ROS1环境终端:
然后运行命令:
rosrun mercury_a1 teleop_keyboard.py
你会在命令行中看到如下输出:
Mercury Teleop Keyboard Controller
---------------------------
Movimg options(control coordinations [x,y,z,rx,ry,rz]):
w(x+)
a(y-) s(x-) d(y+)
z(z-) x(z+)
u(rx+) i(ry+) o(rz+)
j(rx-) k(ry-) l(rz-)
Gripper control:
g - open
h - close
Other:
1 - Go to init pose
2 - Go to home pose
3 - Resave home pose
q - Quit
currently: speed: 50 change percent: 5
该脚本支持的参数:
- _speed:机械臂移动速度。
- _change_percent:移动距离百分比。
注意: 需要执行2
指令后,方可进行坐标控制操作。
5 Moveit使用
mercury_a1
现已集成了 MoveIt 部分。
点击桌面上的ROS1 Shell
图标或者桌面下方栏的对应图标,打开ROS1环境终端:
然后运行命令:
roslaunch mercury_a1_moveit mercury_a1.launch
运行效果如下:
可以计划并执行,演示效果:
如果需要让真实的机械臂同步执行计划,需要再打开一个ROS1环境终端:
然后运行命令:
rosrun mercury_a1_moveit sync_plan.py
然后再次计划并执行,演示效果: