EMROS an Overview
The EMROS software is based on the ROS (Robot Operating System) open-source platform, which was developed for robotics applications. It enables to control Nanotec's "drive and technology platform RP-NTH-2D01-C1-Sx-Px" from ROS.
The key tasks of the EMROS software are:
- The conversion of ROS topic cmd_vel (travel commands that are sent by your higher-level ROS system) into movements of the motors of Nanotec's "drive and technology platform RP-NTH-2D01-C1-Sx-Px"
- Providing the odometry data to your higher-level ROS system under the topic odom. The odometry data is an estimate of the position based on the actual movements of the vehicle.
- The interaction with the powerboard of RP-NTH (display and forwarding of the data, e.g., of the battery status) The following figure shows the general design of the drive and technology platform:
Part of the software, EMROS-ROS, runs on your on-board computer with Linux and is responsible for
calculating the necessary drive speeds. EMROS-ROS sends the target values for the individual wheel
drives to the EMROS-EM5 part of the software via Ethernet (using a simple self defined UDP based protocoll named "EtherProtocol").
EMROS-EM5 is the software within the freely programmable part of the EM5 CANopen master.
Because ROS (ROS 1) is not currently real-time capable, the EM5 controls the drives in a temporally precise cycle via CANopen.
The drives (CANopen slaves) receive the target values (target velocity) via CANopen and perform the
movements. Their current data (actual velocity) is processed by EMROS-EM5 and sent to EMROS-ROS.
The following figure shows the communication sequence between the components of the system: