No version for distro humble showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

mongodb_store package from mongodb_store repo

mongodb_log mongodb_store mongodb_store_msgs

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.5.2
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description MongoDB tools for storing and analysing runs of ROS systems.
Checkout URI https://github.com/strands-project/mongodb_store.git
VCS Type git
VCS Version melodic-devel
Last Updated 2023-05-24
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A package to support MongoDB-based storage and analysis for data from a ROS system, eg. saved messages, configurations etc

Additional Links

Maintainers

  • Nick Hawes

Authors

  • Chris Burbridge
  • Nick Hawes

mongodb_store

This package wraps up MongoDB database server in ROS, allowing it to be used to store configuration parameters.

Two nodes are provided:

  • mongodb_server.py
  • config_manager.py

These node depends on MongoDB and the Python client libraries (>=2.3). Install by:

sudo apt-get install python-pymongo mongodb

If this does not give the required version, you can use:

sudo pip install pymongo

Running the mongodb_server

The start the datacentre:

rosparam set mongodb_port 62345
rosparam set mongodb_host bob # note that if using multiple machines, 'localhost' is no good

rosrun mongodb_store mongodb_server.py

By default, the mongod database will be stored in /opt/strands/mongodb_store. This can be overridden by setting the private parameter ~database_path for the node. If it is the first time that the database is used, be sure to first run

```mkdir /opt/strands/mongodb_store


If you prefer to use different mongodb instance, set the mongodb_* parameters accordingly.

Or if you'd like to use existing mongod (e.g. mongod launched as Linux service)


rosparam set mongodb_use_daemon true rosparam set mongodb_port 62345 rosparam set mongodb_host localhost

roslaunch mongodb_store mongodb_store.launch use_daemon:=true


Config Manager Overview
-----------------------

The config manager provides a centralised way to store robot application parameters, with optional site-specific overrides. All configurations are stored inside the mongodb_store mongodb, within a database named "configs". 

Two levels of parameters are considered:

1) Global default parameters. 
These should be "working defaults" - so all essential parameters at least have a default value. For example, if a robot application requires some calibration data then default values should be provided.
Default parameters can be shared among sites and stored inside a shared ROS package. When the config manager is started, all .yaml files stored in a 'defaults' folder will be examined. Any new default parameters will automatically be inserted into the "defaults" collection within the configs database. The defaults folder should be supplied as a private parameter: `~defaults_path` either set to a system path or in the form `pkg://ros_package_name/inside/package`.

2) Local parameters.
These parameters override the same named  global default parameters, allowing site-specific parameter setting. They are stored within the database inside the "local" collection.

At start up, the config manager places all parameters onto the ros parameter server to allow interoperability with existing software. Parameters can also be queried using the /config_manager/get_param service, or by directly connection to and querying the mongo database server.

Likewise, local parameter overrides can be set using the /config_manager/set_param service or by directly editing the "local" collection in the configs database.


Running config manager
----------------------

To start the config manager, make sure that you have the mongo db running then:



rosrun mongodb_store config_manager.py _defaults_path:=pkg://my_package/defaults


This will load all parameters onto the ros parameter server, which can be checked with:

rosparam list





Reading parameters
------------------

There are three methods to access parameter values:
1) Use the copy on the ros parameter server:

rosparam get /my/parameter

and likewise with the rospy and roscpp libraries.
2) Use the config_manager service:

rosservice call /config_manager/get_param “param_name: ‘/my/parameter’”

``` 3) Using the database server directly

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mongodb_store

0.5.2 (2019-11-11)

  • added python-future to package.xml, which got lost in previous commit for some reasons ...

  • corrected typo

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • add dependency to package xml

  • back to system mongo

  • Contributors: Ferenc Balint-Benczedi, Nick Hawes, Shingo Kitagawa, Volker Gabler, vgab

0.5.1 (2019-06-28)

  • added python-future to package.xml

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • Contributors: Shingo Kitagawa, Volker Gabler

0.5.0 (2018-12-20)

  • Merge pull request #231 from bbferka/melodic-devel Melodic devel
  • add dependency to package xml
  • make it run
  • back to system mongo
  • Contributors: Ferenc Balint-Benczedi, Nick Hawes

0.4.5 (2019-06-28)

  • Allow to bind mongod to host The existing solution bind the mongod server to all interfaces. This exposes the server to the outside. This could be a potensial security issue if someone has access to your network. This change allows you to only bind the server to the host specified by the [mongodb_host]{.title-ref} parameter. The solution was created with a flag defaulting to false to prevent this from being a breaking change. Specifying the argument [bind_to_host]{.title-ref} will add a bind argument to the executable: ` [..., "--bind_ip", self._mongo_host][ Info: The `bind_ip]{.title-ref} argument [supports hostnames, ipaddresses and socket paths](https://docs.mongodb.com/manual/reference/program/mongod/#cmdoption-mongod-bind-ip) so using [localhost]{.title-ref} or [127.0.0.1]{.title-ref} is valid for binding to localhost only. To bind to all interfaces use [0.0.0.0]{.title-ref}.
  • adds service to reset all local overrides. Exposes a new service [/config_manager/reset_params std_srvs/Trigger]{.title-ref} that will reset all local overrides their default value. This provides a ROS compatible way of getting back to the default values.
  • Contributors: Jørgen Borgesen, Nick Hawes, Marc Hanheide

0.4.3 (2019-04-04)

  • Merge pull request #243 from furushchev/get-publisher add method to get num subscribers for insertion
  • Merge pull request #242 from furushchev/shutdown shutdown publisher on destruction
  • Merge pull request #241 from furushchev/add-published-at append _meta.published_at for stamped messages
  • Merge pull request #240 from furushchev/fix-replicate display more info on replication
  • add method to get num subscribers for insertion

File truncated at 100 lines see the full file

Launch files

  • launch/mongodb_store.launch
      • db_path [default: /var/local/mongodb_store]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • connection_string [default: ]
      • machine [default: localhost]
      • user [default: ]
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • launch_config [default: $(arg launch_config)]
      • launch_replicator [default: $(arg launch_replicator)]
  • launch/mongodb_store_inc.launch
      • db_path [default: /var/local/mongodb_store]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • connection_string [default: ]
      • machine
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged mongodb_store at Robotics Stack Exchange

No version for distro jazzy showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

mongodb_store package from mongodb_store repo

mongodb_log mongodb_store mongodb_store_msgs

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.5.2
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description MongoDB tools for storing and analysing runs of ROS systems.
Checkout URI https://github.com/strands-project/mongodb_store.git
VCS Type git
VCS Version melodic-devel
Last Updated 2023-05-24
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A package to support MongoDB-based storage and analysis for data from a ROS system, eg. saved messages, configurations etc

Additional Links

Maintainers

  • Nick Hawes

Authors

  • Chris Burbridge
  • Nick Hawes

mongodb_store

This package wraps up MongoDB database server in ROS, allowing it to be used to store configuration parameters.

Two nodes are provided:

  • mongodb_server.py
  • config_manager.py

These node depends on MongoDB and the Python client libraries (>=2.3). Install by:

sudo apt-get install python-pymongo mongodb

If this does not give the required version, you can use:

sudo pip install pymongo

Running the mongodb_server

The start the datacentre:

rosparam set mongodb_port 62345
rosparam set mongodb_host bob # note that if using multiple machines, 'localhost' is no good

rosrun mongodb_store mongodb_server.py

By default, the mongod database will be stored in /opt/strands/mongodb_store. This can be overridden by setting the private parameter ~database_path for the node. If it is the first time that the database is used, be sure to first run

```mkdir /opt/strands/mongodb_store


If you prefer to use different mongodb instance, set the mongodb_* parameters accordingly.

Or if you'd like to use existing mongod (e.g. mongod launched as Linux service)


rosparam set mongodb_use_daemon true rosparam set mongodb_port 62345 rosparam set mongodb_host localhost

roslaunch mongodb_store mongodb_store.launch use_daemon:=true


Config Manager Overview
-----------------------

The config manager provides a centralised way to store robot application parameters, with optional site-specific overrides. All configurations are stored inside the mongodb_store mongodb, within a database named "configs". 

Two levels of parameters are considered:

1) Global default parameters. 
These should be "working defaults" - so all essential parameters at least have a default value. For example, if a robot application requires some calibration data then default values should be provided.
Default parameters can be shared among sites and stored inside a shared ROS package. When the config manager is started, all .yaml files stored in a 'defaults' folder will be examined. Any new default parameters will automatically be inserted into the "defaults" collection within the configs database. The defaults folder should be supplied as a private parameter: `~defaults_path` either set to a system path or in the form `pkg://ros_package_name/inside/package`.

