What is Ros2?

Ros History

Ros was created back in 2007, as a means to create a collaborative open source robotics framework for software developers
-Industries which began to adopt robotic systems grew tremendously
ex. Manufacturing, Mobile outdoor robotics, Drone swarms, and Self-driving cars
-Ros2 was created as a new and improved version which could scale in the newly founded applications

What does Ros2 offer?

Example: Simple Mobile Robot
< 1)Motors
Each motor controlling both wheels on each side of the robot
2)Camera
A vertically mounted camera which has a motorized base so that the camera can turn
3)Sensors
Sensors on board that gives us information about robot’s position
GPS sensor and IMU sensor gives the robot’s orientation and acceleration data

Ros2 feature

Data Distributed Service(DDS)
Communication pipeline which can interface with all of our code
Nodes
Executed code files which utilize Ros functionality
-Two python scripts utilize the Ros2 DDS to send information between them
-DDS also allows for security configurations so that you can secure the data you send between the nodes

How nodes communicate with each other

1)Publisher Subscriber Method
-Arrow: Data flow direction for the Ros DDS communications
-camer.py: Wants to make available images for Ros DDS communications
Publishes images to anyone who wants to listen in or subscribe to this particular data
-Topic: Individual communication pipelines
ex. /_front_camera
-Message: The information node publishes
ex. Message type is an image
-The architecture is very scalable, so one publisher can send messages to multiple Subscribers
2)Service
-survey.py: survey node
ex. Service client that sends a request to turn the robot camera 45 degrees
-camer_mover.py: camera mover node
Request is received by the camer mover node which is a service server, which after completing the request, will send back a response
ex. Response is an image the camera took after turning the camera to the desired angle
3)Actions
-way_point_nav.py: Node which wants to command our robot to travel to a certain latitude longtitude coordinate to take a picture
-contoller.py: Action server will process the goal, and send progress updates to the client
feedback: progress updates
-Action server sends back feedback until the goal is reached
ex. Send back data on how far away is from the goal

Reference:
https://www.youtube.com/watch?v=7TVWlADXwRw&t=37s