kinematics-dynamics
kinematics-dynamics copied to clipboard
Kinematics and dynamics solvers and controllers.
The `ICartesianControl` interface could provide a method to control an end-effector actuator (e.g. a gripper tool). To not interfere with `tool` (see #95), a new `act`/`VOCAB_CC_ACT` method/RPC vocab pair is...
BasicCartesianControl integrates two distinct members related to the number of controlled joints: https://github.com/roboticslab-uc3m/kinematics-dynamics/blob/c187abdc0c9b2284d36df0f22cf64ecb238642b2/libraries/YarpPlugins/BasicCartesianControl/BasicCartesianControl.hpp#L229 * `numRobotJoints` is the number of joints as regarded by the joint controller (e.g. CanBusControlboard). On TEO,...
Per https://github.com/roboticslab-uc3m/kinematics-dynamics/issues/123#issuecomment-340269259: > PS: BTW, I cannot find the issue, but you asked the purpose/extent of `BasicCartesianController`. I guess it could be renamed to something like `OneLimbCartesianController` to express it...
These are current defaults as read by [`amor_get_joint_info`](https://github.com/roboticslab-uc3m/kinematics-dynamics/blob/f3f6f880430c3eb58318b3e860315b8bd70113bc/libraries/YarpPlugins/AmorCartesianControl/DeviceDriverImpl.cpp#L83) and passed on to the solver device via `yarp::os::Property`: ``` (maxs (-65.001602 35.002976 150.00412 -40.001831 0.0 179.997253 0.0)) (mins (-155.002976 -130.003204 -150.00412...
Steps to reproduce: 1. Launch *streamingDeviceController*. 1. Move the robot TCP so that a joint limit is hit (motion stops, cannot proceed further). 1. Move away from that joint limit....
See [AsibotConfiguration.cpp#L22-L39](https://github.com/roboticslab-uc3m/kinematics-dynamics/blob/974de241243c09612e8ab069317c9b6b76da6a2e/libraries/TeoYarp/AsibotSolver/AsibotConfiguration.cpp#L22-L39) (the comment should actually refer to joints q1 and q**5**). This static function should be aware of joint limits passed to `AsibotConfiguration`. Maybe I could just make them...
[`BasicCartesianControl::twist`](https://github.com/roboticslab-uc3m/kinematics-dynamics/blob/f34a1d3f1806b1556e81d2099035b94540dbfa22/libraries/YarpPlugins/BasicCartesianControl/ICartesianControlImpl.cpp#L454-L490) performs open-loop velocity control, which is unsufficient if a steady, linear path is desired. Any attempts to control TEO's arms via joystick (https://github.com/roboticslab-uc3m/kinematics-dynamics/issues/173#issuecomment-493400560) will cause said arm to bend...
Currently, the [ScrewTheoryLib](https://github.com/roboticslab-uc3m/kinematics-dynamics/tree/631f68df6796e132a8ea5ac473f7031b1c3c988d/libraries/ScrewTheoryLib) is unable to solve any IK problem that entails finding at least one solution of a redundant mechanism (i.e. more than 6 DOF, usually). There are several...
There is a nasty FIXME annotation left in: https://github.com/roboticslab-uc3m/kinematics-dynamics/blob/b985abf377fcc47e3e0d36dab625b81a89567c72/libraries/YarpPlugins/AmorCartesianControl/ICartesianControlImpl.cpp#L227-L230 on current `streaming-cartesian-control` branch. This is due to a mismatch between [rotx,roty,rotz] coordinates in the robot API and the controller, which...
As similarly done in RAPID, make `movj` and `movl` (and `movc`? see https://github.com/roboticslab-uc3m/kinematics-dynamics/issues/135) accept a velocity parameter. Generated trajectories should conform to these values when performing the movement. Implementation note:...