Difference between revisions of "Modules - Standard v0.2"

From Asibot & HOAP3 & TEO Wiki
Jump to navigation Jump to search
 
(51 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The intention of this standard is to keep internal coherence and compatability with RoboticsLab robot modules who follow this standard. It is intended to be a description of existing and future modules, their interfaces and data flow representation. For a debate on open issues, go to the [http://roborepo.uc3m.es/w/index.php/Talk:A_Standard_for_Modules discussion tab]. Port interface is referred to TCP/UDP/MCAST/SHMEM ''cloud'' side, not CAN or USB (that can coexist in hardware-related modules).
+
'''<u>Important Notice</u>: This standard has been replaced by [[Modules - Standard v0.3]].'''
 +
Most prominent changes have been in the folder structure (drop extern) and consecuently CMake (also drop mk).
 +
The intention of this standard is to keep internal coherence and compatability with RoboticsLab robot Modules which follow this standard (such as [[Asibot_-_Implemented_Modules_v0.2]]). It replaces [[Modules - Standard v0.1]]. It is intended to be a description of module interfaces and data flow representation. Port interface is referred to TCP/UDP/MCAST/SHMEM ''cloud'' side, not CAN or USB (that can coexist in hardware-related modules). A referenced list of implemented modules should also be included. Be sure to check the [[Modules - Dependency Version]] page too.
  
Nomenclature: D for double, I for integer, S for string.
+
Nomenclature: D for double, I for integer, S for string.
  
== drivers ==
+
== Joint Motion Controllers ==
These modules should recieve joint position commands, in relative and absolute degrees.
+
These modules should receive joint (q) commands. While any q is in movement, a callback should be a set up to be able to receive Stop or Status Poll command. On the other hand, the module should send a message when a command has been performed (w/ info on degree of accomplishment) or stopped.
Module: drv_''name''
 
Ports: ''name''_q_io
 
  - Data: bottle_q_i "I:code S:tag1 D:Q1pos ... S:tag''n'' D:Q''n''pos D:Qgenvel"
 
  - Data: bottle_q_i "I:code D:Q1vel ... D:Q''n''vel"
 
  - Data: bottle_q_o "I:code D:Q1pos ... D:Q''n''pos"
 
  - Data: bottle_q_o "I:code I:Q_to_sync"
 
  
  Code:
+
  Module: '''jmc_''name'''''
  - -1: Stop
 
  - 0: Encoder read
 
  - 1: Absolute position
 
  - 2: Relative position
 
  - 3: Velocity
 
  - 4: Syncronize motor
 
  
* svn co http://roborepo.uc3m.es/svn/ASIBOTcoderepo/branches/v02/drivers/drv_rave
+
Port: '''''name''_q'''
 +
 +
In:
 +
- Stop:              "I:-1" (bottle_q_i)
 +
- Status poll:      "I:0" (bottle_q_i)
 +
- Relative position: "I:1 D:Q1pos ... D:Q''n''pos D:Qgenvel" (bottle_q_i)
 +
- Absolute position: "I:2 D:Q1pos ... D:Q''n''pos D:Qgenvel" (bottle_q_i)
 +
- Syncronize:        "I:5X " (bottle_q_i) <- X=axis
 +
 +
Out:
 +
- Status Response:  "I:stat D:Q1pos ... D:Q''n''pos" (bottle_q_o)
  
 +
Units: Degrees, Percentage based on max degrees per second, ¿¿N/m or A??.
  
 +
'''<u>Example:</u> Command to rave_q: 2 0 -10 10 0 0 60''' (all axis and vgen)
  
* svn co http://roborepo.uc3m.es/svn/ASIBOTcoderepo/trunk/drivers/drv_marilou
+
Implemented Drivers:
<!-- ** TODO: Must adapt to this new standard. -->
+
 +
'''drv_fake''': A stand-alone module that simulates a 5 DOF, no joint-limited robot. [[Asibot_-_Implemented_Modules#drv_fake_.5B1.5D|read more...]]
 +
'''drv_ml''': A module that passes standard v0.2 commands to Marilou ASIBOT. [[Asibot_-_Implemented_Modules#drv_ml_.5B2.5D|read more...]]
 +
'''drv_rave''': A module that instantiates a OpenRAVE kitchen with ASIBOT environment. [[Asibot_-_Implemented_Modules#drv_rave_.5B3.5D|read more...]]
  
== dynamics ==
+
== Filters ==
Module: dyn_''name''
 
Ports:
 
  
== hmi ==
+
== Hmi ==
 
This groups GUIs, voice recognition modules...
 
This groups GUIs, voice recognition modules...
Module: hmi_''name''
 
Ports: ''any input and output from other modules''
 
  
* svn co http://roborepo.uc3m.es/svn/ASIBOTcoderepo/trunk/hmi/hmi_3d
+
== Learning ==
** TODO: Must adapt to this new standard.
 
  
== kinematics/trajectory ==
+
== Trajectory ==
 
This module should be able to take the description from a file and generate joint solutions for proposed cartesian goal.
 
This module should be able to take the description from a file and generate joint solutions for proposed cartesian goal.
  Module: kin/trj_''name''
+
  Module: trj_''name''
 
  Port: ''name''_xi_io
 
  Port: ''name''_xi_io
 
   - Data: bottle_xi_io "I:code D:X D:Y D:Z D:ROLL D:PITCH D:YAW D:genvel"
 
   - Data: bottle_xi_io "I:code D:X D:Y D:Z D:ROLL D:PITCH D:YAW D:genvel"
Line 58: Line 58:
 
   - 16: Relative position without wait, tool coordinate
 
   - 16: Relative position without wait, tool coordinate
  
* svn co http://roborepo.uc3m.es/svn/ASIBOTcoderepo/trunk/kinematics/kin_pos_based
+
== Planning ==
<!-- ** TODO: Must adapt to this new standard. -->
 
 
 
== planning ==
 
 
  Module: pln_''name''
 
  Module: pln_''name''
 
  Ports:
 
  Ports:
  
== stabilizer ==
+
== Stabilizers ==
 
  Module: stb_''name''
 
  Module: stb_''name''
 
  Ports:
 
  Ports:
  
== tools ==
+
== Tools ==
 
  Module: tol_''name''
 
  Module: tol_''name''
 
  Ports:
 
  Ports:
  
* svn co http://roborepo.uc3m.es/svn/ASIBOTcoderepo/trunk/tools/tol_file
+
== Vision ==
<!-- ** TODO: Must adapt to this new standard. -->
 
 
 
== vision ==
 
 
The output of this module is a cartesian goal (derived from a distance and orientation).
 
The output of this module is a cartesian goal (derived from a distance and orientation).
 
  Module: vis_''name''
 
  Module: vis_''name''
 
  Ports: ''name''_xg_o
 
  Ports: ''name''_xg_o
 
   - Data: bottle_xg_o "D:X D:Y D:Z D:ROLL D:PITCH D:YAW"
 
   - Data: bottle_xg_o "D:X D:Y D:Z D:ROLL D:PITCH D:YAW"

Latest revision as of 12:12, 9 November 2010

Important Notice: This standard has been replaced by Modules - Standard v0.3.
Most prominent changes have been in the folder structure (drop extern) and consecuently CMake (also drop mk).

The intention of this standard is to keep internal coherence and compatability with RoboticsLab robot Modules which follow this standard (such as Asibot_-_Implemented_Modules_v0.2). It replaces Modules - Standard v0.1. It is intended to be a description of module interfaces and data flow representation. Port interface is referred to TCP/UDP/MCAST/SHMEM cloud side, not CAN or USB (that can coexist in hardware-related modules). A referenced list of implemented modules should also be included. Be sure to check the Modules - Dependency Version page too.

Nomenclature: D for double, I for integer, S for string.

Joint Motion Controllers

These modules should receive joint (q) commands. While any q is in movement, a callback should be a set up to be able to receive Stop or Status Poll command. On the other hand, the module should send a message when a command has been performed (w/ info on degree of accomplishment) or stopped.

Module: jmc_name
Port: name_q

In:
- Stop:              "I:-1" (bottle_q_i)
- Status poll:       "I:0" (bottle_q_i)
- Relative position: "I:1 D:Q1pos ... D:Qnpos D:Qgenvel" (bottle_q_i)
- Absolute position: "I:2 D:Q1pos ... D:Qnpos D:Qgenvel" (bottle_q_i)
- Syncronize:        "I:5X " (bottle_q_i) <- X=axis

Out:
- Status Response:   "I:stat D:Q1pos ... D:Qnpos" (bottle_q_o)
Units: Degrees, Percentage based on max degrees per second, ¿¿N/m or A??.
Example: Command to rave_q: 2 0 -10 10 0 0 60 (all axis and vgen)
Implemented Drivers:

drv_fake: A stand-alone module that simulates a 5 DOF, no joint-limited robot. read more...
drv_ml: A module that passes standard v0.2 commands to Marilou ASIBOT. read more...
drv_rave: A module that instantiates a OpenRAVE kitchen with ASIBOT environment. read more...

Filters

Hmi

This groups GUIs, voice recognition modules...

Learning

Trajectory

This module should be able to take the description from a file and generate joint solutions for proposed cartesian goal.

Module: trj_name
Port: name_xi_io
 - Data: bottle_xi_io "I:code D:X D:Y D:Z D:ROLL D:PITCH D:YAW D:genvel"
Port: name_q_io
 - Data: bottle_q_o "I:code D:Q1pos ... D:Qnpos D:Qgenvel"
 - Data: bottle_q_o "I:code D:Q1vel ... D:Qnvel"
 - Data: bottle_q_i "I:code D:Q1pos ... D:Qnpos"
Code:
 - 10: Read absolute position, base coordinate
 - 11: Absolute position with wait, base coordinate
 - 12: Relative position with wait, base coordinate
 - 13: Relative position with wait, tool coordinate
 - 14: Absolute position without wait, base coordinate
 - 15: Relative position without wait, base coordinate
 - 16: Relative position without wait, tool coordinate

Planning

Module: pln_name
Ports:

Stabilizers

Module: stb_name
Ports:

Tools

Module: tol_name
Ports:

Vision

The output of this module is a cartesian goal (derived from a distance and orientation).

Module: vis_name
Ports: name_xg_o
 - Data: bottle_xg_o "D:X D:Y D:Z D:ROLL D:PITCH D:YAW"