Skip to content

Software Improvements

gcielniak edited this page Sep 26, 2023 · 5 revisions

This is a list of possible improvements to our simulator for those proficient with ROS2 and robot development. To contribute, fork the limo_ros2 repository and when your functionality is ready, make a pull request. Please ask a member of staff for more details.

  • There is a discrepancy between the topics generated by the real and simulated robots. The simulator would benefit from additional topic remappings aligning the simulation with the real robot.

  • The robot's 3D models are quite efficient but also very basic as these were created using automated 3D shape simplification. There are high-fidelity source models provided by the manufacturer which could be used for the manual creation of a better-looking and yet still simplified 3D model in software such as Blender.

  • The current differential drive simulator uses a Gazebo plugin which does not feature cmd_vel timeout option. This makes the behaviour of the simulated robot to cmd_vel commands different than in reality. There is a way to implement that functionality through a ros2_control diff_drive_controller plugin, like in the following example. Or Marc's twist watchdog node.

  • The current simulator does not support Ackerman steering as there is no standard Gazebo plugin. This can be implemented using the ackermann_steering_controller package.

  • The current structure of the robot software including description, bring-up, control and Gazebo simulation is very convoluted. There are some great ROS2 implementations of other mobile robots which are much cleaner, follow good practice and can be used to improve the current structure. For example, Clearpath Robotics Husky or TurtleBot.