机械臂的控制

1 滑块控制

打开一个命令行,运行:

  • mycobot 280-M5版本:
# mycobot 280-M5版本默认串口名为"/dev/ttyUSB0",波特率为115200.部分机型的串口名为 "dev/ttyACM0",若默认串口名发生错误,可将串口名改为"/dev/ttyACM0".
ros2 launch mycobot_280 slider_control.launch.py
  • mycobot 280-PI版本:

点击桌面上的ROS2 Shell图标或者桌面下方栏的对应图标,打开ROS2环境终端:

然后运行命令:

# mycobot 280-PI版本默认串口名为"/dev/ttyAMA0",波特率为1000000.
ros2 launch mycobot_280pi slider_control.launch.py
  • mycobot 280-JetsonNano版本:

点击桌面上的ROS2 Shell图标或者桌面下方栏的对应图标,打开ROS2环境终端:

然后运行命令:

# mycobot 280-JetsonNano版本默认串口名为"/dev/ttyTHS1",波特率为1000000.
ros2 launch mycobot_280jn slider_control.launch.py

它将打开 rviz 和一个滑块组件,你将看到如下画面(树莓派版本画面略有差异,不影响使用):

接着你可以通过拖动滑块来控制 rviz 中的模型移动。真实的 mycobot 将跟着一起运动.

请注意:由于在命令输入的同时机械臂会移动到模型目前的位置,在您使用命令之前请确保rviz中的模型没有出现穿模现象 不要在连接机械臂后做出快速拖动滑块的行为,防止机械臂损坏

2 模型跟随

除了上面的控制,我们也可以让模型跟随真实的机械臂运动。打开一个命令行运行:

  • mycobot 280-M5版本:
# mycobot 280-M5版本默认串口名为"/dev/ttyUSB0",波特率为115200.部分机型的串口名为 "dev/ttyACM0",若默认串口名发生错误,可将串口名改为"/dev/ttyACM0".
ros2 launch mycobot_280 mycobot_follow.launch.py
  • mycobot 280-PI版本:

点击桌面上的ROS2 Shell图标或者桌面下方栏的对应图标,打开ROS2环境终端:

然后运行命令:

# mycobot 280-PI版本默认串口名为"/dev/ttyAMA0",波特率为1000000.
ros2 launch mycobot_280pi mycobot_follow.launch.py
  • mycobot 280-JetsonNano版本:

点击桌面上的ROS2 Shell图标或者桌面下方栏的对应图标,打开ROS2环境终端:

然后运行命令:

# mycobot 280-JetsonNano版本默认串口名为"/dev/ttyTHS1",波特率为1000000.
ros2 launch mycobot_280jn mycobot_follow.launch.py

它将打开 rviz 展示模型跟随效果

3 GUI 控制

在前面的基础上,本包还提供了简单的 Gui 控制界面。 该方式意在于真实机械臂相互联动,请连接 mycobot。

打开命令行:

  • mycobot 280-M5版本:
# mycobot 280-M5版本默认串口名为"/dev/ttyUSB0",波特率为115200.部分机型的串口名为 "dev/ttyACM0",若默认串口名发生错误,可将串口名改为"/dev/ttyACM0".
ros2 launch mycobot_280 simple_gui.launch.py
  • mycobot 280-PI版本:

点击桌面上的ROS2 Shell图标或者桌面下方栏的对应图标,打开ROS2环境终端:

然后运行命令:

# mycobot 280-PI版本默认串口名为"/dev/ttyAMA0",波特率为1000000.
ros2 launch mycobot_280pi simple_gui.launch.py
  • mycobot 280-JetsonNano版本:

点击桌面上的ROS2 Shell图标或者桌面下方栏的对应图标,打开ROS2环境终端:

然后运行命令:

# mycobot 280-JetsonNano版本默认串口名为"/dev/ttyTHS1",波特率为1000000.
ros2 launch mycobot_280jn simple_gui.launch.py

4 键盘控制

