ROS与javascript入门教程-roslibjs-数学运算
ROS与javascript入门教程-roslibjs-数学运算
说明:
- 介绍如何利用roslibjs进行数学运算
github:
步骤:
- 新建math.html
- 代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript" src="http://cdn.robotwebtools.org/EventEmitter2/current/eventemitter2.js"></script>
<script type="text/javascript" src="http://cdn.robotwebtools.org/roslibjs/current/roslib.js"></script>
<script type="text/javascript" type="text/javascript">
var v1 = new ROSLIB.Vector3({
x : 1,
y : 2,
z : 3
});
var v2 = v1.clone();
v1.add(v2);
console.log(v1);
var q1 = new ROSLIB.Quaternion({
x : 0.1,
y : 0.2,
z : 0.3,
w : 0.4
});
var q2 = q1.clone();
q1.multiply(q2);
q1.invert();
console.log(q1);
var p = new ROSLIB.Pose({
position : v1,
orientation : q1
});
console.log(p);
var tf = new ROSLIB.Transform({
translation : v2,
rotation : q2
});
p.applyTransform(tf);
console.log(p);
</script>
</head>
<body>
<h1>Math Example with Roslibjs</h1>
<p>Check the JavaScript console for the output.</p>
</body>
</html>
代码解析:
- 代码段:
var v1 = new ROSLIB.Vector3({
x : 1,
y : 2,
z : 3
});
var v2 = v1.clone();
v1.add(v2);
console.log(v1);
解释:
- 创建3维 vector对象,有xyz属性,并可进行不同函数处理
- 更多ROSLIB.Vector3参考文档:http://robotwebtools.org/jsdoc/roslibjs/current/Vector3.html
代码段:
var q1 = new ROSLIB.Quaternion({
x : 0.1,
y : 0.2,
z : 0.3,
w : 0.4
});
q1.multiply(q2);
q1.invert();
console.log(q1);
解释:
- 创建 ROSLIB.Quaternion对象,有xyzw属性,并可进行不同函数处理
- 更多ROSLIB.Quaternion参考文档:http://robotwebtools.org/jsdoc/roslibjs/current/Quaternion.html
- 代码段:
var p = new ROSLIB.Pose({
position : v1,
orientation : q1
});
解释:
- 创建ROSLIB.Pose对象,包含位置和方向
- 更多ROSLIB.Pose参考文档:http://robotwebtools.org/jsdoc/roslibjs/current/Pose.html
- 代码段:
var tf = new ROSLIB.Transform({
translation : v2,
rotation : q2
});
p.applyTransform(tf);
- 解释:
- 创建ROSLIB.Transform对象
- 更多ROSLIB.Transform参考文档:http://robotwebtools.org/jsdoc/roslibjs/current/Transform.html
运行:
- 浏览器运行math.html
参考:
- http://wiki.ros.org/roslibjs/Tutorials/MathFunctions
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号