<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://robolab.suehiro.pro/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://robolab.suehiro.pro/feed.php">
        <title>RoboLab.Suehiro - articles</title>
        <description></description>
        <link>https://robolab.suehiro.pro/</link>
        <image rdf:resource="https://robolab.suehiro.pro/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-04-14T04:33:02+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:amway&amp;rev=1635429916&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:atan2&amp;rev=1725334704&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:chain_of_transform&amp;rev=1633693365&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:codesys&amp;rev=1742437961&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:differential_of_frame&amp;rev=1651241952&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:fk_jacob_ik&amp;rev=1649036414&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:forward_kinematics&amp;rev=1721182131&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:frame&amp;rev=1646352131&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:gauss_newton&amp;rev=1651619174&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:geo_basic&amp;rev=1637811495&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:geo_manual&amp;rev=1637932496&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:ik_numerical&amp;rev=1634974576&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:inverse_kinematics&amp;rev=1648300879&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:jacobian_matrix&amp;rev=1633061516&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:kinematics&amp;rev=1643866366&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:matrix_vs_quaternion_1&amp;rev=1637813855&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:matrix_vs_quaternion_2&amp;rev=1637838994&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:matrix&amp;rev=1675047339&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:newton_raphson&amp;rev=1626269549&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:nextage_rtm&amp;rev=1632276992&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:note_on_ik&amp;rev=1776043368&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:numpy_vs_geo&amp;rev=1711604615&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:pybullet&amp;rev=1683685009&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:quaternion&amp;rev=1646351962&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:rmrc&amp;rev=1657157454&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:robot_frame&amp;rev=1624969711&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:rotation&amp;rev=1646351764&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:rtc_handle&amp;rev=1636943462&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:small_rotation&amp;rev=1736759636&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:svd&amp;rev=1627054997&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:tello&amp;rev=1768305638&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:trajectory&amp;rev=1648951689&amp;do=diff"/>
                <rdf:li rdf:resource="https://robolab.suehiro.pro/doku.php?id=articles:vector&amp;rev=1646351363&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://robolab.suehiro.pro/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>RoboLab.Suehiro</title>
        <link>https://robolab.suehiro.pro/</link>
        <url>https://robolab.suehiro.pro/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:amway&amp;rev=1635429916&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-28T14:05:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>amway</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:amway&amp;rev=1635429916&amp;do=diff</link>
        <description>Amwayのネズミ講的体質について

ネットを見ていたらまだAmwayは続いているということに気付いたので,
とても古い個人的なメモですが掘り出して掲載することにしました．
懐かしい．

古い（1996.7.15の）記事ではありますが本質的な内容は変わっていないと思っています．
長い考察は良いから結論だけ知りたいという方は</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:atan2&amp;rev=1725334704&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-03T03:38:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>atan2</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:atan2&amp;rev=1725334704&amp;do=diff</link>
        <description>atan2

一般に正接関数($x=\mathrm{tan}\,\theta$)の逆関数($\theta=\mathrm{tan}^{-1}x$)は値域を$(-\pi/2,\pi/2)$としている．

たとえば，
$$
\mathrm{tan}(\pi/4)=1
$$
であり，
$$
\mathrm{tan}^{-1}(1)=\pi/4
$$
である．

