Actual, physical Implementation of a robot system using Ros
Hello, I am a beginner to Ros and trying to conceptualize how a physical robot system would work with Ros. To give a concrete example, say you have a setup like this:
Arduino with an imu and motors, which connects to a raspberry pi that does SLAM and object detection. The idea is that the raspberry pi ultimately controls the motors to make them move in the direction of the target.
Nodes and topics:
- motor (subscribes to Nav/actuators/motor)
- LiDAR (publishes to mapping/LiDAR)
- Imu (publishes to Nav/sensors/ imu)
I have 2 questions.
- how do the motors publish? motors and sensors are dumb, in the sense that you can’t upload a Python / cpp rcl script to their firmware/ software to make them nodes.
- if the motors are on the Arduino, then do i need to have micro Ros installed on the Arduino ? Or can the pi control the motors using i2c / SPI ? Using this method:
- are the motors no longer part of the Ros graph?
- Is there a way to do keep them in the Ros graph ?
I really appreciate anyone’s input, I have been struggling to conceptualize how to actually implement a physical Robot system using Ros. I’ve done myriad tutorials but I am still struggling to make the connection to the real world application.