There are multiple ways to make your vehicle ROS/ROS2 compatible. You don't necessarily need to use ros2_control to get an autonomous vehicle working. I would suggest following steps towards reaching a fully autonomous vehicle -
- Make sure you can operate the vehicle with ROS2 velocity commands (geometry_msgs/Twist). This will involve writing some ROS2 driver on top of a serial/CANbus/Modbus/other interface
- See if you can get wheel Odometry out of the vehicle, at this point you can verify how good the vehicle is at tracking the velocities sent in step 1
- What accuracy do you need for your application? As per that you can make decision about using a 3D-LiDAR/Camera or just GPS+IMU (and some safety related sensors of course)
- Depending on previous steps, setup appropriate transformations (TF2) as per nav2 requirements.
- Would be good to have all this validated with nav2 in a simple Gazebo/Iginition simulation
- If everything works, just put it on the robot and it should be good to go (several hours of troubleshooting later)
If it is just a point to point navigation without obstacle avoidance or LiDAR based localization, you don't necessarily even need nav2. Neither ros2 control, or nav2 are necessary for having a ROS2 powered autonomous robot. Hope it helps.