webots controller API(C++)
webots/Accelerometer.hpp
Accelerometer Node可用于模拟加速计设备,如那些常见的广泛应用于移动电子、机器人和游戏输入设备。加速计节点测量1、2或3轴上的加速度和重力引起的反作用力。它可以是用于检测跌落、上/下方向等。
#include <webots/Accelerometer.hpp>
class Accelerometer : public Device {
virtual void enable(int ms);//函数允许用户启用每毫秒的加速度测量
virtual void disable();//关闭加速度计,节省计算时间。
int getSamplingPeriod();//返回wbaccelerometer-enable()函数中给出的周期,如果设备被禁用,则返回0。
const double *getValues() const;
};
#include<webots/accelerometer.h>
void wb_accelerometer_enable (WbDeviceTag tag, int ms);
void wb_accelerometer_disable (WbDeviceTag tag);
int wb_accelerometer_get_sampling_period (WbDeviceTag tag); const double * wb_accelerometer_get_values (WbDeviceTag tag);
get_values()函数返回加速度计测量的当前值。这些值是以3D向量的形式返回的,因此只有指数0,1和2是访问矢量的有效参数。矢量的每个元素都代表沿加速计节点相应轴的加速度,用米/秒的平方表示[m/s2]。第一个元素对应x轴,第二个元素对应y轴,依此类推。
加速计在地球重力的静止状态下,将沿着垂直轴显示1 g (9.81 m/s2)。注意,重力可以在 WorldInfo 节点的重力场中指定。要获得仅由运动引起的加速度,必须减去这个偏移量。当没有减去偏移量时,设备在自由落体期间的输出将为零。
Camera.hpp
namespace webots {
typedef WbCameraRecognitionObject CameraRecognitionObject;
class Camera : public Device {
public:
explicit Camera(const std::string &name) : Device(name) {
} // Use Robot::getCamera() instead
virtual ~Camera() {
}
virtual void enable(int samplingPeriod); //允许用户启用摄像机每毫秒更新一次。
virtual void disable();//可以关闭摄像机,节省计算时间。
int getSamplingPeriod() const;//函数返回wb-camera-enable()函数中给出的周期,如果设备被禁用,则返回0。
const unsigned char *getImage() const;//读取相机抓取的最后一张图像。图像被编码为三个字节的序列,分别代表像素的红、绿、蓝三个级别。
int getWidth() const;//返回摄像机图像的宽度
int getHeight() const;//返回摄像机图像的高度
double getFov() const;//允许控制器获取摄像机的视场角(fov,field of view)值。
double getMaxFov() const;
double getMinFov() const;
virtual void setFov(double fov);//允许控制器设置摄像机的视场角,只有当摄像机设备的zoom field定义了 CameraZoom 节点时才有可能
double getFocalLength() const;//允许控制器获取和设置聚焦参数。
//请注意,如果摄像机设备在其聚焦场中没有定义Focus节点,则无法调用wb_camera_set_focal_distance函数,其他函数将返回0。
double getFocalDistance() const;
double getMaxFocalDistance() const;
double getMinFocalDistance() const;
virtual void setFocalDistance(double focalDistance);
double getNear() const;//返回摄像机设备的附近参数
int saveImage(const std::string &filename, int quality) const;
/*允许用户保存之前用wb-camera get-image()函数获得的标签图像。
图像被保存在一个PNG或JPEG格式的文件中。图像格式由 filename 参数指定。
如果文件名以. png结尾,则图像格式为PNG。如果文件名以 jpg 或 jpeg 结尾,则图像格式为 JPEG。不支持其他图像格式。
质量参数只对JPEG图像有用。它定义了保存图像的JPEG质量。质量参数应该在1(最差质量)到100(最佳质量)的范围内。
低质量的JPEG文件将使用较少的磁盘空间。对于PNG图像,质量参数被忽略。
如果成功的话,wb came ra-save-image()的返回值为0。如果失败(无法打开指定的文件或无法识别图像文件扩展名),则返回值为-1。*/
bool hasRecognition() const;
void recognitionEnable(int samplingPeriod);
void recognitionDisable(<