diff --git a/create_driver_package.sh b/create_driver_package.sh index 109d76caae1bdfebeb5ff263087e442264c2d9ef..806e64673ab24223c6e44df50968f2ffc7acd8d7 100755 --- a/create_driver_package.sh +++ b/create_driver_package.sh @@ -176,20 +176,25 @@ sed -e "s/template_driver/${driver_filename}/g" \ eval "chmod 775 ${project_name}/cfg/${basename}.cfg" echo "Creating ${basename}.cfg file..." echo "" + +################################################################################ +#create launch/config directory +mkdir -p ${project_name}/launch/ + +sed -e "s/template/${project_name}/g" <${IRI_ROS_SCRIPTS_PATH}/common_templates/node.launch >"${project_name}/launch/node.launch" +sed -e "s/template/${project_name}/g" <${IRI_ROS_SCRIPTS_PATH}/common_templates/test.launch >"${project_name}/launch/test.launch" + +mkdir -p ${project_name}/config/ +cp ${IRI_ROS_SCRIPTS_PATH}/common_templates/params.yaml ${project_name}/config/params.yaml +################################################################################ + + +################################################################################ +#add license and readme +cp ${IRI_ROS_SCRIPTS_PATH}/common_templates/LICENSE ${project_name}/LICENSE + +sed -e "s/template/${project_name}/g" < ${IRI_ROS_SCRIPTS_PATH}/common_templates/README.md > "${project_name}/README.md" ################################################################################ -+#create launch directory -+mkdir -p ${project_name}/launch/ - --echo "" -+sed -e "s/template/${project_name}/g" <${temps_folder}/node.launch >"${project_name}/launch/node.launch" -+sed -e "s/template/${project_name}/g" <${temps_folder}/test.launch >"${project_name}/launch/test.launch" -+################################################################################ -+#add license and readme -+cp ${IRI_ROS_SCRIPTS_PATH}/common_templates/LICENSE ${project_name}/LICENSE -+ -+sed -e "s/template/${project_name}/g" < ${temps_folder}/README.md > "${project_name}/README.md" -+ -+################################################################################ echo "" echo "Project ${project_name} has been successfully created!!" diff --git a/driver_templates/template_driver.cfg b/driver_templates/template_driver.cfg index e3f3bae720f4628831127f6b4e2388f21d1bf3e7..9fb9032377145d5eb9269965b3f9ac53f3562593 100644 --- a/driver_templates/template_driver.cfg +++ b/driver_templates/template_driver.cfg @@ -38,7 +38,7 @@ from dynamic_reconfigure.parameter_generator_catkin import * gen = ParameterGenerator() -# Name Type Reconfiguration level Description Default Min Max -#gen.add("velocity_scale_factor", double_t, SensorLevels.RECONFIGURE_STOP, "Maximum velocity scale factor", 0.5, 0.0, 1.0) +# Name Type Reconf.level Description Default Min Max +gen.add("rate", double_t, 0, "Main loop rate (Hz)", 10.0, 0.1, 1000.0) exit(gen.generate(PACKAGE, "TemplateDriver", "Template")) diff --git a/driver_templates/template_driver_node.cpp b/driver_templates/template_driver_node.cpp index 091ae6985974cca2f100290596100982c3b2bd9c..39c7411f0130df03d94a921965beaded3333c77b 100644 --- a/driver_templates/template_driver_node.cpp +++ b/driver_templates/template_driver_node.cpp @@ -4,7 +4,12 @@ TemplateNode::TemplateNode(ros::NodeHandle &nh) : iri_base_driver::IriBaseNodeDriver<TemplateDriver>(nh) { //init class attributes if necessary - //this->setRate(10);//in [Hz] + if(!this->private_node_handle_.getParam("rate", this->config_.rate)) + { + ROS_WARN("TemplateNode::TemplateNode: param 'rate' not found"); + } + else + this->setRate(this->config_.rate); // [init publishers] @@ -23,6 +28,7 @@ void TemplateNode::mainNodeThread(void) { //lock access to driver if necessary this->driver_.lock(); + ROS_INFO("TemplateNode::mainNodeThread"); // [fill msg Header if necessary] @@ -60,6 +66,10 @@ void TemplateNode::addNodeDiagnostics(void) void TemplateNode::node_config_update(Config& new_cfg, uint32_t level) { + this->driver_.lock(); + if(new_cfg.rate!=this->getRate()) + this->setRate(new_cfg.rate); + this->driver_.unlock(); } TemplateNode::~TemplateNode(void)