2) Local parameters.
These parameters override the same named  global default parameters, allowing site-specific parameter setting. They are stored within the database inside the "local" collection.

At start up, the config manager places all parameters onto the ros parameter server to allow interoperability with existing software. Parameters can also be queried using the /config_manager/get_param service, or by directly connection to and querying the mongo database server.

Likewise, local parameter overrides can be set using the /config_manager/set_param service or by directly editing the "local" collection in the configs database.


Running config manager
----------------------

To start the config manager, make sure that you have the mongo db running then:



rosrun mongodb_store config_manager.py _defaults_path:=pkg://my_package/defaults


This will load all parameters onto the ros parameter server, which can be checked with:

rosparam list





Reading parameters
------------------

There are three methods to access parameter values:
1) Use the copy on the ros parameter server:

rosparam get /my/parameter

and likewise with the rospy and roscpp libraries.
2) Use the config_manager service:

rosservice call /config_manager/get_param “param_name: ‘/my/parameter’”

``` 3) Using the database server directly

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mongodb_store

0.5.2 (2019-11-11)

  • added python-future to package.xml, which got lost in previous commit for some reasons ...

  • corrected typo

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • add dependency to package xml

  • back to system mongo

  • Contributors: Ferenc Balint-Benczedi, Nick Hawes, Shingo Kitagawa, Volker Gabler, vgab

0.5.1 (2019-06-28)

  • added python-future to package.xml

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • Contributors: Shingo Kitagawa, Volker Gabler

0.5.0 (2018-12-20)

  • Merge pull request #231 from bbferka/melodic-devel Melodic devel
  • add dependency to package xml
  • make it run
  • back to system mongo
  • Contributors: Ferenc Balint-Benczedi, Nick Hawes

0.4.5 (2019-06-28)

  • Allow to bind mongod to host The existing solution bind the mongod server to all interfaces. This exposes the server to the outside. This could be a potensial security issue if someone has access to your network. This change allows you to only bind the server to the host specified by the [mongodb_host]{.title-ref} parameter. The solution was created with a flag defaulting to false to prevent this from being a breaking change. Specifying the argument [bind_to_host]{.title-ref} will add a bind argument to the executable: ` [..., "--bind_ip", self._mongo_host][ Info: The `bind_ip]{.title-ref} argument [supports hostnames, ipaddresses and socket paths](https://docs.mongodb.com/manual/reference/program/mongod/#cmdoption-mongod-bind-ip) so using [localhost]{.title-ref} or [127.0.0.1]{.title-ref} is valid for binding to localhost only. To bind to all interfaces use [0.0.0.0]{.title-ref}.
  • adds service to reset all local overrides. Exposes a new service [/config_manager/reset_params std_srvs/Trigger]{.title-ref} that will reset all local overrides their default value. This provides a ROS compatible way of getting back to the default values.
  • Contributors: Jørgen Borgesen, Nick Hawes, Marc Hanheide

0.4.3 (2019-04-04)

  • Merge pull request #243 from furushchev/get-publisher add method to get num subscribers for insertion
  • Merge pull request #242 from furushchev/shutdown shutdown publisher on destruction
  • Merge pull request #241 from furushchev/add-published-at append _meta.published_at for stamped messages
  • Merge pull request #240 from furushchev/fix-replicate display more info on replication
  • add method to get num subscribers for insertion

File truncated at 100 lines see the full file

Launch files

  • launch/mongodb_store.launch
      • db_path [default: /var/local/mongodb_store]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • connection_string [default: ]
      • machine [default: localhost]
      • user [default: ]
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • launch_config [default: $(arg launch_config)]
      • launch_replicator [default: $(arg launch_replicator)]
  • launch/mongodb_store_inc.launch
      • db_path [default: /var/local/mongodb_store]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • connection_string [default: ]
      • machine
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged mongodb_store at Robotics Stack Exchange

No version for distro kilted showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

mongodb_store package from mongodb_store repo

mongodb_log mongodb_store mongodb_store_msgs

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.5.2
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description MongoDB tools for storing and analysing runs of ROS systems.
Checkout URI https://github.com/strands-project/mongodb_store.git
VCS Type git
VCS Version melodic-devel
Last Updated 2023-05-24
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A package to support MongoDB-based storage and analysis for data from a ROS system, eg. saved messages, configurations etc

Additional Links

Maintainers

  • Nick Hawes

Authors

  • Chris Burbridge
  • Nick Hawes

mongodb_store

This package wraps up MongoDB database server in ROS, allowing it to be used to store configuration parameters.

Two nodes are provided:

  • mongodb_server.py
  • config_manager.py

These node depends on MongoDB and the Python client libraries (>=2.3). Install by:

sudo apt-get install python-pymongo mongodb

If this does not give the required version, you can use:

sudo pip install pymongo

Running the mongodb_server

The start the datacentre:

rosparam set mongodb_port 62345
rosparam set mongodb_host bob # note that if using multiple machines, 'localhost' is no good

rosrun mongodb_store mongodb_server.py

By default, the mongod database will be stored in /opt/strands/mongodb_store. This can be overridden by setting the private parameter ~database_path for the node. If it is the first time that the database is used, be sure to first run

```mkdir /opt/strands/mongodb_store


If you prefer to use different mongodb instance, set the mongodb_* parameters accordingly.

Or if you'd like to use existing mongod (e.g. mongod launched as Linux service)


rosparam set mongodb_use_daemon true rosparam set mongodb_port 62345 rosparam set mongodb_host localhost

roslaunch mongodb_store mongodb_store.launch use_daemon:=true


Config Manager Overview
-----------------------

The config manager provides a centralised way to store robot application parameters, with optional site-specific overrides. All configurations are stored inside the mongodb_store mongodb, within a database named "configs". 

Two levels of parameters are considered:

1) Global default parameters. 
These should be "working defaults" - so all essential parameters at least have a default value. For example, if a robot application requires some calibration data then default values should be provided.
Default parameters can be shared among sites and stored inside a shared ROS package. When the config manager is started, all .yaml files stored in a 'defaults' folder will be examined. Any new default parameters will automatically be inserted into the "defaults" collection within the configs database. The defaults folder should be supplied as a private parameter: `~defaults_path` either set to a system path or in the form `pkg://ros_package_name/inside/package`.

