This week I want to tell you about contribution to open source project. There are a lot of different tips “how to start contributing”, “how to find a project”, “how to install git (or other version control system)”. Here are some tips from my experience:
- The most important thing is to be interested in the project. You should want to improve it. For instance, you use some program. It is very useful. Then you want to upgrade it for your needs. If it is a useful feature you can share your changes with other users. There is another example: you want to learn some tools. You go through the tutorial step by step. You have a problem with a step and you understand that the author has skipped something or information is outdated. You spent a lot of time to find an answer. You can update this step (or even a line) and the next user won’t have the same problem. These are only two examples and your goal can be different.
- You should create an account on github or bitbucket, or anything else where the project is situated.
- You should search carefully for the instructions how to contribute to this project. It can save your time and time of other contributors. For instance, in gazebo tutorial you can find “Development” section. There are three lessons: “Add/Modify tutorials”, “Contribute code”, “Development process”. You can find rules there.
- The most common method is to fork the repository and then work with it. After finishing work you can create a pull request. Don’t worry if you change something wrong! Firstly, you can revert the changes. Secondly, your changes are available only for you. The pull request has to be approved before other users will be able to see your changes. Of course, check your changes twice before uploading them :).
- You can edit a file online. It is very comfortable when you want to edit articles. You can find instructions how to use this feature in bitbucket help page. You can edit the files on github in the similar way.
This week I have also learned how to launch robots (not TurtleBot) in gazebo world, how to move them. I have used the code from tutorial and I have had a problem: “the cube does not move linearly”. You can see it in this video:
Then my mentor and I discussed it. He advised to change the gravity in the world. The cube starts moving as I wanted. You can see it in this video:
I have not understood that physic rules really work in gazebo before this case. Then I have encountered with differential drive in code. And now I understand how it is realized!
I think that it is interesting to have two TurtleBots in one gazebo world. It takes some time to understand how simulation works. Now I am learning more complicated features of using gazebo.