NAOqi.Net(C#)MotionProxy类的一些函数用法(一)
MotionProxy类中包含了指挥NAO进行动作的一系列函数。
getSummary:快速地查看到所有关节的当前状态以及正在运行的任务。
(传感器值可能会有延时)
string ip = "127.0.0.1";//NAO的IP地址
int port = 9559; //NAO的端口号
MotionProxy mp = new MotionProxy(ip, port);//定义MotionProxy的一个对象
string summary = motion.getSummary(); //获取全部的关节状态和任务
Console.Write(summary);
getJointNames:得到机器人身上或关节链上的关节名称。
string names = "Body";//关节组的名称,这里用Body做示范,即全身关节
List<string> jointnames = motion.getJointNames(names);//获取关节名
foreach (string name in jointnames)
{Console.WriteLine(name);//逐一输出
}
setAngles:通过指定关节名称来控制关节。
string names = "RShoulderRoll";//关节的名称
float angles = -1.3265f;//目标角度(单位:弧度,注意不同关节有不同的角度限制!)
float fractionMaxSpeed = 0.1f;//达到目标角度所需的速度(0~1)
motion.setAngles(names, angles, fractionMaxSpeed);//向关节发送命令
引用:setAngles和changeAngles这两个命令不会阻塞调用线程,因而非常适用于诸如头部跟踪等反应控制回路。您可以经常使用这些命令,动作模块会保证轨迹位置流畅、速度连贯。
angleInterpolation和angleInterpolationWithSpeed:定时插值,在已经确定了关节要运动的轨迹时,可以用来设定插值。
//定时插值:在已经确定了要遵循的轨迹时,可以用来设定插值。
单个关节,单个动作
string names = "HeadYaw"; //关节的名称
float angleLists = 1.0f; //目标弧度
float times = 1.0f;
bool isAbsolute = true;
motion.angleInterpolation(names, angleLists, times, isAbsolute);
//单个关节,单个动作
string names = "HeadYaw"; //关节的名称
float angleLists = 1.0f; //目标弧度
float maxspeed = 0.5f; //最大速度
motion.angleInterpolationWithSpeed(names, angleLists, maxspeed);//多个关节,单个动作
string names = "Head"; //关节的名字('Head'代表了'HeadYaw'和'HeadPitch')
List<float> angleLists = new List<float> { 0, 0 }; //与关节数量相同的目标弧度
float times = 1.0f;
bool isAbsolute = true;
motion.angleInterpolation(names, angleLists, times, isAbsolute);
//多个关节,单个动作
string names = "Head"; //关节的名字('Head'代表了'HeadYaw'和'HeadPitch')
List<float> angleLists = new List<float> { 1, 1 }; //与关节数量相同的目标弧度
float maxspeed = 0.1f; //最大速度
motion.angleInterpolationWithSpeed(names, angleLists, maxspeed);//单个关节,多个动作
string names = "HeadYaw"; //关节的名字
List<float> angleLists = new List<float> {1.0f, -1.0f, 1.0f, -1.0f, 0.0f}; //目标弧度组
List<float> times = new List<float> {1.0f, 2.0f, 3.0f, 4.0f, 10.0f}; //相对应时间
bool isAbsolute = true;
motion.angleInterpolation(names, angleLists, times, isAbsolute);//多个关节,多个动作
string[] names = { "HeadYaw", "HeadPitch" }; //关节的名字
float[] HeadYaw_angles = {1.0f, -1.0f, 1.0f, -1.0f};
float[] HeadPitch_angles = {-1.0f};
List<float[]> angleLists = new List<float[]> { HeadYaw_angles, HeadPitch_angles }; //目标弧度组
float[] HeadYaw_times = {1.0f, 2.0f, 3.0f, 4.0f};
float[] HeadPitch_times = {5.0f};
List<float[]> times = new List<float[]> { HeadYaw_times, HeadPitch_times }; //相对应时间
bool isAbsolute = true;
motion.angleInterpolation(names, angleLists, times, isAbsolute);
(未完待续……)
NAOqi.Net(C#)MotionProxy类的一些函数用法(一)相关推荐
- string类的各种函数用法
标准c++中string类函数介绍 注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作 ...
- CButton类的Create函数用法
通过查阅MSDN文档可知,Create函数的参数含义如下: virtual BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, cons ...
- C++_static,类模板、函数模板、namespace
C++_static,类模板.函数模板.namespace 1.static 2.类模板 3.函数模板 4.namespace 5.深入,更多细节 参考:侯捷<C++面向对象高级编程>
- 类的成员函数指针和mem_fun适配器的用法
先来看一个最简单的函数: void foo(int a) {cout << a << endl; } 它的函数指针类型为 void (*)(int); 我们可以这样使用: vo ...
- C++对象模型7——类的成员函数、反汇编虚析构函数、RTTI、多态的开销
一.类成员函数 class test { public:void myfunc(){}virtual void vfunc() {}static void sfunc() {} };void myfu ...
- c++学习笔记之基础---类内声明函数后在类外定义的一种方法
在C++的"类"中经常遇到这样的函数, 返回值类型名 类名::函数成员名(参数表){ 函数体.} 双冒号的作用 ::域名解析符!返回值类型名 类名::函数成员名(参数表) { 函数 ...
- php 匿名方法,PHP基于Closure类创建匿名函数的方法详解
本文实例讲述了PHP基于Closure类创建匿名函数的方法.分享给大家供大家参考,具体如下: Closure 类 用于代表匿名函数的类. 匿名函数(在 PHP 5.3 中被引入)会产生这个类型的对象. ...
- java设计一个顺序表类的成员函数_顺序表代码讲解以及实现
用C语言编写一个有关顺序表的程序代码 创建一个顺序表,其数据元素类型为整型: 在该顺序表中插入数据(#include #include #define MaxSize 50 typedef char ...
- python中类方法与实例方法的区别-Python中的对象,方法,类,实例,函数用法分析...
本文实例分析了Python中的对象,方法,类,实例,函数用法.分享给大家供大家参考.具体分析如下: Python是一个完全面向对象的语言.不仅实例是对象,类,函数,方法也都是对象. class Foo ...
最新文章
- 原型开发、模型构建和设计反馈在线工具
- java 返回double数组_java-如何使用Collectors.averagingDouble计算双精度数组的均值?
- htmlparser设置表单属性值
- Artech的MVC4框架学习——第三章controller的激活
- Linux的Application 内存模型---
- ES6、TYPESCRIPT、ATSCRIPT和BABEL是什么玩意儿
- 哪些手机支持双wifi?
- mongodb聚合内存不足解决方案
- 幻塔html5,《幻塔》捏脸系统怎么玩 捏脸系统玩法分享
- c语言连续生成不同随机数_【转】关于C语言生成不重复的随机数
- 机器人焊钳选型_点焊机器人焊钳的分类及区别
- 从零到一,美芽的技术实战
- Jetson nano 使用ROS 实现串口通信,并且解析通信协议(C++)
- c盘扩容(亲测有效)+软件已备好
- linux 中 lrwxrwxrwx是什么意思?
- 并查集是什么?怎么模拟实现?如何应用?
- springboot志愿者活动报名服务系统jsp ssm maven
- python-opencv创建空白图
- 静态路由知识华为eNSP实践
- realtek phy 8211fs相关配置(phy芯片更改)
热门文章
- 19.React Native动画Animated效果三种动画类型二;
- dvdscr是什么意思?什么是dvdscr格式?
- usb4java android,桌面java应用程序通过USB复制和传输android数据
- 用vivo手机拍照一定要先打开这个设置,不然白浪费这么强大的手机
- pdf阅读器,pdf阅读器大全,最好pdf阅读器排行,pdf阅读器下载
- hadoop+Spark+hbase集群动态增加节点
- 上位机使用C++通过ADS协议与倍福PLC通信例程-布尔变量的读取
- ArcGIS计算图斑的四邻坐标(XMin,XMax,YMin,YMax)
- Unity 个人玩法Demo合集
- nginx反向代理实现指定接口访问指定机器