しかし，これだとx,yの座標値でx軸からの回転角度を出すときに$\mathrm{tan}^{-1}(y/x)$としたのでは
図の斜線部（第2象限，第3象限）の角度を出すことが出来ない．$\mathrm{atan2}$$\pi/2$$-\pi/2$$$
\theta =
\mathrm{atan2}(y,x)
=　\left\{ \begin{array}{cc}
\mathrm{tan}^{-1}(y/x)-\pi &amp; (x&lt;0, \, y&lt;0) \\
-\pi/2 &amp; (x=0,\, y&lt;0) \\
\mathrm{tan}^{-1}(y/x) &amp; (x&gt;0) \\
\pi/2 &amp; (x=0,\, y&gt;0) \\
\mathrm{t…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:chain_of_transform&amp;rev=1633693365&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-08T11:42:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>chain_of_transform</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:chain_of_transform&amp;rev=1633693365&amp;do=diff</link>
        <description>変換の連鎖

3×3の直交行列で表現された座標の姿勢変換（回転変換）や4×4の同時変換行列で表現された座標変換は，乗算により連鎖させることができる．

その乗算は数の演算と異なり可換性がないので（交換法則が成り立たない）どの順で掛けていくかが重要になる．$ \alpha $$R_x (\alpha) $$ \beta $$R_y (\beta)  $$$
R_x (\alpha) R_y (\beta) 　\tag{1}
$$$$
R_y (\beta) R_x (\alpha)  \tag{2}
$$$\alpha$$\beta$$\beta$$\alpha$$\alpha$$\beta$$R_x (\alpha) R_y (\beta)$$R_y (\beta) R_x (\alpha) $$\beta=\pi/2$$\alpha$$-\alpha$$\alpha$$\beta$$\beta=\pi/2$$\pi/2$$R_x(\alpha)$$R_y (\beta)$$R_x(\alpha)$$R_x (\alpha) R_y (\pi/2)$$R_y (\pi/2) R_x (…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:codesys&amp;rev=1742437961&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-20T02:32:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>codesys</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:codesys&amp;rev=1742437961&amp;do=diff</link>
        <description>codesys

情報ページ：&lt;https://misoji-engineer.com/archives/plc-sequencer-ladder-soft.html&gt;
本家：&lt;https://store.codesys.com/en/&gt;

	*  codesysアカウント作成
	*  codesysダウンロード
	*  インストール

codesysはwindowsでしか動かない

linuxの場合はwineを使うらしい：&lt;https://forge.codesys.com/tol/codesys-4-linux/home/Home/&gt;

使い方のイメージ

	*  windowsでコード生成</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:differential_of_frame&amp;rev=1651241952&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-29T14:19:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>differential_of_frame</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:differential_of_frame&amp;rev=1651241952&amp;do=diff</link>
        <description>座標変換の微分

座標変換を用いた順運動学からヤコビ行列を求めるには，個々の関節パラメタを含んだ座標変換行列の微分を考えればよい．
座標変換行列の微分は，座標変換行列自身と微分を表す行列との積で表現できる．$x$$$
T_{\alpha}(\alpha) =
\left( \begin{array}{cc} 
1 &amp; 0 &amp; 0 &amp; 0 \\
0 &amp; \mathrm{cos}\, \alpha &amp; - \mathrm{sin}\, \alpha  &amp; 0\\
9 &amp; \mathrm{sin}\, \alpha &amp; \mathrm{cos}\, \alpha &amp; 0 \\
0 &amp; 0 &amp; 0 &amp; 1
\end{array} \right)
$$$$
\dfrac{\partial{T_{\alpha}}}{\partial{\alpha}}
=
\left( \begin{array}{cc} 
0 &amp; 0 &amp; 0 &amp; 0 \\
0 &amp; -\mathrm{sin}\, \alpha &amp; - \mathrm{cos}\, \alpha &amp; 0\\
0 &amp; \mathrm{cos}\, \a…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:fk_jacob_ik&amp;rev=1649036414&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-04T01:40:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fk_jacob_ik</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:fk_jacob_ik&amp;rev=1649036414&amp;do=diff</link>
        <description>運動学に関するプログラム

kinematics.pyプログラムでは以下を扱う．

	*  シリアルリンクアームの構造定義
	*  順運動学
	*  ヤコビ行列
	*  逆運動学の数値解法
	*  逆運動学の数値解法の１ステップ　＝　分解運動制御</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:forward_kinematics&amp;rev=1721182131&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-17T02:08:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>forward_kinematics</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:forward_kinematics&amp;rev=1721182131&amp;do=diff</link>
        <description>順運動学

３自由度アームの順運動学

座標系の設定

典型的な3自由度アームとその座標系の設定を図1に示す．
この3自由度アームはアームの運動学の導入部で述べたように
可動域内の自由な位置に手先を動かすことが出来る．
座標系の設定は$0$$\theta_1 = \pi/6, \, \theta_2 = \pi/4, ,\ \theta_3 = pi/2$$\theta_1 = \pi/6, \, \theta_2 = \pi/4, ,\ \theta_3 = pi/2$$base$$L_1$$L_1$$\Sigma_0$$\Sigma_1$$\Sigma_1$$^1z_{wrist}$$\Sigma_0$$^0z_4$$$
^0z_{wrist} = {^1z_{wrist}} = l_b+l_1+l_2 \mathrm{cos}\, \theta_2 + l_3 \mathrm{cos}(\theta_2 + \theta_3)
$$$\Sigma_1$$^1x_{wrist}$$$
{^1x_{wrist}} = l_2 \mathrm{sin}\, \theta_2 + l_3…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:frame&amp;rev=1646352131&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-04T00:02:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>frame</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:frame&amp;rev=1646352131&amp;do=diff</link>
        <description>座標系の表現（座標変換）

三次元直交座標系は原点の位置と姿勢で定めることが出来る．

原点の位置に関しては3Dベクトルで説明した位置ベクトルを使うのが分かりやすい．

姿勢に関しては座標系の姿勢（回転）の表現で説明したように多数の表現方法がある．$^0\boldsymbol{d}_1$$^0A_1$$^0\boldsymbol{d}_1$$$
^0\boldsymbol{v} = {^0A_1} {^1\boldsymbol{v}}　\tag{1}
$$$$
^1\boldsymbol{v} = {^1A_2} {^2\boldsymbol{v}}  \tag{2}
$$$$
^0\boldsymbol{v} = {^0A_1}{^1A_2}{^2\boldsymbol{v}}　\tag{3}
$$$\Sigma_0$$^0\boldsymbol{p}$$\Sigma_0$$\Sigma_1$$^0\boldsymbol{d}_1$$\Sigma_1$$^1\boldsymbol{p}$$^1\boldsymbol{p}$$\Sigma_1$$\Sigma_0$$$
^0\bolds…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:gauss_newton&amp;rev=1651619174&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-03T23:06:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>gauss_newton</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:gauss_newton&amp;rev=1651619174&amp;do=diff</link>
        <description>ガウス・ニュートン法

非線形多変数関数$\boldsymbol{f}(\boldsymbol{x})$の最小二乗解を求める．

すなわち
$$
\boldsymbol{x} = \underset{\boldsymbol{x}}{\operatorname{argmin}} \|\boldsymbol{f}(\boldsymbol{x})\|
$$
となる$\boldsymbol{x}$を求める．

ガウス・ニュートン法は，
$\boldsymbol{f}(\boldsymbol{x}) = \boldsymbol{0}$となる$\boldsymbol{x}$を求める
ニュートン・ラフソン法の拡張になっている
．

手順は以下の通り．$\boldsymbol{f}(\boldsymbol{x}_0)$$\boldsymbol{x}_0$$$
\boldsymbol{f}(\boldsymbol{x}) = \boldsymbol{f}(\boldsymbol{x}_i) + J(\boldsymbol{x}-\boldsymbol{x}_i) = \boldsymbol{0} \ta…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:geo_basic&amp;rev=1637811495&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-25T03:38:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>geo_basic</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:geo_basic&amp;rev=1637811495&amp;do=diff</link>
        <description>geo.pyの基本的な使い方

geo_basic

I wrote a module called geo.py that performs 3D geometric operations such as vectors, rotation matrices, and coordinate transformations.

This ipynb file shows a basic usage of the geo module.

This was run under the following conditions, - ProBook 474s, メモリ：8 GB，CPU：Core™ i5-3230M，OS: Ubuntu 20.04 - jupyter notebook，python3</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:geo_manual&amp;rev=1637932496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-26T13:14:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>geo_manual</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:geo_manual&amp;rev=1637932496&amp;do=diff</link>
        <description>座標系に関する演算プログラム

あらかじめベクトル，回転行列，座標系などのクラスとそれらの演算を用意することで
座標系を用いたロボットの動作生成や作業環境の記述などのプログラムが容易になる．$\Sigma_0$$\Sigma_0$$\Sigma_1$$^0T_1$$\Sigma_1$$\Sigma_2$$\Sigma_0$$^0T_2$$\Sigma_2$$\Sigma_1$$\Sigma_0$$\Sigma_0$$\Sigma_0$$\Sigma_1$$^0T_1$$\Sigma_1$$\Sigma_2$$\Sigma_0$$^0T_2$$\Sigma_2$$\Sigma_1$$\Sigma_0$</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:ik_numerical&amp;rev=1634974576&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-23T07:36:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ik_numerical</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:ik_numerical&amp;rev=1634974576&amp;do=diff</link>
        <description>逆運動学の数値解法

逆運動学の数値解法の準備

準備として，

	*  ニュートン・ラフソン法
	*  ガウス・ニュートン法
	*  特異値分解

を理解しておくとよい．

逆運動学の数値解法は，自由度に過不足がない場合はニュートン・ラフソン法での解法になる．
そうでない場合
$\boldsymbol{p}_T$$\boldsymbol{\theta}_0 = \left( \begin{array}{c} \theta_{0,1} \\ \theta_{0,2} \end{array}\right)$$\boldsymbol{\theta}_i$$\boldsymbol{p}_i$$\boldsymbol{p}_i$$\boldsymbol{p}_T$$\Delta\boldsymbol{p}_i$$\Delta\boldsymbol{p}_i$$\Delta\boldsymbol{\theta}_i=J^{-1}\Delta\boldsymbol{p}_i$$\boldsymbol{\theta}_{i+1} = \boldsymbol{\theta}_i + \Delta\bo…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:inverse_kinematics&amp;rev=1648300879&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-26T13:21:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>inverse_kinematics</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:inverse_kinematics&amp;rev=1648300879&amp;do=diff</link>
        <description>逆運動学（幾何的/解析的手法）

逆運動学とは，順運動学とは逆に手先の位置・姿勢が与えられたときに，それを実現する関節パラメタを求める問題である．
逆運動学の問題は以下のようにいろいろと難しい点がある．$$
\left( \begin{array}{c} ^0x_{wrist} \\ ^0y_{wrist} \\ ^0z_wrist \end{array} \right)
$$$\theta_1$$\theta_2$$\theta_3$$$
{^0x_{wrist}} =　{^1x_{wrist}}\mathrm{cos}\,\theta_1 
= (l_2 \mathrm{sin}\, \theta_2 + l_3 \mathrm{sin}(\theta_2 + \theta_3))\mathrm{cos}\,\theta_1
\tag{1}
$$$$
{^0y_{wrist}} = {^1x_{wrist}}\mathrm{sin}\,\theta_1 
= (l_2 \mathrm{sin}\, \theta_2 + l_3 \mathrm{sin}(\theta_2 + \th…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:jacobian_matrix&amp;rev=1633061516&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-01T04:11:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jacobian_matrix</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:jacobian_matrix&amp;rev=1633061516&amp;do=diff</link>
        <description>ロボットアームのヤコビ行列

一般に多変数関数の微小量の関係は偏微分係数行列（ヤコビ行列

）で線形関係として近似的に表現できる．
ロボットアームのヤコビ行列はロボットの関節の微小な動き（もしくは速度）とロボットの手先の位置（および姿勢）の
微小な動き（もしくは速度）との関係を表現したものである．
これを使うと$\theta_1$$\theta_2$$\boldsymbol{\theta}=\left( \begin{array}{c} \theta_1 \\ \theta_2 \end{array} \right)$$\boldsymbol{p}=\left( \begin{array}{c} x \\ y \end{array} \right)$$\theta_1$$\theta_1$$\theta_1+\Delta\theta_1$$\boldsymbol{p}$$\boldsymbol{p}+\Delta\boldsymbol{p}_1 = \left( \begin{array}{c} x+\Delta x_1 \\ y+\Delta y_1 \end{array} \rig…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:kinematics&amp;rev=1643866366&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-03T05:32:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>kinematics</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:kinematics&amp;rev=1643866366&amp;do=diff</link>
        <description>ロボットアームの運動学

ロボットのための座標系表現で述べたように
ロボットの動作や作業環境を座標系を用いて記述することには様々な利点がある．

そのためにはロボット自身を座標系を用いて記述する必要がある．
それを扱うのがロボットアームの運動学である．$0$$L_{i-1}$$L_i$$^{i-1}T_i$$L_{i-1}$$J_i$${^{i-1}T_{J_i}}$$q_i$${^{J_i}T_i}(q_i)$$q_i$$\theta_i$$d_i$$$
^{i-1}T_i = {^{i-1}T_{J_i}}{^{J_i}T_i}(q_i)　\tag{1}
$$${^{J_i}T_i}$$L_i$$z_i$$L_{i-1}$$z_{i-1}$$L_i$$z_i$$a_{i-1}$$x_{i-1}$$z_{i-1}$$L_{i-1}$$a_{i-1}=0$$z_{i-1}$$z_{i-1}$$z_i$$x_{i-1}$$\alpha_{i-1}$$z_i$$i$$L_{i+1}$$z_{i+1}$$z_i$$d_i$$x_{i-1}$$x_i$$z_i$$\theta_i$$y_{i}…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:matrix_vs_quaternion_1&amp;rev=1637813855&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-25T04:17:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>matrix_vs_quaternion_1</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:matrix_vs_quaternion_1&amp;rev=1637813855&amp;do=diff</link>
        <description>回転行列と四元数の計算速度比較

目的

ベクトル，回転行列，座標変換行列といった三次元幾何演算をpythonのリストをベースにgeo.pyというモジュールを自作している．

最近，回転の表現に四元数(QUATERNION)がよく用いられているが， 回転行列(MATRIX)と比較して本当にメリットがあるのかを， 演算速度の点で比較してみることにした．</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:matrix_vs_quaternion_2&amp;rev=1637838994&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-25T11:16:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>matrix_vs_quaternion_2</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:matrix_vs_quaternion_2&amp;rev=1637838994&amp;do=diff</link>
        <description>回転行列と四元数の姿勢の補間の比較

目的

ベクトル，回転行列，座標変換行列といった三次元幾何演算をpythonのリストをベースにgeo.pyというモジュールを自作している．

最近，回転の表現に四元数(QUATERNION)がよく用いられているが， 回転行列(MATRIX)と比較して本当にメリットがあるのかを， 特に四元数が得意とされている回転の補間を演算速度の点で比較してみることにした．…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:matrix&amp;rev=1675047339&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-30T02:55:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>matrix</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:matrix&amp;rev=1675047339&amp;do=diff</link>
        <description>三次元直交行列（回転行列）と座標系

ロボットの分野では直交行列は大きく以下の３つの役割を果たす．

	*  直交座標系（ひいては物体）の姿勢を表現する
	*  参照座標系を替えた場合のベクトルの成分表示の変換を行う$$
 A^\mathrm{T} A = A A^\mathrm{T} = I
$$$ I $$$
A^{-1}=A^\mathrm{T}
$$$ A $$ A^\mathrm{T}$$A^{-1}$$$
I = \left( \begin{array}{cc} 1 &amp; 0 &amp; 0 \\ 0 &amp; 1 &amp; 0 \\ 0 &amp; 0 &amp; 1 \\ \end{array} \right)
$$$ A $$$
A= \left( \begin{array}{c} \boldsymbol{e}_x &amp; \boldsymbol{e}_y &amp; \boldsymbol{e}_z \end{array} \right)　\tag{1}
$$$$
A^\mathrm{T} A = 
\left( \begin{array}{c} \boldsymbol{e}^\mathrm{T}_x \\ \bo…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:newton_raphson&amp;rev=1626269549&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-07-14T13:32:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>newton_raphson</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:newton_raphson&amp;rev=1626269549&amp;do=diff</link>
        <description>ニュートン・ラフソン法

非線形多変数方程式の数値解法

テーラー展開による一次近似

$$
\boldsymbol{f}(\boldsymbol{x}) 
= \boldsymbol{f}(\boldsymbol{x}_0) 
+ \left( \dfrac{\partial{\boldsymbol{f}}}{\partial{\boldsymbol{x}}} \right)
(\boldsymbol{x} - \boldsymbol{x}_0) + \cdots
$$
ここで$J=\left( \dfrac{\partial{\boldsymbol{f}}}{\partial{\boldsymbol{x}}} \right)$はヤコビ行列.

簡略化して書くと
$$
\boldsymbol{f}(\boldsymbol{x}) 
\simeq 
\boldsymbol{f}(\boldsymbol{x}_0) 
+ J(\boldsymbol{x} - \boldsymbol{x}_0)
$$

ニュートン・ラフソン法

$\boldsymbol{f}(\boldsymbol{x}…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:nextage_rtm&amp;rev=1632276992&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-09-22T02:16:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nextage_rtm</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:nextage_rtm&amp;rev=1632276992&amp;do=diff</link>
        <description>nextageをOpenRTM-aistで使う

カワダロボティクス株式会社の双椀ロボットnexgateは，
カワダ純正の作業プログラミング環境が提供されている普通のnextageと
一般社団法人東京オープンソースロボティクス協会（tork）が
提供するros/rtmでのプログラミング環境の利用が推奨されている
研究用プラットフォームnextage-openとが存在している．</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:note_on_ik&amp;rev=1776043368&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-13T01:22:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>note_on_ik</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:note_on_ik&amp;rev=1776043368&amp;do=diff</link>
        <description>逆運動学を用いた動作の注意点

動作の目標がハンドなどがとるべき座標系（位置・姿勢）として与えられた場合，
一般には逆運動学計算で関節パラメタ（関節角度）を求めて動作させることが多い
$\theta_1 = 0$$\theta_1$$\theta_1$</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:numpy_vs_geo&amp;rev=1711604615&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-28T05:43:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>numpy_vs_geo</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:numpy_vs_geo&amp;rev=1711604615&amp;do=diff</link>
        <description>numpyとgeo.pyの速度比較

– numpy はリストと比べて速いのか –

目的

ベクトル，回転行列，座標変換行列といった三次元幾何演算をpythonのリストをベースにgeo.pyというモジュールを自作している．リストベースの処理よりnumpyを使ったほうが高速なのではないかとの疑念もあるので比較を行う．</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:pybullet&amp;rev=1683685009&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-10T02:16:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>pybullet</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:pybullet&amp;rev=1683685009&amp;do=diff</link>
        <description>pybulletの使い方メモ

mujocoの使い方メモでmujocoをいろいろいじってみた．

使い勝手は悪くはないのだが，接触におけるslipの発生がどうしてもなくせない．
これは物体を把持したり，ものを積み重ねる（コーヒーカップを台の上に置くなど）などの
普通の作業をちゃんと模擬できなくて困る．</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:quaternion&amp;rev=1646351962&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-03T23:59:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>quaternion</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:quaternion&amp;rev=1646351962&amp;do=diff</link>
        <description>四元数

四元数は複素数を拡張したもので3つの虚数単位$i, j , k$を用いて
$$
q = q_w + q_x i + q_y j + q_z k
$$
と表される数である．
ここで，$q_w,q_x, q_y, q_z$は実数であり,
$$
i^2 = j^2 = k^2 = ijk = -1
$$
となっている．$i,j,k$相互の積は，
$$
ij = k,\; jk = i, \; ki = j, \; ji = -k, \; kj = -i, \; ik=-j
$$
となり虚数単位同士の交換則が成り立たっていないことに注意する必要がある．$ \boldsymbol{a} = \left( \begin{array}{c} a_x \\ a_y \\ a_z \end{array} \right)$$ \boldsymbol{n} = \left( \begin{array}{c} n_x \\ n_y \\ n_z \end{array} \right)$$\theta$$\boldsymbol{n}$$ - \pi \le \theta \le \pi $$\bold…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:rmrc&amp;rev=1657157454&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-07T01:30:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>rmrc</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:rmrc&amp;rev=1657157454&amp;do=diff</link>
        <description>分解運動（速度）制御

ヤコビ行列でも述べたが，
望ましい手先座標系（位置・姿勢）の微小変位（速度）を実現する
関節パラメタの微小変位（速度）を
ヤコビ行列（の逆行列）を用いることにより求めることができる．$T_{ref}$$T$$\boldsymbol{e}$$$
\boldsymbol{v}=k\boldsymbol{e}
$$$\boldsymbol{v}$$k$$$
\boldsymbol{\dot{\theta}}=J^+\boldsymbol{v}
$$$$
G(s)=\frac{1}{1+s/k}
$$$k$$\boldsymbol{v}$$\boldsymbol{v}_0$$D$$\boldsymbol{f}$$$
\boldsymbol{f}=D(\boldsymbol{v} - \boldsymbol{v}_0)
$$$$
\boldsymbol{v} = \frac{1}{D} \boldsymbol{f} + \boldsymbol{v}_0
$$$\boldsymbol{v}_0=0$$$
\boldsymbol{v}_0 = -\frac{1}{D} \bo…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:robot_frame&amp;rev=1624969711&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-06-29T12:28:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>robot_frame</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:robot_frame&amp;rev=1624969711&amp;do=diff</link>
        <description>ロボットのための座標系表現

ロボットが作業を行うためには対象となるものの位置や姿勢，ロボットの動作を記述する必要がある．
三次元空間での位置・姿勢の表現として三次元直交座標系が一般性があり
非常に優れたものとなっている．$T$</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:rotation&amp;rev=1646351764&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-03T23:56:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>rotation</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:rotation&amp;rev=1646351764&amp;do=diff</link>
        <description>座標系の姿勢（回転）の表現

直交行列で述べたように座標系の姿勢の表現と
座標系の姿勢やベクトルの回転変換は基本的に同じものである．
ここでは様々な姿勢（回転）の表現について説明する．$ \theta $$$
\boldsymbol{e}_x = \left( \begin{array}{c} 1 \\ 0 \\ 0 \end{array} \right), \:
\boldsymbol{e}_y = \left( \begin{array}{c} 0 \\ \cos \theta \\ \sin \theta \end{array} \right), \:
\boldsymbol{e}_z = \left( \begin{array}{c} 0 \\ - \sin \theta \\ \cos \theta \end{array} \right)
$$$ \theta $$R_x (\theta) $$$
R_x (\theta) = 
\left( \begin{array}{c} \boldsymbol{e}_x &amp; \boldsymbol{e}_y &amp; \boldsymbol{…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:rtc_handle&amp;rev=1636943462&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-15T02:31:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>rtc_handle</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:rtc_handle&amp;rev=1636943462&amp;do=diff</link>
        <description>rtc_handle

RTミドルウェア（OpenRTM-aist,RTM）のRTコンポーネント（RTC）をユーザのpython環境から自由に操作するための
環境を提供するツールです．とりあえずpython2, python3の両方で動くはずです．</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:small_rotation&amp;rev=1736759636&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-01-13T09:13:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>small_rotation</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:small_rotation&amp;rev=1736759636&amp;do=diff</link>
        <description>微小回転の近似

回転角度が微小な場合の回転行列を考える．

sin, cosのテーラ展開

$ \theta = 0 $の周りで$\mathrm{sin}$,$\mathrm{cos}$のテーラー展開を考えると
$$
\mathrm{sin}\,x = x - \dfrac{x^3}{3!} + \dfrac{x^5}{5!} - \cdots \\
\mathrm{cos}\,x = 1 - \dfrac{x^2}{2!} - \dfrac{x^4}{4!} + \cdots
$$
2次以上の項を無視すると
$$
\mathrm{sin}\,x \simeq x  \tag{1}
$$
$$
\mathrm{cos}\,x \simeq 1 \tag{2}
$$

ロドリゲス

回転軸，角度表現（Rodrigues）を直交行列で表現すると
$$
R(\boldsymbol{n}, \theta) 
$$$$
= \left( \begin{array}{cc}
\mathrm{cos}\,\theta + n_x^2 (1 - \mathrm{cos}\,\theta) &amp; 
n_…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:svd&amp;rev=1627054997&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-07-23T15:43:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>svd</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:svd&amp;rev=1627054997&amp;do=diff</link>
        <description>特異値分解

特異値分解（Singular Value Decomposition, SVD）はとても役に立つ行列の分解法である．

しかし線形代数の講義などでは扱われることが少なく，とても残念なことである．

特異値分解とは
$A$$(m \times n)$$$A = UWV^T$$$U$$(m \times r)$$V$$(n \times r)$$U$$V$$r$$A$$
であり，この$$U$$U=(\boldsymbol{e}_1,\boldsymbol{e}_2,\cdots,\boldsymbol{e}_r)$$$
\boldsymbol{e}_i \cdot \boldsymbol{e}_j = \left\{ \begin{array}{c} 1 \; (i=j) \\ 0 \; (i \ne j) \end{array} \right.
$$$U^TU = I$$I$$r\times r$$V^TV=I$$A$$m=n=r$$A$$$
A^{-1} = VW^{-1}U^T,\;\; W^{-1}=\mathrm{diag}(1/\sigma_1,1/\sigma_…</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:tello&amp;rev=1768305638&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-13T12:00:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>tello</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:tello&amp;rev=1768305638&amp;do=diff</link>
        <description>dji tello

telloのsdk

djitellopy

生udfソケットのsdkのラッパー．簡単に利用できるのでおすすめ

	*  使用例
	*  api reference

生udpソケットで使う

	*  使用例
	*  sdk2.0

開発環境

	*  telloとwifiで接続するため教育用arrows tabletで開発する(tello eduだとアクセスポイントに接続できるのに，，，)</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:trajectory&amp;rev=1648951689&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-03T02:08:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>trajectory</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:trajectory&amp;rev=1648951689&amp;do=diff</link>
        <description>ロボットアームの軌道生成

軌道生成とは，始点から終点へとたどる点列生成の問題である．

脇道にそれるが「軌道(trajectory)」，「軌跡(locus)」，「経路(path,route)」といった用語は
それぞれ似ていながら微妙にニュアンスの違いがある．
また分野によってもそのニュアンスが異なる．</description>
    </item>
    <item rdf:about="https://robolab.suehiro.pro/doku.php?id=articles:vector&amp;rev=1646351363&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-03T23:49:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>vector</title>
        <link>https://robolab.suehiro.pro/doku.php?id=articles:vector&amp;rev=1646351363&amp;do=diff</link>
        <description>三次元ベクトルと座標系

ベクトルとは

「ベクトル」とは何かというと，一般的には方向と大きさを持つ量として
捉えることができるが，その用語が使われる分野によって
微妙に異なる意味合いを持っている．
ここではロボットの動作やそれが働く環境を記述するために用いる
三次元空間における幾何的ベクトル（空間ベクトル）を扱う．$ \boldsymbol{v} $$$ \boldsymbol{v} = \left( \begin{array}{c} v_x \\ v_y \\ v_z \end{array} \right) \tag{1} $$$ \boldsymbol{x}, \boldsymbol{y}, \boldsymbol{z} $$$ \boldsymbol{v} = v_x \boldsymbol{x} + v_y \boldsymbol{y} + v_z \boldsymbol{z} \tag{2} $$$$ \boldsymbol{x} = \left( \begin{array}{c} 1 \\ 0 \\ 0 \end{array} \right) ,
\boldsymbol{…</description>
    </item>
</rdf:RDF>
