< >
Home » ROS与JS入门教程 » ROS与javascript入门教程-roslibjs-数学运算

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

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros与javascript入门教程