ROS is a community-driven project that represents the combined efforts of many, many contributors. Do you want to contribute? Outstanding. Here are some ways that you can get involved.
If you're a newcomer to the ROS community, one of the first ways to contribute is to join the ROS Answers Q&A forum and participate, both by asking your own questions and answering others' questions when you can.
If you're using a piece of ROS software (or, really, any open source software) and run into a problem, it is very helpful to the community if you open an issue against the package to make sure that the developers are aware of the problem. If you have the ability to track down the problem and create a patch that fixes it, please do so! Issues will almost always be handled more quickly when they come with patches. You can find the issue trackers for the main ROS components here.
Many of ROS's capabilities were developed because of the needs of a specific user, whether it was for an experiment, a demonstration, or a product. By releasing their capabilities to the community, the authors have enabled other users to benefit from them, to discover other use cases, and to have the opportunity to contribute fixes and improvements . This can be true of any capability, whether it's a library, a script, or a full-blown application. A useful capability can quickly be taken up by thousands of ROS users around the world. If you've built something useful, and you can share it, please do! A good place to announce your work is the ROS Discourse instance.
One of the most important roles in the ROS community is that of package maintainers. Package maintainers are the people who release packages into specific ROS distributions and verify that they integrate properly. Early in a package's lifecycle, the maintainer is usually the original author. But over time authors move on, potentially leaving valuable code without a maintainer. This is where a maintainer can pick up a package and take responsibility for keeping it available to the greater ROS community. Note that maintainership is not a commitment to do new development on a package. Maintainership can be limited to considering patches for bug fixes and managing releases. With each ROS distribution, a call for maintainership is circulated on the ros-release@ mailing list. If you are interested in becoming a maintainer, please join the ros-release@ list.