2) Local parameters.
These parameters override the same named  global default parameters, allowing site-specific parameter setting. They are stored within the database inside the "local" collection.

At start up, the config manager places all parameters onto the ros parameter server to allow interoperability with existing software. Parameters can also be queried using the /config_manager/get_param service, or by directly connection to and querying the mongo database server.

Likewise, local parameter overrides can be set using the /config_manager/set_param service or by directly editing the "local" collection in the configs database.


Running config manager
----------------------

To start the config manager, make sure that you have the mongo db running then:



rosrun mongodb_store config_manager.py _defaults_path:=pkg://my_package/defaults


This will load all parameters onto the ros parameter server, which can be checked with:

rosparam list





Reading parameters
------------------

There are three methods to access parameter values:
1) Use the copy on the ros parameter server:

rosparam get /my/parameter

and likewise with the rospy and roscpp libraries.
2) Use the config_manager service:

rosservice call /config_manager/get_param “param_name: ‘/my/parameter’”

``` 3) Using the database server directly

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mongodb_store

0.5.2 (2019-11-11)

  • added python-future to package.xml, which got lost in previous commit for some reasons ...

  • corrected typo

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • add dependency to package xml

  • back to system mongo

  • Contributors: Ferenc Balint-Benczedi, Nick Hawes, Shingo Kitagawa, Volker Gabler, vgab

0.5.1 (2019-06-28)

  • added python-future to package.xml

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • Contributors: Shingo Kitagawa, Volker Gabler

0.5.0 (2018-12-20)

  • Merge pull request #231 from bbferka/melodic-devel Melodic devel
  • add dependency to package xml
  • make it run
  • back to system mongo
  • Contributors: Ferenc Balint-Benczedi, Nick Hawes

0.4.5 (2019-06-28)

  • Allow to bind mongod to host The existing solution bind the mongod server to all interfaces. This exposes the server to the outside. This could be a potensial security issue if someone has access to your network. This change allows you to only bind the server to the host specified by the [mongodb_host]{.title-ref} parameter. The solution was created with a flag defaulting to false to prevent this from being a breaking change. Specifying the argument [bind_to_host]{.title-ref} will add a bind argument to the executable: ` [..., "--bind_ip", self._mongo_host][ Info: The `bind_ip]{.title-ref} argument [supports hostnames, ipaddresses and socket paths](https://docs.mongodb.com/manual/reference/program/mongod/#cmdoption-mongod-bind-ip) so using [localhost]{.title-ref} or [127.0.0.1]{.title-ref} is valid for binding to localhost only. To bind to all interfaces use [0.0.0.0]{.title-ref}.
  • adds service to reset all local overrides. Exposes a new service [/config_manager/reset_params std_srvs/Trigger]{.title-ref} that will reset all local overrides their default value. This provides a ROS compatible way of getting back to the default values.
  • Contributors: Jørgen Borgesen, Nick Hawes, Marc Hanheide

0.4.3 (2019-04-04)

  • Merge pull request #243 from furushchev/get-publisher add method to get num subscribers for insertion
  • Merge pull request #242 from furushchev/shutdown shutdown publisher on destruction
  • Merge pull request #241 from furushchev/add-published-at append _meta.published_at for stamped messages
  • Merge pull request #240 from furushchev/fix-replicate display more info on replication
  • add method to get num subscribers for insertion

File truncated at 100 lines see the full file

Launch files

  • launch/mongodb_store.launch
      • db_path [default: /var/local/mongodb_store]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • connection_string [default: ]
      • machine [default: localhost]
      • user [default: ]
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • launch_config [default: $(arg launch_config)]
      • launch_replicator [default: $(arg launch_replicator)]
  • launch/mongodb_store_inc.launch
      • db_path [default: /var/local/mongodb_store]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • connection_string [default: ]
      • machine
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged mongodb_store at Robotics Stack Exchange

No version for distro rolling showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

mongodb_store package from mongodb_store repo

mongodb_log mongodb_store mongodb_store_msgs

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.5.2
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description MongoDB tools for storing and analysing runs of ROS systems.
Checkout URI https://github.com/strands-project/mongodb_store.git
VCS Type git
VCS Version melodic-devel
Last Updated 2023-05-24
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A package to support MongoDB-based storage and analysis for data from a ROS system, eg. saved messages, configurations etc

Additional Links

Maintainers

  • Nick Hawes

Authors

  • Chris Burbridge
  • Nick Hawes

mongodb_store

This package wraps up MongoDB database server in ROS, allowing it to be used to store configuration parameters.

Two nodes are provided:

  • mongodb_server.py
  • config_manager.py

These node depends on MongoDB and the Python client libraries (>=2.3). Install by:

sudo apt-get install python-pymongo mongodb

If this does not give the required version, you can use:

sudo pip install pymongo

Running the mongodb_server

The start the datacentre:

rosparam set mongodb_port 62345
rosparam set mongodb_host bob # note that if using multiple machines, 'localhost' is no good

rosrun mongodb_store mongodb_server.py

By default, the mongod database will be stored in /opt/strands/mongodb_store. This can be overridden by setting the private parameter ~database_path for the node. If it is the first time that the database is used, be sure to first run

```mkdir /opt/strands/mongodb_store


If you prefer to use different mongodb instance, set the mongodb_* parameters accordingly.

Or if you'd like to use existing mongod (e.g. mongod launched as Linux service)


rosparam set mongodb_use_daemon true rosparam set mongodb_port 62345 rosparam set mongodb_host localhost

roslaunch mongodb_store mongodb_store.launch use_daemon:=true


Config Manager Overview
-----------------------

The config manager provides a centralised way to store robot application parameters, with optional site-specific overrides. All configurations are stored inside the mongodb_store mongodb, within a database named "configs". 

Two levels of parameters are considered:

1) Global default parameters. 
These should be "working defaults" - so all essential parameters at least have a default value. For example, if a robot application requires some calibration data then default values should be provided.
Default parameters can be shared among sites and stored inside a shared ROS package. When the config manager is started, all .yaml files stored in a 'defaults' folder will be examined. Any new default parameters will automatically be inserted into the "defaults" collection within the configs database. The defaults folder should be supplied as a private parameter: `~defaults_path` either set to a system path or in the form `pkg://ros_package_name/inside/package`.

2) Local parameters.
These parameters override the same named  global default parameters, allowing site-specific parameter setting. They are stored within the database inside the "local" collection.

At start up, the config manager places all parameters onto the ros parameter server to allow interoperability with existing software. Parameters can also be queried using the /config_manager/get_param service, or by directly connection to and querying the mongo database server.

Likewise, local parameter overrides can be set using the /config_manager/set_param service or by directly editing the "local" collection in the configs database.


Running config manager
----------------------

To start the config manager, make sure that you have the mongo db running then:



rosrun mongodb_store config_manager.py _defaults_path:=pkg://my_package/defaults


This will load all parameters onto the ros parameter server, which can be checked with:

rosparam list





Reading parameters
------------------

There are three methods to access parameter values:
1) Use the copy on the ros parameter server:

rosparam get /my/parameter

and likewise with the rospy and roscpp libraries.
2) Use the config_manager service:

rosservice call /config_manager/get_param “param_name: ‘/my/parameter’”

``` 3) Using the database server directly

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mongodb_store

0.5.2 (2019-11-11)

  • added python-future to package.xml, which got lost in previous commit for some reasons ...

  • corrected typo

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • add dependency to package xml

  • back to system mongo

  • Contributors: Ferenc Balint-Benczedi, Nick Hawes, Shingo Kitagawa, Volker Gabler, vgab

0.5.1 (2019-06-28)

  • added python-future to package.xml

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • Contributors: Shingo Kitagawa, Volker Gabler

0.5.0 (2018-12-20)

  • Merge pull request #231 from bbferka/melodic-devel Melodic devel
  • add dependency to package xml
  • make it run
  • back to system mongo
  • Contributors: Ferenc Balint-Benczedi, Nick Hawes

0.4.5 (2019-06-28)

  • Allow to bind mongod to host The existing solution bind the mongod server to all interfaces. This exposes the server to the outside. This could be a potensial security issue if someone has access to your network. This change allows you to only bind the server to the host specified by the [mongodb_host]{.title-ref} parameter. The solution was created with a flag defaulting to false to prevent this from being a breaking change. Specifying the argument [bind_to_host]{.title-ref} will add a bind argument to the executable: ` [..., "--bind_ip", self._mongo_host][ Info: The `bind_ip]{.title-ref} argument [supports hostnames, ipaddresses and socket paths](https://docs.mongodb.com/manual/reference/program/mongod/#cmdoption-mongod-bind-ip) so using [localhost]{.title-ref} or [127.0.0.1]{.title-ref} is valid for binding to localhost only. To bind to all interfaces use [0.0.0.0]{.title-ref}.
  • adds service to reset all local overrides. Exposes a new service [/config_manager/reset_params std_srvs/Trigger]{.title-ref} that will reset all local overrides their default value. This provides a ROS compatible way of getting back to the default values.
  • Contributors: Jørgen Borgesen, Nick Hawes, Marc Hanheide

0.4.3 (2019-04-04)

  • Merge pull request #243 from furushchev/get-publisher add method to get num subscribers for insertion
  • Merge pull request #242 from furushchev/shutdown shutdown publisher on destruction
  • Merge pull request #241 from furushchev/add-published-at append _meta.published_at for stamped messages
  • Merge pull request #240 from furushchev/fix-replicate display more info on replication
  • add method to get num subscribers for insertion

File truncated at 100 lines see the full file

Launch files

  • launch/mongodb_store.launch
      • db_path [default: /var/local/mongodb_store]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • connection_string [default: ]
      • machine [default: localhost]
      • user [default: ]
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • launch_config [default: $(arg launch_config)]
      • launch_replicator [default: $(arg launch_replicator)]
  • launch/mongodb_store_inc.launch
      • db_path [default: /var/local/mongodb_store]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • connection_string [default: ]
      • machine
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged mongodb_store at Robotics Stack Exchange

No version for distro github showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

mongodb_store package from mongodb_store repo

mongodb_log mongodb_store mongodb_store_msgs

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.5.2
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description MongoDB tools for storing and analysing runs of ROS systems.
Checkout URI https://github.com/strands-project/mongodb_store.git
VCS Type git
VCS Version melodic-devel
Last Updated 2023-05-24
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A package to support MongoDB-based storage and analysis for data from a ROS system, eg. saved messages, configurations etc

Additional Links

Maintainers

  • Nick Hawes

Authors

  • Chris Burbridge
  • Nick Hawes

mongodb_store

This package wraps up MongoDB database server in ROS, allowing it to be used to store configuration parameters.

Two nodes are provided:

  • mongodb_server.py
  • config_manager.py

These node depends on MongoDB and the Python client libraries (>=2.3). Install by:

sudo apt-get install python-pymongo mongodb

If this does not give the required version, you can use:

sudo pip install pymongo

Running the mongodb_server

The start the datacentre:

rosparam set mongodb_port 62345
rosparam set mongodb_host bob # note that if using multiple machines, 'localhost' is no good

rosrun mongodb_store mongodb_server.py

By default, the mongod database will be stored in /opt/strands/mongodb_store. This can be overridden by setting the private parameter ~database_path for the node. If it is the first time that the database is used, be sure to first run

```mkdir /opt/strands/mongodb_store


If you prefer to use different mongodb instance, set the mongodb_* parameters accordingly.

Or if you'd like to use existing mongod (e.g. mongod launched as Linux service)


rosparam set mongodb_use_daemon true rosparam set mongodb_port 62345 rosparam set mongodb_host localhost

roslaunch mongodb_store mongodb_store.launch use_daemon:=true


Config Manager Overview
-----------------------

The config manager provides a centralised way to store robot application parameters, with optional site-specific overrides. All configurations are stored inside the mongodb_store mongodb, within a database named "configs". 

Two levels of parameters are considered:

1) Global default parameters. 
These should be "working defaults" - so all essential parameters at least have a default value. For example, if a robot application requires some calibration data then default values should be provided.
Default parameters can be shared among sites and stored inside a shared ROS package. When the config manager is started, all .yaml files stored in a 'defaults' folder will be examined. Any new default parameters will automatically be inserted into the "defaults" collection within the configs database. The defaults folder should be supplied as a private parameter: `~defaults_path` either set to a system path or in the form `pkg://ros_package_name/inside/package`.

2) Local parameters.
These parameters override the same named  global default parameters, allowing site-specific parameter setting. They are stored within the database inside the "local" collection.

At start up, the config manager places all parameters onto the ros parameter server to allow interoperability with existing software. Parameters can also be queried using the /config_manager/get_param service, or by directly connection to and querying the mongo database server.

Likewise, local parameter overrides can be set using the /config_manager/set_param service or by directly editing the "local" collection in the configs database.


Running config manager
----------------------

To start the config manager, make sure that you have the mongo db running then:



rosrun mongodb_store config_manager.py _defaults_path:=pkg://my_package/defaults


This will load all parameters onto the ros parameter server, which can be checked with:

rosparam list





Reading parameters
------------------

There are three methods to access parameter values:
1) Use the copy on the ros parameter server:

rosparam get /my/parameter

and likewise with the rospy and roscpp libraries.
2) Use the config_manager service:

rosservice call /config_manager/get_param “param_name: ‘/my/parameter’”

