运动控制卡在ROS上的应用下

导语:今天,正运动技术为大家分享一下《运动控制卡在ROS上的应用(下)》。本章节在《运动控制卡在ROS上的应用(上)》程序的基础上稍作修改,实现在ROS下正运动技术运动控制卡的开发。

一、配置正运动技术动态链接库环境

添加动态链接库

在程序包目录zmotion(catkin_ws/src/zmotion/)下新建文件夹lib,存放动态链接库libzmotion.so。

添加库函数zmcaux.cpp、zmotion.h、zmcaux.h

添加zmcaux.cpp文件到catkin_ws/src/zmotion/src目录下:

修改头文件引用,如下图所示:

二、ROS下的单轴运动

这部分主要讲述了如何实现一个talker节点,它将轴0的位置信息实时发送给listener节点。修改talker.cpp如下:

添加句柄和头文件

#include <zmotion/zmotion.h>

#include <zmotion/zmcaux.h>

ZMC_HANDLE g_handle = NULL;

通过EtherNET链接運動控制卡

ZMC_LinuxLibInit();

char ipaddr[16] = {192,168,0,11};

int x = ZAux_OpenEth(ipaddr,g_handle);

ROS_INFO("以太网连接:%d",x); // 返回0则连接成功

实现单轴運動

ZAux_Direct_SetSpeed(g_handle, 0, 200); // 设置轴0運動速度为200 units/s^(-1)

ZAux_Direct_SetAccel(g_handle, 0, 2000); // 设置轴0加速度为2000 units/s^(-2)

ZAux_Direct_SetDecel(g_handle, 0, 2000); // 设置轴减速时间为100 ms

float piValue;

while (ros::ok()) {

std_msgs::Float64 msg;

ZAux_Direct_GetMpos(g_handle , piValue);

msg.data = piValue;

chatter_pub.publish(msg);

ros::spinOnce();

loop_rate.sleep();

}

4 编译

cd ~/catkin_ws/

catkin_make

5 运行程序

roscore

rosrun zmotion talker

rosrun zmotion listener

上一篇:科技奇观-特斯拉机器人智能终端的未来之翼
下一篇:机甲纪元机械之心与永恒的诀别