When or why do you have to use ROS?
Hello, I'm trying to fully understand the usefulness and the applications of ROS before I start learning it myself.
So I kind of understand that ROS is used in applications where there's a lot going on as in autonomous robot that has various sensors and actuators (turtlebot, manipulators, etc.). I guess it facilitates robot development because you don't have to "invent the wheel."
However, I am confused on when specifically ROS has to be used or when it can be used efficiently. For example, if I have a custom 3D printed 6 DOF manipulator, I could probably use an arduino or a RPI to control the manipulator. But there are a lot of commercial hobby/educational level robot arms such as the Niryo robot that support ROS.
In this case what are the benefits of incorporating ROS? Is it the fact that there is a package ready to be used by the user? If so, can you change some parameters of the ROS package to try various robot controls or fit that ROS package to ur own custom 6 dof robot?
Also, if you have a 4 legged robot with a LIDAR, camera, and a bunch of other sensors (basically a spot robot from Boston Dynamics), can you make the robot without using ROS? I think the answer probably going to be a 'yes' because you can download "something" from the open-source ROS community and it will have everything ready for you?
I guess I am still unsure of how or to what extent you can basically utilize the open-source to help you make a robot? Like how much easier will developing a turtle bot with a manipulator be if you had the access to the open-source ROS community? I mean I wouldn't expect there to be an already-written code you can just copy and paste. What more is there to develop from an already written code?
Sorry in advance for the unclear question :)
Asked by sambap on 2022-11-22 01:50:20 UTC
Answers
One benefit of ROS is definitely the fact that there are many ready-made ROS packages for a variety of types of hardware you may want to use. Since you can get a robot that comes with a ROS package and a camera that also comes with a ROS package, it makes it a lot easier for you to write code (in ROS) that communicates between the two.
Another benefit is that ROS creates a uniform system for communicating between different parts of your system. It's actually pretty hard to self-implement a communication protocol across a complex system, so it's nice to not have to do that yourself.
ROS also includes coordinate transform libraries and visualization libraries, so those can be super helpful.
I think you could always make a robot without ROS, but unless it's a pretty simple system it would be a lot of unnecessary work to try to do that.
Asked by jklaben on 2022-11-22 15:33:31 UTC
Comments