``` 3) Using the database server directly

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mongodb_store

0.5.2 (2019-11-11)

  • added python-future to package.xml, which got lost in previous commit for some reasons ...

  • corrected typo

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • add dependency to package xml

  • back to system mongo

  • Contributors: Ferenc Balint-Benczedi, Nick Hawes, Shingo Kitagawa, Volker Gabler, vgab

0.5.1 (2019-06-28)

  • added python-future to package.xml

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • Contributors: Shingo Kitagawa, Volker Gabler

0.5.0 (2018-12-20)

  • Merge pull request #231 from bbferka/melodic-devel Melodic devel
  • add dependency to package xml
  • make it run
  • back to system mongo
  • Contributors: Ferenc Balint-Benczedi, Nick Hawes

0.4.5 (2019-06-28)

  • Allow to bind mongod to host The existing solution bind the mongod server to all interfaces. This exposes the server to the outside. This could be a potensial security issue if someone has access to your network. This change allows you to only bind the server to the host specified by the [mongodb_host]{.title-ref} parameter. The solution was created with a flag defaulting to false to prevent this from being a breaking change. Specifying the argument [bind_to_host]{.title-ref} will add a bind argument to the executable: ` [..., "--bind_ip", self._mongo_host][ Info: The `bind_ip]{.title-ref} argument [supports hostnames, ipaddresses and socket paths](https://docs.mongodb.com/manual/reference/program/mongod/#cmdoption-mongod-bind-ip) so using [localhost]{.title-ref} or [127.0.0.1]{.title-ref} is valid for binding to localhost only. To bind to all interfaces use [0.0.0.0]{.title-ref}.
  • adds service to reset all local overrides. Exposes a new service [/config_manager/reset_params std_srvs/Trigger]{.title-ref} that will reset all local overrides their default value. This provides a ROS compatible way of getting back to the default values.
  • Contributors: Jørgen Borgesen, Nick Hawes, Marc Hanheide

0.4.3 (2019-04-04)

  • Merge pull request #243 from furushchev/get-publisher add method to get num subscribers for insertion
  • Merge pull request #242 from furushchev/shutdown shutdown publisher on destruction
  • Merge pull request #241 from furushchev/add-published-at append _meta.published_at for stamped messages
  • Merge pull request #240 from furushchev/fix-replicate display more info on replication
  • add method to get num subscribers for insertion

File truncated at 100 lines see the full file

Launch files

  • launch/mongodb_store.launch
      • db_path [default: /var/local/mongodb_store]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • connection_string [default: ]
      • machine [default: localhost]
      • user [default: ]
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • launch_config [default: $(arg launch_config)]
      • launch_replicator [default: $(arg launch_replicator)]
  • launch/mongodb_store_inc.launch
      • db_path [default: /var/local/mongodb_store]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • connection_string [default: ]
      • machine
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged mongodb_store at Robotics Stack Exchange

No version for distro galactic showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

mongodb_store package from mongodb_store repo

mongodb_log mongodb_store mongodb_store_msgs

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.5.2
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description MongoDB tools for storing and analysing runs of ROS systems.
Checkout URI https://github.com/strands-project/mongodb_store.git
VCS Type git
VCS Version melodic-devel
Last Updated 2023-05-24
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A package to support MongoDB-based storage and analysis for data from a ROS system, eg. saved messages, configurations etc

Additional Links

Maintainers

  • Nick Hawes

Authors

  • Chris Burbridge
  • Nick Hawes

mongodb_store

This package wraps up MongoDB database server in ROS, allowing it to be used to store configuration parameters.

Two nodes are provided:

  • mongodb_server.py
  • config_manager.py

These node depends on MongoDB and the Python client libraries (>=2.3). Install by:

sudo apt-get install python-pymongo mongodb

If this does not give the required version, you can use:

sudo pip install pymongo

Running the mongodb_server

The start the datacentre:

rosparam set mongodb_port 62345
rosparam set mongodb_host bob # note that if using multiple machines, 'localhost' is no good

rosrun mongodb_store mongodb_server.py

By default, the mongod database will be stored in /opt/strands/mongodb_store. This can be overridden by setting the private parameter ~database_path for the node. If it is the first time that the database is used, be sure to first run

```mkdir /opt/strands/mongodb_store


If you prefer to use different mongodb instance, set the mongodb_* parameters accordingly.

Or if you'd like to use existing mongod (e.g. mongod launched as Linux service)


rosparam set mongodb_use_daemon true rosparam set mongodb_port 62345 rosparam set mongodb_host localhost

roslaunch mongodb_store mongodb_store.launch use_daemon:=true


Config Manager Overview
-----------------------

The config manager provides a centralised way to store robot application parameters, with optional site-specific overrides. All configurations are stored inside the mongodb_store mongodb, within a database named "configs". 

Two levels of parameters are considered:

1) Global default parameters. 
These should be "working defaults" - so all essential parameters at least have a default value. For example, if a robot application requires some calibration data then default values should be provided.
Default parameters can be shared among sites and stored inside a shared ROS package. When the config manager is started, all .yaml files stored in a 'defaults' folder will be examined. Any new default parameters will automatically be inserted into the "defaults" collection within the configs database. The defaults folder should be supplied as a private parameter: `~defaults_path` either set to a system path or in the form `pkg://ros_package_name/inside/package`.

2) Local parameters.
These parameters override the same named  global default parameters, allowing site-specific parameter setting. They are stored within the database inside the "local" collection.

At start up, the config manager places all parameters onto the ros parameter server to allow interoperability with existing software. Parameters can also be queried using the /config_manager/get_param service, or by directly connection to and querying the mongo database server.

Likewise, local parameter overrides can be set using the /config_manager/set_param service or by directly editing the "local" collection in the configs database.


Running config manager
----------------------

To start the config manager, make sure that you have the mongo db running then:



rosrun mongodb_store config_manager.py _defaults_path:=pkg://my_package/defaults


This will load all parameters onto the ros parameter server, which can be checked with:

rosparam list





Reading parameters
------------------

There are three methods to access parameter values:
1) Use the copy on the ros parameter server:

rosparam get /my/parameter

and likewise with the rospy and roscpp libraries.
2) Use the config_manager service:

rosservice call /config_manager/get_param “param_name: ‘/my/parameter’”

