原创文章,来自博客园,_阿龙clliu http://www.cnblogs.com/clliu/,转载请注明原文章出处。

 

 

      不能说webots的学习资料少,只能说它的中文资料少。但是英文资料也的看呀,毕竟要深入了解这款软件,看官方的帮助文档是最好不过的了。

官方参考文档地址https://www.cyberbotics.com/doc/reference/index,其实也是可以离线查看的,但是离线是英文,本人的英文水平也不咋地,所以就投机取巧了,浏览器是有在线翻译的功能的。

既然说的是传感器的API使用,那就选惯性测量单元 (IMU)吧,在节点和API函数下选择(惯性单元 )InertialUnit,就出现了关于这个传感器的描述和使用方法。

在webots中有许多传感器,包括GPS、Gyro(陀螺仪)、touchSensor(接触传感器)、Receiver(接收器)、Pen(笔)、Emitter(发射器)、Compass(指南针)、DistanceSensor(距离传感器)、Camane(照相机)等等。

----------------------------------------------以下部分来自webots官方reference------------------------------------

Webots参考手册

惯性单位

派生自设备

InertialUnit {
MFVec3f lookupTable [ ] # interpolation
SFBool xAxis TRUE # compute roll
SFBool zAxis TRUE # compute pitch
SFBool yAxis TRUE # compute yaw
SFFloat resolution -1
}

描述

InertialUnit节点模拟一个惯性测量单元 (IMU)。的InertialUnit计算并返回它的, 俯仰偏航相角在限定的全局坐标系和WorldInfo节点。如果要测量加速度或角速度,请改用加速度计或 陀螺仪节点。该InertialUnit节点必须被放置在机器人使得其点¯x在方向a轴分机器人的向前运动(纵轴)。 正z轴必须指向机器人的右侧,例如右臂,右翼(横向轴)。正y轴必须指向 机器人的上/上方向。如果惯性单元具有该取向,则滚动俯仰偏航角对应于通常的汽车,航空或空间意义。更精确地, 惯性单元测量沿x轴(滚动),z轴(俯仰)和y轴(偏航)的Tait-Bryan角。这个惯例通常称为xzy外部序列; 它对应于由YZX表示的元素旋转的组成。参考框架由给出北方向的单位向量,与归一化重力向量和它们的叉积(cross-product)相反的单位向量组成(参见WorldInfo以定制该框架)。

注意:在万向节锁定情况下,即当俯仰为-π/ 2或π/ 2时,侧倾和偏航设置为NaN(不是数字)。

字段摘要

  • lookupTable:该字段可选地指定查找表,其可以用于将角度值[rad]改变为设备特定输出值,或者例如将单位改变为度数。使用查找表,还可以定义最小和最大输出值,并将噪声添加到输出值。默认情况下,查找表为空,因此返回的角度值以弧度表示,不添加噪声。

  • xAxis, yAxis, zAxis:每个布尔字段指定是否应为指定轴启用或禁用计算。该xAxis字段定义是否应计算转角。该yAxis字段定义是否应该计算偏航角。该zAxis字段定义是否 应该计算俯仰角。如果这些字段之一设置为FALSE,则不会计算相应的角度元素,并且它将返回NaN (不是数字)。例如,如果zAxis为FALSE,则 wb_inertial_unit_get_values()[2]返回NaN。默认值是所有三个轴都被启用(TRUE)。

 
Webots惯性单元中的滚动,俯仰和偏航角

  • resolution:此字段允许定义传感器的分辨率,分辨率是其能够测量的最小变化。将此字段设置为-1(默认)意味着传感器具有“无限”分辨率(可以测量任何无限小的变化)。此字段接受间隔(0.0,inf)中的任何值。

惯性单位函数

名称

wb_inertial_unit_enable,wb_inertial_unit_disable,wb_inertial_unit_get_sampling_period,wb_inertial_unit_get_roll_pitch_yaw - 启用,禁用和读取惯性单元的输出值

C ++ },{ Java },{ Python },{ Matlab },{ ROS }

#include <webots/inertial_unit.h>

void wb_inertial_unit_enable(WbDeviceTag tag, int sampling_period);
void wb_inertial_unit_disable(WbDeviceTag tag);
int wb_inertial_unit_get_sampling_period(WbDeviceTag tag);
const double *wb_inertial_unit_get_roll_pitch_yaw(WbDeviceTag tag);

描述

wb_inertial_unit_enable()功能打开角度测量。该sampling_period参数指定传感器的采样周期并以毫秒表示。注意,第一次测量仅在第一个采样周期过去后才可用。

wb_inertial_unit_disable()函数关闭 InertialUnit设备。

wb_inertial_unit_get_sampling_period()函数返回给定的周期wb_inertial_unit_enable(),如果设备被禁用,则返回0。

wb_inertial_unit_get_roll_pitch_yaw()函数返回InertialUnit的当前滚动, 俯仰偏航角。值作为3个组件的数组返回,因此只有索引0,1和2对访问返回的数组有效。注意,索引0,1和2分别返回滚转俯仰偏航角。

角度指示单元的旋转角度绕其点¯x轴,在间隔[-π,π]。的角为零时 InertialUnit是水平的,即,当其ÿ轴具有重力相反的方向(和WorldInfo定义 gravity向量)。

桨距角表示本装置的旋转角度大约是ž轴,在间隔[-π/ 2,π/ 2]。该桨距角为零时 InertialUnit是水平的,即,当其ÿ轴具有重力的方向相反。如果惯性单元以标准方向放置在机器人上,则 当机器人向下时,俯仰角为负,当机器人向上时,俯仰角为正。

