How does ROS work with real/actual robot in general? How's the process when we send a data to the actual robot?
These are basic questions. I've been wondering how does ROS work with real robot, in GENERAL. Please help me to clarify these things
- When we install ROS packages, we install it in our PC, and not in the actual robot. So the ROS library, driver,etc isonly in our PC, and not in the microprocessor of the robot. Is that right?
- Which means that only our PC knows/recogizes ROS message types (e.g. cmd_vel) ,but the actual robot does not recognize the ROS message types. The actual robot only recognizes primitive data types (e.g. int) or whatever data types are present in its microcontroller.
- So when we publish message to a topic e.g. cmd_vel to velocity topic. This topic is only known in our PC, and not in the robot's computer?
- For a ROS package (e.g. navigation) working , the ROS package actually do all the works in our PC and just send result or information to the actual robot right.
- So when we use/code all these ROS packages, we actually code just on our PC, meaning that we do not change anything on the robot's microcontroller itself. The robot has its own microcontroller and program, and what we do is just sending info to the microcontroller from our PC. Is that correct?
- For a specific robot, Where/how to find out what data(message, command) an actual robot expects to receive?
Please elaborate on those things. If possible, please give step by step example on those things e.g. when sending velocity command to an actual robot, how's the process? The data that we send from our PC is of cmd_vel type. does the robot knows this type, or it is being converted first in our PC before sending? and after the data is received on the robot, does the robot has its own program to react on that data?
PS: I've worked with a drone with ROS before. And I got the impression that we only send info to the drone.. cause I didn't install ROS to the drone, I just install it to my PC. I'm so confused how do we send the info to the drone?