``` 3) Using the database server directly

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mongodb_store

0.5.2 (2019-11-11)

  • added python-future to package.xml, which got lost in previous commit for some reasons ...

  • corrected typo

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • add dependency to package xml

  • back to system mongo

  • Contributors: Ferenc Balint-Benczedi, Nick Hawes, Shingo Kitagawa, Volker Gabler, vgab

0.5.1 (2019-06-28)

  • added python-future to package.xml

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • Contributors: Shingo Kitagawa, Volker Gabler

0.5.0 (2018-12-20)

  • Merge pull request #231 from bbferka/melodic-devel Melodic devel
  • add dependency to package xml
  • make it run
  • back to system mongo
  • Contributors: Ferenc Balint-Benczedi, Nick Hawes

0.4.5 (2019-06-28)

  • Allow to bind mongod to host The existing solution bind the mongod server to all interfaces. This exposes the server to the outside. This could be a potensial security issue if someone has access to your network. This change allows you to only bind the server to the host specified by the [mongodb_host]{.title-ref} parameter. The solution was created with a flag defaulting to false to prevent this from being a breaking change. Specifying the argument [bind_to_host]{.title-ref} will add a bind argument to the executable: ` [..., "--bind_ip", self._mongo_host][ Info: The `bind_ip]{.title-ref} argument [supports hostnames, ipaddresses and socket paths](https://docs.mongodb.com/manual/reference/program/mongod/#cmdoption-mongod-bind-ip) so using [localhost]{.title-ref} or [127.0.0.1]{.title-ref} is valid for binding to localhost only. To bind to all interfaces use [0.0.0.0]{.title-ref}.
  • adds service to reset all local overrides. Exposes a new service [/config_manager/reset_params std_srvs/Trigger]{.title-ref} that will reset all local overrides their default value. This provides a ROS compatible way of getting back to the default values.
  • Contributors: Jørgen Borgesen, Nick Hawes, Marc Hanheide

0.4.3 (2019-04-04)

  • Merge pull request #243 from furushchev/get-publisher add method to get num subscribers for insertion
  • Merge pull request #242 from furushchev/shutdown shutdown publisher on destruction
  • Merge pull request #241 from furushchev/add-published-at append _meta.published_at for stamped messages
  • Merge pull request #240 from furushchev/fix-replicate display more info on replication
  • add method to get num subscribers for insertion

File truncated at 100 lines see the full file

Launch files

  • launch/mongodb_store.launch
      • db_path [default: /var/local/mongodb_store]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • connection_string [default: ]
      • machine [default: localhost]
      • user [default: ]
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • launch_config [default: $(arg launch_config)]
      • launch_replicator [default: $(arg launch_replicator)]
  • launch/mongodb_store_inc.launch
      • db_path [default: /var/local/mongodb_store]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • connection_string [default: ]
      • machine
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged mongodb_store at Robotics Stack Exchange

No version for distro iron showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

mongodb_store package from mongodb_store repo

mongodb_log mongodb_store mongodb_store_msgs

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.5.2
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description MongoDB tools for storing and analysing runs of ROS systems.
Checkout URI https://github.com/strands-project/mongodb_store.git
VCS Type git
VCS Version melodic-devel
Last Updated 2023-05-24
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A package to support MongoDB-based storage and analysis for data from a ROS system, eg. saved messages, configurations etc

Additional Links

Maintainers

  • Nick Hawes

Authors

  • Chris Burbridge
  • Nick Hawes

mongodb_store

This package wraps up MongoDB database server in ROS, allowing it to be used to store configuration parameters.

Two nodes are provided:

  • mongodb_server.py
  • config_manager.py

These node depends on MongoDB and the Python client libraries (>=2.3). Install by:

sudo apt-get install python-pymongo mongodb

If this does not give the required version, you can use:

sudo pip install pymongo

Running the mongodb_server

The start the datacentre:

rosparam set mongodb_port 62345
rosparam set mongodb_host bob # note that if using multiple machines, 'localhost' is no good

rosrun mongodb_store mongodb_server.py

By default, the mongod database will be stored in /opt/strands/mongodb_store. This can be overridden by setting the private parameter ~database_path for the node. If it is the first time that the database is used, be sure to first run

```mkdir /opt/strands/mongodb_store


If you prefer to use different mongodb instance, set the mongodb_* parameters accordingly.

Or if you'd like to use existing mongod (e.g. mongod launched as Linux service)


rosparam set mongodb_use_daemon true rosparam set mongodb_port 62345 rosparam set mongodb_host localhost

roslaunch mongodb_store mongodb_store.launch use_daemon:=true


Config Manager Overview
-----------------------

The config manager provides a centralised way to store robot application parameters, with optional site-specific overrides. All configurations are stored inside the mongodb_store mongodb, within a database named "configs". 

Two levels of parameters are considered:

1) Global default parameters. 
These should be "working defaults" - so all essential parameters at least have a default value. For example, if a robot application requires some calibration data then default values should be provided.
Default parameters can be shared among sites and stored inside a shared ROS package. When the config manager is started, all .yaml files stored in a 'defaults' folder will be examined. Any new default parameters will automatically be inserted into the "defaults" collection within the configs database. The defaults folder should be supplied as a private parameter: `~defaults_path` either set to a system path or in the form `pkg://ros_package_name/inside/package`.

2) Local parameters.
These parameters override the same named  global default parameters, allowing site-specific parameter setting. They are stored within the database inside the "local" collection.

At start up, the config manager places all parameters onto the ros parameter server to allow interoperability with existing software. Parameters can also be queried using the /config_manager/get_param service, or by directly connection to and querying the mongo database server.

Likewise, local parameter overrides can be set using the /config_manager/set_param service or by directly editing the "local" collection in the configs database.


Running config manager
----------------------

To start the config manager, make sure that you have the mongo db running then:



rosrun mongodb_store config_manager.py _defaults_path:=pkg://my_package/defaults


This will load all parameters onto the ros parameter server, which can be checked with:

rosparam list





Reading parameters
------------------

There are three methods to access parameter values:
1) Use the copy on the ros parameter server:

rosparam get /my/parameter

and likewise with the rospy and roscpp libraries.
2) Use the config_manager service:

rosservice call /config_manager/get_param “param_name: ‘/my/parameter’”

