Robot Control Interface: Issueshttps://code.cor-lab.de/https://code.cor-lab.de/favicon.ico?14019720732015-06-12T13:12:44ZOpen Source Collaboration Platform
Redmine Tasks #2321 (New): Implement Weights typehttps://code.cor-lab.de/issues/23212015-06-12T13:12:44ZAnonymous
Could have methods for
<ul>
<li>positive/negative values only</li>
<li>normalizing</li>
<li>...</li>
</ul>
<p>Should probably register converters to <code>rst.math.Vec2DFloat</code>.</p> Tasks #1789 (New): RCI::Orientation should be represented as unit quaternionshttps://code.cor-lab.de/issues/17892014-03-06T14:46:07ZC. Emmerichcemmeric@cor-lab.de
<p>RCI::Orientations are represented as quaternions. But as far as I know, they are not checked for being (or automatically transformed to) unit quaternions. If there is no dedicated reason for this, we should integrate this check/transformation into the Orientation representation.</p>
Advantages would be:
<ul>
<li>if I want to create an Orientation from values, I dont have to care for delivering a <strong>unit</strong> quaternion</li>
<li>when getting an Orientation as quaternions, I can be sure to get unit quaternions</li>
</ul> Bug #1713 (Feedback): RCI is getting messed up with Torques, JointTorques and TorqueSensinghttps://code.cor-lab.de/issues/17132014-01-05T18:15:07ZC. Emmerichcemmeric@cor-lab.de
<p>In my opinion, RCI is a little messed up with the different torque dtos and the sensing interface. There is a JointTorque type (joint space), a Torque (cartesian space) type and a TorqueSensing interface which doesnt sense Torques (as the name might suggest) but JointTorques. An interface for sensing Torques (the cartesian ones) is missing at all. By the way, is it necessary at all to have two different/parallel torque types? Is there any conceptual difference between them? Maybe one is a specification/derivate of the other one...?</p> Bug #1656 (New): rci::Orientation->asRotationMatrix() crashes when build against /vol/amarsi/x86-...https://code.cor-lab.de/issues/16562013-11-11T09:56:37ZA. Lemmealemme@cor-lab.uni-bielefeld.de
<p>Source code:</p>
<pre><code>rci::OrientationPtr ori= rci::Orientation::fromEulerAngles(0,-M_PI/4,0.0);<br /> std::cout<< ori->print()<&lt;endl;<br /> std::cout<< ori->asRotationMatrix()<&lt;endl;<br /> return 0;</code></pre>
<p>gegen /vol/amarsi/x86-64-precise/trunk gebaut.</p>
<p>Error Message:</p>
<p>/usr/include/eigen2/Eigen/src/Core/Coeffs.h:96: typename Eigen::ei_traits<T>::Scalar& Eigen::MatrixBase<Derived>::operator()(int, int) [with Derived = Eigen::Matrix<double, 10000, 10000>, typename Eigen::ei_traits<T>::Scalar = double]: Assertion `row >= 0 && row < rows() && col >= 0 && col < cols()' failed.</p>
<p>Selber code gegen das ToolKit (10.11.2013) gebaut ist der Fehler nichtmehr vorhanden.</p> Tasks #1598 (Feedback): Release rci 0.4https://code.cor-lab.de/issues/15982013-08-21T11:12:54ZAnonymous
<p>Roadmap for RCI 0.4 created: <a class="external" href="https://code.cor-lab.org/versions/34">https://code.cor-lab.org/versions/34</a></p>
<p>Is there anything else pressing that needs to go into version 0.4?</p> Bug #1506 (New): call to implicitly-deleted copy constructor of 'ControlAspectPtr'https://code.cor-lab.de/issues/15062013-05-22T15:29:57ZAnonymous
<p>Building RCI trunk with Clang 4.2.0:<br /><pre>
In file included from /Users/jenkins/workspace/rci-trunk-macos/label/MAC_OS_lion_64bit/rci/src/rci/ControlMode.cpp:27:
/Users/jenkins/workspace/rci-trunk-macos/label/MAC_OS_lion_64bit/rci/src/rci/ControlMode.h:156:34: error: call to implicitly-deleted copy constructor of 'ControlAspectPtr' (aka 'shared_ptr<rci::ControlAspect>')
"Inactive / no Control", noControl);
^~~~~~~~~
/opt/local/include/boost/smart_ptr/shared_ptr.hpp:343:5: note: copy constructor is implicitly deleted because 'shared_ptr<rci::ControlAspect>' has a user-declared move constructor
shared_ptr( shared_ptr && r ): px( r.px ), pn() // never throws
^
/Users/jenkins/workspace/rci-trunk-macos/label/MAC_OS_lion_64bit/rci/src/rci/ControlMode.h:114:69: note: passing argument to parameter 'aspect' here
static ControlModePtr create(std::string name, ControlAspectPtr aspect);
^
</pre></p>
<p><a class="external" href="https://ci.cor-lab.org/view/AMARSi/job/rci-trunk-macos/">https://ci.cor-lab.org/view/AMARSi/job/rci-trunk-macos/</a></p> Enhancement #1431 (New): debian package should confirm more strongly to the debian policyhttps://code.cor-lab.de/issues/14312013-02-20T07:40:10ZA. Tuleualexandre.tuleu@epfl.ch
<p>I know this is an hassle, but it gives me lot of maintainance nightmare at higher levels because the debian policy is not strongly followed in the debian packaging of librci.</p>
<p>Please fix the following issues :</p>
<ul>
<li>have a runtime and a dev package.</li>
<li>Make sure runtime package have the same full name than the library (with SONAME). Currently it should be librci0.9</li>
<li>No header in the runtime package, but in the dev package</li>
<li>No librsc.so in the runtime, but in the dev package a symlink to librci.so.0.4</li>
<li>provide a shlibs file for better debian integration. (see section 8.6). Basically it will be used by dpkg to maintain its database of symbols / shared lib dependency</li>
</ul>
<p>This come from the debian manual policy, and could causes problem, especially when using pkg-config to symlink with rci (which is the case for liboncilla compilation from webots).</p>
<p>Please refer to <a class="external" href="http://www.debian.org/doc/debian-policy/ch-sharedlibs.html">http://www.debian.org/doc/debian-policy/ch-sharedlibs.html</a></p> Enhancement #1255 (New): rci::Orientation: Check given matrix for being a rotation matrixhttps://code.cor-lab.de/issues/12552012-11-22T14:30:44ZC. Emmerichcemmeric@cor-lab.de
<p>When creating an Orientation or CartesianRotational from a given (rotation) matrix, a check is needed, wether the given matrix really is a valid rotation matrix.</p> Bug #1043 (Feedback): Modelisation of Wrench seems wronghttps://code.cor-lab.de/issues/10432012-06-28T09:15:13ZA. Tuleualexandre.tuleu@epfl.ch
<p>Modelisation of wrench seems wrong in RCI. Wrench store Torque as quaternion. However queternion are for storing rotation, that leaves in space SO (3). Rotation are not additive (you only combine them).</p>
<p>However a torque is a simply a linear vector living in space R^3 therefore, you should store them in this space, and not as quaternion.</p>
Wrench live in a more complex state, since they are (naively) defined by 9 dimension :
<ul>
<li>a translational force</li>
<li>a rotational force</li>
<li>a point of origin</li>
</ul>
<p>but actually these 3 values are bind together by the rule of transport.</p> Enhancement #1021 (New): Use sphinx' citation feature in manualhttps://code.cor-lab.de/issues/10212012-06-23T01:36:22ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<p>See <a class="external" href="http://sphinx.pocoo.org/rest.html#citations">http://sphinx.pocoo.org/rest.html#citations</a>.</p> Tasks #978 (New): NaN when converting in singularitieshttps://code.cor-lab.de/issues/9782012-04-03T16:42:47ZAnonymous
<p>Example matrix that results in NaNs in compact axis-angle conversion (in z-poles):</p>
<pre><code>homogen matrix: <br /> [-0.995, -0.102, 0.0114, -0.507;<br /> -0.102, 0.971, -0.218, -0.512;<br /> 0.0111, -0.218, -0.976, 0.19;</code></pre> Feature #944 (Feedback): Provide pose interpolationhttps://code.cor-lab.de/issues/9442012-03-13T15:17:54ZC. Emmerichcemmeric@cor-lab.de
<p>Here is some code snippet that can be useful for that:</p>
<pre><code>
vector<Pose> interpolatePoses(const Pose& poseStart, const Pose& poseEnd, unsigned int numSamplingPoints) {
vector<PosePtr> poses;
if (numSamplingPoints == 0) {
poses.push_back(poseStart);
poses.push_back(poseEnd);
return poses;
}
++numSamplingPoints;
double ratio = 1.0/numSamplingPoints;
RealVector poseStartValues = poseStart.asDoubleVector();
RealVector poseEndValues = poseEnd.asDoubleVector();
for (unsigned int p = 0; p <=numSamplingPoints; ++p) {
RealVector poseValues = poseStartValues * (1 - p*ratio) + poseEndValues * (p*ratio);
poses.push_back(Pose(poseValues)));
}
return poses;
}
</code></pre>
<p>It creates a vector of <em>numSamplingPoints + 2</em> poses (= <em>start pose + interpolation poses + end pose</em>).</p> Feature #904 (New): Orientation interface methods for euler angles zyxhttps://code.cor-lab.de/issues/9042012-03-01T16:01:05ZAnonymous
<p>Orientation interface methods for euler angles in zyx notation (Luftfahrtnorm (DIN 9300) (Yaw-Pitch-Roll, Z, Y’, X’’))</p> Tasks #883 (New): Rethink shared pointershttps://code.cor-lab.de/issues/8832012-02-15T14:59:52ZAnonymous
Rethink usage of shared pointers as general solution in RCI.
<ul>
<li><em>Responsibility</em> of data (creation, editing)</li>
<li><em>Constness</em> (eg. const-getter returning shared pointers)</li>
<li><em>Necessity</em> or benefits of shared pointers</li>
</ul> Feature #278 (New): Check on making constructors protected/private to just use boost pointershttps://code.cor-lab.de/issues/2782011-05-10T15:33:41ZAnonymous
<p>Check on making constructors protected/private to just use boost pointers. Is this compliant with real-time control (performance).</p>