We didn't provide the specific API to check if a parameter exists. There are many ways to get that information.
First is to list the parameters and check if your parameter is in the list: http://docs.ros2.org/bouncy/api/rclcp...
Or get even more information in describe_parameters: http://docs.ros2.org/bouncy/api/rclcp...
The third is to ask for the parameter and check the return code: http://docs.ros2.org/bouncy/api/rclcp...
Depending on your use case each different one has tradeoffs. If you're going to be checking more than one parameter, the listing is likely valuable. If you want to do more the descriptions are valuable. And lastly if you just use the return code you can integrate the fallback behavior inside your accessing logic.
There's no reason I'm aware of that we don't have that function, probably just haven't needed it yet. I am also working on some improvements right now so that you can have read-only parameters. Part of that is an explicit declare step for parameters, which will make "exists" make more sense.
Here's the pull request: https://github.com/ros2/rclcpp/pull/495 , it was originally started by Shane, but I'm trying to resurrect it right now. Maybe I can add an "exists" or "has" or "is_declared" like function at the same time.
@William That's what I wanted to know. If you don't end up rolling it into that PR, please ping me and I'll try to make one.