The Linux-based Robot Operating System ROS is becoming more and more popular in service robotics applications. Therefore our engineers have chosen ROS for the semi-autonomous, mobile service robot we have developed to test our wheel drives in everyday use. However, two obstacles needed to be overcome: firstly, the integration of CANopen devices is not yet standardized, and secondly, Linux is not real time-capable without modifications.
For this reason we split the tasks: The motors and sensors are connected to Nanotec's newly developed CAN master EM5, which controls the motors in real time. On a Linux-embedded PC, ROS calculates the target positions of the individual wheels with the help of kinematics and a map and sends them to the EM5 via Ethernet. The master will then interpolate and monitor these values. As a result of the precisely timed clock rate of one millisecond, with which the EM5 cyclically specifies the target speed of the wheels, slippage of the wheels due to temporal jitter can be prevented. Furthermore, the master is equipped with eight ultrasonic sensors for collision avoidance. Their data is also relayed to the ROS via Ethernet and synchronized with the data of the integrated laser scanner. Diagnostic information can be retrieved through the integrated touchscreen of the EM5.
ROS teaming up with a CANopen master and a motor with integrated controller results in an open, simple and quick-to-assemble modular system for service robotics applications that nonetheless delivers top performance.