Recently, we want to achieve robot auto-navigation by using laser SLAM based on ROS system.but we found that ROS could not meet the requirements for real-time response. We are making a mobile car platform（based on ubuntu16.04 and ros kineckt）, requiring the speed of the car can reach 2m/s, and in the car to rely on laser sensors for slam and obstacle avoidance. By testing, the laser sensor sends a stop command to the drive from an obstacle that detects the distance from the 4m to the system response, and the time of the process (T1) is from 40ms to 100ms. However, the possible maximum of T1 is not 100ms, may be greater, this period of time is uncontrollable. We want T1 to have a controllable maximum (such as 50ms), and the smaller the maximum, the better. We try to give Ubuntu RT_PREEMPT real-time patch, and lock memory,set the process priority and schedule strategy to the all the nodes we used. But there is no improvement.
Through investigation，we now have two plans:
1 learn and use Open RObot COntrol Software（OROCOS-RTT）
2 learn ros_control (realtime_tools) method.
Ask experienced predecessors to give advice, help, or different solutions.thanks for your advise.