The installation of the Gateway components consists of two parts. First, the two frameworks ROS and SmartSoft have to be installed. Second, the gateway components must be compiled. After that, the navigation scenario with Care-O-bot in Gazebo can be executed as described in User Guide.
Installation of the two Frameworks
Requirements to run the Gateway components:
- SmartSoft: see installation instructions for CORBA/SmartSoft
- ROS: see installation instructions for ROS-Electric (also works with ROS-Diamondback)
The COB-Experimentation-Days tutorials introduce how to set-up the Care-O-bot environment.
- Optional: MDSD/SmartSoft is required to modify the component's models and the scenario deployment.
Build the Gateway Components
At the time of writing there are two gateway components available in SmartSoft (and one further gateway to use a Katana manipulator is under construction).
In order to use these gateway components the two frameworks ROS and SmartSoft must be installed first as introduced above. After that, the ROS_PACKAGE_PATH must be adjusted to introduce the Gateway components to ROS as regular ROS-nodes:
$ echo "export ROS_PACKAGE_PATH=\$ROS_PACKAGE_PATH:\ > \$SMART_ROOT/src/components:\$SMART_ROOT/src/utility" >> $HOME/.bashrc $ bash
This enables the ROS environment to find gateway components as regular ROS components. Before building gateway components itself, the utility smartROSbridge has to be compiled:
$ roscd smartROSbridge/src $ make ros
This utility consists of two parts. The first part is the bash script "generate_ros_dependencies.sh" which reads the dependency declaration from a "manifest.xml" file and recursively generates corresponding compiler and linker flags. These flags are then stored in the file "ros.mk". The script is used by all gateway components and by the utility itself to resolve relevant ROS dependencies. The second part of the utility is the implementation of several conversion methods between ROS messages and communication objects of SmartSoft. The command "make ros" builds a library of these methods, which is later used (and linked against) by the gateway components.
Now the gateway components can be compiled:
$ roscd SmartROSBaseGateway/src $ make ros $ roscd SmartROSLaserGateway/src $ make ros
Hint: The special make-target "ros" has to be compiled only once after a fresh checkout of a gateway component. After that, the gateway component can be normally recompiled with "make clean all", "make all", "make distclean all" or simply with "make".
Next, the navigation scenario can be started.