User Tools

Site Tools


eeros_architecture:hal:config_ros

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
eeros_architecture:hal:config_ros [2017/11/30 19:43] grafeeros_architecture:hal:config_ros [2023/02/27 14:44] (current) – [Configuration File for ROS] ursgraf
Line 1: Line 1:
 ====== Configuration File for ROS ====== ====== Configuration File for ROS ======
  
-^Key^Value+As described in [[getting_started:ros#Using ROS through EEROS HAL|]] you can directly map EEROS signal onto ROS messages through the EEROS HAL. The wrapper library [[eeros_architecture:hal:hardware_libraries#ros|EEROS-ROS]] is used to connect the EEROS HAL with ROS topics. \\ 
-| | |+The EEROS HAL digital and analog inputs and outputs can be defined as usual in a JSON file. In this file you specify into which message type these signals get packed. There are hundreds of different message types in ROS and it is possible to create custom types. For this reason, we currently support only a few by default. If one wishes to use other message types, the wrapper library can easily be extended. 
 + 
 +WARNING  
 +The naming of messages changes from ROS1 to ROS2, e.g. 
 +  * ROS1: std_msgs::Float64 
 +  * ROS2: std_msgs::msg::Float64 
 +The information below is for ROS1. Change accordingly for ROS2. 
 + 
 +The keywords for the EEROS-ROS wrapper library must be set as follows: 
 +Keyword Type ^ Remarks 
 +library string libroseeros.so (include version e.g. *.so.0.1.2) | 
 +| devHandle | string | e.g. testNodeHAL, this is the name of the node created by the HAL | 
 +| type | string | e.g. AnalogIn / AnalogOut / DigIn / DigOut | 
 +| additionalArguments | string | see table below | 
 + 
 +===== Additional Arguments ===== 
 +The ''additionalArguments'' are special arguments containing additional information about the communication with a ROS network. The next table shows all currently available arguments. ''topic'' and ''msgType'' are mandatory. 
 + 
 +^ Keyword ^ Type ^ Remarks ^ 
 +| topic | string | topic to listen or subscribe | 
 +| msgType | string | message type | 
 +| dataField | string | data member of message | 
 +| callOne | boolean | newest availabe message is fetched (false), oldest not yet read message is fetched (true) | 
 +| queueSize | int | size of buffer, default = 1000 | 
 +| useEerosSystemTime | boolean | use system time or timestamp of message | 
 + 
 +An example for an additional argument could be: 
 +<code> 
 +  "additionalArguments": "topic=/testNode/TestTopic3; msgType=sensor_msgs::LaserScan; dataField=scan_time; callOne=false; queueSize=100" 
 +</code> 
 + 
 +===== 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::Float64 | - | 
 +| ::: | sensor_msgs::LaserScan | angle_min | 
 +| ::: | ::: | angle_max | 
 +| ::: | ::: | angle_increment | 
 +| ::: | ::: | time_increment | 
 +| ::: | ::: | scan_time | 
 +| ::: | ::: | range_min | 
 +| ::: | ::: | range_max | 
 +| AnalogOut | std_msgs::Float64 | - | 
 +| ::: | sensor_msgs::LaserScan | angle_min | 
 +| ::: | ::: | angle_max | 
 +| ::: | ::: | angle_increment | 
 +| ::: | ::: | time_increment | 
 +| ::: | ::: | scan_time | 
 +| ::: | ::: | range_min | 
 +| ::: | ::: | range_max | 
 +| DigIn | std_msgs::BatteryState | present | 
 +| DigOut | std_msgs::BatteryState | present | 
 + 
 +You can find a complete example, including a *.json file, in the [[getting_started:tutorials:start|]]. 
 + 
eeros_architecture/hal/config_ros.1512067391.txt.gz · Last modified: 2017/11/30 19:43 (external edit)