From 2117bafe60177a705298f9860e1f27bcafc85f84 Mon Sep 17 00:00:00 2001 From: Kei Okada Date: Fri, 31 Jul 2015 14:43:22 +0900 Subject: [PATCH 1/5] add rep 146, rosparam naming conventions --- rep-0146.rst | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 rep-0146.rst diff --git a/rep-0146.rst b/rep-0146.rst new file mode 100644 index 000000000..a6645bc1f --- /dev/null +++ b/rep-0146.rst @@ -0,0 +1,62 @@ +REP: 146 +Title: ROS Robot Parameter Naming Convention +Author: Kei Okada +Status: Draft +Type: Informational +Content-Type: text/x-rst +Created: 31-Jly-2015 +Post-History: + +Abstract +======== + +This REP aims to define the best practices for robot related parameter +name space for making robot-agnostic packages. + + +Motivation +========== + +As the number of ROS-supported robot increases, we will write +robot-agnostic packages, but still they need robot-specific +information as calibration parameters. + +A `robot_description` parameter is widely shared naming convention +among ROS community and this REP proposes such conventions for robot specific information on +parameter, so application program can build their program on top of that. + + +Specifications +============== + +Parameters +---------- + +robot_description +''''''''''''''''' + +`robot_description` stores robot kinematics / geometry information using +URDF format. + + +robot/type +'''''''''' + +`robot/type` stores robot type, for example 'pr2' in PR2 robot case [1] + + +robot/name +'''''''''' + +`robot/name` stores robot name, default pr2 name is 'robot' [1] + +References +========== + +.. [1] PR2 robot.yaml + (https://github.com/pr2-debs/pr2-core/blob/master/root/etc/ros/robot.yaml) + +Copyright +========= + +This document has been placed in the public domain. From 7410b7a91de3f2460a9065cf93a31cd45330f9fc Mon Sep 17 00:00:00 2001 From: Kei Okada Date: Wed, 11 Oct 2017 17:59:29 +0900 Subject: [PATCH 2/5] add robot/info and examples --- rep-0146.rst | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/rep-0146.rst b/rep-0146.rst index a6645bc1f..5340e7b0f 100644 --- a/rep-0146.rst +++ b/rep-0146.rst @@ -50,6 +50,24 @@ robot/name `robot/name` stores robot name, default pr2 name is 'robot' [1] +robot/info +'''''''''' + +`robot/info` stores any other characteristics of the robot, including type, serial number, owner name / email address, timezone, language it uses ... + +Examples +======== + + +Example behaviors:: + + $ rosparam get robot/name + olive + $ rosparam get robot/type + pepper + $ rosparam get robot/info + {serial number: 00000000, owner name : Kei Okada, language: Japanese,....} + References ========== From 7278a1d0f5628b4a6c62e34165f7a24ec8d8c86e Mon Sep 17 00:00:00 2001 From: Kei Okada Date: Fri, 11 May 2018 14:39:49 +0900 Subject: [PATCH 3/5] use robot_name instaed of robot/name and update examples --- rep-0146.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/rep-0146.rst b/rep-0146.rst index 5340e7b0f..02b9707ef 100644 --- a/rep-0146.rst +++ b/rep-0146.rst @@ -39,21 +39,21 @@ robot_description URDF format. -robot/type +robot_type '''''''''' -`robot/type` stores robot type, for example 'pr2' in PR2 robot case [1] +`robot_type` stores robot type in lower cases, for example 'pr2' in PR2 robot case [1], 'pepper' in Pepper robot case and 'fetch' in Fetch robot cases. This could be regarded as manufacturer's model name. -robot/name +robot_name '''''''''' -`robot/name` stores robot name, default pr2 name is 'robot' [1] +`robot_name` stores robot name, default pr2 name is 'robot' [1], which is given individual name to the robot. So robot name of 'pr2' robot type could be 'james', 'gutsy' etc... robot/info '''''''''' -`robot/info` stores any other characteristics of the robot, including type, serial number, owner name / email address, timezone, language it uses ... +`robot_info` stores any other characteristics of the robot in YAML dict type, including type, serial number, owner name / email address, timezone, language it uses ... Examples ======== @@ -61,11 +61,11 @@ Examples Example behaviors:: - $ rosparam get robot/name + $ rosparam get robot_name olive - $ rosparam get robot/type + $ rosparam get robot_type pepper - $ rosparam get robot/info + $ rosparam get robot_info {serial number: 00000000, owner name : Kei Okada, language: Japanese,....} References From 30866ca6f1b2bf733f7ef1d55483471273a72fbe Mon Sep 17 00:00:00 2001 From: Kei Okada Date: Fri, 11 May 2018 18:35:01 +0900 Subject: [PATCH 4/5] update the description of robot_type and robot_name, removed robot_info --- rep-0146.rst | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/rep-0146.rst b/rep-0146.rst index 02b9707ef..8c87502e7 100644 --- a/rep-0146.rst +++ b/rep-0146.rst @@ -42,18 +42,14 @@ URDF format. robot_type '''''''''' -`robot_type` stores robot type in lower cases, for example 'pr2' in PR2 robot case [1], 'pepper' in Pepper robot case and 'fetch' in Fetch robot cases. This could be regarded as manufacturer's model name. +The `robot_type` should capture the name of the class of robot in a way that a user would understand the scope of the robot. If it's a commercial product it is recommended to use the production model name. ` For example 'pr2' in PR2 robot case [1], 'pepper' in Pepper robot case and 'fetch' in Fetch robot cases. robot_name '''''''''' -`robot_name` stores robot name, default pr2 name is 'robot' [1], which is given individual name to the robot. So robot name of 'pr2' robot type could be 'james', 'gutsy' etc... +`robot_name` stores robot name. It should be set to make sure that this robot instance is unique on the system in much that computers are recommended to have unique hostnames. For the case of PR2 robot, the default robot name is 'robot' [1], but other individuals have named 'james', 'gutsy' etc... -robot/info -'''''''''' - -`robot_info` stores any other characteristics of the robot in YAML dict type, including type, serial number, owner name / email address, timezone, language it uses ... Examples ======== @@ -65,8 +61,6 @@ Example behaviors:: olive $ rosparam get robot_type pepper - $ rosparam get robot_info - {serial number: 00000000, owner name : Kei Okada, language: Japanese,....} References ========== From e76be8a036fe50306033380d9bfc4fc6cdc16718 Mon Sep 17 00:00:00 2001 From: Kei Okada Date: Tue, 8 Jan 2019 14:05:34 +0900 Subject: [PATCH 5/5] fix number of typos by @Kukanani --- rep-0146.rst | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/rep-0146.rst b/rep-0146.rst index 8c87502e7..60e76e05a 100644 --- a/rep-0146.rst +++ b/rep-0146.rst @@ -10,21 +10,20 @@ Post-History: Abstract ======== -This REP aims to define the best practices for robot related parameter -name space for making robot-agnostic packages. +This REP aims to define best practices for robot-related ROS parameters +for use in robot-agnostic packages. Motivation ========== -As the number of ROS-supported robot increases, we will write +As the number of ROS-supported robots increases, we will write robot-agnostic packages, but still they need robot-specific -information as calibration parameters. - -A `robot_description` parameter is widely shared naming convention -among ROS community and this REP proposes such conventions for robot specific information on -parameter, so application program can build their program on top of that. +information, such as calibration parameters. +The `robot_description` parameter is an example of a widely shared naming convention +among the ROS community. This REP proposes similar conventions for robot-specific information to be stored on the +parameter server, helping applications that use these parameters to more easily run on a greater range of platforms. Specifications ============== @@ -36,19 +35,18 @@ robot_description ''''''''''''''''' `robot_description` stores robot kinematics / geometry information using -URDF format. +the URDF format. robot_type '''''''''' - -The `robot_type` should capture the name of the class of robot in a way that a user would understand the scope of the robot. If it's a commercial product it is recommended to use the production model name. ` For example 'pr2' in PR2 robot case [1], 'pepper' in Pepper robot case and 'fetch' in Fetch robot cases. +The `robot_type` should capture the name of the class of robot in a way that a user would understand the scope of the robot. If it's a commercial product it is recommended to use the production model name. For example 'pr2' in PR2 robot case [1], 'pepper' in Pepper robot case and 'fetch' in Fetch robot cases. robot_name '''''''''' -`robot_name` stores robot name. It should be set to make sure that this robot instance is unique on the system in much that computers are recommended to have unique hostnames. For the case of PR2 robot, the default robot name is 'robot' [1], but other individuals have named 'james', 'gutsy' etc... +`robot_name` stores the robot's unique name. It should be set to make sure that this robot instance is unique on the system, in same way that computers are recommended to have unique hostnames. For the case of PR2 robot, the default robot name is 'robot' [1], but other individuals have named 'james', 'gutsy' etc... Examples