On which package do I have to put my nodes?
I'm using ROS Melodic and Gazebo 9.9.0 in an Ubuntu 18.04.2 LTS bionic.
This question is about best practices and naming convections.
I have the following packages for my project:
- nav_astar_description: provides the 3D model of the robot and the description of joints and sensors.
- nav_astar_gazebo: provides launch files and worlds for easy starting of simulation.
- nav_astar_control: configures the ROS interface to my robot's joints.
If I want to create a C++ node to control the robot with the keyboard. By the way, I'm learning ROS and this is why I'm writing a keyboard controller (and because the current ones don't fit my needs).
Where do I have to create it and with which name?
Maybe I will need to create more than one node.
This doesn't address your question, but:
If you're using a standard interface for your controllers (such as a geometry_msgs/Twist), you should be able to reuse something like teleop_twist_keyboard (or perhaps even teleop_twist_joy). That would save you writing it yourself, and reuse is a best practice.