1
$\begingroup$

I am a junior web developer working mainly with Bash, Javascript, and Drupal. I'm more fascinated writing scripts and programs that do certain concrete actions instead of querying and manipulating databases.

I do desire to step into robotics in the future (after completions) and had the following question in my mind:

Do robots usually have databases (similar to these of websites in quality and quantity) and if so, please give a practical example what are they using for? Maybe in the context of machine vision or machine motion.

Update (13/11/19):

All the answers here are good in my opinion. If I could I would accept all of them, I suggest to start by reading the answer of user16549 which makes an introduction to DBs in robots, then continue to the answer by FooTheBar, and then read other answers.

$\endgroup$
1
  • $\begingroup$ All the answers here are good in my opinion. If I could I would accept all of them, I suggest to start by reading the answer of user16549 which makes an introduction to DBs in robots, then continue to the answer by FooTheBar, and then read other answers. $\endgroup$
    – user16003
    Nov 13 '19 at 9:13
1
$\begingroup$

Databases are important for robots to store information...

...about itself:

  • Where was I when I was turned off
  • How is my hardware configuration (e.g. intrinsic calibration for cameras)
  • How warm was my motor when I used it last time for 10 minutes (important to detect defects)
  • How did I move my arm the last time to grasp (caching of planned movements)
  • How far did I drive with this set of wheels?

...about the environment:

  • a map
  • important positions in the map (a table, a door, a CNC machine)
  • where am I not allowed to drive to

...about objects:

  • how does this coke-bottle look like that I have to bring to my owner

...about jobs:

  • What was I doint when I had to stop for a recharge
  • How fast did I finish this task the last 500 Times

Persistent storage is very important for robots. Some information (like calibration) is only important for a single robot, other infos like maps or object descriptions should be shared between robots and have to be synced.

So databases are very important for modern robots.

$\endgroup$
2
$\begingroup$

Most robots I have encountered don't have databases. I think this is mostly because there is usually only one process or "user" that needs the data they store in memory. With that said robots can often store a lot of data in log files for debugging purposes.

$\endgroup$
1
$\begingroup$

Absolutely - there are many of uses for SQL in robotics. SQL and databases allow for structured storage, analysis, and retrieval of data, both by the robot and other parties. Robots are constantly collecting and processing data.

$\endgroup$
0
$\begingroup$

In the hardware or controller itself, I haven't seen the use of database. Anyway, having databases can be useful in planning for, e.g., motions or grasps for robots. For example, having a database of a manipulator's kinematic reachability can speed up motion planning. Another common example is a grasp database: for a given object, a set of possible grasps is computed and stored for further use in planning.

You might want to explore OpenRAVE, a robot simulation environment, where there are scripts provided specifically for computing various databases.

$\endgroup$
0
$\begingroup$

Robots manipulate data. Some data they get from sensors, but unless the robot is using algorithms that have no state, they have to store data somehow.

Sometimes this is just held in variables, sometimes stored to a more permanent medium.

It doesn't matter if it uses SQL or not, anything that stores data uses database concepts.

Some things that a robot might want to store include maps, visual prototypes (data structures to be matched against by camera images), vocabulary elements (one robot I know of remembers simplified sentences and uses comparisons in order to talk and does it very well), and position information for later debugging. If it is necessary for the robot to retrieve these bits of information, then the code to do so is a database.

Some robotics programs do specifically use SQL databases. For example, the OpenCog project uses an SQL database to hold cognition elements.

$\endgroup$
0
$\begingroup$

If robots in this case refer to an industrial robot: An industrial robots are in most cases integrated into a manufacturing cell or manufacturing line. Industrial robots do not have databases in the classical sense, but they do store persistent data (in files) like configuration files, application program. etc. This is data related strictly to the robot and not to the process the robot caries out.

Data related to the (manufacturing) process the robot helps to carry out is end up in a database. Usually a supervisory system (SCADA, MES or ERP) has a database (usually SQL) in which all process related data is stored in a centralized manner. In industrial practice the robot does not directly initiate database transactions, there is at least one other software layer between the robot and any database (as part of the SCADA, MES or ERP systems).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy