Improvements to the robot

When working with robots, it can sometimes be hectic and tedious to get them to work just the way we want them to. Let's look into some improvements that we could consider to make our application successful enough in certain aspects:

  • Use of a high-end CPU- or GPU-based compute: The preceding application should work just fine in general. But since robot algorithms are mostly based on probabilistic approaches, most of the solutions are assumption-based. Hence, there are possibilities for errors or the application to not work as expected. At times, if you have a lower-spec computer, there are chances that Gazebo might crash and might cause you trouble when you view the complete application.
  • Tuning the navigation stack for better localization: There are some best practices that can help us tune certain parameters in the algorithm. This helps us get the application up and running successfully in most cases. Take a look at the navigation tuning guide by Kaiyu Zhen (http://wiki.ros.org/navigation/Tutorials/Navigation%20Tuning%20Guide) and the document available at https://github.com/zkytony/ROSNavigationGuide/blob/master/main.pdf to learn how to tune the robot base parameters.
  • Making the application interesting by finding the package directly: As for our application, instead of providing fixed poses for the arm to pick the object of interest, try to use find_2d_package, which was explained by Lentin Joseph in the first edition of this book.
  • Sensor fusion to improve accuracy: In case you want to improve the odometry accuracy you receive from the mobile base, try sensor fusion. You could add an IMU plugin and combine its information with your wheel encoder, that is, /odom. The IMU plugin example can be found here: http://gazebosim.org/tutorials?tut=ros_gzplugins#IMUsensor(GazeboRosImuSensor). Once IMU is defined, you can make use of a filter such as the Kalman filter to combine the IMU and encoder value. The result would be a steady pose value without any possible spikes in values due to the hardware constraints or environment parameters. Check out the following ROS packages for that: http://wiki.ros.org/robot_pose_ekf and http://wiki.ros.org/robot_localization.
  • Improved mapping options: Getting an accurate map can also be challenging. Try other open source mapping packages such as Karto (http://wiki.ros.org/slam_karto) and Google cartographer (https://google-cartographer-ros.readthedocs.io/en/latest/) SLAM for mapping the environment.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.118.120.109