坐标控制(通用库)

*以下例程微控制器和微处理器系统均适用

python

-单独坐标控制-

send_coord()

  • 描述: 发送单个坐标或姿态值。

  • 参数

    id: (common.Coord), 接收一个 Coord 的值

    coord: 发送的值(float)

    speed: (int) 0 ~ 100

  • 例子

    from pymycobot.mycobot import MyCobot
    from pymycobot.genre import Coord
    
    mycobot = MyCobot('/dev/ttyUSB0')
    mycobot.send_coord(Coord.X.value, -40, 70)
    

send_coords()

-整体坐标控制-

  • 描述: 发送整体坐标和姿态。

  • 参数

    coords: 接收一个顺位包含所有坐标和姿态值的列表(List[float])

    speed: (int) 0 ~ 100

  • 例子

    from pymycobot.mycobot import MyCobot
    from pymycobot.genre import Coord
    
    mycobot = MyCobot('/dev/ttyUSB0')
    mycobot.send_coords([160, 160, 160, 0, 0, 0], 70, 0)
    

C/C++

-单独坐标控制-

writeCoord(Axis axis, float value, int speed);

  • 功能:发送单独坐标参数 X/Y/Z/RX/RY/RZ 的具体数值,末端会在单独方向上移动,

  • 参数说明: 移动的路径坐标值 = value 取值范围 -300 – 300(axis=Axis::X,aixs=Axis::Y 和 axis=Axis::Z 为位置坐标分别为 X,Y,Z,单位 mm,位置坐标取值范围不统一,theta 的值是-180到180 指定速度 =speed 取值范围 0~100 单位 %

  • 返回值:无

#include "MyCobot.hpp"

int main(int argc, char* argv[])
try {
    //调用API控制
      QCoreApplication a(argc, argv);
      using namespace std::chrono_literals;
      if (!mycobot::MyCobot::I().IsControllerConnected()) {
          std::cerr << "Robot is not connected\n";
          exit(EXIT_FAILURE);
        }
        std::cout << "Robot is connected\n";
        //机械臂上电
        mycobot::MyCobot::I().PowerOn();
      //获取当前机械臂坐标值
        mycobot::Coords coords = mycobot::MyCobot::I().GetCoords();
        std::this_thread::sleep_for(200ms);
      //使机械臂运动至指定坐标轴位置
        mycobot::WriteCoord(0, 160, 50);
    }

-整体坐标控制-

writeCoords(Coords coords, int speed);

  • 功能:发送指定的坐标参数,参数的类型应是 Coords,需要声明一个 Coords 类型的变量,此变量的使用方法与数组相同

  • 参数说明: coords[0] = X, coords[1] = Y, coords[2] = Z, X,Y,Z 取值范围 -300-300.00(取值范围未定义,超出范围会返回 inverse kinematics no solution 提示) 单位 mm coords[3] = theta RX,RY,RZ,取值范围-180~180 指定速度 =speed 取值范围0~100 单位 %

  • 返回值:无

#include "MyCobot.hpp"

int main(int argc, char* argv[])
try {
      QCoreApplication a(argc, argv);
      using namespace std::chrono_literals;
      if (!mycobot::MyCobot::I().IsControllerConnected()) {
          std::cerr << "Robot is not connected\n";
          exit(EXIT_FAILURE);
        }
        std::cout << "Robot is connected\n";
        //机械臂上电
        mycobot::MyCobot::I().PowerOn();
        mycobot::Coords coords = mycobot::MyCobot::I().GetCoords();
        std::this_thread::sleep_for(200ms);
        mycobot::Coords goal_coords = {160, 160, 160, 0, 0, 0};
        mycobot::WriteCoords(goal_coords, 50);

    }

myblockly

roboflow

results matching ""

    No results matching ""