偏航角指示单元取向,在间隔[-π,π],相对于和WorldInfonorthDirection。在偏航角为零时InertialUnit点¯x轴与正北方向对齐,它为π时的零件是向东/ 2,和-π/ 2时的单元被向西定向。的偏航角可以用作一个罗盘。

注意 [C,C ++]:返回的向量是指向由Webots管理的内部值的指针,因此释放此指针是非法的。此外,请注意,指向的值只有在下一次调用wb_robot_step()或 时才有效Robot::step()。如果这些值需要较长时间,则必须复制它们。

注意 [Python]: getRollPitchYaw()以包含三个浮点的列表的形式返回角度。

webots自学笔记(四)传感器API使用、查看官方文档的更多相关文章

  1. 转:ArcGIS API For JavaScript官方文档(二十)之图形和要素图层——①Graphics概述

    原文地址:ArcGIS API For JavaScript官方文档(二十)之图形和要素图层——①Graphics概述 ArcGIS JavaScript API允许在地图上绘制graphic(图形) ...

  2. 巩固复习(Django最基础的部分_具体查看官方文档)

    Django学习路1 1.脚本不能随便运行,没准 linux 运行完就上不去了 2.pip 在 linux 上 写 pip3 同理 python 写为 python3 3.在 pycharm 上安装库 ...

  3. 流媒体技术学习笔记之(六)FFmpeg官方文档先进音频编码(AAC)

    先进音频编码(AAC)的后继格式到MP3,和以MPEG-4部分3(ISO / IEC 14496-3)被定义.它通常用于MP4容器格式; 对于音乐,通常使用.m4a扩展名.第二最常见的用途是在MKV( ...

  4. OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)和varying,uniform,attribute修饰范围

    OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)   所有变量和函数在使用前必须声明.变量和函数名是标识符. 没有默认类型,所有变量和函数声明必须包含一个声明类型以及可选的修饰符. ...

  5. pm2 官方文档 学习笔记

    一.安装 1.安装 npm install pm2 -g 2.更新 npm install pm2 -g && pm2 update pm2 update 是为了刷新 PM2 的守护进 ...

  6. vue.js 2.0 官方文档学习笔记 —— 01. vue 介绍

    这是我的vue.js 2.0的学习笔记,采取了将官方文档中的代码集中到一个文件的形式.目的是保存下来,方便自己查阅. !官方文档:https://cn.vuejs.org/v2/guide/ 01. ...

  7. Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(一)

    题外话:本篇是对之前那篇的重排版.并拆分成两篇,免得没了看的兴趣. 前言 在Spring Framework官方文档中,这三者是放到一起讲的,但没有解释为什么放到一起.大概是默认了读者都是有相关经验的 ...

  8. Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(二)

    接前一篇 Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 本篇主要内容:Spring Type Conver ...

  9. Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion

    本篇太乱,请移步: Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 写了删删了写,反复几次,对自己的描述很不 ...

随机推荐

  1. jQuery查询性能考虑

    http://blog.163.com/neusoft_hao@yeah/blog/static/120544724201282810510215/

  2. overflow:hidden 你所不知道的事

    overflow:hidden 你所不知道的事 overflow:hidden这个CSS样式是大家常用到的CSS样式,但是大多数人对这个样式的理解仅仅局限于隐藏溢出,而对于清除浮动这个含义不是很了解. ...

  3. Zookeeper以Windows服务安装运行

    1.下载的Zookeeper是.cmd的批处理命令运行的,默认没有提供以windows服务的方式运行的方案 下载地址:http://zookeeper.apache.org/ 2.下载prunsrv ...

  4. 如何利用express新建项目(上)

    如何利用express新建项目(上) 摘要 这篇文章将讲解了如何快速利用express新建项目 一.express4.x的安装 1. npm install -g express 2. npm ins ...

  5. MongoDB与Redis的比较

    MongoDB和Redis都是NoSQL,采用结构型数据存储.二者在使用场景中,存在一定的区别,这也主要由于二者在内存映射的处理过程,持久化的处理方法不同. MongoDB建议集群部署,更多的考虑到集 ...

  6. MongoDB基础之一:Conetos下安装MongoDB

    1.下载自己需要的版本,我这用的是mongodb-linux-x86_64-2.4.9.tgz #cd /usr/local/src # wget http://fastdl.mongodb.org/ ...

  7. Git 和 GitHub 使用

    Git和GitHub的使用 Git是一款免费.开源的分布式版本控制系统. GitHub托管远程仓库,并提供一个web界面. 有2种协议支持从本地push代码到远程仓库. 一种是http,需要输入用户名 ...

  8. CSS sliod属性

    CSS solid 属性 制作过网页的人都有为画线而烦恼的经历,先来认识一下“Border”(画边框),它是CSS的一个属性,用它可以给能确定范围的HTML标记(如TD.DIV等等)画边框,它可以定义 ...

  9. HTML中三种定位relative,absolute,fixed后,盒子的百分比宽度及位置易错点

    1 . 相对定位relative:顾名思义,相对定位是相对于自己的位置来进行偏移,如下图: 以盒子中心为基准,为每条边的正方向,例: 向右移动20px : 代码为left:20px;或者right:- ...

  10. c++编程思想(一)--对象导言

    回过头来看c++编程思想第一章,虽然只是对c++知识的一个总结,并没有实质性知识点,但是收获还是蛮多的! 下面感觉是让自己茅塞顿开的说法,虽然含义并不是很准确,但是很形象(自己的语言): 1.类描述了 ...