[Rock-dev] Replacement for base::actuators::MotorState

Matthias Goldhoorn matthias.goldhoorn at dfki.de
Tue Feb 19 11:32:50 CET 2013


On 19.02.2013 11:20, Sylvain Joyeux wrote:
> On 02/19/2013 10:59 AM, Janosch Machowinski wrote:
>> Included remarks from Matthias,
>> turns out we have already a base::Temperature.
>> I did not add constructors yet as this is more about
>> the layout and fields of the types and if the structure
>> would cover all of our use cases.
>>
>>        struct Encoder
>>        {
>>        public:
>>            ///determines weather this is an absolute
>>            ///or incremental reading
>>            bool absolute;
>>
>>            ///Position of the actuator
>>            base::Angle position;
> base::Angle is limited in [-pi; pi], you can't use it there.
I would then prefer to:
a) rename this "angle" to something like 
"moved_angle_from_initialization" OR leving the base::angle and creating 
some
"int rotation_counter" for real motors.
Otherwise this get confusing...
>
>>            ///Speed in radians per second
>>            double speed;
>>        };
>>
>>        struct ActuatorState
>>        {
>>        public:
>>            ///Time of the State
>>            base::Time time;
>>
>>            ///The amount of current in A
>>            ///consumed by the actuator
>>            float actuatorCurrent;
> I would prefer removing the actuator prefix. This is an ActuatorState
> structure.
>
>>            ///Torque in Nm applied by the actuator
>>            double actuatorTorque;
> Same about he actuator prefix
>
>>            ///Encoder at the motor shaft
>>            Encoder motorShaftEncoder;
>>
>>            ///Encoder at the output side
>>            ///e.g. behind the gearbox
>>            Encoder ouputSideEncoder;
> And what about cases where there are more than two encoders ? This
> encoder thing was the very reason that we wanted a bigger discussion.
>
> I would personally prefer splitting the actuator from the encoders and
> have a way to describe a "chain" of actuators / encoders. KDL was a
> candidate, at that point, to provide the required data structures.
>
>>            ///Current pwm applied to the actuator
>>            ///range [-1, 1]
>>            float pwm;
>>
>>            ///temperature of the actuator
>>            base::Temperature actuatorTemperature;
>>            ///temperature of the motor driver pcb
>>            base::Temperature motorDriverTemperature;
> I would prefer putting these temperatures in a separate data structure.
I'm fine with that


-- 
  Dipl.-Inf. Matthias Goldhoorn
  Space and Underwater Robotic

  Universität Bremen
  FB 3 - Mathematik und Informatik
  AG Robotik
  Robert-Hooke-Straße 5
  28359 Bremen, Germany

  Tel.:     +49 421 178 45-4193
  Zentrale: +49 421 178 45-6550
  Fax:      +49 421 178 45-4150
  E-Mail:   matthias.goldhoorn at uni-bremen.de

  Weitere Informationen: http://www.informatik.uni-bremen.de/robotik



More information about the Rock-dev mailing list