![]() |
mongodb_store package from mongodb_store repomongodb_log mongodb_store mongodb_store_msgs |
ROS Distro
|
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
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 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
Package Dependencies
Deps | Name |
---|---|
rospy | |
roscpp | |
std_msgs | |
std_srvs | |
message_generation | |
mongodb_store_msgs | |
rostest | |
topic_tools | |
geometry_msgs | |
catkin |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
roseus_mongo | |
mongodb_log |
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
Services
Plugins
Recent questions tagged mongodb_store at Robotics Stack Exchange
![]() |
mongodb_store package from mongodb_store repomongodb_log mongodb_store mongodb_store_msgs |
ROS Distro
|
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
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 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
Package Dependencies
Deps | Name |
---|---|
rospy | |
roscpp | |
std_msgs | |
std_srvs | |
message_generation | |
mongodb_store_msgs | |
rostest | |
topic_tools | |
geometry_msgs | |
catkin |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
roseus_mongo | |
mongodb_log |
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
Services
Plugins
Recent questions tagged mongodb_store at Robotics Stack Exchange
![]() |
mongodb_store package from mongodb_store repomongodb_log mongodb_store mongodb_store_msgs |
ROS Distro
|
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
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 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
Package Dependencies
Deps | Name |
---|---|
rospy | |
roscpp | |
std_msgs | |
std_srvs | |
message_generation | |
mongodb_store_msgs | |
rostest | |
topic_tools | |
geometry_msgs | |
catkin |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
roseus_mongo | |
mongodb_log |
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
Services
Plugins
Recent questions tagged mongodb_store at Robotics Stack Exchange
![]() |
mongodb_store package from mongodb_store repomongodb_log mongodb_store mongodb_store_msgs |
ROS Distro
|
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
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 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
Package Dependencies
Deps | Name |
---|---|
rospy | |
roscpp | |
std_msgs | |
std_srvs | |
message_generation | |
mongodb_store_msgs | |
rostest | |
topic_tools | |
geometry_msgs | |
catkin |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
roseus_mongo | |
mongodb_log |
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
Services
Plugins
Recent questions tagged mongodb_store at Robotics Stack Exchange
![]() |
mongodb_store package from mongodb_store repomongodb_log mongodb_store mongodb_store_msgs |
ROS Distro
|
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
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 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
Package Dependencies
Deps | Name |
---|---|
rospy | |
roscpp | |
std_msgs | |
std_srvs | |
message_generation | |
mongodb_store_msgs | |
rostest | |
topic_tools | |
geometry_msgs | |
catkin |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
roseus_mongo | |
mongodb_log |
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
Services
Plugins
Recent questions tagged mongodb_store at Robotics Stack Exchange
![]() |
mongodb_store package from mongodb_store repomongodb_log mongodb_store mongodb_store_msgs |
ROS Distro
|
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
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 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
Package Dependencies
Deps | Name |
---|---|
rospy | |
roscpp | |
std_msgs | |
std_srvs | |
message_generation | |
mongodb_store_msgs | |
rostest | |
topic_tools | |
geometry_msgs | |
catkin |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
roseus_mongo | |
mongodb_log |
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
Services
Plugins
Recent questions tagged mongodb_store at Robotics Stack Exchange
![]() |
mongodb_store package from mongodb_store repomongodb_log mongodb_store mongodb_store_msgs |
ROS Distro
|
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
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 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
Package Dependencies
Deps | Name |
---|---|
rospy | |
roscpp | |
std_msgs | |
std_srvs | |
message_generation | |
mongodb_store_msgs | |
rostest | |
topic_tools | |
geometry_msgs | |
catkin |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
roseus_mongo | |
mongodb_log |
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
Services
Plugins
Recent questions tagged mongodb_store at Robotics Stack Exchange
![]() |
mongodb_store package from mongodb_store repomongodb_log mongodb_store mongodb_store_msgs |
ROS Distro
|
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
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 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
Package Dependencies
Deps | Name |
---|---|
rospy | |
roscpp | |
std_msgs | |
std_srvs | |
message_generation | |
mongodb_store_msgs | |
rostest | |
topic_tools | |
geometry_msgs | |
catkin |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
roseus_mongo | |
mongodb_log |
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
Services
Plugins
Recent questions tagged mongodb_store at Robotics Stack Exchange
![]() |
mongodb_store package from mongodb_store repomongodb_log mongodb_store mongodb_store_msgs |
ROS Distro
|
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
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 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
Package Dependencies
Deps | Name |
---|---|
rospy | |
roscpp | |
std_msgs | |
std_srvs | |
message_generation | |
mongodb_store_msgs | |
rostest | |
topic_tools | |
geometry_msgs | |
catkin |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
roseus_mongo | |
mongodb_log |
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]