坐标控制(通用库)
*以下例程微控制器和微处理器系统均适用
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);
}