``` 3) Using the database server directly

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mongodb_store

0.5.2 (2019-11-11)

  • added python-future to package.xml, which got lost in previous commit for some reasons ...

  • corrected typo

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • add dependency to package xml

  • back to system mongo

  • Contributors: Ferenc Balint-Benczedi, Nick Hawes, Shingo Kitagawa, Volker Gabler, vgab

0.5.1 (2019-06-28)

  • added python-future to package.xml

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • Contributors: Shingo Kitagawa, Volker Gabler

0.5.0 (2018-12-20)

  • Merge pull request #231 from bbferka/melodic-devel Melodic devel
  • add dependency to package xml
  • make it run
  • back to system mongo
  • Contributors: Ferenc Balint-Benczedi, Nick Hawes

0.4.5 (2019-06-28)

  • Allow to bind mongod to host The existing solution bind the mongod server to all interfaces. This exposes the server to the outside. This could be a potensial security issue if someone has access to your network. This change allows you to only bind the server to the host specified by the [mongodb_host]{.title-ref} parameter. The solution was created with a flag defaulting to false to prevent this from being a breaking change. Specifying the argument [bind_to_host]{.title-ref} will add a bind argument to the executable: ` [..., "--bind_ip", self._mongo_host][ Info: The `bind_ip]{.title-ref} argument [supports hostnames, ipaddresses and socket paths](https://docs.mongodb.com/manual/reference/program/mongod/#cmdoption-mongod-bind-ip) so using [localhost]{.title-ref} or [127.0.0.1]{.title-ref} is valid for binding to localhost only. To bind to all interfaces use [0.0.0.0]{.title-ref}.
  • adds service to reset all local overrides. Exposes a new service [/config_manager/reset_params std_srvs/Trigger]{.title-ref} that will reset all local overrides their default value. This provides a ROS compatible way of getting back to the default values.
  • Contributors: Jørgen Borgesen, Nick Hawes, Marc Hanheide

0.4.3 (2019-04-04)

  • Merge pull request #243 from furushchev/get-publisher add method to get num subscribers for insertion
  • Merge pull request #242 from furushchev/shutdown shutdown publisher on destruction
  • Merge pull request #241 from furushchev/add-published-at append _meta.published_at for stamped messages
  • Merge pull request #240 from furushchev/fix-replicate display more info on replication
  • add method to get num subscribers for insertion

File truncated at 100 lines see the full file

Launch files

  • launch/mongodb_store.launch
      • db_path [default: /var/local/mongodb_store]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • connection_string [default: ]
      • machine [default: localhost]
      • user [default: ]
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • launch_config [default: $(arg launch_config)]
      • launch_replicator [default: $(arg launch_replicator)]
  • launch/mongodb_store_inc.launch
      • db_path [default: /var/local/mongodb_store]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • connection_string [default: ]
      • machine
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged mongodb_store at Robotics Stack Exchange

Package symbol

mongodb_store package from mongodb_store repo

mongodb_log mongodb_store mongodb_store_msgs

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.5.2
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description MongoDB tools for storing and analysing runs of ROS systems.
Checkout URI https://github.com/strands-project/mongodb_store.git
VCS Type git
VCS Version melodic-devel
Last Updated 2023-05-24
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A package to support MongoDB-based storage and analysis for data from a ROS system, eg. saved messages, configurations etc

Additional Links

Maintainers

  • Nick Hawes

Authors

  • Chris Burbridge
  • Nick Hawes

mongodb_store

This package wraps up MongoDB database server in ROS, allowing it to be used to store configuration parameters.

Two nodes are provided:

  • mongodb_server.py
  • config_manager.py

These node depends on MongoDB and the Python client libraries (>=2.3). Install by:

sudo apt-get install python-pymongo mongodb

If this does not give the required version, you can use:

sudo pip install pymongo

Running the mongodb_server

The start the datacentre:

rosparam set mongodb_port 62345
rosparam set mongodb_host bob # note that if using multiple machines, 'localhost' is no good

rosrun mongodb_store mongodb_server.py

By default, the mongod database will be stored in /opt/strands/mongodb_store. This can be overridden by setting the private parameter ~database_path for the node. If it is the first time that the database is used, be sure to first run

```mkdir /opt/strands/mongodb_store


If you prefer to use different mongodb instance, set the mongodb_* parameters accordingly.

Or if you'd like to use existing mongod (e.g. mongod launched as Linux service)


rosparam set mongodb_use_daemon true rosparam set mongodb_port 62345 rosparam set mongodb_host localhost

roslaunch mongodb_store mongodb_store.launch use_daemon:=true


Config Manager Overview
-----------------------

The config manager provides a centralised way to store robot application parameters, with optional site-specific overrides. All configurations are stored inside the mongodb_store mongodb, within a database named "configs". 

Two levels of parameters are considered:

1) Global default parameters. 
These should be "working defaults" - so all essential parameters at least have a default value. For example, if a robot application requires some calibration data then default values should be provided.
Default parameters can be shared among sites and stored inside a shared ROS package. When the config manager is started, all .yaml files stored in a 'defaults' folder will be examined. Any new default parameters will automatically be inserted into the "defaults" collection within the configs database. The defaults folder should be supplied as a private parameter: `~defaults_path` either set to a system path or in the form `pkg://ros_package_name/inside/package`.

2) Local parameters.
These parameters override the same named  global default parameters, allowing site-specific parameter setting. They are stored within the database inside the "local" collection.

At start up, the config manager places all parameters onto the ros parameter server to allow interoperability with existing software. Parameters can also be queried using the /config_manager/get_param service, or by directly connection to and querying the mongo database server.

Likewise, local parameter overrides can be set using the /config_manager/set_param service or by directly editing the "local" collection in the configs database.


Running config manager
----------------------

To start the config manager, make sure that you have the mongo db running then:



rosrun mongodb_store config_manager.py _defaults_path:=pkg://my_package/defaults


This will load all parameters onto the ros parameter server, which can be checked with:

rosparam list





Reading parameters
------------------

There are three methods to access parameter values:
1) Use the copy on the ros parameter server:

rosparam get /my/parameter

and likewise with the rospy and roscpp libraries.
2) Use the config_manager service:

rosservice call /config_manager/get_param “param_name: ‘/my/parameter’”

``` 3) Using the database server directly

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mongodb_store

0.5.2 (2019-11-11)

  • added python-future to package.xml, which got lost in previous commit for some reasons ...

  • corrected typo

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • add dependency to package xml

  • back to system mongo

  • Contributors: Ferenc Balint-Benczedi, Nick Hawes, Shingo Kitagawa, Volker Gabler, vgab

0.5.1 (2019-06-28)

  • added python-future to package.xml

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • Contributors: Shingo Kitagawa, Volker Gabler

0.5.0 (2018-12-20)

  • Merge pull request #231 from bbferka/melodic-devel Melodic devel
  • add dependency to package xml
  • make it run
  • back to system mongo
  • Contributors: Ferenc Balint-Benczedi, Nick Hawes

0.4.5 (2019-06-28)

  • Allow to bind mongod to host The existing solution bind the mongod server to all interfaces. This exposes the server to the outside. This could be a potensial security issue if someone has access to your network. This change allows you to only bind the server to the host specified by the [mongodb_host]{.title-ref} parameter. The solution was created with a flag defaulting to false to prevent this from being a breaking change. Specifying the argument [bind_to_host]{.title-ref} will add a bind argument to the executable: ` [..., "--bind_ip", self._mongo_host][ Info: The `bind_ip]{.title-ref} argument [supports hostnames, ipaddresses and socket paths](https://docs.mongodb.com/manual/reference/program/mongod/#cmdoption-mongod-bind-ip) so using [localhost]{.title-ref} or [127.0.0.1]{.title-ref} is valid for binding to localhost only. To bind to all interfaces use [0.0.0.0]{.title-ref}.
  • adds service to reset all local overrides. Exposes a new service [/config_manager/reset_params std_srvs/Trigger]{.title-ref} that will reset all local overrides their default value. This provides a ROS compatible way of getting back to the default values.
  • Contributors: Jørgen Borgesen, Nick Hawes, Marc Hanheide

0.4.3 (2019-04-04)

  • Merge pull request #243 from furushchev/get-publisher add method to get num subscribers for insertion
  • Merge pull request #242 from furushchev/shutdown shutdown publisher on destruction
  • Merge pull request #241 from furushchev/add-published-at append _meta.published_at for stamped messages
  • Merge pull request #240 from furushchev/fix-replicate display more info on replication
  • add method to get num subscribers for insertion

File truncated at 100 lines see the full file

Launch files

  • launch/mongodb_store.launch
      • db_path [default: /var/local/mongodb_store]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • connection_string [default: ]
      • machine [default: localhost]
      • user [default: ]
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • launch_config [default: $(arg launch_config)]
      • launch_replicator [default: $(arg launch_replicator)]
  • launch/mongodb_store_inc.launch
      • db_path [default: /var/local/mongodb_store]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • connection_string [default: ]
      • machine
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged mongodb_store at Robotics Stack Exchange

Package symbol

mongodb_store package from mongodb_store repo

mongodb_log mongodb_store mongodb_store_msgs

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 0.6.0
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description MongoDB tools for storing and analysing runs of ROS systems.
Checkout URI https://github.com/strands-project/mongodb_store.git
VCS Type git
VCS Version noetic-devel
Last Updated 2023-02-27
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A package to support MongoDB-based storage and analysis for data from a ROS system, eg. saved messages, configurations etc

Additional Links

Maintainers

  • Nick Hawes

Authors

  • Chris Burbridge
  • Nick Hawes

mongodb_store

This package wraps up MongoDB database server in ROS, allowing it to be used to store configuration parameters.

Two nodes are provided:

  • mongodb_server.py
  • config_manager.py

These node depends on MongoDB and the Python client libraries (>=2.3). Install by:

sudo apt-get install python-pymongo mongodb

If this does not give the required version, you can use:

sudo pip install pymongo

Running the mongodb_server

The start the datacentre:

rosparam set mongodb_port 62345
rosparam set mongodb_host bob # note that if using multiple machines, 'localhost' is no good

rosrun mongodb_store mongodb_server.py

By default, the mongod database will be stored in /opt/strands/mongodb_store. This can be overridden by setting the private parameter ~database_path for the node. If it is the first time that the database is used, be sure to first run

```mkdir /opt/strands/mongodb_store


If you prefer to use different mongodb instance, set the mongodb_* parameters accordingly.

Or if you'd like to use existing mongod (e.g. mongod launched as Linux service)


rosparam set mongodb_use_daemon true rosparam set mongodb_port 62345 rosparam set mongodb_host localhost

roslaunch mongodb_store mongodb_store.launch use_daemon:=true


Config Manager Overview
-----------------------

The config manager provides a centralised way to store robot application parameters, with optional site-specific overrides. All configurations are stored inside the mongodb_store mongodb, within a database named "configs". 

Two levels of parameters are considered:

1) Global default parameters. 
These should be "working defaults" - so all essential parameters at least have a default value. For example, if a robot application requires some calibration data then default values should be provided.
Default parameters can be shared among sites and stored inside a shared ROS package. When the config manager is started, all .yaml files stored in a 'defaults' folder will be examined. Any new default parameters will automatically be inserted into the "defaults" collection within the configs database. The defaults folder should be supplied as a private parameter: `~defaults_path` either set to a system path or in the form `pkg://ros_package_name/inside/package`.

