|
From: <bla...@us...> - 2009-08-27 01:33:34
|
Revision: 23086
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23086&view=rev
Author: blaisegassend
Date: 2009-08-27 01:33:28 +0000 (Thu, 27 Aug 2009)
Log Message:
-----------
Conflated TriggerController and TriggerController Node in response to #2602
Modified Paths:
--------------
pkg/trunk/controllers/robot_mechanism_controllers/controller_plugins.xml
pkg/trunk/controllers/robot_mechanism_controllers/include/robot_mechanism_controllers/trigger_controller.h
pkg/trunk/controllers/robot_mechanism_controllers/src/trigger_controller.cpp
pkg/trunk/drivers/cam/camera_trigger_test/four_cams.launch
pkg/trunk/drivers/cam/camera_trigger_test/test_controllers.xml
pkg/trunk/pr2/qualification/tests/forearm_cam_test/ethercat.launch
Removed Paths:
-------------
pkg/trunk/pr2/qualification/tests/forearm_cam_test/trigger_controller.xml
Modified: pkg/trunk/controllers/robot_mechanism_controllers/controller_plugins.xml
===================================================================
--- pkg/trunk/controllers/robot_mechanism_controllers/controller_plugins.xml 2009-08-27 01:32:43 UTC (rev 23085)
+++ pkg/trunk/controllers/robot_mechanism_controllers/controller_plugins.xml 2009-08-27 01:33:28 UTC (rev 23086)
@@ -10,5 +10,4 @@
<class name="JointUDCalibrationController" type="controller::JointUDCalibrationController" base_class_type="controller::Controller" />
<class name="TriggerController" type="controller::TriggerController" base_class_type="controller::Controller" />
- <class name="TriggerControllerNode" type="controller::TriggerControllerNode" base_class_type="controller::Controller" />
</library>
Modified: pkg/trunk/controllers/robot_mechanism_controllers/include/robot_mechanism_controllers/trigger_controller.h
===================================================================
--- pkg/trunk/controllers/robot_mechanism_controllers/include/robot_mechanism_controllers/trigger_controller.h 2009-08-27 01:32:43 UTC (rev 23085)
+++ pkg/trunk/controllers/robot_mechanism_controllers/include/robot_mechanism_controllers/trigger_controller.h 2009-08-27 01:33:28 UTC (rev 23086)
@@ -220,41 +220,24 @@
private:
double getTick();
+
+ bool setWaveformSrv(trigger_configuration &req,
+ robot_mechanism_controllers::SetWaveform::Response &resp);
mechanism::RobotState * robot_;
ActuatorCommand *actuator_command_;
double prev_tick_;
+ ros::ServiceServer set_waveform_handle_;
+ ros::NodeHandle node_handle_;
+
// Configuration of controller.
trigger_configuration config_;
std::string actuator_name_;
};
-/** @class TriggerControllerNode
-* @brief Provides a thin wrapper for ROS communicaition with the trigger controller
-*/
-class TriggerControllerNode : public Controller
-{
-public:
- TriggerControllerNode();
-
- virtual ~TriggerControllerNode();
-
- void update();
-
- bool init(mechanism::RobotState *robot, const ros::NodeHandle &n);
-
-private:
- bool setWaveformSrv(trigger_configuration &req,
- robot_mechanism_controllers::SetWaveform::Response &resp);
-
- ros::ServiceServer set_waveform_handle_;
- ros::NodeHandle node_handle_;
- TriggerController * c_;
};
-};
-
#endif
Modified: pkg/trunk/controllers/robot_mechanism_controllers/src/trigger_controller.cpp
===================================================================
--- pkg/trunk/controllers/robot_mechanism_controllers/src/trigger_controller.cpp 2009-08-27 01:32:43 UTC (rev 23085)
+++ pkg/trunk/controllers/robot_mechanism_controllers/src/trigger_controller.cpp 2009-08-27 01:33:28 UTC (rev 23086)
@@ -62,7 +62,6 @@
#include "pluginlib/class_list_macros.h"
PLUGINLIB_REGISTER_CLASS(TriggerController, controller::TriggerController, controller::Controller)
-PLUGINLIB_REGISTER_CLASS(TriggerControllerNode, controller::TriggerControllerNode, controller::Controller)
using std::string;
using namespace controller;
@@ -114,6 +113,12 @@
bool TriggerController::init(mechanism::RobotState *robot, const ros::NodeHandle& n)
{
+ node_handle_ = n;
+
+ ROS_DEBUG("LOADING TRIGGER CONTROLLER NODE");
+ //string prefix = config->Attribute("name");
+ //ROS_DEBUG_STREAM("the prefix is "<<prefix);
+
assert(robot);
robot_=robot;
@@ -154,6 +159,8 @@
prev_tick_ = getTick();
+ set_waveform_handle_ = node_handle_.advertiseService("set_waveform", &TriggerController::setWaveformSrv, this);
+
ROS_DEBUG("TriggerController::init completed successfully"
" rr=%f ph=%f al=%i r=%i p=%i dc=%f.",
config_.rep_rate, config_.phase, config_.active_low, config_.running, config_.pulsed, config_.duty_cycle);
@@ -161,67 +168,23 @@
return true;
}
-//------------------- NODE -------------
-
-ROS_REGISTER_CONTROLLER(TriggerControllerNode);
-
-TriggerControllerNode::TriggerControllerNode()
-{
- ROS_DEBUG("creating controller node...");
- c_ = new TriggerController();
- ROS_DEBUG("done");
-}
-
-TriggerControllerNode::~TriggerControllerNode()
-{
- delete c_;
-}
-
-void TriggerControllerNode::update()
-{
- c_->update();
-}
-
-bool TriggerControllerNode::setWaveformSrv(
+bool TriggerController::setWaveformSrv(
trigger_configuration &req,
robot_mechanism_controllers::SetWaveform::Response &resp)
{
// FIXME This should be safe despite the asynchronous barrier. Should I
// be doing anything special to ensure that things get written in order?
- c_->config_.running = false; // Turn off pulsing before we start.
- c_->config_.rep_rate = req.rep_rate;
- c_->config_.phase = req.phase;
- c_->config_.duty_cycle = req.duty_cycle;
- c_->config_.active_low = !!req.active_low;
- c_->config_.pulsed = !!req.pulsed;
- c_->config_.running = !!req.running;
+ config_.running = false; // Turn off pulsing before we start.
+ config_.rep_rate = req.rep_rate;
+ config_.phase = req.phase;
+ config_.duty_cycle = req.duty_cycle;
+ config_.active_low = !!req.active_low;
+ config_.pulsed = !!req.pulsed;
+ config_.running = !!req.running;
ROS_DEBUG("TriggerController::setWaveformSrv completed successfully"
- " rr=%f ph=%f al=%i r=%i p=%i dc=%f.", c_->config_.rep_rate, c_->config_.phase,
- c_->config_.active_low, c_->config_.running, c_->config_.pulsed, c_->config_.duty_cycle);
+ " rr=%f ph=%f al=%i r=%i p=%i dc=%f.", config_.rep_rate, config_.phase,
+ config_.active_low, config_.running, config_.pulsed, config_.duty_cycle);
return true;
}
-
-bool TriggerControllerNode::init(mechanism::RobotState *robot, const ros::NodeHandle& n)
-{
- node_handle_ = n;
- //Init the model.
-
- ROS_DEBUG("LOADING TRIGGER CONTROLLER NODE");
- //string prefix = config->Attribute("name");
- //ROS_DEBUG_STREAM("the prefix is "<<prefix);
-
- // Parses subcontroller configuration
- if(c_->init(robot, node_handle_))
- {
- set_waveform_handle_ = node_handle_.advertiseService("set_waveform", &TriggerControllerNode::setWaveformSrv, this);
-
- // Default parameters
-
- ROS_DEBUG("DONE LOADING TRIGGER CONTROLLER NODE");
- return true;
- }
- ROS_DEBUG("ERROR LOADING TRIGGER CONTROLLER NODE");
- return false;
-}
Modified: pkg/trunk/drivers/cam/camera_trigger_test/four_cams.launch
===================================================================
--- pkg/trunk/drivers/cam/camera_trigger_test/four_cams.launch 2009-08-27 01:32:43 UTC (rev 23085)
+++ pkg/trunk/drivers/cam/camera_trigger_test/four_cams.launch 2009-08-27 01:33:28 UTC (rev 23086)
@@ -79,11 +79,11 @@
<!-- Spwns the controllers -->
<node name="spawner" pkg="mechanism_control" type="spawner.py" output="screen" args="trig_controller led_controller" />
<group ns="trig_controller">
- <param name="type" type="string" value="TriggerControllerNode" />
+ <param name="type" type="string" value="TriggerController" />
<param name="actuator" type="string" value="trig_controller" />
</group>
<group ns="led_controller">
- <param name="type" type="string" value="TriggerControllerNode" />
+ <param name="type" type="string" value="TriggerController" />
<param name="actuator" type="string" value="led_controller" />
</group>
Modified: pkg/trunk/drivers/cam/camera_trigger_test/test_controllers.xml
===================================================================
--- pkg/trunk/drivers/cam/camera_trigger_test/test_controllers.xml 2009-08-27 01:32:43 UTC (rev 23085)
+++ pkg/trunk/drivers/cam/camera_trigger_test/test_controllers.xml 2009-08-27 01:33:28 UTC (rev 23086)
@@ -1,9 +1,9 @@
<controllers>
-<controller name="cam_controller" type="TriggerControllerNode">
+<controller name="cam_controller" type="TriggerController">
<actuator name="fl_caster_l_wheel_motor" />
<waveform rep_rate="24" active_low="0" phase="0" duty_cycle=".5" running="1" pulsed="1" />
</controller>
-<controller name="led_controller" type="TriggerControllerNode">
+<controller name="led_controller" type="TriggerController">
<actuator name="bl_caster_l_wheel_motor" />
<waveform rep_rate="10" active_low="1" phase="0" duty_cycle=".5" running="0" pulsed="1" />
</controller>
Modified: pkg/trunk/pr2/qualification/tests/forearm_cam_test/ethercat.launch
===================================================================
--- pkg/trunk/pr2/qualification/tests/forearm_cam_test/ethercat.launch 2009-08-27 01:32:43 UTC (rev 23085)
+++ pkg/trunk/pr2/qualification/tests/forearm_cam_test/ethercat.launch 2009-08-27 01:33:28 UTC (rev 23086)
@@ -4,11 +4,11 @@
<!-- Spwns the controllers -->
<node pkg="mechanism_control" type="spawner.py" output="screen" args="trig_controller led_controller" />
<group ns="trig_controller">
- <param name="type" type="string" value="TriggerControllerNode" />
+ <param name="type" type="string" value="TriggerController" />
<param name="actuator" type="string" value="forearm_cam_qual_trig" />
</group>
<group ns="led_controller">
- <param name="type" type="string" value="TriggerControllerNode" />
+ <param name="type" type="string" value="TriggerController" />
<param name="actuator" type="string" value="forearm_cam_qual_led" />
</group>
Deleted: pkg/trunk/pr2/qualification/tests/forearm_cam_test/trigger_controller.xml
===================================================================
--- pkg/trunk/pr2/qualification/tests/forearm_cam_test/trigger_controller.xml 2009-08-27 01:32:43 UTC (rev 23085)
+++ pkg/trunk/pr2/qualification/tests/forearm_cam_test/trigger_controller.xml 2009-08-27 01:33:28 UTC (rev 23086)
@@ -1,10 +0,0 @@
-<controllers>
-<controller name="trig_controller" type="TriggerControllerNode">
- <actuator name="forearm_cam_qual_trig" />
- <waveform rep_rate="1" active_low="0" phase="0" duty_cycle=".5" running="0" pulsed="1" />
-</controller>
-<controller name="led_controller" type="TriggerControllerNode">
- <actuator name="forearm_cam_qual_led" />
- <waveform rep_rate="1" active_low="0" phase="0" duty_cycle=".5" running="0" pulsed="1" />
-</controller>
-</controllers>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|