RoboWorks/RoboTalk学习笔记1
2016-07-26 17:14
260 查看
先给出网站链接,需要的安装包都可以下载到。我下了三个,RoboWorks/RoboTalk/RoboChat,时间原因,先介绍前两个,也是最重要的。
http://www.newtonium.com/
下载一个免费版的Demo就可以了,我主要用它仿真,看到在例子中有Kuka的六自由度机械手,就基本都我使用了。大家要是有别的需求,就只能购买了吧,反正我是买不起啦~
好,进入正题,其实只要认真看安装路径下的手册,也就不用在往下看了,手册最全,毕竟人家是软件的生产商。
一、界面和建模(简介)
见手册,里面有例子,照做即可。树状图中,ctrl+A添加部件。各种部件的参数设置都很显然。
模型可以 自建 或者第三方软件(我使用SolidWorks)生成 XXX.stl 文件导入。
sample文件夹中有很多例子,附图几个。鼠标操作上默认是旋转拖动视图,缩放功能启用(右键->interactive mode->zooming)。
部件的运动有两种,平移(translation)和旋转(rotation)
运动参数设置为静态(static)用于建模,设置为动态(dynamic)用于仿真(simulation),重点说一下仿真。
关节仿真的运动控制三种方式:1键盘,2xxx.dat文件(使用txt或其他就可以生成),3通过RoboTalk.dll编程控制
1.键盘
Key Selecton可以选择触发按键,ONE表示按键的“1”,也可选ABC...随意
点击ok之后就可以使用ONE键来控制部件运动(没有仿真按钮,也不需要按任何键)
2.xxx.dat文件
上图中的Tag Name要自定义为相应的名称。在手册中有一个“行星模型”例子,我使用txt编辑的.dat文件如下
yellow red
bronze blue
10 -6 -2
5
20 -12
-4 10
30 -18
-6 15
40 -24
-8 20
50 -30
-10 25
60 -36
-12 30
70 -42
-14 35
80 -48
-16 40
90 -54
-18 45
100 -60
-20 50
110 -66
-22 55
120 -72
-24 60
130 -78
-26 65
140 -84
-28 70
150 -90
-30 75
160 -96
-32 80
170 -102
-34 85
180 -108
-36 90
190 -114
-38 95
200 -120
-40 100
方便需要的人copy就不附图啦。首行就是各个部件的Tag Name,以下参数是位置。
然后菜单中 animation->from file->选择之,后续步骤显然,OK。
3.通过RoboTalk.dll编程控制(使用VC++2012)
需要在RoboTalk安装路径下找到(三个勾文件下中)可以参看demos中的例程,运行以下,看效果,再阅读代码,然后自己组织一遍语句
三个文件如下
新建控制台程序在工程目录下(使用的是RoboTalkExample.scn为例,也一起放到工程中,这个不影响。可在demos中找到它),将RoboTalk.dll放在Debug里,和生成的exe放一起。
后两者皆放在xxx.vcxproj这级文件夹下。
添加头文件(头文件->右键->添加->现有项->选之),添加代码如下
#include "stdafx.h"
#include "RoboTalk.h"
#pragma comment(lib,"RoboTalk.lib")
char* TagNames[] = {
"rot_cylinder_z",
"cylinder_x",
"rot_cone_z",
"cone_x"};
int _tmain(int argc, _TCHAR* argv[])
{
int i = 0, noTimes = 0, count = 0;
char filename[] = "RoboTalkExample"; // this is not case-sensitive
float tagValues[4], transIncrm = 0.1f;
char *ipAddress;
ipAddress = SELF; // default 127.0.0.1
printf("\n");
printf_s(ipAddress);
printf("\nready!\n");
tagValues[0] = 0.0;
tagValues[1] = 0.0;
tagValues[2] = 0.0;
tagValues[3] = 0.0;
// connect to RoboWorks
if(RT_Connect(filename, ipAddress) == CONNECT_FAILED)
return 0;
// move the cylinder and the cone in opposite directions
for(i = 0; i < 100; i++)
{
tagValues[1] += transIncrm;
tagValues[3] -= transIncrm;
// send the values out to roboWorks
RT_SetTagValues(TagNames, tagValues, 4);
}
// start rotating the cylinder and the cone while moving
// them in and out
for(noTimes = 0; noTimes < 1000; noTimes++)
{
if(count == 500)
{
count = 0;
transIncrm = -transIncrm;
}
tagValues[0] += 1.0f;
tagValues[1] += transIncrm;
tagValues[2] -= 1.0f;
tagValues[3] -= transIncrm;
// send the values out to roboWorks
RT_SetTagValues(TagNames, tagValues, 4);
count++;
}
RT_Disconnect();
return 0;
}
包含的头文件和调用RoboTalk.dll的方法。
#include "RoboTalk.h"
#pragma comment(lib,"RoboTalk.lib")
运行:
先打开RoboTalkExample.scn
animation->from IPC
运行对应的exe
RoboTalk.dll中的主要四个函数:
RT_Connect
RT_SetTagValues
RT_GetTagValues
RT_Disconnect
帮助文档 file:///C:/Program%20Files%20(x86)/Newtonium/RoboTalk/RoboTalk.html
有待解决的问题
1.如果要从另一台机器控制某一台机器上的机器人,ipAddress要怎么设置。
2.MATLAB和LABVIEW怎么何其配合。主要是MATLAB,想使用它求解然后仿真。
最后,谢谢这几年老师教的英语。。。
http://www.newtonium.com/
下载一个免费版的Demo就可以了,我主要用它仿真,看到在例子中有Kuka的六自由度机械手,就基本都我使用了。大家要是有别的需求,就只能购买了吧,反正我是买不起啦~
好,进入正题,其实只要认真看安装路径下的手册,也就不用在往下看了,手册最全,毕竟人家是软件的生产商。
一、界面和建模(简介)
见手册,里面有例子,照做即可。树状图中,ctrl+A添加部件。各种部件的参数设置都很显然。
模型可以 自建 或者第三方软件(我使用SolidWorks)生成 XXX.stl 文件导入。
sample文件夹中有很多例子,附图几个。鼠标操作上默认是旋转拖动视图,缩放功能启用(右键->interactive mode->zooming)。
部件的运动有两种,平移(translation)和旋转(rotation)
运动参数设置为静态(static)用于建模,设置为动态(dynamic)用于仿真(simulation),重点说一下仿真。
关节仿真的运动控制三种方式:1键盘,2xxx.dat文件(使用txt或其他就可以生成),3通过RoboTalk.dll编程控制
1.键盘
Key Selecton可以选择触发按键,ONE表示按键的“1”,也可选ABC...随意
点击ok之后就可以使用ONE键来控制部件运动(没有仿真按钮,也不需要按任何键)
2.xxx.dat文件
上图中的Tag Name要自定义为相应的名称。在手册中有一个“行星模型”例子,我使用txt编辑的.dat文件如下
yellow red
bronze blue
10 -6 -2
5
20 -12
-4 10
30 -18
-6 15
40 -24
-8 20
50 -30
-10 25
60 -36
-12 30
70 -42
-14 35
80 -48
-16 40
90 -54
-18 45
100 -60
-20 50
110 -66
-22 55
120 -72
-24 60
130 -78
-26 65
140 -84
-28 70
150 -90
-30 75
160 -96
-32 80
170 -102
-34 85
180 -108
-36 90
190 -114
-38 95
200 -120
-40 100
方便需要的人copy就不附图啦。首行就是各个部件的Tag Name,以下参数是位置。
然后菜单中 animation->from file->选择之,后续步骤显然,OK。
3.通过RoboTalk.dll编程控制(使用VC++2012)
需要在RoboTalk安装路径下找到(三个勾文件下中)可以参看demos中的例程,运行以下,看效果,再阅读代码,然后自己组织一遍语句
三个文件如下
新建控制台程序在工程目录下(使用的是RoboTalkExample.scn为例,也一起放到工程中,这个不影响。可在demos中找到它),将RoboTalk.dll放在Debug里,和生成的exe放一起。
后两者皆放在xxx.vcxproj这级文件夹下。
添加头文件(头文件->右键->添加->现有项->选之),添加代码如下
#include "stdafx.h"
#include "RoboTalk.h"
#pragma comment(lib,"RoboTalk.lib")
char* TagNames[] = {
"rot_cylinder_z",
"cylinder_x",
"rot_cone_z",
"cone_x"};
int _tmain(int argc, _TCHAR* argv[])
{
int i = 0, noTimes = 0, count = 0;
char filename[] = "RoboTalkExample"; // this is not case-sensitive
float tagValues[4], transIncrm = 0.1f;
char *ipAddress;
ipAddress = SELF; // default 127.0.0.1
printf("\n");
printf_s(ipAddress);
printf("\nready!\n");
tagValues[0] = 0.0;
tagValues[1] = 0.0;
tagValues[2] = 0.0;
tagValues[3] = 0.0;
// connect to RoboWorks
if(RT_Connect(filename, ipAddress) == CONNECT_FAILED)
return 0;
// move the cylinder and the cone in opposite directions
for(i = 0; i < 100; i++)
{
tagValues[1] += transIncrm;
tagValues[3] -= transIncrm;
// send the values out to roboWorks
RT_SetTagValues(TagNames, tagValues, 4);
}
// start rotating the cylinder and the cone while moving
// them in and out
for(noTimes = 0; noTimes < 1000; noTimes++)
{
if(count == 500)
{
count = 0;
transIncrm = -transIncrm;
}
tagValues[0] += 1.0f;
tagValues[1] += transIncrm;
tagValues[2] -= 1.0f;
tagValues[3] -= transIncrm;
// send the values out to roboWorks
RT_SetTagValues(TagNames, tagValues, 4);
count++;
}
RT_Disconnect();
return 0;
}
包含的头文件和调用RoboTalk.dll的方法。
#include "RoboTalk.h"
#pragma comment(lib,"RoboTalk.lib")
运行:
先打开RoboTalkExample.scn
animation->from IPC
运行对应的exe
RoboTalk.dll中的主要四个函数:
RT_Connect
RT_SetTagValues
RT_GetTagValues
RT_Disconnect
帮助文档 file:///C:/Program%20Files%20(x86)/Newtonium/RoboTalk/RoboTalk.html
有待解决的问题
1.如果要从另一台机器控制某一台机器上的机器人,ipAddress要怎么设置。
2.MATLAB和LABVIEW怎么何其配合。主要是MATLAB,想使用它求解然后仿真。
最后,谢谢这几年老师教的英语。。。
相关文章推荐
- 开发中找资料用到的网站
- 【转载】4412开发板嵌入式QtE应用开发环境搭建
- codevs 1017 乘积最大 dp
- nginx常见内部错误
- Python写日志
- php-自动过滤、自动填充、自动验证
- 小白的CTF之旅——第0站
- 源码-PL/SQL从入门到精通-第十七章-面向对象编程-Part 1
- Halcon图像与Opencv图像相互转换(C++代码)
- ios本地存储数据
- C# Winform Radiobutton点击选中与再次点击未选中事件
- mysql用户的创建
- jquery调用jsonp接口
- cocos2dx,lua,倒计时的应用
- TCP的三次握手和四次挥手
- ios基于UITableViewController实现列表
- swift 版本 无限滚动Banner条
- 商户端 和 支付宝 通讯验证
- 个人简介 - HTML/CSS简单页面实例
- JSON数据格式的解析与序列化