<div dir="ltr">河内様:<div>菅です</div><div><br></div><div>すみません.並行してTwitterでもつぶやいてしまい,安藤さんはtrunkのコードの対応をしていただいたようです.</div><div><br></div><div>maxSpeedは,waypointに割り当てられた最大「速度」ですので,</div><div>Velocity2D型となるのが自然です.</div><div>C++版ではVelocity2Dになっていますが,Python版のtrunkのコードはPose2Dになっていました.</div><div><br></div><div>安藤さんの対応だと,コードからインストールするとVelocity2Dになります.</div><div><br></div><div>現状,幸い,と言っていいかどうかわかりませんが,Pose2DもVelocity2Dもdouble型3つなので,</div><div>pose.position.x -> velocity.vx</div><div>pose.position.y -> velocity.vy</div><div>pose.heading -> <a href="http://velocity.va">velocity.va</a></div><div>のように対応しているみたいで,PythonとC++で通信できました.</div><div><span style="line-height:1.5"><br></span></div><div><span style="line-height:1.5">Python側からPath2Dを送る場合は,</span></div><div>path.waypoints[i].maxSpeed = RTC.Pose2D(RTC.Point2D(1.0, 1.0), 1.0)</div><div>のようにしなければならず,C++からは</div><div>path.waypoints[i].maxSpeed = RTC::Velocity2D(vx, vy, va)</div><div>のようにアクセスする,という不健全な状態ですが動きました.</div><div><br></div><div>バイナリインストールは便利なので,</div><div>早めに時期の修正リリースがあるといいな,と思っています・・・</div><div><br></div><div>ではでは</div></div><br><div class="gmail_quote"><div dir="ltr">2015年10月7日(水) 13:21 河内のぶ <<a href="mailto:n.kawauchi@aist.go.jp">n.kawauchi@aist.go.jp</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">菅様<br>
<br>
河内です。ご連絡、ありがとうございます。<br>
<br>
下記ページからダウンロードする32/64bit版のmsiファイルを確認致したとこ<br>
ろ、site-packages\OpenRTM_aist\RTM_IDL\InterfaceDataTypes.idl では<br>
「Pose2D maxSpeed;」と定義されています。<br>
<a href="http://openrtm.org/openrtm/ja/content/openrtm-aist-python-110-release" rel="noreferrer" target="_blank">http://openrtm.org/openrtm/ja/content/openrtm-aist-python-110-release</a><br>
<br>
------<br>
    /*!<br>
     * @struct Waypoint2D<br>
     * @brief A waypoint in 2D space, including constraints.<br>
     */<br>
    struct Waypoint2D<br>
    {<br>
        /// Location of the waypoint.<br>
        Pose2D target;<br>
        /// How far away from the waypoint is considered success (radius in metres).<br>
        double distanceTolerance;<br>
        /// How much off the target heading is considered success (in radians).<br>
        double headingTolerance;<br>
        /// Target time to arrive at the waypoint by.<br>
        Time timeLimit;<br>
        /// Maximum sped to travel at while heading to the waypoint.<br>
        Pose2D maxSpeed; ←★<br>
    };<br>
------<br>
<br>
これとは別の問題でしょうか。 理解不足でしたら申し訳ございません。<br>
よろしくお願い致します。<br>
<br>
On Wed, 7 Oct 2015 02:10:00 +0000<br>
Yuki Suga <<a href="mailto:ysuga@ysuga.net" target="_blank">ysuga@ysuga.net</a>> wrote:<br>
<br>
> ML各位:<br>
> SSRの菅です.<br>
><br>
> 環境:Windows 7 x64 OpenRTM-aist Python版 1.1.0 RELEASE 32bit版<br>
> Python2.7 32bit<br>
><br>
> 表題の通り,バイナリからインストールしたOpenRTM-aistに含まれる<br>
> データ型がおかしいです.<br>
> Waypoint2D型ですが,IDLでは<br>
><br>
> ########### ここから<br>
>     /*!<br>
>      * @struct Waypoint2D<br>
>      * @brief A waypoint in 2D space, including constraints.<br>
>      */<br>
>     struct Waypoint2D<br>
>     {<br>
>         /// Location of the waypoint.<br>
>         Pose2D target;<br>
>         /// How far away from the waypoint is considered success (radius in<br>
> metres).<br>
>         double distanceTolerance;<br>
>         /// How much off the target heading is considered success (in<br>
> radians).<br>
>         double headingTolerance;<br>
>         /// Target time to arrive at the waypoint by.<br>
>         Time timeLimit;<br>
>         /// Maximum sped to travel at while heading to the waypoint.<br>
>         Velocity2D maxSpeed;<br>
>     };<br>
> ########### ここまで<br>
><br>
> ですが,site-packages/OpenRTM_aist/RTM_IDL/InterfaceDataType_idl.pyでは<br>
><br>
> ########### ここから<br>
> # struct Waypoint2D<br>
> _0_RTC.Waypoint2D = omniORB.newEmptyClass()<br>
> class Waypoint2D (omniORB.StructBase):<br>
>     _NP_RepositoryId = "IDL:RTC/Waypoint2D:1.0"<br>
><br>
>     def __init__(self, target, distanceTolerance, headingTolerance,<br>
> timeLimit, maxSpeed):<br>
>         self.target = target<br>
>         self.distanceTolerance = distanceTolerance<br>
>         self.headingTolerance = headingTolerance<br>
>         self.timeLimit = timeLimit<br>
>         self.maxSpeed = maxSpeed<br>
><br>
> _0_RTC.Waypoint2D = Waypoint2D<br>
> _0_RTC._d_Waypoint2D  = (omniORB.tcInternal.tv_struct, Waypoint2D,<br>
> Waypoint2D._NP_RepositoryId, "Waypoint2D", "target",<br>
> omniORB.typeMapping["IDL:RTC/Pose2D:1.0"], "distanceTolerance",<br>
> omniORB.tcInternal.tv_double, "headingTolerance",<br>
> omniORB.tcInternal.tv_double, "timeLimit",<br>
> omniORB.typeMapping["IDL:RTC/Time:1.0"], "maxSpeed",<br>
> omniORB.typeMapping["IDL:RTC/Pose2D:1.0"])<br>
> _0_RTC._tc_Waypoint2D =<br>
> omniORB.tcInternal.createTypeCode(_0_RTC._d_Waypoint2D)<br>
> omniORB.registerType(Waypoint2D._NP_RepositoryId, _0_RTC._d_Waypoint2D,<br>
> _0_RTC._tc_Waypoint2D)<br>
> del Waypoint2D<br>
> ########### ここまで<br>
><br>
> となっています.maxSpeedメンバのマッピングがPose2Dになっており,<br>
> このためにうまく通信できません.<br>
> バイナリに固めるときに使っているIDLが違うのでしょうか?<br>
><br>
> 確認をお願いします.<br>
><br>
> それでは<br>
<br>
---------------------------------------------------<br>
河内 のぶ  <a href="mailto:n.kawauchi@aist.go.jp" target="_blank">n.kawauchi@aist.go.jp</a><br>
産業技術総合研究所 ロボットイノベーション研究センター<br>
ディペンダブルシステム研究チーム<br>
<br>
<br>
<br>
_______________________________________________<br>
openrtm-users mailing list<br>
<a href="mailto:openrtm-users@openrtm.org" target="_blank">openrtm-users@openrtm.org</a><br>
<a href="http://www.openrtm.org/mailman/listinfo/openrtm-users" rel="noreferrer" target="_blank">http://www.openrtm.org/mailman/listinfo/openrtm-users</a><br>
</blockquote></div>