This repository lets your ROS software communicate with IOP services. You can find an overview of all supported services at doc/other_packages.md.
IOP package | Kinetic / Melodic / Noetic | Foxy / Galactic |
---|---|---|
iop_core | ||
iop_msgs | ||
iop_platform | ||
iop_sensing | ||
iop_sensing_clients | ||
iop_gui | ||
iop_jaus_manipulator | ||
iop_jaus_manipulator_clients | ||
iop_jaus_mobility | ||
iop_jaus_mobility_clients | ||
iop_jaus_sensing | ||
iop_jaus_sensing_clients | ||
iop_jaus_ugv | ||
iop_jaus_ugv_clients | ||
iop_examples | ||
iop_node_manager | ||
iop_wireshark_plugin |
ROS/IOP Bridge uses JAUS Toolset (JTS) to generate basic C++ code from JSIDL definitions of JAUS. You find the JAUS Toolset desciption here. Currently only a part of sources of JTS is used. This part will build while you build the ROS/IOP Bridge sources. For successful build JTS needs follow external software:
Install OpenJKD:
sudo apt-get install default-jdk -y
If you prefer Oracle Java, see here
Make sure, that your catin workspace is set up correctly:
- Using catkin
- Using catkin_tools
For easier download of bridge packages install wstool:
sudo apt-get install python-wstool -y
The sourcecode of the ROS/IOP-Bridge is splitted into different Git repositories. Depending on your configuration you need a different set of packages. An overview of existing packages you find here
For download the ROS/IOP-Bridge sources we use the wstool:
If you do not already have an .rosinstall go into you ROS workspace and call
cd catkin_ws/; wstool init src/iop
Merge the iop.rosinstall file and fetch code.
wstool merge -t src/iop https://raw.githubusercontent.com/fkie/iop_core/master/iop.rosinstall
wstool update -t src/iop
Go to the root folder of your ROS workspace and type:
rosdep install --from-paths src --ignore-src
Go to the root folder of your ROS workspace and type:
catkin build
If some errors occur while JTS build regarding missing pthread and timer the libpthread and librt have to be included. This can be done by replacing LIBS=[] by LIBS=['-lpthread', '-lrt'] in jaustoolset/GUI/templates/Common/SConstruct
For convenient usage of ROS environment use the node_manager
of multimaster_fkie
. You can install it from https://github.com/fkie/multimaster_fkie using
wstool merge -t src/iop https://raw.githubusercontent.com/fkie/multimaster_fkie/master/fkie_multimaster.rosinstall
wstool update -t src/iop
rosdep install --from-paths src --ignore-src
On each host you run IOP components you need to start a Node Manager
. There are two alternatives:
This Node Manager is part of JausToolSet and included in iop_core. You can start this Node Manager with following command:
bash rosrun jaustoolset jaus_node_manager.sh start
To exit the script press
CTRL+C
or typebash rosrun jaustoolset jaus_node_manager.sh stop
in a new terminal window. See example below how to integrate the JTS-nodeManager
into launch-file.
This Node Manager is written in Python and is an alternative development to JTSNodeManager. You need to install it as separate package from https://github.com/fkie/iop_node_manager using
wstool merge -t src/iop https://raw.githubusercontent.com/fkie/iop_node_manager/master/iop_node_manager.rosinstall
wstool update -t src/iop
rosdep install --from-paths src --ignore-src
catkin build
For a simple example with turtlesim see fkie_iop_cfg_sim_turtle package.
You find other examples in iop_examples repository.