mycobot_280 的包中添加了键盘控制的功能,并在 rviz 中实时同步。本功能依赖 pythonApi,所以确保与真实机械臂连接。

打开一个命令行,运行:

  • mycobot 280-M5版本:
# mycobot 280-M5版本默认串口名为"/dev/ttyUSB0",波特率为115200.部分机型的串口名为 "dev/ttyACM0",若默认串口名发生错误,可将串口名改为"/dev/ttyACM0".
ros2 launch mycobot_280 teleop_keyboard.launch.py
  • mycobot 280-PI版本:

点击桌面上的ROS2 Shell图标或者桌面下方栏的对应图标,打开ROS2环境终端:

然后运行命令:

# mycobot 280-PI版本默认串口名为"/dev/ttyAMA0",波特率为1000000.
ros2 launch mycobot_280pi teleop_keyboard.launch.py
  • mycobot 280-JetsonNano版本:

点击桌面上的ROS2 Shell图标或者桌面下方栏的对应图标,打开ROS2环境终端:

然后运行命令:

# mycobot 280-JetsonNano版本默认串口名为"/dev/ttyTHS1",波特率为1000000.
ros2 launch mycobot_280jn teleop_keyboard.launch.py

运行效果如下:

命令行中将会输出 mycobot 信息,如下:

[INFO] [launch]: All log files can be found below /home/elephant/.ros/log/2022-05-19-16-25-45-949761-elephant-virtual-machine-19111
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [robot_state_publisher-1]: process started with pid [19114]
[INFO] [rviz2-2]: process started with pid [19116]
[INFO] [follow_display-3]: process started with pid [19118]
[robot_state_publisher-1] Parsing robot urdf xml string.
[robot_state_publisher-1] Link joint2 had 1 children
[robot_state_publisher-1] Link joint3 had 1 children
[robot_state_publisher-1] Link joint4 had 1 children
[robot_state_publisher-1] Link joint5 had 1 children
[robot_state_publisher-1] Link joint6 had 1 children
[robot_state_publisher-1] Link joint6_flange had 0 children
[robot_state_publisher-1] [INFO] [1652948746.290904045] [robot_state_publisher]: got segment joint1
[robot_state_publisher-1] [INFO] [1652948746.290967253] [robot_state_publisher]: got segment joint2
[robot_state_publisher-1] [INFO] [1652948746.290973124] [robot_state_publisher]: got segment joint3
[robot_state_publisher-1] [INFO] [1652948746.290977490] [robot_state_publisher]: got segment joint4
[robot_state_publisher-1] [INFO] [1652948746.290981670] [robot_state_publisher]: got segment joint5
[robot_state_publisher-1] [INFO] [1652948746.290985737] [robot_state_publisher]: got segment joint6
[robot_state_publisher-1] [INFO] [1652948746.290989943] [robot_state_publisher]: got segment joint6_flange
[follow_display-3] [INFO] [1652948746.664601707] [follow_display]: port:/dev/ttyUSB0, baud:115200
[rviz2-2] [INFO] [1652948746.828773551] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-2] [INFO] [1652948746.830452458] [rviz2]: OpenGl version: 4.1 (GLSL 4.1)
[rviz2-2] [INFO] [1652948746.874021926] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-2] Parsing robot urdf xml string.

接着,打开另一个命令行,运行:

  • mycobot 280-M5版本:
ros2 run mycobot_280 teleop_keyboard
  • mycobot 280-PI版本:

点击桌面上的ROS2 Shell图标或者桌面下方栏的对应图标,打开ROS2环境终端:

然后运行命令:

ros2 run mycobot_280pi teleop_keyboard
  • mycobot 280-JetsonNano版本:

点击桌面上的ROS2 Shell图标或者桌面下方栏的对应图标,打开ROS2环境终端:

然后运行命令:

ros2 run mycobot_280jn teleop_keyboard

你会在命令行中看到如下输出:

Mycobot 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: 10    change percent: 2

在该终端中,您可以通过命令行中的按键控制机械臂的状态和对机械臂进行移动操作。

results matching ""

    No results matching ""