2) Local parameters.
These parameters override the same named  global default parameters, allowing site-specific parameter setting. They are stored within the database inside the "local" collection.

At start up, the config manager places all parameters onto the ros parameter server to allow interoperability with existing software. Parameters can also be queried using the /config_manager/get_param service, or by directly connection to and querying the mongo database server.

Likewise, local parameter overrides can be set using the /config_manager/set_param service or by directly editing the "local" collection in the configs database.


Running config manager
----------------------

To start the config manager, make sure that you have the mongo db running then:



rosrun mongodb_store config_manager.py _defaults_path:=pkg://my_package/defaults


This will load all parameters onto the ros parameter server, which can be checked with:

rosparam list





Reading parameters
------------------

There are three methods to access parameter values:
1) Use the copy on the ros parameter server:

rosparam get /my/parameter

and likewise with the rospy and roscpp libraries.
2) Use the config_manager service:

rosservice call /config_manager/get_param “param_name: ‘/my/parameter’”

``` 3) Using the database server directly

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mongodb_store

0.6.0 (2022-09-20)

  • Avoid deadlock on server shutdown (#279)
  • Fix Python 3 bugs in mongodb_store (#272, #274, #275)
  • handling of host binding (#270)
  • update package.xml to format=3 (#269)
  • fix connection_string arg default value (#266)
  • fixed bug in where the replicator node did not recognize the db_host (#261)
  • Added .launch to the roslaunch command that was written in the readme file (#262)
  • fixed a formatting issue
  • fixed bug in where the replicator node did not recognize the db_host
  • remembering namespace in rosparam
  • Provide options to prevent unnecessary nodes launching
  • added ability for message store to use a full connection string
  • Removed --smallfiles arg no longer supported by MongoDB (#257)
  • Contributors: Adrian Dole, Gal Gorjup, Kei Okada, Marc Hanheide, Nick Hawes, Shingo Kitagawa, Vittoria Santoro

0.5.2 (2019-11-11)

  • added python-future to package.xml, which got lost in previous commit for some reasons ...

  • corrected typo

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • add dependency to package xml

  • back to system mongo

  • Contributors: Ferenc Balint-Benczedi, Nick Hawes, Shingo Kitagawa, Volker Gabler, vgab

0.5.1 (2019-06-28)

  • added python-future to package.xml

  • removed flags for most of files for simplicity, also included future.utils, may introduce undesireable dependency though

  • resolved python2 backward compatibility issues not thouroughly checked though Added python version checks, where needed. Changes not adjusted to version:

    • print always with brackets

    - excepti XXX, e ==> except XXX as e as there is no problem with python2 to best of my knowledge

  • adjusted python funtions for python3

  • Contributors: Shingo Kitagawa, Volker Gabler

0.5.0 (2018-12-20)

  • Merge pull request #231 from bbferka/melodic-devel Melodic devel
  • add dependency to package xml
  • make it run
  • back to system mongo
  • Contributors: Ferenc Balint-Benczedi, Nick Hawes

0.4.5 (2019-06-28)

  • Allow to bind mongod to host The existing solution bind the mongod server to all interfaces. This exposes the server to the outside. This could be a potensial security issue if someone has access to your network. This change allows you to only bind the server to the host specified by the [mongodb_host]{.title-ref} parameter. The solution was created with a flag defaulting to false to prevent this from being a breaking change. Specifying the argument [bind_to_host]{.title-ref} will add a bind argument to the executable: ` [..., "--bind_ip", self._mongo_host][ Info: The

File truncated at 100 lines see the full file

Launch files

  • launch/mongodb_store.launch
      • db_path [default: /var/local/mongodb_store]
      • mongodb_host [default: $(optenv ROS_HOSTNAME localhost)]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • connection_string [default: ]
      • machine [default: localhost]
      • user [default: ]
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • launch_config [default: $(arg launch_config)]
      • launch_replicator [default: $(arg launch_replicator)]
  • launch/mongodb_store_inc.launch
      • db_path [default: /var/local/mongodb_store]
      • mongodb_host [default: $(optenv ROS_HOSTNAME localhost)]
      • port [default: 62345]
      • defaults_path [default: ]
      • replicator_dump_path [default: /tmp/replicator_dumps]
      • use_daemon [default: false]
      • launch_config [default: true]
      • launch_replicator [default: true]
      • connection_string [default: ]
      • machine
      • test_mode [default: false]
      • use_repl_set [default: false]
      • repl_set [default: rs0]
      • queue_size [default: 100]
      • bind_to_host [default: false]
      • use_localdatacenter [default: true]

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged mongodb_store at Robotics Stack Exchange