Hello,

I finally figured out the problem. All of the interfaces were
calculating an incorrect size. To fix your code change:

public: ActarrayIface():Iface("actarray", sizeof(ActarrayIface)) {}

to

public: ActarrayIface():Iface("actarray",
sizeof(ActarrayIface)+sizeof(gzActarrayData)) {}

That should make everything work smoothly.

-nate

On 5/18/07, Mihai Emanuel Dolha <[EMAIL PROTECTED]> wrote:
> Hi!
> Here is the code I added in gazebo.h
>
>     
> /***************************************************************************/
>     //                      ACTARRAY
>     INTERFACE                                 //
>
>     //maximum number of actuators
>     #define GAZEBO_ACTARRAY_MAX_NUM_ACTUATORS 16
>
>
>     // @brief Actuator geometry
>     class gzActarrayActuatorGeom
>     {
>       //The type of the actuator - linear or rotary.
>       uint8_t type;
>       // The range of motion of the actuator, in m or rad depending on
>     the type.
>       float min;
>       // The range of motion of the actuator, in m or rad depending on
>     the type.
>       float centre;
>       // The range of motion of the actuator, in m or rad depending on
>     the type.
>       float max;
>       // The range of motion of the actuator, in m or rad depending on
>     the type.
>       float home;
>       // The configured speed setting of the actuator - different from
>     current speed.
>       float config_speed;
>       // The maximum achievable speed of the actuator.
>       float max_speed;
>       // If the actuator has brakes or not.
>       uint8_t hasbrakes;
>     };
>
>     // @brief Structure containing a single actuator's information
>     class gzActarrayActuator
>     {
>       // The position of the actuator in m or rad depending on the type.
>       public: float position;
>       // The speed of the actuator in m/s or rad/s depending on the type.
>       public: float speed;
>       // The current state of the actuator.
>       public: uint8_t state;
>
>     };
>
>     // The actuator array data packet.
>     class gzActarrayData
>     {
>       // The number of actuators in the array.
>       public: unsigned int actuators_count;
>
>       //timestamp
>       public: double time;
>
>       // The actuator data.
>       public: gzActarrayActuator
>     actuators[GAZEBO_ACTARRAY_MAX_NUM_ACTUATORS];
>
>       // The actuators geoms
>       public: gzActarrayActuatorGeom
>     actuator_geoms[GAZEBO_ACTARRAY_MAX_NUM_ACTUATORS];
>
>       //position commands
>       public: float cmd_pos[GAZEBO_ACTARRAY_MAX_NUM_ACTUATORS];
>
>       //speed commands
>       public: float cmd_speed[GAZEBO_ACTARRAY_MAX_NUM_ACTUATORS];
>
>       // bad command flag - (speed to high set for the actuators or
>     position not reachable)
>       public: int bad_cmd;
>
>       //position / speed comand
>       public: unsigned int joint_mode[GAZEBO_ACTARRAY_MAX_NUM_ACTUATORS];
>
>     };
>
>     //!The Actarray interface
>     class ActarrayIface : public Iface
>     {
>       public: ActarrayIface():Iface("actarray", sizeof(ActarrayIface)) {}
>       public: virtual ~ActarrayIface() {this->data = NULL;}
>
>       public: virtual int Create(Server *server, const char *id)
>               {
>                int result = Iface::Create(server,id);
>                this->data = (gzActarrayData*)this->mMap;
>                return result;}
>
>       public: virtual int Open(Client *client, const char *id)
>               {int result = Iface::Open(client,id);
>                this->data = (gzActarrayData*)this->mMap;
>                return result;}
>
>       public: gzActarrayData *data;
>     };
>
>     //                       END ACTARRAY INTERFACE
>     
> /***************************************************************************/
>
>
>
>
> Nate Koenig wrote:
> > Hello,
> >
> > Could you post your actarray code, and I'll take a look at it?
> >
> > Thanks,
> > -nate
> >
> > On 5/15/07, Mihai Emanuel Dolha <[EMAIL PROTECTED]> wrote:
> >
> >> Hi!
> >>
> >> I implemented the actarray interface in the SVN Gazebo and I'm using it
> >> to control a robot model I made. Things are working pretty well with one
> >> exception: sometimes the commands that my client writes on the interface
> >> are replaced by 0 , and my robot stops. My client is not rewriting the
> >> interface and I couldn't find who is.
> >>
> >> Does anybody who is using or working on this version have a clue?
> >>
> >> Thanks,
> >>
> >> Mihai
> >>
> >> -------------------------------------------------------------------------
> >> This SF.net email is sponsored by DB2 Express
> >> Download DB2 Express C - the FREE version of DB2 express and take
> >> control of your XML. No limits. Just data. Click to get it now.
> >> http://sourceforge.net/powerbar/db2/
> >> _______________________________________________
> >> Playerstage-gazebo mailing list
> >> [email protected]
> >> https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo
> >>
> >>
> >
> > -------------------------------------------------------------------------
> > This SF.net email is sponsored by DB2 Express
> > Download DB2 Express C - the FREE version of DB2 express and take
> > control of your XML. No limits. Just data. Click to get it now.
> > http://sourceforge.net/powerbar/db2/
> > _______________________________________________
> > Playerstage-gazebo mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo
> >
> >
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Playerstage-gazebo mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo
>

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Playerstage-gazebo mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo

Reply via email to