Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] SLAM - Making URDF of our quadcopter model. #14

Open
Srujan-D opened this issue May 28, 2021 · 0 comments
Open

[WIP] SLAM - Making URDF of our quadcopter model. #14

Srujan-D opened this issue May 28, 2021 · 0 comments
Assignees
Labels
good first issue Good for newcomers

Comments

@Srujan-D
Copy link
Member

Srujan-D commented May 28, 2021

Brief Info:-

This issue will help not only the State Estimation subsystem but also the Motion Planning subsystem. I will cover the State Estimation aspect of the issue here.

First, head over to this link and read the short article to understand what State Estimation means and why it is important.

You are encouraged to read this wonderful roadmap prepared by Mehul.

From the doc you just read, we might not need Gmapping, SLAM Toolbox, Google Cartographer, Navigator 2, or Hector SLAM. So there is no need to explore these immediately for the quadcopter project. One of the most important takeaways from it, though, is that you WILL HAVE to learn C++. All the SLAM packages are written in C++, and for understanding the code as well as modifying it later, we will need good C++ skills.

What we have done so for:-

  • Till now, we have explored a lot of algorithms for State Estimation. You can read about Kalman Filter, Extended Kalman Filter (EKF), Unscented Kalman Filter (UKF), Particle Filter (PF), etc. We will obviously provide resources for these, but more on that later.
  • We had earlier tried to implement a combination of EKF and PF by scratch, but seeing the huge challenges beyond coding the basic algorithm, we have now decided to use the existing SOTA packages built for this.
  • We are currently exploring the fusion of RTAB-Map and the robot_localization package. RTAB-Map has a localization stack which we will use for this purpose. robot_localization has two algorithms, EKF and UKF. We will be using EKF as it is computationally less expensive and provides almost equal estimates as compared to UKF. We might also use the AMCL package with this combination. After testing each algorithm individually and their fusion, we will think about the potential modifications to the codes to improve the state estimates.

What we are planning to do next:-

Now coming to the immediate subtask for the subsystem. This subtask will be of great help to not only the State Estimation Subsystem but also the Motion Planning Subsystem.

  • Our current quadcopter model, i.e. a modified version of the if750a has been written as a .sdf file. We need a .urdf file of the same, as only the .urdf file type is compatible with some of the packages we have chosen to use.
  • One can easily convert a urdf file to a sdf file using gz sdf -p MODEL_URDF.urdf > MODEL_SDF.sdf. Unfortunately, one cannot go the other way round. So you will have to convert each line of the sdf file into the urdf compatible syntax. Once you have converted one part of the sdf file to urdf (e.g., some link, or some joint, etc.), you can check if the conversion is valid by running gz sdf -p MODEL.urdf. The output of this command should be the same as the corresponding code from your sdf file.
  • You can find a lot of tutorials on Gazebo’s and ROS's site. These will help you understand how to write the urdf and sdf files. Googling will go a looong way.
  • You can even find a partially completed urdf file in the repository. Your job is to complete that implementation and make a working .urdf file of the robot.

After that, we will be able to use robot_localization and MoveIt! (a package for motion planning) on our quadcopter. More details will be provided on how that can be done after the completion of this subtask.

@Srujan-D Srujan-D self-assigned this May 28, 2021
@Srujan-D Srujan-D added the good first issue Good for newcomers label Jun 4, 2021
@Srujan-D Srujan-D changed the title [WIP] Making URDF of our quadcopter model. [WIP] SLAM - Making URDF of our quadcopter model. Aug 13, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

1 participant