eeros_architecture:hal:config_ros
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
eeros_architecture:hal:config_ros [2017/12/14 17:07] – graf | eeros_architecture:hal:config_ros [2017/12/14 18:34] – [How to Use the] graf | ||
---|---|---|---|
Line 9: | Line 9: | ||
| devHandle | string | e.g. testNodeHAL, | | devHandle | string | e.g. testNodeHAL, | ||
| type | string | e.g. AnalogIn / AnalogOut / DigIn / DigOut | | | type | string | e.g. AnalogIn / AnalogOut / DigIn / DigOut | | ||
- | | additionalArguments | string | & 'see next table' | + | | additionalArguments | string | see table below | |
- | + | ||
- | \end{tabular} | + | |
- | + | ||
- | \end{table} | + | |
+ | ===== Additional Arguments ===== | ||
+ | The '' | ||
^ Keyword ^ Type ^ Remarks ^ | ^ Keyword ^ Type ^ Remarks ^ | ||
- | + | | topic | string | topic to listen or subscribe | | |
- | The \textit{additionalArguments} are special arguments which are parsed in the wrapper library \textit{ros-eeros}. | + | | msgType | string | message type | |
- | + | | dataField | string | data member of message | | |
- | These arguments contain additional information which are necessary | + | | callOne | boolean | ???? | |
- | + | | queueSize | int | size of buffer, default = 1000 | | |
- | All arguments are separated with a semicolon. | + | | useEerosSystemTime | boolean | use system time or timestamp of message | |
- | + | ||
- | The available arguments are listed in table \ref{tableAdditionalArgumentsEeros}. | + | |
- | + | ||
An example for an additional argument could be: | An example for an additional argument could be: | ||
+ | < | ||
+ | " | ||
+ | </ | ||
+ | ===== Implemented Message Types ===== | ||
+ | The table below shows all currently implemented message types and associated data fields. If your desired message type is not implemented yet, you can easily implement it yourself, see below. | ||
+ | ^ type ^ msgType ^ dataField ^ | ||
+ | | AnalogIn | std_msgs:: | ||
+ | | ::: | sensor_msgs:: | ||
+ | | ::: | ::: | angle_max | | ||
+ | | ::: | ::: | angle_increment | | ||
+ | | ::: | ::: | time_increment | | ||
+ | | ::: | ::: | scan_time | | ||
+ | | ::: | ::: | range_min | | ||
+ | | ::: | ::: | range_max | | ||
+ | | AnalogOut | std_msgs:: | ||
+ | | ::: | sensor_msgs:: | ||
+ | | ::: | ::: | angle_max | | ||
+ | | ::: | ::: | angle_increment | | ||
+ | | ::: | ::: | time_increment | | ||
+ | | ::: | ::: | scan_time | | ||
+ | | ::: | ::: | range_min | | ||
+ | | ::: | ::: | range_max | | ||
+ | | DigIn | std_msgs:: | ||
+ | | DigOut | std_msgs:: | ||
- | \begin{snugshade*} | + | You can find a complete example, including a *.json file, in the [[getting_started: |
- | + | ||
- | \textit{\char" | + | |
- | + | ||
- | dataField=scan\_time; | + | |
- | + | ||
- | \end{snugshade*} | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | Table \ref{tableAdditionalArgumentsEeros} shows all currently available \textit{additionalArguments}. | + | |
- | + | ||
- | \textbf{Topic} and \textbf{msgType} are mandatory arguments. | + | |
- | + | ||
- | + | ||
- | + | ||
- | \begin{table} | + | |
- | + | ||
- | \centering | + | |
- | + | ||
- | \caption{Additional arguments specific for ros-eeros} | + | |
- | + | ||
- | \label{tableAdditionalArgumentsEeros} | + | |
- | + | ||
- | \begin{tabular}{@{}lll@{}} | + | |
- | + | ||
- | \toprule | + | |
- | + | ||
- | Key & Typical value & Description | + | |
- | + | ||
- | \textbf{topic} | + | |
- | + | ||
- | \textbf{msgType } & sensor\_msgs:: | + | |
- | + | ||
- | dataField & scan\_time | + | |
- | + | ||
- | callOne | + | |
- | + | ||
- | callOne | + | |
- | + | ||
- | queueSize | + | |
- | + | ||
- | useEerosSystemTime | + | |
- | + | ||
- | \end{tabular} | + | |
- | + | ||
- | \end{table} | + | |
- | + | ||
- | + | ||
- | + | ||
- | In table \ref{tableImplementedMsgTypes} are all currently implemented message types and associated data fields. | + | |
- | + | ||
- | If your desired message type is not implemented yet, you can easily implement it yourself. | + | |
- | + | ||
- | See chapter \ref{sectionImplementMsgType} for a guide to implement additional message types and data fields in \textit{ros-eeros}. | + | |
- | + | ||
- | + | ||
- | + | ||
- | \begin{table}[] | + | |
- | + | ||
- | \centering | + | |
- | + | ||
- | \caption{Currently implemented message types in ros-eeros} | + | |
- | + | ||
- | \label{tableImplementedMsgTypes} | + | |
- | + | ||
- | \begin{tabular}{lll} | + | |
- | + | ||
- | \cline{2-3} | + | |
- | + | ||
- | HAL type & msgType | + | |
- | + | ||
- | AnalogIn | + | |
- | + | ||
- | & sensor\_msgs:: | + | |
- | + | ||
- | & & angle\_max | + | |
- | + | ||
- | & & angle\_increment \\ | + | |
- | + | ||
- | & & time\_increment | + | |
- | + | ||
- | & & scan\_time | + | |
- | + | ||
- | & & range\_min | + | |
- | + | ||
- | & & range\_max | + | |
- | + | ||
- | AnalogOut & std\_msgs:: | + | |
- | + | ||
- | & sensor\_msgs:: | + | |
- | + | ||
- | & & angle\_max | + | |
- | + | ||
- | & & angle\_increment \\ | + | |
- | + | ||
- | & & time\_increment | + | |
- | + | ||
- | & & scan\_time | + | |
- | + | ||
- | & & range\_min | + | |
- | + | ||
- | & & range\_max | + | |
- | + | ||
- | DigIn & sensor\_msgs:: | + | |
- | + | ||
- | DigOut | + | |
- | + | ||
- | \end{tabular} | + | |
- | + | ||
- | \end{table} | + | |
- | + | ||
- | + | ||
- | + | ||
- | You can find a complete example, including a *.json file, in the eeros framework (/ | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | \subsection{How to use} | + | |
- | + | ||
- | Refere to the documentation of the EEROS HAL\footnote{http:// | + | |
- | + | ||
- | + | ||
- | + | ||
- | First initialize the HAL in your main function: | + | |
- | + | ||
- | \lstset{language=c} | + | |
- | + | ||
- | \begin{lstlisting} | + | |
- | + | ||
- | ... | + | |
- | + | ||
- | int main(int argc, char **argv) { | + | |
- | + | ||
- | ... | + | |
- | + | ||
- | // HAL | + | |
- | + | ||
- | // //////////////////////////////////////////////////////////////////////// | + | |
- | + | ||
- | HAL& hal = HAL:: | + | |
- | + | ||
- | hal.readConfigFromFile(& | + | |
- | + | ||
- | ... | + | |
- | + | ||
- | \end{lstlisting} | + | |
- | + | ||
- | + | ||
- | + | ||
- | Add the header file to your control system: | + | |
- | + | ||
- | \lstset{language=c} | + | |
- | + | ||
- | \begin{lstlisting} | + | |
- | + | ||
- | #include < | + | |
- | + | ||
- | \end{lstlisting} | + | |
+ | ===== How to Use the ===== | ||
You can now declare \textit{PeripheralInputs} and \textit{PeripheralOutputs}: | You can now declare \textit{PeripheralInputs} and \textit{PeripheralOutputs}: | ||
- | \lstset{language=c} | + | <code cpp> |
- | + | ||
- | \begin{lstlisting} | + | |
PeripheralInput< | PeripheralInput< | ||
Line 212: | Line 65: | ||
PeripheralOutput< | PeripheralOutput< | ||
- | + | </ | |
- | \end{lstlisting} | + | |
Line 219: | Line 71: | ||
Call the constructor of the peripheral IOs with the \textit{signalID} used in the *.json file | Call the constructor of the peripheral IOs with the \textit{signalID} used in the *.json file | ||
- | \begin{lstlisting} | + | <code cpp> |
class MyControlSystem { | class MyControlSystem { | ||
Line 242: | Line 94: | ||
} | } | ||
+ | </ |
eeros_architecture/hal/config_ros.txt · Last modified: 2023/02/27 14:44 by ursgraf