Walking through the beginner tutorials (http://wiki.ros.org/ROS/Tutorials) is a good start for any further research. In my opinion, it will be enough for you to start working on low-level controlling after understanding the architecture of ROS (included in beginner tutorials).
For example , doing serial communication between a Linux machine and your device:
- A simple solution is building a publisher and a subscriber.
- You will need a serial communication library to do the communication jobs, for example the serial package from William Woodall.
- You'd like to know how to install a package, then maybe learning about Git is good (going through chapter 1 to 3 will be enough for a quick start). And you'll find directly cloning the package from GitHub makes it a submodule (don't bother it now, mark it until you come across such problem later).
- You might want to develop your own library, like a C++ class. Then it is good to know where to put your header file and source files. A lot of related questions are asked, here is an example.
- However you still need to manually link the library with the executable target, by working on the CMakeList.txt file (here and here) and the package.xml file.
- Based on the above, search more on the Internet.
Wish this help you.