Fawkes API  Fawkes Development Version
arm_kindrv.h
1 
2 /***************************************************************************
3  * arm_kindrv.h - Class for a Kinova Jaco arm, using libkindrv
4  *
5  * Created: Tue Jul 29 14:58:32 2014
6  * Copyright 2014 Bahram Maleki-Fard
7  *
8  ****************************************************************************/
9 
10 /* This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Library General Public License for more details.
19  *
20  * Read the full text in the LICENSE.GPL file in the doc directory.
21  */
22 
23 #ifndef __PLUGINS_JACO_ARM_KINDRV_H_
24 #define __PLUGINS_JACO_ARM_KINDRV_H_
25 
26 #include "arm.h"
27 #include "types.h"
28 
29 namespace KinDrv {
30  class JacoArm;
31 }
32 
33 namespace fawkes {
34 #if 0 /* just to make Emacs auto-indent happy */
35 }
36 #endif
37 
38 //class RefPtr;
39 
40 class JacoArmKindrv : public JacoArm
41 {
42  public:
43  JacoArmKindrv(const char *name = NULL);
44  virtual ~JacoArmKindrv();
45 
46  virtual void initialize();
47 
48  virtual bool final();
49  virtual bool initialized();
50 
51  virtual void get_joints(std::vector<float> &to) const;
52  virtual void get_coords(std::vector<float> &to);
53  virtual void get_fingers(std::vector<float> &to) const;
54 
55  virtual void stop();
56  virtual void push_joystick(unsigned int button);
57  virtual void release_joystick();
58 
59  virtual void goto_trajec(std::vector< std::vector<float> >* trajec, std::vector<float> &fingers);
60  virtual void goto_joints(std::vector<float> &joints, std::vector<float> &fingers, bool followup=false);
61  virtual void goto_coords(std::vector<float> &coords, std::vector<float> &fingers);
62  virtual void goto_ready();
63  virtual void goto_retract();
64 
65  private:
66  KinDrv::JacoArm *__arm;
67 
68  fawkes::jaco_target_type_t __target_type;
69  bool __final;
70 
71  bool __ctrl_ang;
72 };
73 
74 
75 
76 } // end of namespace fawkes
77 
78 #endif
Fawkes library namespace.
enum fawkes::jaco_target_type_enum jaco_target_type_t
The type of a target.
Class for commanding a Kinova Jaco Arm, using libkindrv.
Definition: arm_kindrv.h:40
Abstract class for a Kinova Jaco Arm that we want to control.
Definition: arm.h:38