|
From: <vij...@us...> - 2009-08-12 22:52:33
|
Revision: 21723
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=21723&view=rev
Author: vijaypradeep
Date: 2009-08-12 22:52:19 +0000 (Wed, 12 Aug 2009)
Log Message:
-----------
Adding a blocking execute call to SingleActionGoalServer. Porting move_base to the blocking execute
Modified Paths:
--------------
pkg/trunk/stacks/common/actionlib/include/actionlib/server/single_goal_action_server.h
pkg/trunk/stacks/common/actionlib/include/actionlib/server/single_goal_action_server_imp.h
pkg/trunk/stacks/navigation/move_base/include/move_base/move_base.h
pkg/trunk/stacks/navigation/move_base/src/move_base.cpp
Modified: pkg/trunk/stacks/common/actionlib/include/actionlib/server/single_goal_action_server.h
===================================================================
--- pkg/trunk/stacks/common/actionlib/include/actionlib/server/single_goal_action_server.h 2009-08-12 22:47:31 UTC (rev 21722)
+++ pkg/trunk/stacks/common/actionlib/include/actionlib/server/single_goal_action_server.h 2009-08-12 22:52:19 UTC (rev 21723)
@@ -37,6 +37,7 @@
#ifndef ACTIONLIB_SINGLE_GOAL_ACTION_SERVER_H_
#define ACTIONLIB_SINGLE_GOAL_ACTION_SERVER_H_
+#include <boost/thread/condition.hpp>
#include <ros/ros.h>
#include <actionlib/server/action_server.h>
#include <actionlib/action_definition.h>
@@ -59,14 +60,20 @@
ACTION_DEFINITION(ActionSpec);
typedef typename ActionServer<ActionSpec>::GoalHandle GoalHandle;
+ typedef boost::function<void (const GoalConstPtr&)> ExecuteCallback;
/**
* @brief Constructor for a SingleGoalActionServer
* @param n A NodeHandle to create a namespace under
* @param name A name for the action server
+ * @param execute_cb Optional callback that gets called in a separate thread whenever
+ * a new goal is received, allowing users to have blocking callbacks.
+ * Adding an execute callback also deactivates the goalCallback.
*/
- SingleGoalActionServer(ros::NodeHandle n, std::string name);
+ SingleGoalActionServer(ros::NodeHandle n, std::string name, ExecuteCallback execute_cb = NULL);
+ ~SingleGoalActionServer();
+
/**
* @brief Accepts a new goal when one is available The status of this
* goal is set to active upon acceptance, and the status of any
@@ -140,6 +147,13 @@
*/
void preemptCallback(GoalHandle preempt);
+ /**
+ * @brief Called from a separate thread to call blocking execute calls
+ */
+ void executeLoop();
+
+ ros::NodeHandle n_;
+
boost::shared_ptr<ActionServer<ActionSpec> > as_;
GoalHandle current_goal_, next_goal_;
@@ -150,7 +164,10 @@
boost::function<void ()> goal_callback_;
boost::function<void ()> preempt_callback_;
+ ExecuteCallback execute_callback_;
+ boost::condition execute_condition_;
+ boost::thread* execute_thread_;
};
};
Modified: pkg/trunk/stacks/common/actionlib/include/actionlib/server/single_goal_action_server_imp.h
===================================================================
--- pkg/trunk/stacks/common/actionlib/include/actionlib/server/single_goal_action_server_imp.h 2009-08-12 22:47:31 UTC (rev 21722)
+++ pkg/trunk/stacks/common/actionlib/include/actionlib/server/single_goal_action_server_imp.h 2009-08-12 22:52:19 UTC (rev 21723)
@@ -38,17 +38,32 @@
#define ACTION_LIB_SINGLE_GOAL_ACTION_SERVER_H_
namespace actionlib {
template <class ActionSpec>
- SingleGoalActionServer<ActionSpec>::SingleGoalActionServer(ros::NodeHandle n, std::string name)
- : new_goal_(false), preempt_request_(false), new_goal_preempt_request_(false) {
+ SingleGoalActionServer<ActionSpec>::SingleGoalActionServer(ros::NodeHandle n, std::string name, ExecuteCallback execute_callback)
+ : n_(n), new_goal_(false), preempt_request_(false), new_goal_preempt_request_(false), execute_callback_(execute_callback) {
- //create the action server
- as_ = boost::shared_ptr<ActionServer<ActionSpec> >(new ActionServer<ActionSpec>(n, name,
- boost::bind(&SingleGoalActionServer::goalCallback, this, _1),
- boost::bind(&SingleGoalActionServer::preemptCallback, this, _1)));
+ //create the action server
+ as_ = boost::shared_ptr<ActionServer<ActionSpec> >(new ActionServer<ActionSpec>(n, name,
+ boost::bind(&SingleGoalActionServer::goalCallback, this, _1),
+ boost::bind(&SingleGoalActionServer::preemptCallback, this, _1)));
+ if (execute_callback_ != NULL)
+ {
+ execute_thread_ = new boost::thread(boost::bind(&SingleGoalActionServer::executeLoop, this));
}
+ }
template <class ActionSpec>
+ SingleGoalActionServer<ActionSpec>::~SingleGoalActionServer()
+ {
+ if (execute_callback_)
+ {
+ assert(execute_thread_);
+ execute_thread_->join();
+ delete execute_thread_;
+ }
+ }
+
+ template <class ActionSpec>
boost::shared_ptr<const typename SingleGoalActionServer<ActionSpec>::Goal> SingleGoalActionServer<ActionSpec>::acceptNewGoal(){
boost::recursive_mutex::scoped_lock lock(lock_);
@@ -120,7 +135,11 @@
template <class ActionSpec>
void SingleGoalActionServer<ActionSpec>::registerGoalCallback(boost::function<void ()> cb){
- goal_callback_ = cb;
+ // Cannot register a goal callback if an execute callback exists
+ if (execute_callback_)
+ ROS_WARN("Cannot call SingleGoalActionServer::registerGoalCallback() because an executeCallback exists. Not going to register it.");
+ else
+ goal_callback_ = cb;
}
template <class ActionSpec>
@@ -149,6 +168,9 @@
//if the user has defined a goal callback, we'll call it now
if(goal_callback_)
goal_callback_();
+
+ // Trigger runLoop to call execute()
+ execute_condition_.notify_all();
}
else{
//the goal requested has already been preempted by a different goal, so we're not going to execute it
@@ -176,5 +198,40 @@
new_goal_preempt_request_ = true;
}
}
+
+ template <class ActionSpec>
+ void SingleGoalActionServer<ActionSpec>::executeLoop(){
+
+ ros::Duration loop_duration = ros::Duration().fromSec(.1);
+
+ while (n_.ok())
+ {
+ boost::recursive_mutex::scoped_lock lock(lock_);
+ if (isActive())
+ ROS_ERROR("Should never reach this code with an active goal");
+ else if (isNewGoalAvailable())
+ {
+ GoalConstPtr goal = acceptNewGoal();
+
+ ROS_FATAL_COND(!execute_callback_, "execute_callback_ must exist. This is a bug in SingleGoalActionServer");
+
+ // Make sure we're not locked when we call execute
+ lock.unlock();
+ execute_callback_(goal);
+ lock.lock();
+
+ if (isActive())
+ {
+ ROS_WARN("Your executeCallback did not set the goal to a terminal status.\n"
+ "This is a bug in your ActionServer implementation. Fix your code!\n"
+ "For now, the ActionServer will set this goal to aborted");
+ setAborted();
+ }
+ }
+ else
+ execute_condition_.timed_wait(lock, boost::posix_time::milliseconds(loop_duration.toSec() * 1000.0f));
+ }
+ }
+
};
#endif
Modified: pkg/trunk/stacks/navigation/move_base/include/move_base/move_base.h
===================================================================
--- pkg/trunk/stacks/navigation/move_base/include/move_base/move_base.h 2009-08-12 22:47:31 UTC (rev 21722)
+++ pkg/trunk/stacks/navigation/move_base/include/move_base/move_base.h 2009-08-12 22:52:19 UTC (rev 21723)
@@ -99,11 +99,6 @@
*/
void executeCycle(geometry_msgs::PoseStamped& goal, std::vector<geometry_msgs::PoseStamped>& global_plan);
- /**
- * @brief The main loop of the MoveBase action
- */
- void runLoop();
-
private:
/**
* @brief A service call that can be made when the action is inactive that will return a plan
@@ -160,6 +155,8 @@
void goalCB(const geometry_msgs::PoseStamped::ConstPtr& goal);
+ void executeCb(const MoveBaseGoalConstPtr& move_base_goal);
+
geometry_msgs::PoseStamped goalToGlobalFrame(const geometry_msgs::PoseStamped& goal_pose_msg);
ros::NodeHandle ros_node_;
@@ -186,10 +183,9 @@
ClearingState clearing_state_;
ros::Time last_valid_plan_, last_valid_control_;
- boost::thread* run_loop_;
- pluginlib::PluginLoader<nav_core::BaseGlobalPlanner> bgp_loader_;
- pluginlib::PluginLoader<nav_core::BaseLocalPlanner> blp_loader_;
-
+ pluginlib::PluginLoader<nav_core::BaseGlobalPlanner> bgp_loader_;
+ pluginlib::PluginLoader<nav_core::BaseLocalPlanner> blp_loader_;
+
};
};
#endif
Modified: pkg/trunk/stacks/navigation/move_base/src/move_base.cpp
===================================================================
--- pkg/trunk/stacks/navigation/move_base/src/move_base.cpp 2009-08-12 22:47:31 UTC (rev 21722)
+++ pkg/trunk/stacks/navigation/move_base/src/move_base.cpp 2009-08-12 22:52:19 UTC (rev 21723)
@@ -42,8 +42,8 @@
MoveBase::MoveBase(std::string name, tf::TransformListener& tf) :
tf_(tf),
- as_(ros::NodeHandle(), name),
- tc_(NULL), planner_costmap_ros_(NULL), controller_costmap_ros_(NULL),
+ as_(ros::NodeHandle(), name, boost::bind(&MoveBase::executeCb, this, _1)),
+ tc_(NULL), planner_costmap_ros_(NULL), controller_costmap_ros_(NULL),
planner_(NULL), bgp_loader_("nav_core", "BaseGlobalPlanner"),
blp_loader_("nav_core", "BaseLocalPlanner"){
@@ -125,8 +125,6 @@
//the initial clearing state will be to conservatively clear the costmaps
clearing_state_ = CONSERVATIVE_RESET;
- run_loop_ = new boost::thread(boost::bind(&MoveBase::runLoop, this));
-
}
void MoveBase::goalCB(const geometry_msgs::PoseStamped::ConstPtr& goal){
@@ -216,13 +214,13 @@
//update the copy of the costmap the planner uses
clearCostmapWindows(2 * clearing_radius_, 2 * clearing_radius_);
- //if we have a tolerance on the goal point that is greater
+ //if we have a tolerance on the goal point that is greater
//than the resolution of the map... compute the full potential function
double resolution = planner_costmap_ros_->getResolution();
std::vector<geometry_msgs::PoseStamped> global_plan;
geometry_msgs::PoseStamped p;
p = req.goal;
- p.pose.position.y = req.goal.pose.position.y - req.tolerance;
+ p.pose.position.y = req.goal.pose.position.y - req.tolerance;
bool found_legal = false;
while(!found_legal && p.pose.position.y <= req.goal.pose.position.y + req.tolerance){
p.pose.position.x = req.goal.pose.position.x - req.tolerance;
@@ -252,10 +250,6 @@
}
MoveBase::~MoveBase(){
- if(run_loop_){
- run_loop_->join();
- delete run_loop_;
- }
if(planner_ != NULL)
delete planner_;
@@ -369,13 +363,13 @@
//just get the latest available transform... for accuracy they should send
//goals in the frame of the planner
- goal_pose.stamp_ = ros::Time();
+ goal_pose.stamp_ = ros::Time();
try{
tf_.transformPose(global_frame, goal_pose, global_pose);
}
catch(tf::TransformException& ex){
- ROS_WARN("Failed to transform the goal pose from %s into the %s frame: %s",
+ ROS_WARN("Failed to transform the goal pose from %s into the %s frame: %s",
goal_pose.frame_id_.c_str(), global_frame.c_str(), ex.what());
return goal_pose_msg;
}
@@ -386,81 +380,67 @@
}
- void MoveBase::runLoop(){
- ros::Rate r(controller_frequency_);
- geometry_msgs::PoseStamped goal;
+ void MoveBase::executeCb(const MoveBaseGoalConstPtr& move_base_goal)
+ {
+ geometry_msgs::PoseStamped goal = move_base_goal->target_pose;
std::vector<geometry_msgs::PoseStamped> global_plan;
- while(ros_node_.ok()){
- if(as_.isActive()){
- if(!as_.isPreemptRequested()){
- if(as_.isNewGoalAvailable()){
- //if we're active and a new goal is available, we'll accept it, but we won't shut anything down
- goal = goalToGlobalFrame((*as_.acceptNewGoal()).target_pose);
- //we'll make sure that we reset our state for the next execution cycle
- clearing_state_ = CONSERVATIVE_RESET;
- state_ = PLANNING;
+ ros::Rate r(controller_frequency_);
- //publish the goal point to the visualizer
- ROS_DEBUG("move_base has received a goal of x: %.2f, y: %.2f", goal.pose.position.x, goal.pose.position.y);
- publishGoal(goal);
+ while(as_.isActive())
+ {
+ if (!ros_node_.ok())
+ {
+ as_.setAborted();
+ break;
+ }
- //make sure to reset our timeouts
- last_valid_control_ = ros::Time::now();
- last_valid_plan_ = ros::Time::now();
- }
- //for timing that gives real time even in simulation
- struct timeval start, end;
- double start_t, end_t, t_diff;
- gettimeofday(&start, NULL);
+ if(!as_.isPreemptRequested()){
+ if(as_.isNewGoalAvailable()){
+ //if we're active and a new goal is available, we'll accept it, but we won't shut anything down
+ goal = goalToGlobalFrame((*as_.acceptNewGoal()).target_pose);
- //the real work on pursuing a goal is done here
- executeCycle(goal, global_plan);
-
- gettimeofday(&end, NULL);
- start_t = start.tv_sec + double(start.tv_usec) / 1e6;
- end_t = end.tv_sec + double(end.tv_usec) / 1e6;
- t_diff = end_t - start_t;
- ROS_DEBUG("Full control cycle time: %.9f\n", t_diff);
- }
- else{
- //if we've been preempted explicitly we need to shut things down
- resetState();
+ //we'll make sure that we reset our state for the next execution cycle
+ clearing_state_ = CONSERVATIVE_RESET;
+ state_ = PLANNING;
- //notify the ActionServer that we've successfully preemted
- ROS_DEBUG("Move base preempting the current goal");
- as_.setPreempted();
- }
- }
- else if(as_.isNewGoalAvailable()){
- //if we're inactive and a new goal is available, we'll accept it
- goal = goalToGlobalFrame((*as_.acceptNewGoal()).target_pose);
+ //publish the goal point to the visualizer
+ ROS_DEBUG("move_base has received a goal of x: %.2f, y: %.2f", goal.pose.position.x, goal.pose.position.y);
+ publishGoal(goal);
- //if we shutdown our costmaps when we're deactivated... we need to start them back up now
- if(shutdown_costmaps_){
- planner_costmap_ros_->start();
- controller_costmap_ros_->start();
+ //make sure to reset our timeouts
+ last_valid_control_ = ros::Time::now();
+ last_valid_plan_ = ros::Time::now();
}
+ //for timing that gives real time even in simulation
+ struct timeval start, end;
+ double start_t, end_t, t_diff;
+ gettimeofday(&start, NULL);
- //on activation... we'll reset our costmaps
- clearCostmapWindows(2 * clearing_radius_, 2 * clearing_radius_);
+ //the real work on pursuing a goal is done here
+ executeCycle(goal, global_plan);
- //publish the goal point to the visualizer
- ROS_DEBUG("move_base has received a goal of x: %.2f, y: %.2f", goal.pose.position.x, goal.pose.position.y);
- publishGoal(goal);
+ gettimeofday(&end, NULL);
+ start_t = start.tv_sec + double(start.tv_usec) / 1e6;
+ end_t = end.tv_sec + double(end.tv_usec) / 1e6;
+ t_diff = end_t - start_t;
+ ROS_DEBUG("Full control cycle time: %.9f\n", t_diff);
+ }
+ else{
+ //if we've been preempted explicitly we need to shut things down
+ resetState();
- //make sure to reset our timeouts
- last_valid_control_ = ros::Time::now();
- last_valid_plan_ = ros::Time::now();
+ //notify the ActionServer that we've successfully preemted
+ ROS_DEBUG("Move base preempting the current goal");
+ as_.setPreempted();
}
//make sure to sleep for the remainder of our cycle time
if(!r.sleep() && state_ == CONTROLLING)
ROS_WARN("Control loop missed its desired rate of %.4fHz... the loop actually took %.4f seconds", controller_frequency_, r.cycleTime().toSec());
-
}
}
-
+
void MoveBase::executeCycle(geometry_msgs::PoseStamped& goal, std::vector<geometry_msgs::PoseStamped>& global_plan){
//we need to be able to publish velocity commands
geometry_msgs::Twist cmd_vel;
@@ -474,7 +454,7 @@
//push the feedback out
position_pub_.publish(current_position);
- //check that the observation buffers for the costmap are current, we don't want to drive blind
+ //check that the observation buffers for the costmap are current, we don't want to drive blind
if(!controller_costmap_ros_->isCurrent()){
ROS_WARN("Sensor data is out of date, we're not going to allow commanding of the base for safety");
publishZeroVelocity();
@@ -505,7 +485,7 @@
else{
ros::Time attempt_end = last_valid_plan_ + ros::Duration(planner_patience_);
- //check if we've tried to make a plan for over our time limit
+ //check if we've tried to make a plan for over our time limit
if(ros::Time::now() > attempt_end){
//we'll move into our obstacle clearing mode
state_ = CLEARING;
@@ -526,7 +506,7 @@
resetState();
as_.setSucceeded();
return;
- }
+ }
if(tc_->computeVelocityCommands(cmd_vel)){
last_valid_control_ = ros::Time::now();
@@ -542,7 +522,7 @@
resetState();
as_.setAborted();
return;
- }
+ }
//otherwise, if we can't find a valid control, we'll go back to planning
last_valid_plan_ = ros::Time::now();
@@ -629,7 +609,7 @@
- }
+ }
void MoveBase::resetState(){
state_ = PLANNING;
@@ -653,12 +633,12 @@
int main(int argc, char** argv){
ros::init(argc, argv, "move_base");
tf::TransformListener tf(ros::Duration(10));
-
+
move_base::MoveBase move_base(ros::this_node::getName(), tf);
//ros::MultiThreadedSpinner s;
ros::spin();
-
+
return(0);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ehb...@us...> - 2009-08-12 23:52:46
|
Revision: 21738
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=21738&view=rev
Author: ehberger
Date: 2009-08-12 23:52:37 +0000 (Wed, 12 Aug 2009)
Log Message:
-----------
pr2 drivers is going away as a stack. Dependencies on things within it have to be resolved.
Added Paths:
-----------
pkg/trunk/stacks/sandbox/
Removed Paths:
-------------
pkg/trunk/stacks/pr2_drivers/
Property changes on: pkg/trunk/stacks/sandbox
___________________________________________________________________
Added: svn:mergeinfo
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rob...@us...> - 2009-08-14 05:13:07
|
Revision: 21859
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=21859&view=rev
Author: rob_wheeler
Date: 2009-08-14 04:55:44 +0000 (Fri, 14 Aug 2009)
Log Message:
-----------
Add a method to clear the DiagnosticStatus values in DiagnosticStatusWrapper.
Clear old values when reusing DiagnosticStatusWrapper.
Modified Paths:
--------------
pkg/trunk/stacks/hardware_test/diagnostic_updater/include/diagnostic_updater/DiagnosticStatusWrapper.h
pkg/trunk/stacks/pr2_ethercat_drivers/ethercat_hardware/src/ek1122.cpp
pkg/trunk/stacks/pr2_ethercat_drivers/ethercat_hardware/src/wg014.cpp
pkg/trunk/stacks/pr2_ethercat_drivers/ethercat_hardware/src/wg0x.cpp
Modified: pkg/trunk/stacks/hardware_test/diagnostic_updater/include/diagnostic_updater/DiagnosticStatusWrapper.h
===================================================================
--- pkg/trunk/stacks/hardware_test/diagnostic_updater/include/diagnostic_updater/DiagnosticStatusWrapper.h 2009-08-14 04:44:42 UTC (rev 21858)
+++ pkg/trunk/stacks/hardware_test/diagnostic_updater/include/diagnostic_updater/DiagnosticStatusWrapper.h 2009-08-14 04:55:44 UTC (rev 21859)
@@ -113,6 +113,11 @@
}
void addf(const std::string &key, const char *format, ...); // In practice format will always be a char *
+
+ void clear()
+ {
+ values.clear();
+ }
};
template<>
Modified: pkg/trunk/stacks/pr2_ethercat_drivers/ethercat_hardware/src/ek1122.cpp
===================================================================
--- pkg/trunk/stacks/pr2_ethercat_drivers/ethercat_hardware/src/ek1122.cpp 2009-08-14 04:44:42 UTC (rev 21858)
+++ pkg/trunk/stacks/pr2_ethercat_drivers/ethercat_hardware/src/ek1122.cpp 2009-08-14 04:55:44 UTC (rev 21859)
@@ -66,5 +66,6 @@
snprintf(serial, sizeof(serial), "%d-%05d-%05d", sh_->get_product_code()/ 100000 , sh_->get_product_code() % 100000, sh_->get_serial());
d.hardware_id = serial;
+ d.clear();
d.addf("Product code", "EK1122 (%u)", sh_->get_product_code());
}
Modified: pkg/trunk/stacks/pr2_ethercat_drivers/ethercat_hardware/src/wg014.cpp
===================================================================
--- pkg/trunk/stacks/pr2_ethercat_drivers/ethercat_hardware/src/wg014.cpp 2009-08-14 04:44:42 UTC (rev 21858)
+++ pkg/trunk/stacks/pr2_ethercat_drivers/ethercat_hardware/src/wg014.cpp 2009-08-14 04:55:44 UTC (rev 21859)
@@ -67,6 +67,7 @@
snprintf(serial, sizeof(serial), "%d-%05d-%05d", sh_->get_product_code()/ 100000 , sh_->get_product_code() % 100000, sh_->get_serial());
d.hardware_id = serial;
+ d.clear();
d.addf("Product code", "WG014 (%d)", sh_->get_product_code());
d.addf("Serial Number", "%s", serial);
}
Modified: pkg/trunk/stacks/pr2_ethercat_drivers/ethercat_hardware/src/wg0x.cpp
===================================================================
--- pkg/trunk/stacks/pr2_ethercat_drivers/ethercat_hardware/src/wg0x.cpp 2009-08-14 04:44:42 UTC (rev 21858)
+++ pkg/trunk/stacks/pr2_ethercat_drivers/ethercat_hardware/src/wg0x.cpp 2009-08-14 04:55:44 UTC (rev 21859)
@@ -877,6 +877,7 @@
d.hardware_id = serial;
d.level = level_;
+ d.clear();
d.add("Configuration", config_info_.configuration_status_ ? "good" : "error loading configuration");
d.add("Name", actuator_info_.name_);
d.addf("Position", "%02d", sh_->get_ring_position());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-08-17 23:06:07
|
Revision: 22052
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22052&view=rev
Author: sfkwc
Date: 2009-08-17 23:05:59 +0000 (Mon, 17 Aug 2009)
Log Message:
-----------
updated manifests
Modified Paths:
--------------
pkg/trunk/stacks/common/actionlib/manifest.xml
pkg/trunk/stacks/common/laser_scan/manifest.xml
pkg/trunk/stacks/common/pluginlib/manifest.xml
pkg/trunk/stacks/common/xacro/manifest.xml
pkg/trunk/stacks/visualization_common/ogre/manifest.xml
pkg/trunk/stacks/visualization_common/visualization_msgs/manifest.xml
Modified: pkg/trunk/stacks/common/actionlib/manifest.xml
===================================================================
--- pkg/trunk/stacks/common/actionlib/manifest.xml 2009-08-17 23:02:45 UTC (rev 22051)
+++ pkg/trunk/stacks/common/actionlib/manifest.xml 2009-08-17 23:05:59 UTC (rev 22052)
@@ -5,7 +5,7 @@
<author>Eitan Marder-Eppstein, Vijay Pradeep</author>
<license>BSD</license>
<review status="api cleared" notes=""/>
- <url>http://pr.willowgarage.com/wiki/actionlib</url>
+ <url>http://ros.org/wiki/actionlib</url>
<depend package="geometry_msgs" />
<depend package="roscpp" />
Modified: pkg/trunk/stacks/common/laser_scan/manifest.xml
===================================================================
--- pkg/trunk/stacks/common/laser_scan/manifest.xml 2009-08-17 23:02:45 UTC (rev 22051)
+++ pkg/trunk/stacks/common/laser_scan/manifest.xml 2009-08-17 23:05:59 UTC (rev 22052)
@@ -7,7 +7,7 @@
<author>Tully Foote</author>
<license>BSD</license>
<review status="API cleared" notes=""/>
-<url>http://pr.willowgarage.com/wiki/laser_scan</url>
+<url>http://ros.org/wiki/laser_scan</url>
<depend package="sensor_msgs"/>
<depend package="roscpp"/>
<depend package="tf"/>
Modified: pkg/trunk/stacks/common/pluginlib/manifest.xml
===================================================================
--- pkg/trunk/stacks/common/pluginlib/manifest.xml 2009-08-17 23:02:45 UTC (rev 22051)
+++ pkg/trunk/stacks/common/pluginlib/manifest.xml 2009-08-17 23:05:59 UTC (rev 22052)
@@ -1,13 +1,13 @@
<package>
<description brief="Tools for creating and using plugins with ROS">
- Tools for creating and using plugins with ROS, leveraging ROS manifests for automatic discovery of plugins.
+The pluginlib package provides tools for writing and dynamically loading plugins using the ROS build infrastructure. To work, these tools require plugin providers to register their plugins in the manifest.xml of their package.
</description>
<author>Tully Foote and Eitan Marder-Eppstein</author>
<license>BSD</license>
<review status="experimental" notes=""/>
- <url>http://pr.willowgarage.com/wiki/pluginlib</url>
+ <url>http://ros.org/wiki/pluginlib</url>
<depend package="roslib"/>
<depend package="tinyxml"/>
Modified: pkg/trunk/stacks/common/xacro/manifest.xml
===================================================================
--- pkg/trunk/stacks/common/xacro/manifest.xml 2009-08-17 23:02:45 UTC (rev 22051)
+++ pkg/trunk/stacks/common/xacro/manifest.xml 2009-08-17 23:05:59 UTC (rev 22052)
@@ -1,10 +1,10 @@
<package>
<description brief="Xacro (XML Macros)">
- Xacro is a macro language for XML, allowing large, complex documents
- to be more readable and shorter.
+ Xacro is an XML macro language. With xacro, you can construct shorter and more readable XML files by using macros that expand to larger XML expressions.
</description>
<author>Stuart Glaser</author>
<license>BSD</license>
+ <url>http://ros.org/wiki/xacro</url>
<review status="unreviewed" notes=""/>
<depend package="roslaunch" />
<depend package="rostest" />
Modified: pkg/trunk/stacks/visualization_common/ogre/manifest.xml
===================================================================
--- pkg/trunk/stacks/visualization_common/ogre/manifest.xml 2009-08-17 23:02:45 UTC (rev 22051)
+++ pkg/trunk/stacks/visualization_common/ogre/manifest.xml 2009-08-17 23:05:59 UTC (rev 22052)
@@ -1,12 +1,17 @@
<package>
<description brief="The Open Source Object-Oriented Graphics Rendering Engine">
+<p>
OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce applications utilising hardware-accelerated 3D graphics. The class library abstracts all the details of using the underlying system libraries like Direct3D and OpenGL and provides an interface based on world objects and other intuitive classes.
-
+</p>
+<p>
We use Ogre 1.6.3 for a number of reasons:
- * Gazebo needs 1.6.x
- * 1.6.2 would reliably crash rviz
- * 1.6.3 includes the only outstanding patch we had against Ogre.
+<ul>
+ <li>Gazebo needs 1.6.x</li>
+ <li>1.6.2 would reliably crash rviz</li>
+ <li>1.6.3 includes the only outstanding patch we had against Ogre.</li>
+</ul>
+</p>
</description>
<author> Steve 'sinbad' Streeting, Justin Walsh, Brian Johnstone and more.</author>
Modified: pkg/trunk/stacks/visualization_common/visualization_msgs/manifest.xml
===================================================================
--- pkg/trunk/stacks/visualization_common/visualization_msgs/manifest.xml 2009-08-17 23:02:45 UTC (rev 22051)
+++ pkg/trunk/stacks/visualization_common/visualization_msgs/manifest.xml 2009-08-17 23:05:59 UTC (rev 22052)
@@ -1,13 +1,15 @@
<package>
<description brief="Visualization Messages">
- A place to put all visualization-specific messages.
+visualization_msgs is a set of messages used by higher level packages, such as <a href="/wiki/rviz">rviz</a>, that deal in visualization-specific data.
+The main message in visualization_msgs is <strong>visualization_msgs::Marker</strong>. The marker message is used to send visualization "markers" such as boxes, spheres, arrows, lines, etc. to a visualization environment such as <a href="http:///www.ros.org/wiki/rviz">rviz</a>. See the rviz tutorial <a href="http://www.ros.org/wiki/rviz/Tutorials/UsingVisualizationMarkers">rviz/Tutorials/UsingVisualizationMarkers</a> for more information.
+
</description>
<author>Josh Faust/jf...@wi...</author>
<license>BSD</license>
- <review status="unreviewed" notes=""/>
- <url>http://pr.willowgarage.com/wiki/visualization_msgs</url>
+ <review status="API reviewed" notes=""/>
+ <url>http://ros.org/wiki/visualization_msgs</url>
<export>
<cpp cflags="-I${prefix}/msg/cpp"/>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mee...@us...> - 2009-08-17 23:43:18
|
Revision: 22060
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22060&view=rev
Author: meeussen
Date: 2009-08-17 23:43:09 +0000 (Mon, 17 Aug 2009)
Log Message:
-----------
Move robot pose ekf into navigation stack. Doc review was completed
Added Paths:
-----------
pkg/trunk/stacks/navigation/robot_pose_ekf/
Removed Paths:
-------------
pkg/trunk/stacks/estimation/robot_pose_ekf/
Property changes on: pkg/trunk/stacks/navigation/robot_pose_ekf
___________________________________________________________________
Added: svn:mergeinfo
+ /pkg/branches/gazebo-branch-merge/estimation/robot_pose_ekf:15683-15684,15739-15794,15797-15820,15822-15839,15852-15870,15983-16008,16010-16016,16129-16141,16145-16169,16245-16262,16274-16334
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pmi...@us...> - 2009-08-18 22:13:41
|
Revision: 22169
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22169&view=rev
Author: pmihelich
Date: 2009-08-18 22:13:33 +0000 (Tue, 18 Aug 2009)
Log Message:
-----------
Updated forearm_cam and dcam to publish meaningful image encodings. stereo_image_proc now actually trusts the encoding from the camera driver.
Modified Paths:
--------------
pkg/trunk/stacks/camera_drivers/dcam/src/nodes/dcam.cpp
pkg/trunk/stacks/camera_drivers/forearm_cam/src/nodes/forearm_node.cpp
pkg/trunk/stacks/stereo/stereo_image_proc/include/cam_bridge.h
pkg/trunk/stacks/stereo/stereo_image_proc/include/image.h
pkg/trunk/stacks/stereo/stereo_image_proc/src/imageproc.cpp
Modified: pkg/trunk/stacks/camera_drivers/dcam/src/nodes/dcam.cpp
===================================================================
--- pkg/trunk/stacks/camera_drivers/dcam/src/nodes/dcam.cpp 2009-08-18 22:01:13 UTC (rev 22168)
+++ pkg/trunk/stacks/camera_drivers/dcam/src/nodes/dcam.cpp 2009-08-18 22:13:33 UTC (rev 22169)
@@ -35,6 +35,7 @@
#include <cstdio>
#include "dcam/dcam.h"
+#include "cam_bridge.h"
#include "ros/node.h"
#include "sensor_msgs/Image.h"
@@ -199,70 +200,31 @@
publishImages("~", cam_->camIm);
}
- void publishImages(std::string base_name, cam::ImageData* img_data)
+ void publishImage(const std::string& topic, color_coding_t type,
+ int height, int width, void* data, size_t data_size)
{
- if (img_data->imRawType != COLOR_CODING_NONE)
- {
- fillImage(img_, sensor_msgs::image_encodings::TYPE_8UC1,
- img_data->imHeight, img_data->imWidth, img_data->imWidth,
- img_data->imRaw);
+ if (type == COLOR_CODING_NONE)
+ return;
+ std::string encoding = cam_bridge::ColorCodingToImageEncoding(type);
+ fillImage(img_, encoding, height, width, data_size / height, data);
+ img_.header.stamp = ros::Time().fromNSec(cam_->camIm->im_time * 1000);
+ timestamp_diag_.tick(img_.header.stamp);
+ publish(topic, img_);
+ }
- img_.header.stamp = ros::Time().fromNSec(cam_->camIm->im_time * 1000);
- timestamp_diag_.tick(img_.header.stamp);
- publish(base_name + std::string("image_raw"), img_);
- }
+ void publishImages(const std::string& base_name, cam::ImageData* img_data)
+ {
+ publishImage(base_name + "image_raw", img_data->imRawType, img_data->imHeight,
+ img_data->imWidth, img_data->imRaw, img_data->imRawSize);
+ publishImage(base_name + "image", img_data->imType, img_data->imHeight,
+ img_data->imWidth, img_data->im, img_data->imSize);
+ publishImage(base_name + "image_color", img_data->imColorType, img_data->imHeight,
+ img_data->imWidth, img_data->imColor, img_data->imColorSize);
+ publishImage(base_name + "image_rect", img_data->imRectType, img_data->imHeight,
+ img_data->imWidth, img_data->imRect, img_data->imRectSize);
+ publishImage(base_name + "image_rect_color", img_data->imRectColorType, img_data->imHeight,
+ img_data->imWidth, img_data->imRectColor, img_data->imRectColorSize);
- if (img_data->imType != COLOR_CODING_NONE)
- {
- fillImage(img_, sensor_msgs::image_encodings::TYPE_8UC1,
- img_data->imHeight, img_data->imWidth, img_data->imWidth,
- img_data->im);
- img_.header.stamp = ros::Time().fromNSec(cam_->camIm->im_time * 1000);
- timestamp_diag_.tick(img_.header.stamp);
- publish(base_name + std::string("image"), img_);
- }
-
- if (img_data->imColorType != COLOR_CODING_NONE && img_data->imColorType == COLOR_CODING_RGB8)
- {
- fillImage(img_, sensor_msgs::image_encodings::TYPE_8UC3,
- img_data->imHeight, img_data->imWidth, 3 * img_data->imWidth,
- img_data->imColor );
-
- img_.header.stamp = ros::Time().fromNSec(cam_->camIm->im_time * 1000);
- timestamp_diag_.tick(img_.header.stamp);
- publish(base_name + std::string("image_color"), img_);
- }
-
- if (img_data->imRectType != COLOR_CODING_NONE)
- {
- fillImage(img_, sensor_msgs::image_encodings::TYPE_8UC1,
- img_data->imHeight, img_data->imWidth, img_data->imWidth,
- img_data->imRect );
- img_.header.stamp = ros::Time().fromNSec(cam_->camIm->im_time * 1000);
- timestamp_diag_.tick(img_.header.stamp);
- publish(base_name + std::string("image_rect"), img_);
- }
-
- if (img_data->imRectColorType != COLOR_CODING_NONE && img_data->imRectColorType == COLOR_CODING_RGB8)
- {
- fillImage(img_, sensor_msgs::image_encodings::TYPE_8UC3,
- img_data->imHeight, img_data->imWidth, 3 * img_data->imWidth,
- img_data->imRectColor );
- img_.header.stamp = ros::Time().fromNSec(cam_->camIm->im_time * 1000);
- timestamp_diag_.tick(img_.header.stamp);
- publish(base_name + std::string("image_rect_color"), img_);
- }
-
- if (img_data->imRectColorType != COLOR_CODING_NONE && img_data->imRectColorType == COLOR_CODING_RGBA8)
- {
- fillImage(img_,sensor_msgs::image_encodings::TYPE_8UC4,
- img_data->imHeight, img_data->imWidth, 4 * img_data->imWidth,
- img_data->imRectColor );
- img_.header.stamp = ros::Time().fromNSec(cam_->camIm->im_time * 1000);
- timestamp_diag_.tick(img_.header.stamp);
- publish(base_name + std::string("image_rect_color"), img_);
- }
-
cam_info_.header.stamp = ros::Time().fromNSec(cam_->camIm->im_time * 1000);
cam_info_.height = img_data->imHeight;
cam_info_.width = img_data->imWidth;
@@ -274,7 +236,6 @@
timestamp_diag_.tick(img_.header.stamp);
publish(base_name + std::string("cam_info"), cam_info_);
-
}
Modified: pkg/trunk/stacks/camera_drivers/forearm_cam/src/nodes/forearm_node.cpp
===================================================================
--- pkg/trunk/stacks/camera_drivers/forearm_cam/src/nodes/forearm_node.cpp 2009-08-18 22:01:13 UTC (rev 22168)
+++ pkg/trunk/stacks/camera_drivers/forearm_cam/src/nodes/forearm_node.cpp 2009-08-18 22:13:33 UTC (rev 22169)
@@ -957,7 +957,8 @@
int publishImage(size_t width, size_t height, uint8_t *frameData, ros::Time t)
{
- fillImage(image_, sensor_msgs::image_encodings::TYPE_8UC1, height, width, width, frameData);
+ // Raw data is bayer BGGR pattern
+ fillImage(image_, sensor_msgs::image_encodings::BAYER_BGGR8, height, width, width, frameData);
image_.header.stamp = t;
cam_pub_.publish(image_);
Modified: pkg/trunk/stacks/stereo/stereo_image_proc/include/cam_bridge.h
===================================================================
--- pkg/trunk/stacks/stereo/stereo_image_proc/include/cam_bridge.h 2009-08-18 22:01:13 UTC (rev 22168)
+++ pkg/trunk/stacks/stereo/stereo_image_proc/include/cam_bridge.h 2009-08-18 22:13:33 UTC (rev 22169)
@@ -37,45 +37,82 @@
#include "stereo_msgs/RawStereo.h"
#include "sensor_msgs/fill_image.h"
+#include "sensor_msgs/image_encodings.h"
#include "image.h"
namespace cam_bridge
{
+ color_coding_t GetColorCoding(const sensor_msgs::Image& msg)
+ {
+ using namespace sensor_msgs::image_encodings;
+
+ if (msg.encoding == MONO8) return COLOR_CODING_MONO8;
+ if (msg.encoding == MONO16) return COLOR_CODING_MONO16;
+ if (msg.encoding == BAYER_RGGB8) return COLOR_CODING_BAYER8_RGGB;
+ if (msg.encoding == BAYER_BGGR8) return COLOR_CODING_BAYER8_BGGR;
+ if (msg.encoding == BAYER_GBRG8) return COLOR_CODING_BAYER8_GBRG;
+ if (msg.encoding == BAYER_GRBG8) return COLOR_CODING_BAYER8_GRBG;
+ if (msg.encoding == RGB8) return COLOR_CODING_RGB8;
+ if (msg.encoding == RGBA8) return COLOR_CODING_RGBA8;
+
+ ROS_ERROR("cam_bridge: Encoding '%s' is not supported", msg.encoding.c_str());
+ return COLOR_CODING_NONE;
+ }
+
+ std::string ColorCodingToImageEncoding(color_coding_t coding)
+ {
+ using namespace sensor_msgs::image_encodings;
+
+ if (coding == COLOR_CODING_MONO8) return MONO8;
+ if (coding == COLOR_CODING_MONO16) return MONO16;
+ if (coding == COLOR_CODING_BAYER8_RGGB) return BAYER_RGGB8;
+ if (coding == COLOR_CODING_BAYER8_BGGR) return BAYER_BGGR8;
+ if (coding == COLOR_CODING_BAYER8_GBRG) return BAYER_GBRG8;
+ if (coding == COLOR_CODING_BAYER8_GRBG) return BAYER_GRBG8;
+ if (coding == COLOR_CODING_RGB8) return RGB8;
+ if (coding == COLOR_CODING_RGBA8) return RGBA8;
+
+ ROS_WARN("cam_bridge: Don't know image encoding string for color coding %i", coding);
+ return "";
+ }
+
void CamDataToRawStereo(cam::ImageData* im, sensor_msgs::Image& im_msg, sensor_msgs::CameraInfo& info_msg, uint8_t& type)
{
+ // @todo: this could all be less hard-coded
if (im->imRawType != COLOR_CODING_NONE)
{
- fillImage(im_msg, sensor_msgs::image_encodings::TYPE_8UC1, im->imHeight, im->imWidth, im->imWidth, im->imRaw);
+ std::string encoding = ColorCodingToImageEncoding(im->imRawType);
+ fillImage(im_msg, encoding, im->imHeight, im->imWidth, im->imWidth, im->imRaw);
type = stereo_msgs::RawStereo::IMAGE_RAW;
}
else if (im->imType != COLOR_CODING_NONE)
{
- fillImage(im_msg, sensor_msgs::image_encodings::TYPE_8UC1, im->imHeight, im->imWidth, im->imWidth, im->im);
+ fillImage(im_msg, sensor_msgs::image_encodings::MONO8, im->imHeight, im->imWidth, im->imWidth, im->im);
type = stereo_msgs::RawStereo::IMAGE;
}
else if (im->imColorType != COLOR_CODING_NONE && im->imColorType == COLOR_CODING_RGBA8)
{
- fillImage(im_msg, sensor_msgs::image_encodings::TYPE_8UC4, im->imHeight, im->imWidth, 4 * im->imWidth, im->imColor);
+ fillImage(im_msg, sensor_msgs::image_encodings::RGBA8, im->imHeight, im->imWidth, 4 * im->imWidth, im->imColor);
type = stereo_msgs::RawStereo::IMAGE_COLOR;
}
else if (im->imColorType != COLOR_CODING_NONE && im->imColorType == COLOR_CODING_RGB8)
{
- fillImage(im_msg, sensor_msgs::image_encodings::TYPE_8UC3, im->imHeight, im->imWidth, 3 * im->imWidth, im->imColor);
+ fillImage(im_msg, sensor_msgs::image_encodings::RGB8, im->imHeight, im->imWidth, 3 * im->imWidth, im->imColor);
type = stereo_msgs::RawStereo::IMAGE_COLOR;
}
else if (im->imRectType != COLOR_CODING_NONE)
{
- fillImage(im_msg, sensor_msgs::image_encodings::TYPE_8UC1, im->imHeight, im->imWidth, im->imWidth, im->imRect);
+ fillImage(im_msg, sensor_msgs::image_encodings::MONO8, im->imHeight, im->imWidth, im->imWidth, im->imRect);
type = stereo_msgs::RawStereo::IMAGE_RECT;
}
else if (im->imRectColorType != COLOR_CODING_NONE && im->imRectColorType == COLOR_CODING_RGBA8)
{
- fillImage(im_msg, sensor_msgs::image_encodings::TYPE_8UC4, im->imHeight, im->imWidth, 4 * im->imWidth, im->imRectColor);
+ fillImage(im_msg, sensor_msgs::image_encodings::RGBA8, im->imHeight, im->imWidth, 4 * im->imWidth, im->imRectColor);
type = stereo_msgs::RawStereo::IMAGE_RECT_COLOR;
}
else if (im->imRectColorType != COLOR_CODING_NONE && im->imRectColorType == COLOR_CODING_RGB8)
{
- fillImage(im_msg, sensor_msgs::image_encodings::TYPE_8UC3, im->imHeight, im->imWidth, 3 * im->imWidth, im->imRectColor);
+ fillImage(im_msg, sensor_msgs::image_encodings::RGB8, im->imHeight, im->imWidth, 3 * im->imWidth, im->imRectColor);
type = stereo_msgs::RawStereo::IMAGE_RECT_COLOR;
}
@@ -175,49 +212,34 @@
if (type == stereo_msgs::RawStereo::IMAGE_RAW)
{
extractImage(im_msg.data, &im->imRawSize, &im->imRaw);
- im->imRawType = COLOR_CODING_BAYER8_GRBG;
+ im->imRawType = GetColorCoding(im_msg);
}
else if (type == stereo_msgs::RawStereo::IMAGE)
{
extractImage(im_msg.data, &im->imSize, &im->im);
im->imType = COLOR_CODING_MONO8;
}
- else if (type == stereo_msgs::RawStereo::IMAGE_COLOR && im_msg.encoding == sensor_msgs::image_encodings::TYPE_8UC4)
+ else if (type == stereo_msgs::RawStereo::IMAGE_COLOR)
{
extractImage(im_msg.data, &im->imColorSize, &im->imColor);
- im->imColorType = COLOR_CODING_RGBA8;
+ im->imColorType = GetColorCoding(im_msg);
}
- else if (type == stereo_msgs::RawStereo::IMAGE_COLOR && im_msg.encoding == sensor_msgs::image_encodings::TYPE_8UC3)
- {
- extractImage(im_msg.data, &im->imColorSize, &im->imColor);
- im->imColorType = COLOR_CODING_RGB8;
- }
else if (type == stereo_msgs::RawStereo::IMAGE_RECT)
{
extractImage(im_msg.data, &im->imRectSize, &im->imRect);
- im->imRectType = COLOR_CODING_MONO8;
+ im->imRectType = GetColorCoding(im_msg);
}
- else if (type == stereo_msgs::RawStereo::IMAGE_RECT_COLOR && im_msg.encoding == sensor_msgs::image_encodings::TYPE_8UC4)
+ else if (type == stereo_msgs::RawStereo::IMAGE_RECT_COLOR)
{
extractImage(im_msg.data, &im->imRectColorSize, &im->imRectColor);
- im->imRectColorType = COLOR_CODING_RGBA8;
+ im->imRectColorType = GetColorCoding(im_msg);
}
- else if (type == stereo_msgs::RawStereo::IMAGE_RECT_COLOR && im_msg.encoding == sensor_msgs::image_encodings::TYPE_8UC3)
- {
- extractImage(im_msg.data, &im->imRectColorSize, &im->imRectColor);
- im->imRectColorType = COLOR_CODING_RGB8;
- }
- // FIXME: this to avoid segfault when right image empty (disparity image requested instead).
- // this all seems kind of hacky
- if (im_msg.encoding == sensor_msgs::image_encodings::TYPE_8UC1) {
- im->imHeight = im_msg.height;
- im->imWidth = im_msg.width;
- } else {
- im->imHeight = info_msg.height;
- im->imWidth = info_msg.width;
- }
+ // @todo: this OK when right image empty (disparity image requested instead)?
+ im->imHeight = im_msg.height;
+ im->imWidth = im_msg.width;
+ // @todo: possible to NOT have rectification?
memcpy((char*)(im->D), (char*)(&info_msg.D[0]), 5*sizeof(double));
memcpy((char*)(im->K), (char*)(&info_msg.K[0]), 9*sizeof(double));
memcpy((char*)(im->R), (char*)(&info_msg.R[0]), 9*sizeof(double));
@@ -232,7 +254,8 @@
stIm->setSize(raw_stereo.stereo_info.width, raw_stereo.stereo_info.height);
stIm->hasDisparity = false;
-
+
+ // @todo: if not, don't try to extract right image?
if (raw_stereo.has_disparity)
{
extractImage(raw_stereo.disparity_image.data, &stIm->imDispSize, &stIm->imDisp);
Modified: pkg/trunk/stacks/stereo/stereo_image_proc/include/image.h
===================================================================
--- pkg/trunk/stacks/stereo/stereo_image_proc/include/image.h 2009-08-18 22:01:13 UTC (rev 22168)
+++ pkg/trunk/stacks/stereo/stereo_image_proc/include/image.h 2009-08-18 22:13:33 UTC (rev 22169)
@@ -176,6 +176,7 @@
// the Type info is COLOR_CODING_NONE if the data is not current
// the Size info gives the buffer size, for allocation logic
// NOTE: all data buffers should be 16-byte aligned
+ // @todo: can we just use IplImages for these...
uint8_t *imRaw; // raw image
color_coding_t imRawType; // type of raw data
size_t imRawSize;
Modified: pkg/trunk/stacks/stereo/stereo_image_proc/src/imageproc.cpp
===================================================================
--- pkg/trunk/stacks/stereo/stereo_image_proc/src/imageproc.cpp 2009-08-18 22:01:13 UTC (rev 22168)
+++ pkg/trunk/stacks/stereo/stereo_image_proc/src/imageproc.cpp 2009-08-18 22:13:33 UTC (rev 22169)
@@ -76,7 +76,7 @@
node_.subscribe(cam_name_ + "image_raw", raw_img_, &ImageProc::rawCb, this, 1);
}
- // TODO: should the callbacks actually be synchronized? is there a use case?
+ // @todo: synchronize callbacks
void camInfoCb()
{
boost::lock_guard<boost::mutex> guard(cam_info_mutex_);
@@ -85,11 +85,10 @@
void rawCb()
{
+ // @todo: move publishing into here, only do processing if topics have subscribers
boost::lock_guard<boost::mutex> guard(cam_info_mutex_);
cam_bridge::RawStereoToCamData(raw_img_, cam_info_, stereo_msgs::RawStereo::IMAGE_RAW, &img_data_);
- // @todo: stop hardcoding this to what forearm cam happens to use
- img_data_.imRawType = COLOR_CODING_BAYER8_BGGR;
if (do_colorize_) {
//img_data_.colorConvertType = COLOR_CONVERSION_EDGE;
@@ -103,50 +102,27 @@
publishImages();
}
+ void publishImage(color_coding_t coding, void* data, size_t dataSize, const std::string& topic)
+ {
+ if (coding == COLOR_CODING_NONE)
+ return;
+
+ // @todo: step calculation is a little hacky
+ fillImage(img_, cam_bridge::ColorCodingToImageEncoding(coding),
+ img_data_.imHeight, img_data_.imWidth,
+ dataSize / img_data_.imHeight /*step*/, data);
+ node_.publish(cam_name_ + topic, img_);
+ }
+
void publishImages()
{
img_.header.stamp = raw_img_.header.stamp;
img_.header.frame_id = raw_img_.header.frame_id;
-
- if (img_data_.imType != COLOR_CODING_NONE)
- {
- fillImage(img_, sensor_msgs::image_encodings::MONO8,
- img_data_.imHeight, img_data_.imWidth, img_data_.imWidth,
- img_data_.im );
- node_.publish(cam_name_ + "image", img_);
- }
- if (img_data_.imColorType == COLOR_CODING_RGB8)
- {
- fillImage(img_,sensor_msgs::image_encodings::RGB8,
- img_data_.imHeight, img_data_.imWidth, 3 * img_data_.imWidth,
- img_data_.imColor );
- node_.publish(cam_name_ + "image_color", img_);
- }
-
- if (img_data_.imRectType != COLOR_CODING_NONE)
- {
- fillImage(img_, sensor_msgs::image_encodings::MONO8,
- img_data_.imHeight, img_data_.imWidth, img_data_.imWidth,
- img_data_.imRect );
- node_.publish(cam_name_ + "image_rect", img_);
- }
-
- if (img_data_.imRectColorType == COLOR_CODING_RGB8)
- {
- fillImage(img_, sensor_msgs::image_encodings::RGB8,
- img_data_.imHeight, img_data_.imWidth, 3 * img_data_.imWidth,
- img_data_.imRectColor );
- node_.publish(cam_name_ + "image_rect_color", img_);
- }
-
- if (img_data_.imRectColorType == COLOR_CODING_RGBA8)
- {
- fillImage(img_, sensor_msgs::image_encodings::RGBA8,
- img_data_.imHeight, img_data_.imWidth, 4 * img_data_.imWidth,
- img_data_.imRectColor);
- node_.publish(cam_name_ + "image_rect_color", img_);
- }
+ publishImage(img_data_.imType, img_data_.im, img_data_.imSize, "image");
+ publishImage(img_data_.imColorType, img_data_.imColor, img_data_.imColorSize, "image_color");
+ publishImage(img_data_.imRectType, img_data_.imRect, img_data_.imRectSize, "image_rect");
+ publishImage(img_data_.imRectColorType, img_data_.imRectColor, img_data_.imRectColorSize, "image_rect_color");
}
void advertiseImages()
@@ -161,7 +137,7 @@
int main(int argc, char **argv)
{
ros::init(argc, argv);
- ros::Node n("stereoproc");
+ ros::Node n("imageproc");
ImageProc ip(n);
n.spin();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hsu...@us...> - 2009-08-20 01:08:12
|
Revision: 22377
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22377&view=rev
Author: hsujohnhsu
Date: 2009-08-20 01:08:04 +0000 (Thu, 20 Aug 2009)
Log Message:
-----------
adding pr2_simulator stack.
Added Paths:
-----------
pkg/trunk/stacks/pr2_simulator/
pkg/trunk/stacks/pr2_simulator/stack.xml
Added: pkg/trunk/stacks/pr2_simulator/stack.xml
===================================================================
--- pkg/trunk/stacks/pr2_simulator/stack.xml (rev 0)
+++ pkg/trunk/stacks/pr2_simulator/stack.xml 2009-08-20 01:08:04 UTC (rev 22377)
@@ -0,0 +1,9 @@
+<stack name="pr2_simulator" version="0.1">
+ <description brief="PR2 Simulation Plugins">
+ Plugins and resources for using simulators with PR2.
+ </description>
+ <author>John Hsu jo...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://ros.org/wiki/pr2_simulator</url>
+</stack>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mee...@us...> - 2009-08-20 01:08:45
|
Revision: 22378
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22378&view=rev
Author: meeussen
Date: 2009-08-20 01:08:24 +0000 (Thu, 20 Aug 2009)
Log Message:
-----------
rename folder to match stack name
Added Paths:
-----------
pkg/trunk/stacks/diagnostics/
Removed Paths:
-------------
pkg/trunk/stacks/hardware_test/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hsu...@us...> - 2009-08-20 02:25:49
|
Revision: 22392
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22392&view=rev
Author: hsujohnhsu
Date: 2009-08-20 02:25:35 +0000 (Thu, 20 Aug 2009)
Log Message:
-----------
* moving simulators stack to simulator_gazebo.
* patch ode dSINGLE flag passing from ODE to Gazebo.
Modified Paths:
--------------
pkg/trunk/stacks/simulator_gazebo/CMakeLists.txt
pkg/trunk/stacks/simulator_gazebo/gazebo/gazebo_new_patch.diff
pkg/trunk/stacks/simulator_gazebo/opende/opende_patch.diff
Added Paths:
-----------
pkg/trunk/stacks/simulator_gazebo/
Removed Paths:
-------------
pkg/trunk/stacks/simulators/
Modified: pkg/trunk/stacks/simulator_gazebo/CMakeLists.txt
===================================================================
--- pkg/trunk/stacks/simulators/CMakeLists.txt 2009-08-19 21:53:36 UTC (rev 22333)
+++ pkg/trunk/stacks/simulator_gazebo/CMakeLists.txt 2009-08-20 02:25:35 UTC (rev 22392)
@@ -16,6 +16,6 @@
# variables.
#list(APPEND CPACK_SOURCE_IGNORE_FILES /core/experimental)
-rosbuild(simulators 0.1.0)
+rosbuild(simulator_gazebo 0.1.0)
# After next ROS release, change to new macro
#rosbuild_make_distribution(0.1.0)
Modified: pkg/trunk/stacks/simulator_gazebo/gazebo/gazebo_new_patch.diff
===================================================================
--- pkg/trunk/stacks/simulators/gazebo/gazebo_new_patch.diff 2009-08-19 21:53:36 UTC (rev 22333)
+++ pkg/trunk/stacks/simulator_gazebo/gazebo/gazebo_new_patch.diff 2009-08-20 02:25:35 UTC (rev 22392)
@@ -11,6 +11,26 @@
IF (NOT PLAYER_FOUND)
SET (INCLUDE_PLAYER OFF CACHE BOOL "Build gazebo plugin for player" FORCE)
MESSAGE (STATUS "Warning: Player not found. The gazebo plugin for player will not be built. See the following website: http://playerstage.sourceforge.net")
+Index: cmake/FindOde.cmake
+===================================================================
+--- cmake/FindOde.cmake (revision 8208)
++++ cmake/FindOde.cmake (working copy)
+@@ -36,6 +36,15 @@
+ IF (NOT ODE_FOUND)
+ MESSAGE (SEND_ERROR "\nError: ODE and development files not found. See the following website: http://www.ode.org")
+ ELSE (NOT ODE_FOUND)
++ #SET (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${ODE_CFLAGS_OTHER}" CACHE INTERNAL "added dSINGLE" FORCE)
++ #SET (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${ODE_CFLAGS_OTHER}" CACHE INTERNAL "added dSINGLE" FORCE)
++ #SET (CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} ${ODE_CFLAGS_OTHER}" CACHE INTERNAL "added dSINGLE" FORCE)
++ #MESSAGE (STATUS "\n\ndebug\n" ${CMAKE_C_FLAGS_DEBUG} "\n\n")
++
++ APPEND_TO_CACHED_LIST(gazeboserver_cflags
++ ${gazeboserver_cflags_desc}
++ ${ODE_CFLAGS_OTHER})
++
+ APPEND_TO_CACHED_LIST(gazeboserver_include_dirs
+ ${gazeboserver_include_dirs_desc}
+ ${ODE_INCLUDE_DIRS})
Index: libgazebo/Iface.cc
===================================================================
--- libgazebo/Iface.cc (revision 8208)
@@ -41,6 +61,36 @@
if (this->timeout > 0 && this->GetRealTime() > this->timeout)
{
+Index: server/rendering/CMakeLists.txt
+===================================================================
+--- server/rendering/CMakeLists.txt (revision 8208)
++++ server/rendering/CMakeLists.txt (working copy)
+@@ -1,5 +1,3 @@
+-include (${gazebo_cmake_dir}/GazeboUtils.cmake)
+-
+ SET (sources OgreMovableText.cc
+ OgreCreator.cc
+ OgreAdaptor.cc
+Index: server/gui/CMakeLists.txt
+===================================================================
+--- server/gui/CMakeLists.txt (revision 8208)
++++ server/gui/CMakeLists.txt (working copy)
+@@ -1,3 +1,5 @@
++INCLUDE (${gazebo_cmake_dir}/GazeboUtils.cmake)
++
+ SET (sources Gui.cc
+ GLWindow.cc
+ MainMenu.cc
+@@ -16,6 +18,9 @@
+ GLFrame.hh
+ )
+
++LIST_TO_STRING(GAZEBO_CFLAGS "${gazeboserver_cflags}")
++SET_SOURCE_FILES_PROPERTIES(${sources} PROPERTIES COMPILE_FLAGS "${GAZEBO_CFLAGS} ${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE}}")
++
+ #ADD_LIBRARY(gazebo_gui STATIC ${sources})
+ ADD_LIBRARY(gazebo_gui-shared SHARED ${sources})
+
Index: server/World.hh
===================================================================
--- server/World.hh (revision 8208)
Modified: pkg/trunk/stacks/simulator_gazebo/opende/opende_patch.diff
===================================================================
--- pkg/trunk/stacks/simulators/opende/opende_patch.diff 2009-08-19 21:53:36 UTC (rev 22333)
+++ pkg/trunk/stacks/simulator_gazebo/opende/opende_patch.diff 2009-08-20 02:25:35 UTC (rev 22392)
@@ -1,16 +1,3 @@
-Index: include/ode/common.h
-===================================================================
---- include/ode/common.h (revision 1689)
-+++ include/ode/common.h (working copy)
-@@ -31,6 +31,8 @@
- #endif
-
-
-+#define dSINGLE
-+
- /* configuration stuff */
-
- /* constants */
Index: ode/src/quickstep.cpp
===================================================================
--- ode/src/quickstep.cpp (revision 1689)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ehb...@us...> - 2009-08-20 17:27:09
|
Revision: 22433
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22433&view=rev
Author: ehberger
Date: 2009-08-20 17:26:50 +0000 (Thu, 20 Aug 2009)
Log Message:
-----------
Create pr2_common stack
Modified Paths:
--------------
pkg/trunk/stacks/pr2/stack.xml
Added Paths:
-----------
pkg/trunk/stacks/pr2_common/
pkg/trunk/stacks/pr2_common/pr2_defs/
pkg/trunk/stacks/pr2_common/pr2_msgs/
pkg/trunk/stacks/pr2_common/pr2_srvs/
Removed Paths:
-------------
pkg/trunk/stacks/pr2/pr2_defs/
pkg/trunk/stacks/sandbox/pr2_msgs/
pkg/trunk/stacks/sandbox/pr2_srvs/
Modified: pkg/trunk/stacks/pr2/stack.xml
===================================================================
--- pkg/trunk/stacks/pr2/stack.xml 2009-08-20 17:18:49 UTC (rev 22432)
+++ pkg/trunk/stacks/pr2/stack.xml 2009-08-20 17:26:50 UTC (rev 22433)
@@ -22,5 +22,6 @@
<depend stack="common_msgs"/> <!-- geometry_msgs, diagnostic_msgs -->
<depend stack="hardware_test"/> <!-- runtime_monitor -->
<depend stack="highlevel"/> <!-- door_msgs, plugs_msgs -->
+ <depend stack="pr2_common"/>
</stack>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ehb...@us...> - 2009-08-20 18:55:00
|
Revision: 22446
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22446&view=rev
Author: ehberger
Date: 2009-08-20 18:54:48 +0000 (Thu, 20 Aug 2009)
Log Message:
-----------
Updating stack dependencies
Modified Paths:
--------------
pkg/trunk/stacks/navigation/stack.xml
pkg/trunk/stacks/pr2/stack.xml
pkg/trunk/stacks/pr2_power_drivers/stack.xml
pkg/trunk/stacks/semantic_mapping/stack.xml
pkg/trunk/stacks/simulator_gazebo/stack.xml
pkg/trunk/stacks/visual_feature_detectors/stack.xml
Modified: pkg/trunk/stacks/navigation/stack.xml
===================================================================
--- pkg/trunk/stacks/navigation/stack.xml 2009-08-20 18:38:24 UTC (rev 22445)
+++ pkg/trunk/stacks/navigation/stack.xml 2009-08-20 18:54:48 UTC (rev 22446)
@@ -10,7 +10,7 @@
<depend stack="geometry"/>
<depend stack="ros"/>
- <depend stack="visualization_core"/>
+ <depend stack="visualization_common"/>
<depend stack="common"/>
<depend stack="common_msgs"/>
Modified: pkg/trunk/stacks/pr2/stack.xml
===================================================================
--- pkg/trunk/stacks/pr2/stack.xml 2009-08-20 18:38:24 UTC (rev 22445)
+++ pkg/trunk/stacks/pr2/stack.xml 2009-08-20 18:54:48 UTC (rev 22446)
@@ -11,7 +11,7 @@
<depend stack="util"/> <!-- realtime_tools -->
<depend stack="camera_drivers"/> <!-- dcam, prosilica_cam -->
<depend stack="calibration"/> <!-- joint_calibration_monitor -->
- <depend stack="visualization_core"/> <!-- ogre_tools -->
+ <depend stack="visualization_common"/> <!-- ogre_tools -->
<depend stack="drivers"/> <!-- forearm_cam -->
<depend stack="mechanism"/> <!-- mechanism_control, hardware_interface, mechanism_control, mechanism_model, convex_decomposition, ivcon, robot_state_publisher, mechanism_bringup, convex_decomposition, ivcon -->
<depend stack="controllers"/> <!-- robot_mechanism_controllers, pr2_mechanism_controllers, joint_qualification_controllers, dynamic_verification_controllers, pr2_mechanism_controllers -->
Modified: pkg/trunk/stacks/pr2_power_drivers/stack.xml
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/stack.xml 2009-08-20 18:38:24 UTC (rev 22445)
+++ pkg/trunk/stacks/pr2_power_drivers/stack.xml 2009-08-20 18:54:48 UTC (rev 22446)
@@ -8,8 +8,9 @@
<license>BSD</license>
<review status="unreviewed" notes=""/>
<url>http://pr.willowgarage.com/wiki/pr2_power_drivers</url>
- <depend stack="hardware_test"/> <!-- diagnostic_updater -->
+ <depend stack="diagnostics"/> <!-- diagnostic_updater -->
<depend stack="ros"/> <!-- rospy, roscpp -->
<depend stack="common_msgs"/> <!-- diagnostic_msgs -->
+ <depend stack="pr2_common"/>
</stack>
Modified: pkg/trunk/stacks/semantic_mapping/stack.xml
===================================================================
--- pkg/trunk/stacks/semantic_mapping/stack.xml 2009-08-20 18:38:24 UTC (rev 22445)
+++ pkg/trunk/stacks/semantic_mapping/stack.xml 2009-08-20 18:54:48 UTC (rev 22446)
@@ -15,7 +15,7 @@
<depend stack="opencv"/> <!-- opencv_latest -->
<depend stack="common"/> <!-- robot_actions -->
<depend stack="ros"/> <!-- std_msgs, std_srvs, roscpp -->
- <depend stack="visualization_core"/> <!-- visualization_msgs -->
+ <depend stack="visualization_common"/> <!-- visualization_msgs -->
<depend stack="highlevel"/> <!-- plugs_msgs, door_msgs, door_functions -->
</stack>
Modified: pkg/trunk/stacks/simulator_gazebo/stack.xml
===================================================================
--- pkg/trunk/stacks/simulator_gazebo/stack.xml 2009-08-20 18:38:24 UTC (rev 22445)
+++ pkg/trunk/stacks/simulator_gazebo/stack.xml 2009-08-20 18:54:48 UTC (rev 22446)
@@ -10,7 +10,7 @@
<depend stack="geometry"/> <!-- bullet, tf -->
<depend stack="ros"/> <!-- roscpp, std_msgs -->
- <depend stack="visualization_core"/> <!-- ogre -->
+ <depend stack="visualization_common"/> <!-- ogre -->
<depend stack="common_msgs"/> <!-- sensor_msgs -->
</stack>
Modified: pkg/trunk/stacks/visual_feature_detectors/stack.xml
===================================================================
--- pkg/trunk/stacks/visual_feature_detectors/stack.xml 2009-08-20 18:38:24 UTC (rev 22445)
+++ pkg/trunk/stacks/visual_feature_detectors/stack.xml 2009-08-20 18:54:48 UTC (rev 22446)
@@ -17,7 +17,7 @@
<depend stack="opencv"/> <!-- opencv_latest, opencv_latest, opencv_latest, opencv_latest -->
<depend stack="common"/> <!-- robot_actions -->
<depend stack="pr2"/> <!-- pr2_robot_actions -->
- <depend stack="visualization_core"/> <!-- visualization_msgs -->
+ <depend stack="visualization_common"/> <!-- visualization_msgs -->
<depend stack="common_msgs"/> <!-- sensor_msgs, geometry_msgs, geometry_msgs, sensor_msgs -->
</stack>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ehb...@us...> - 2009-08-20 19:04:26
|
Revision: 22448
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22448&view=rev
Author: ehberger
Date: 2009-08-20 19:04:07 +0000 (Thu, 20 Aug 2009)
Log Message:
-----------
fixing stack dependencies
Modified Paths:
--------------
pkg/trunk/stacks/diagnostics/stack.xml
pkg/trunk/stacks/imu_drivers/stack.xml
Modified: pkg/trunk/stacks/diagnostics/stack.xml
===================================================================
--- pkg/trunk/stacks/diagnostics/stack.xml 2009-08-20 19:00:36 UTC (rev 22447)
+++ pkg/trunk/stacks/diagnostics/stack.xml 2009-08-20 19:04:07 UTC (rev 22448)
@@ -11,5 +11,6 @@
<depend stack="ros"/> <!-- rospy, rosrecord, roscpp, roscpp, rospy -->
<depend stack="common_msgs"/> <!-- diagnostic_msgs, diagnostic_msgs, diagnostic_msgs, diagnostic_msgs, diagnostic_msgs -->
+ <depend stack="common"/>
</stack>
Modified: pkg/trunk/stacks/imu_drivers/stack.xml
===================================================================
--- pkg/trunk/stacks/imu_drivers/stack.xml 2009-08-20 19:00:36 UTC (rev 22447)
+++ pkg/trunk/stacks/imu_drivers/stack.xml 2009-08-20 19:04:07 UTC (rev 22448)
@@ -7,7 +7,7 @@
<review status="unreviewed" notes=""/>
<url>http://pr.willowgarage.com/wiki/imu_drivers</url>
<depend stack="geometry"/> <!-- tf -->
- <depend stack="hardware_test"/> <!-- self_test, diagnostic_updater -->
+ <depend stack="diagnostics"/> <!-- self_test, diagnostic_updater -->
<depend stack="ros"/> <!-- roscpp, std_msgs, std_srvs, rosconsole -->
<depend stack="common_msgs"/> <!-- robot_srvs -->
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ehb...@us...> - 2009-08-20 19:30:00
|
Revision: 22453
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22453&view=rev
Author: ehberger
Date: 2009-08-20 19:29:45 +0000 (Thu, 20 Aug 2009)
Log Message:
-----------
hardware_test -> diagnostics in dependencies
Modified Paths:
--------------
pkg/trunk/stacks/laser_drivers/stack.xml
pkg/trunk/stacks/pr2/stack.xml
pkg/trunk/stacks/stereo/stack.xml
Modified: pkg/trunk/stacks/laser_drivers/stack.xml
===================================================================
--- pkg/trunk/stacks/laser_drivers/stack.xml 2009-08-20 19:25:59 UTC (rev 22452)
+++ pkg/trunk/stacks/laser_drivers/stack.xml 2009-08-20 19:29:45 UTC (rev 22453)
@@ -6,7 +6,7 @@
<license>BSD,LGPL</license>
<review status="unreviewed" notes=""/>
<url>http://pr.willowgarage.com/wiki/laser_drivers</url>
- <depend stack="hardware_test"/> <!-- self_test, diagnostic_updater -->
+ <depend stack="diagnostics"/> <!-- self_test, diagnostic_updater -->
<depend stack="ros"/> <!-- roscpp, roscpp -->
<depend stack="common_msgs"/> <!-- sensor_msgs, sensor_msgs -->
Modified: pkg/trunk/stacks/pr2/stack.xml
===================================================================
--- pkg/trunk/stacks/pr2/stack.xml 2009-08-20 19:25:59 UTC (rev 22452)
+++ pkg/trunk/stacks/pr2/stack.xml 2009-08-20 19:29:45 UTC (rev 22453)
@@ -20,7 +20,7 @@
<depend stack="estimation"/> <!-- robot_pose_ekf -->
<depend stack="ros"/> <!-- std_msgs, roscpp, std_msgs, rxtools, rospy, roslib, std_srvs -->
<depend stack="common_msgs"/> <!-- geometry_msgs, diagnostic_msgs -->
- <depend stack="hardware_test"/> <!-- runtime_monitor -->
+ <depend stack="diagnostics"/> <!-- runtime_monitor -->
<depend stack="highlevel"/> <!-- door_msgs, plugs_msgs -->
<depend stack="pr2_common"/>
Modified: pkg/trunk/stacks/stereo/stack.xml
===================================================================
--- pkg/trunk/stacks/stereo/stack.xml 2009-08-20 19:25:59 UTC (rev 22452)
+++ pkg/trunk/stacks/stereo/stack.xml 2009-08-20 19:29:45 UTC (rev 22453)
@@ -9,7 +9,7 @@
<review status="unreviewed" notes=""/>
<url>http://pr.willowgarage.com/wiki/stereo</url>
<depend stack="opencv"/> <!-- opencvpython, opencv_latest, opencv_latest -->
- <depend stack="hardware_test"/> <!-- diagnostic_updater -->
+ <depend stack="diagnostics"/> <!-- diagnostic_updater -->
<depend stack="ros"/> <!-- roscpp, rostest, rosrecord, roscpp -->
<depend stack="common_msgs"/> <!-- sensor_msgs -->
<depend stack="camera_drivers"/> <!-- libdc1394v2 -->
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ehb...@us...> - 2009-08-20 21:22:51
|
Revision: 22472
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22472&view=rev
Author: ehberger
Date: 2009-08-20 21:22:36 +0000 (Thu, 20 Aug 2009)
Log Message:
-----------
moving mesh files into pr2_common
Modified Paths:
--------------
pkg/trunk/stacks/mechanism/stack.xml
Added Paths:
-----------
pkg/trunk/stacks/pr2_common/pr2_ogre/
Removed Paths:
-------------
pkg/trunk/stacks/pr2/pr2_ogre/
Modified: pkg/trunk/stacks/mechanism/stack.xml
===================================================================
--- pkg/trunk/stacks/mechanism/stack.xml 2009-08-20 21:12:08 UTC (rev 22471)
+++ pkg/trunk/stacks/mechanism/stack.xml 2009-08-20 21:22:36 UTC (rev 22472)
@@ -8,11 +8,11 @@
<url>http://pr.willowgarage.com/wiki/mechanism</url>
- <depend stack="util"/> <!-- realtime_tools -->
+ <!--depend stack="util"/--> <!-- realtime_tools -->
<depend stack="geometry"/> <!-- kdl, tf, bullet, angles -->
<depend stack="controllers"/> <!-- control_toolbox, robot_mechanism_controllers, pr2_mechanism_controllers -->
<depend stack="common"/> <!-- tinyxml, loki, robot_actions -->
<depend stack="ros"/> <!-- gtest, roscpp, rospy, std_srvs, rosconsole, std_msgs -->
<depend stack="common_msgs"/> <!-- diagnostic_msgs, robot_srvs -->
-
+ <depend stack="diagnostics"/>
</stack>
Property changes on: pkg/trunk/stacks/pr2_common/pr2_ogre
___________________________________________________________________
Added: svn:ignore
+ .build_version
.rosgcov_files
bin
Added: svn:mergeinfo
+ /pkg/branches/gazebo-branch-merge/stacks/pr2/pr2_ogre:15683-15684,15739-15794,15797-15820,15822-15839,15852-15870,15983-16008,16010-16016,16129-16141,16145-16169,16245-16262,16274-16334
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <kur...@us...> - 2009-08-21 22:46:41
|
Revision: 22606
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22606&view=rev
Author: kurtkonolige
Date: 2009-08-21 22:46:20 +0000 (Fri, 21 Aug 2009)
Log Message:
-----------
moved image_view to new imaging_pipeline stack
Added Paths:
-----------
pkg/trunk/stacks/imaging_pipeline/
pkg/trunk/stacks/imaging_pipeline/image_geometry/
pkg/trunk/stacks/imaging_pipeline/image_geometry/ROS_BUILD_BLACKLIST
pkg/trunk/stacks/imaging_pipeline/image_geometry/mainpage.dox
pkg/trunk/stacks/imaging_pipeline/image_proc/
pkg/trunk/stacks/imaging_pipeline/image_proc/ROS_BUILD_BLACKLIST
pkg/trunk/stacks/imaging_pipeline/image_proc/mainpage.dox
pkg/trunk/stacks/imaging_pipeline/image_view/
pkg/trunk/stacks/imaging_pipeline/stack.xml
pkg/trunk/stacks/imaging_pipeline/stereo_image_proc/
pkg/trunk/stacks/imaging_pipeline/stereo_image_proc/ROS_BUILD_BLACKLIST
pkg/trunk/stacks/imaging_pipeline/stereo_image_proc/mainpage.dox
Removed Paths:
-------------
pkg/trunk/stacks/opencv/image_view/
Added: pkg/trunk/stacks/imaging_pipeline/image_geometry/ROS_BUILD_BLACKLIST
===================================================================
--- pkg/trunk/stacks/imaging_pipeline/image_geometry/ROS_BUILD_BLACKLIST (rev 0)
+++ pkg/trunk/stacks/imaging_pipeline/image_geometry/ROS_BUILD_BLACKLIST 2009-08-21 22:46:20 UTC (rev 22606)
@@ -0,0 +1 @@
+Transfering from stereo packages
Added: pkg/trunk/stacks/imaging_pipeline/image_geometry/mainpage.dox
===================================================================
--- pkg/trunk/stacks/imaging_pipeline/image_geometry/mainpage.dox (rev 0)
+++ pkg/trunk/stacks/imaging_pipeline/image_geometry/mainpage.dox 2009-08-21 22:46:20 UTC (rev 22606)
@@ -0,0 +1,119 @@
+/**
+\mainpage
+\htmlinclude manifest.html
+
+\b test_stereo_msgs is ...
+
+<!--
+In addition to providing an overview of your package,
+this is the section where the specification and design/architecture
+should be detailed. While the original specification may be done on the
+wiki, it should be transferred here once your package starts to take shape.
+You can then link to this documentation page from the Wiki.
+-->
+
+
+\section codeapi Code API
+
+<!--
+Provide links to specific auto-generated API documentation within your
+package that is of particular interest to a reader. Doxygen will
+document pretty much every part of your code, so do your best here to
+point the reader to the actual API.
+
+If your codebase is fairly large or has different sets of APIs, you
+should use the doxygen 'group' tag to keep these APIs together. For
+example, the roscpp documentation has 'libros' group.
+-->
+
+\section rosapi ROS API
+
+<!--
+Names are very important in ROS because they can be remapped on the
+command-line, so it is VERY IMPORTANT THAT YOU LIST NAMES AS THEY
+APPEAR IN THE CODE. You should list names of every topic, service and
+parameter used in your code. There is a template below that you can
+use to document each node separately.
+
+List of nodes:
+- \b node_name1
+- \b node_name2
+-->
+
+<!-- START: copy from here to 'END' for each node
+
+<hr>
+
+\subsection node_name node_name
+
+node_name does (provide a basic description of your node)
+
+\subsubsection Usage
+\verbatim
+$ node_type1 [standard ROS args]
+\endverbatim
+
+\par Example
+
+\verbatim
+$ node_type1
+\endverbatim
+
+
+\subsubsection topics ROS topics
+
+Subscribes to:
+- \b "in": [std_msgs/FooType] description of in
+
+Publishes to:
+- \b "out": [std_msgs/FooType] description of out
+
+
+\subsubsection parameters ROS parameters
+
+Reads the following parameters from the parameter server
+
+- \b "~param_name" : \b [type] description of param_name
+- \b "~my_param" : \b [string] description of my_param
+
+Sets the following parameters on the parameter server
+
+- \b "~param_name" : \b [type] description of param_name
+
+
+\subsubsection services ROS services
+- \b "foo_service": [std_srvs/FooType] description of foo_service
+
+
+END: copy for each node -->
+
+
+<!-- START: Uncomment if you have any command-line tools
+
+\section commandline Command-line tools
+
+This section is a catch-all for any additional tools that your package
+provides or uses that may be of use to the reader. For example:
+
+- tools/scripts (e.g. rospack, roscd)
+- roslaunch .launch files
+- xmlparam files
+
+\subsection script_name script_name
+
+Description of what this script/file does.
+
+\subsubsection Usage
+\verbatim
+$ ./script_name [args]
+\endverbatim
+
+\par Example
+
+\verbatim
+$ ./script_name foo bar
+\endverbatim
+
+END: Command-Line Tools Section -->
+
+*/
\ No newline at end of file
Added: pkg/trunk/stacks/imaging_pipeline/image_proc/ROS_BUILD_BLACKLIST
===================================================================
--- pkg/trunk/stacks/imaging_pipeline/image_proc/ROS_BUILD_BLACKLIST (rev 0)
+++ pkg/trunk/stacks/imaging_pipeline/image_proc/ROS_BUILD_BLACKLIST 2009-08-21 22:46:20 UTC (rev 22606)
@@ -0,0 +1 @@
+Transfering from stereo packages
Added: pkg/trunk/stacks/imaging_pipeline/image_proc/mainpage.dox
===================================================================
--- pkg/trunk/stacks/imaging_pipeline/image_proc/mainpage.dox (rev 0)
+++ pkg/trunk/stacks/imaging_pipeline/image_proc/mainpage.dox 2009-08-21 22:46:20 UTC (rev 22606)
@@ -0,0 +1,119 @@
+/**
+\mainpage
+\htmlinclude manifest.html
+
+\b test_stereo_msgs is ...
+
+<!--
+In addition to providing an overview of your package,
+this is the section where the specification and design/architecture
+should be detailed. While the original specification may be done on the
+wiki, it should be transferred here once your package starts to take shape.
+You can then link to this documentation page from the Wiki.
+-->
+
+
+\section codeapi Code API
+
+<!--
+Provide links to specific auto-generated API documentation within your
+package that is of particular interest to a reader. Doxygen will
+document pretty much every part of your code, so do your best here to
+point the reader to the actual API.
+
+If your codebase is fairly large or has different sets of APIs, you
+should use the doxygen 'group' tag to keep these APIs together. For
+example, the roscpp documentation has 'libros' group.
+-->
+
+\section rosapi ROS API
+
+<!--
+Names are very important in ROS because they can be remapped on the
+command-line, so it is VERY IMPORTANT THAT YOU LIST NAMES AS THEY
+APPEAR IN THE CODE. You should list names of every topic, service and
+parameter used in your code. There is a template below that you can
+use to document each node separately.
+
+List of nodes:
+- \b node_name1
+- \b node_name2
+-->
+
+<!-- START: copy from here to 'END' for each node
+
+<hr>
+
+\subsection node_name node_name
+
+node_name does (provide a basic description of your node)
+
+\subsubsection Usage
+\verbatim
+$ node_type1 [standard ROS args]
+\endverbatim
+
+\par Example
+
+\verbatim
+$ node_type1
+\endverbatim
+
+
+\subsubsection topics ROS topics
+
+Subscribes to:
+- \b "in": [std_msgs/FooType] description of in
+
+Publishes to:
+- \b "out": [std_msgs/FooType] description of out
+
+
+\subsubsection parameters ROS parameters
+
+Reads the following parameters from the parameter server
+
+- \b "~param_name" : \b [type] description of param_name
+- \b "~my_param" : \b [string] description of my_param
+
+Sets the following parameters on the parameter server
+
+- \b "~param_name" : \b [type] description of param_name
+
+
+\subsubsection services ROS services
+- \b "foo_service": [std_srvs/FooType] description of foo_service
+
+
+END: copy for each node -->
+
+
+<!-- START: Uncomment if you have any command-line tools
+
+\section commandline Command-line tools
+
+This section is a catch-all for any additional tools that your package
+provides or uses that may be of use to the reader. For example:
+
+- tools/scripts (e.g. rospack, roscd)
+- roslaunch .launch files
+- xmlparam files
+
+\subsection script_name script_name
+
+Description of what this script/file does.
+
+\subsubsection Usage
+\verbatim
+$ ./script_name [args]
+\endverbatim
+
+\par Example
+
+\verbatim
+$ ./script_name foo bar
+\endverbatim
+
+END: Command-Line Tools Section -->
+
+*/
\ No newline at end of file
Added: pkg/trunk/stacks/imaging_pipeline/stack.xml
===================================================================
--- pkg/trunk/stacks/imaging_pipeline/stack.xml (rev 0)
+++ pkg/trunk/stacks/imaging_pipeline/stack.xml 2009-08-21 22:46:20 UTC (rev 22606)
@@ -0,0 +1,15 @@
+<stack name="imaging_pipeline" version="0.1.0">
+ <description brief="pipeline for processing monocular and stereo images">
+ pipeline for processing monocular and stereo images
+ </description>
+ <author>Kurt Konolige</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/imaging_pipeline</url>
+ <depend stack="opencv"/> <!-- opencvpython, opencv_latest, opencv_latest -->
+ <depend stack="diagnostics"/> <!-- diagnostic_updater -->
+ <depend stack="ros"/> <!-- roscpp, rostest, rosrecord, roscpp -->
+ <depend stack="common_msgs"/> <!-- sensor_msgs -->
+ <depend stack="camera_drivers"/> <!-- libdc1394v2 -->
+
+</stack>
Added: pkg/trunk/stacks/imaging_pipeline/stereo_image_proc/ROS_BUILD_BLACKLIST
===================================================================
--- pkg/trunk/stacks/imaging_pipeline/stereo_image_proc/ROS_BUILD_BLACKLIST (rev 0)
+++ pkg/trunk/stacks/imaging_pipeline/stereo_image_proc/ROS_BUILD_BLACKLIST 2009-08-21 22:46:20 UTC (rev 22606)
@@ -0,0 +1 @@
+Transfering from stereo packages
Added: pkg/trunk/stacks/imaging_pipeline/stereo_image_proc/mainpage.dox
===================================================================
--- pkg/trunk/stacks/imaging_pipeline/stereo_image_proc/mainpage.dox (rev 0)
+++ pkg/trunk/stacks/imaging_pipeline/stereo_image_proc/mainpage.dox 2009-08-21 22:46:20 UTC (rev 22606)
@@ -0,0 +1,119 @@
+/**
+\mainpage
+\htmlinclude manifest.html
+
+\b test_stereo_msgs is ...
+
+<!--
+In addition to providing an overview of your package,
+this is the section where the specification and design/architecture
+should be detailed. While the original specification may be done on the
+wiki, it should be transferred here once your package starts to take shape.
+You can then link to this documentation page from the Wiki.
+-->
+
+
+\section codeapi Code API
+
+<!--
+Provide links to specific auto-generated API documentation within your
+package that is of particular interest to a reader. Doxygen will
+document pretty much every part of your code, so do your best here to
+point the reader to the actual API.
+
+If your codebase is fairly large or has different sets of APIs, you
+should use the doxygen 'group' tag to keep these APIs together. For
+example, the roscpp documentation has 'libros' group.
+-->
+
+\section rosapi ROS API
+
+<!--
+Names are very important in ROS because they can be remapped on the
+command-line, so it is VERY IMPORTANT THAT YOU LIST NAMES AS THEY
+APPEAR IN THE CODE. You should list names of every topic, service and
+parameter used in your code. There is a template below that you can
+use to document each node separately.
+
+List of nodes:
+- \b node_name1
+- \b node_name2
+-->
+
+<!-- START: copy from here to 'END' for each node
+
+<hr>
+
+\subsection node_name node_name
+
+node_name does (provide a basic description of your node)
+
+\subsubsection Usage
+\verbatim
+$ node_type1 [standard ROS args]
+\endverbatim
+
+\par Example
+
+\verbatim
+$ node_type1
+\endverbatim
+
+
+\subsubsection topics ROS topics
+
+Subscribes to:
+- \b "in": [std_msgs/FooType] description of in
+
+Publishes to:
+- \b "out": [std_msgs/FooType] description of out
+
+
+\subsubsection parameters ROS parameters
+
+Reads the following parameters from the parameter server
+
+- \b "~param_name" : \b [type] description of param_name
+- \b "~my_param" : \b [string] description of my_param
+
+Sets the following parameters on the parameter server
+
+- \b "~param_name" : \b [type] description of param_name
+
+
+\subsubsection services ROS services
+- \b "foo_service": [std_srvs/FooType] description of foo_service
+
+
+END: copy for each node -->
+
+
+<!-- START: Uncomment if you have any command-line tools
+
+\section commandline Command-line tools
+
+This section is a catch-all for any additional tools that your package
+provides or uses that may be of use to the reader. For example:
+
+- tools/scripts (e.g. rospack, roscd)
+- roslaunch .launch files
+- xmlparam files
+
+\subsection script_name script_name
+
+Description of what this script/file does.
+
+\subsubsection Usage
+\verbatim
+$ ./script_name [args]
+\endverbatim
+
+\par Example
+
+\verbatim
+$ ./script_name foo bar
+\endverbatim
+
+END: Command-Line Tools Section -->
+
+*/
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rob...@us...> - 2009-08-21 23:20:49
|
Revision: 22618
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22618&view=rev
Author: rob_wheeler
Date: 2009-08-21 23:20:41 +0000 (Fri, 21 Aug 2009)
Log Message:
-----------
Publish power board state on a separate topic
Modified Paths:
--------------
pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/include/power_node.h
pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/manifest.xml
pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/src/power_node/power_node.cpp
Added Paths:
-----------
pkg/trunk/stacks/pr2_common/pr2_msgs/msg/PowerBoardState.msg
Added: pkg/trunk/stacks/pr2_common/pr2_msgs/msg/PowerBoardState.msg
===================================================================
--- pkg/trunk/stacks/pr2_common/pr2_msgs/msg/PowerBoardState.msg (rev 0)
+++ pkg/trunk/stacks/pr2_common/pr2_msgs/msg/PowerBoardState.msg 2009-08-21 23:20:41 UTC (rev 22618)
@@ -0,0 +1,8 @@
+Header header
+string name
+# Circuit States:
+# STATE_NOPOWER, STATE_STANDBY, STATE_PUMPING, STATE_ON, STATE_DISABLED
+int8[3] circuit_state
+float64[3] circuit_voltage
+int8 run_stop
+int8 wireless_stop
Modified: pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/include/power_node.h
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/include/power_node.h 2009-08-21 23:19:11 UTC (rev 22617)
+++ pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/include/power_node.h 2009-08-21 23:20:41 UTC (rev 22618)
@@ -60,7 +60,7 @@
void init();
void collectMessages();
- void sendDiagnostic();
+ void sendMessages();
int collect_messages();
int process_message(const PowerMessage *msg, int len);
int process_transition_message(const TransitionMessage *msg, int len);
@@ -72,7 +72,8 @@
private:
ros::NodeHandle node_handle;
ros::ServiceServer service;
- ros::Publisher pub;
+ ros::Publisher diags_pub;
+ ros::Publisher state_pub;
pr2_power_board::PowerBoardCommand::Request req_;
pr2_power_board::PowerBoardCommand::Response res_;
Modified: pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/manifest.xml
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/manifest.xml 2009-08-21 23:19:11 UTC (rev 22617)
+++ pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/manifest.xml 2009-08-21 23:20:41 UTC (rev 22618)
@@ -7,6 +7,7 @@
<depend package="rospy" />
<depend package="diagnostic_updater" />
<depend package="diagnostic_msgs" />
+ <depend package="pr2_msgs" />
<export>
<cpp cflags="-I${prefix}/srv/cpp" />
</export>
Modified: pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/src/power_node/power_node.cpp
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/src/power_node/power_node.cpp 2009-08-21 23:19:11 UTC (rev 22617)
+++ pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/src/power_node/power_node.cpp 2009-08-21 23:20:41 UTC (rev 22618)
@@ -56,6 +56,7 @@
#include "power_node.h"
#include "diagnostic_msgs/DiagnosticArray.h"
#include "diagnostic_updater/DiagnosticStatusWrapper.h"
+#include "pr2_msgs/PowerBoardState.h"
#include "rosconsole/macros_generated.h"
#include "ros/ros.h"
@@ -641,7 +642,8 @@
service = node_handle.advertiseService("power_board_control", &PowerBoard::commandCallback, this);
- pub = node_handle.advertise<diagnostic_msgs::DiagnosticArray>("/diagnostics", 2);
+ diags_pub = node_handle.advertise<diagnostic_msgs::DiagnosticArray>("/diagnostics", 2);
+ state_pub = node_handle.advertise<pr2_msgs::PowerBoardState>("/power_board_state", 2);
}
bool PowerBoard::commandCallback(pr2_power_board::PowerBoardCommand::Request &req_,
@@ -661,7 +663,7 @@
}
}
-void PowerBoard::sendDiagnostic()
+void PowerBoard::sendMessages()
{
ros::Rate r(1);
while(node_handle.ok())
@@ -837,9 +839,20 @@
msg_out.status.push_back(stat);
//ROS_DEBUG("Publishing ");
- pub.publish(msg_out);
+ diags_pub.publish(msg_out);
+
+ pr2_msgs::PowerBoardState state_msg;
+ state_msg.name = stat.name;
+ state_msg.circuit_voltage[0] = status->CB0_voltage;
+ state_msg.circuit_voltage[1] = status->CB1_voltage;
+ state_msg.circuit_voltage[2] = status->CB2_voltage;
+ state_msg.circuit_state[0] = status->CB0_state;
+ state_msg.circuit_state[1] = status->CB1_state;
+ state_msg.circuit_state[2] = status->CB2_state;
+ state_msg.run_stop = status->estop_status;
+ state_msg.wireless_stop = status->estop_button_status;
+ state_pub.publish(state_msg);
}
-
}
}
@@ -850,7 +863,7 @@
void sendMessages()
{
- myBoard->sendDiagnostic();
+ myBoard->sendMessages();
}
// CloseAll
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rob...@us...> - 2009-08-24 16:03:26
|
Revision: 22694
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22694&view=rev
Author: rob_wheeler
Date: 2009-08-24 16:03:15 +0000 (Mon, 24 Aug 2009)
Log Message:
-----------
Remove explicit definition of BOOST_CB_DISABLE_DEBUG as it is now set in by rosbuild
Modified Paths:
--------------
pkg/trunk/stacks/common/filters/include/filters/realtime_circular_buffer.h
pkg/trunk/stacks/mechanism/mechanism_control/include/mechanism_control/controller_spec.h
Modified: pkg/trunk/stacks/common/filters/include/filters/realtime_circular_buffer.h
===================================================================
--- pkg/trunk/stacks/common/filters/include/filters/realtime_circular_buffer.h 2009-08-24 16:00:51 UTC (rev 22693)
+++ pkg/trunk/stacks/common/filters/include/filters/realtime_circular_buffer.h 2009-08-24 16:03:15 UTC (rev 22694)
@@ -36,7 +36,6 @@
#include <vector>
#include <algorithm>
-#define BOOST_CB_DISABLE_DEBUG
#include <boost/circular_buffer.hpp>
namespace filters
Modified: pkg/trunk/stacks/mechanism/mechanism_control/include/mechanism_control/controller_spec.h
===================================================================
--- pkg/trunk/stacks/mechanism/mechanism_control/include/mechanism_control/controller_spec.h 2009-08-24 16:00:51 UTC (rev 22693)
+++ pkg/trunk/stacks/mechanism/mechanism_control/include/mechanism_control/controller_spec.h 2009-08-24 16:03:15 UTC (rev 22694)
@@ -38,7 +38,6 @@
#include <string>
#include <vector>
#include <controller_interface/controller.h>
-#define BOOST_CB_DISABLE_DEBUG
#include <boost/circular_buffer.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/accumulators/accumulators.hpp>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rob...@us...> - 2009-08-24 16:44:15
|
Revision: 22698
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22698&view=rev
Author: rob_wheeler
Date: 2009-08-24 16:44:08 +0000 (Mon, 24 Aug 2009)
Log Message:
-----------
add input voltage to power board state message
Modified Paths:
--------------
pkg/trunk/stacks/pr2_common/pr2_msgs/msg/PowerBoardState.msg
pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/src/power_node/power_node.cpp
Modified: pkg/trunk/stacks/pr2_common/pr2_msgs/msg/PowerBoardState.msg
===================================================================
--- pkg/trunk/stacks/pr2_common/pr2_msgs/msg/PowerBoardState.msg 2009-08-24 16:17:18 UTC (rev 22697)
+++ pkg/trunk/stacks/pr2_common/pr2_msgs/msg/PowerBoardState.msg 2009-08-24 16:44:08 UTC (rev 22698)
@@ -2,6 +2,7 @@
string name
# Circuit States:
# STATE_NOPOWER, STATE_STANDBY, STATE_PUMPING, STATE_ON, STATE_DISABLED
+float64 input_voltage
int8[3] circuit_state
float64[3] circuit_voltage
int8 run_stop
Modified: pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/src/power_node/power_node.cpp
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/src/power_node/power_node.cpp 2009-08-24 16:17:18 UTC (rev 22697)
+++ pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/src/power_node/power_node.cpp 2009-08-24 16:44:08 UTC (rev 22698)
@@ -843,6 +843,7 @@
pr2_msgs::PowerBoardState state_msg;
state_msg.name = stat.name;
+ state_msg.input_voltage = status->input_voltage;
state_msg.circuit_voltage[0] = status->CB0_voltage;
state_msg.circuit_voltage[1] = status->CB1_voltage;
state_msg.circuit_voltage[2] = status->CB2_voltage;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wg_...@us...> - 2009-08-24 19:06:48
|
Revision: 22716
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22716&view=rev
Author: wg_cmeyers
Date: 2009-08-24 19:06:40 +0000 (Mon, 24 Aug 2009)
Log Message:
-----------
Added getParam for device ports.
Modified Paths:
--------------
pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryState.msg
pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/server.cpp
Modified: pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryState.msg
===================================================================
--- pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryState.msg 2009-08-24 19:06:24 UTC (rev 22715)
+++ pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryState.msg 2009-08-24 19:06:40 UTC (rev 22716)
@@ -1,4 +1,5 @@
Header header
-float64 energy_remaining ## Joules
-float64 energy_capacity ## Joules
float64 power_consumption ## Watts
+int64 time_remaining ## minutes
+string prediction_method ## how time_remaining is being calculated
+int8 AC_present ## number of packs detecting AC power
Modified: pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/server.cpp
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/server.cpp 2009-08-24 19:06:24 UTC (rev 22715)
+++ pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/server.cpp 2009-08-24 19:06:40 UTC (rev 22716)
@@ -12,6 +12,7 @@
#include "diagnostic_msgs/DiagnosticStatus.h"
#include "diagnostic_updater/DiagnosticStatusWrapper.h"
#include "rosconsole/macros_generated.h"
+#include "pr2_msgs/BatteryState.h"
using namespace std;
using namespace ros;
@@ -29,18 +30,20 @@
int main(int argc, char** argv)
{
- string serial_device;
+ string serial_device = "/dev/ttyUSB0";
+ string tmp_device;
int debug_level;
int majorId = -1; // Used for identity purposes
po::options_description desc("Allowed options");
desc.add_options()
("help", "this help message")
("debug", po::value<int>(&debug_level)->default_value(0), "debug level")
- ("dev", po::value<string>(&serial_device)->default_value("/dev/ttyUSB0"), "serial device to open");
+ ("dev", po::value<string>(&tmp_device), "serial device to open");
po::variables_map vm;
po::store(po::parse_command_line( argc, argv, desc), vm);
po::notify(vm);
+ std::stringstream ss;
if( vm.count("help"))
{
@@ -48,11 +51,29 @@
return 1;
}
+ ros::init(argc, argv, "ocean_server");
+ ros::NodeHandle handle;
+
+ if(tmp_device.empty())
+ {
+ int port = 0;
+ ss.str("");
+ ss << "/battery/port" << port;
+ bool result = handle.getParam( ss.str(), tmp_device );
+ if(result == true)
+ {
+ cout << "Using " << ss.str() << " from getParam.\n";
+ serial_device = tmp_device;
+ }
+ }
+ else
+ {
+ cout << "Overriding device with argument: " << tmp_device << endl;
+ serial_device = tmp_device;
+ }
+
majorId = serial_device.at(serial_device.length() - 1) - '0';
- ros::init(argc, argv, "ocean_server");
- ros::NodeHandle handle;
-
ROSCONSOLE_AUTOINIT;
log4cxx::LoggerPtr my_logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME);
fprintf(stderr, "Logger Name: %s\n", ROSCONSOLE_DEFAULT_NAME);
@@ -65,19 +86,20 @@
//
//printf("device=%s debug_level=%d\n", argv[1], atoi(argv[2]));
- //cout << "device=" << serial_device << " debug_level=" << debug_level << endl;
+ cout << "device=" << serial_device << " debug_level=" << debug_level << endl;
ocean os( debug_level);
os.initialize(serial_device.c_str());
- ros::Publisher pub = handle.advertise<diagnostic_msgs::DiagnosticArray>("/diagnostics", 2);
+ ros::Publisher pub = handle.advertise<diagnostic_msgs::DiagnosticArray>("/diagnostics", 1);
+ ros::Publisher pubBatteryState = handle.advertise<pr2_msgs::BatteryState>("battery_state", 1);
ros::Rate rate(10); //set the rate we scan the device for input
+ pr2_msgs::BatteryState batteryState;
diagnostic_msgs::DiagnosticArray msg_out;
diagnostic_updater::DiagnosticStatusWrapper stat;
Time lastTime, currentTime;
- std::stringstream ss;
Duration MESSAGE_TIME(10,0); //the message output rate
lastTime = Time::now();
@@ -145,6 +167,14 @@
}
pub.publish(msg_out);
+
+ batteryState.power_consumption = 0;
+ batteryState.time_remaining = 60;
+ batteryState.prediction_method = "fuel guage";
+ batteryState.AC_present = 1;
+
+ pubBatteryState.publish(batteryState);
+
}
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wg_...@us...> - 2009-08-24 19:07:51
|
Revision: 22720
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22720&view=rev
Author: wg_cmeyers
Date: 2009-08-24 19:07:45 +0000 (Mon, 24 Aug 2009)
Log Message:
-----------
Adding BatteryServer and moving BatteryState to PowerState.
BatteryServer is a message from the ocean_server containing battery information.
PowerState is a message stating the remaining power left in the system.
Modified Paths:
--------------
pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryState.msg
pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean.cpp
pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean.h
pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean_test.cpp
pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/server.cpp
Added Paths:
-----------
pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryServer.msg
pkg/trunk/stacks/pr2_common/pr2_msgs/msg/PowerState.msg
Added: pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryServer.msg
===================================================================
--- pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryServer.msg (rev 0)
+++ pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryServer.msg 2009-08-24 19:07:45 UTC (rev 22720)
@@ -0,0 +1,19 @@
+Header header
+uint32 MAX_BAT_COUNT=4
+uint32 MAX_BAT_REG=48
+# Battery System Stats
+int32 lastTimeSystem #epoch time
+uint16 timeLeft # in minutes
+uint16 averageCharge # in percent
+string message
+# Battery Controller Flags
+int32 lastTimeController #epoch time
+uint16 present
+uint16 charging
+uint16 discharging
+uint16 reserved
+uint16 powerPresent
+uint16 powerNG
+uint16 inhibited
+# for each battery
+pr2_msgs/BatteryState[] battery
Modified: pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryState.msg
===================================================================
--- pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryState.msg 2009-08-24 19:07:15 UTC (rev 22719)
+++ pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryState.msg 2009-08-24 19:07:45 UTC (rev 22720)
@@ -1,5 +1,5 @@
-Header header
-float64 power_consumption ## Watts
-int64 time_remaining ## minutes
-string prediction_method ## how time_remaining is being calculated
-int8 AC_present ## number of packs detecting AC power
+# Each batteries registers
+int32 lastTimeBattery #epoch time
+uint16[48] batReg
+uint16[48] batRegFlag
+int32[48] batRegTime
Copied: pkg/trunk/stacks/pr2_common/pr2_msgs/msg/PowerState.msg (from rev 22719, pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryState.msg)
===================================================================
--- pkg/trunk/stacks/pr2_common/pr2_msgs/msg/PowerState.msg (rev 0)
+++ pkg/trunk/stacks/pr2_common/pr2_msgs/msg/PowerState.msg 2009-08-24 19:07:45 UTC (rev 22720)
@@ -0,0 +1,5 @@
+Header header
+float64 power_consumption ## Watts
+int64 time_remaining ## minutes
+string prediction_method ## how time_remaining is being calculated
+int8 AC_present ## number of packs detecting AC power
Modified: pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean.cpp
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean.cpp 2009-08-24 19:07:15 UTC (rev 22719)
+++ pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean.cpp 2009-08-24 19:07:45 UTC (rev 22720)
@@ -72,7 +72,7 @@
ocean::ocean ( int debug)
{
debuglevel = debug;
-
+ server.battery.resize(4);
}
ocean::~ocean ()
@@ -112,11 +112,11 @@
set_speed (19200);
- memset(batReg, 0, sizeof(batReg));
- memset(batRegFlag, 0, sizeof(batReg));
- lastTimeSystem = lastTimeController = 0;
- memset( lastTimeBattery, 0, sizeof(lastTimeBattery));
- memset( batRegTime, 0, sizeof(batRegTime));
+ //memset(batReg, 0, sizeof(batReg));
+ //memset(batRegFlag, 0, sizeof(batReg));
+ server.lastTimeSystem = server.lastTimeController = 0;
+ //memset( server.lastTimeBattery, 0, sizeof(server.lastTimeBattery));
+ //memset( batRegTime, 0, sizeof(batRegTime));
#if (FILE_LOGGING > 0)
char logname[128];
@@ -538,7 +538,7 @@
* 6 ASCII text message
*
*/
- time(&lastTimeSystem);
+ time((time_t*)&server.lastTimeSystem);
for( int index = 1; index < count; )
{
@@ -548,16 +548,17 @@
switch(tmp)
{
case 1:
- timeLeft = (unsigned short)strtol( field[index], 0, 16 );
- report (5, "timeLeft=%x\n", timeLeft);
+ server.timeLeft = (unsigned short)strtol( field[index], 0, 16 );
+ report (5, "timeLeft=%x\n", server.timeLeft);
break;
case 3:
- sscanf( field[index], "%s", message);
- report (5, "processSystem message=%s\n", message);
+ server.message.assign(field[index]);
+ //sscanf( field[index], "%s", server.message.c_str());
+ report (5, "processSystem message=%s\n", server.message.c_str());
break;
case 4:
- averageCharge = (unsigned short)strtol( field[index], 0, 16 );
- report (5, "averageCharge=%x\n", averageCharge);
+ server.averageCharge = (unsigned short)strtol( field[index], 0, 16 );
+ report (5, "averageCharge=%x\n", server.averageCharge);
break;
default:
;
@@ -590,7 +591,7 @@
*
*/
- time(&lastTimeController);
+ time((time_t*)&server.lastTimeController);
for( int index = 1; index < count; )
{
@@ -611,37 +612,37 @@
{
case 1:
{
- present = value;
+ server.present = value;
}
break;
case 2:
{
- charging = value;
+ server.charging = value;
}
break;
case 3:
{
- discharging = value;
+ server.discharging = value;
}
break;
case 4:
{
- reserved = value;
+ server.reserved = value;
}
break;
case 5:
{
- powerPresent = value;
+ server.powerPresent = value;
}
break;
case 6:
{
- powerNG = value;
+ server.powerNG = value;
}
break;
case 7:
{
- inhibited = value;
+ server.inhibited = value;
}
break;
}
@@ -672,7 +673,7 @@
report (5, "processBattery count=%d \n", count);
report (5, "currentBattery=%d \n", battery);
- time(&lastTimeBattery[battery]);
+ time((time_t*)&server.battery[battery].lastTimeBattery);
--count; //get past sentence type
unsigned int regNumber;
@@ -685,15 +686,15 @@
value = strtoul( field[xx], 0, 16);
++xx;
report (5, "reg[%u]=%x \n", regNumber, value);
- if(regNumber >= MAX_BAT_REG)
+ if(regNumber >= server.MAX_BAT_REG)
{
- report (2, "Register greater than expected: %x MAX_BAT_REG=%x\n", regNumber, MAX_BAT_REG);
+ report (2, "Register greater than expected: %x MAX_BAT_REG=%x\n", regNumber, server.MAX_BAT_REG);
}
else
{
- batReg[battery][regNumber] = value;
- batRegFlag[battery][regNumber] = 0x1;
- time(&batRegTime[battery][regNumber]);
+ server.battery[battery].batReg[regNumber] = value;
+ server.battery[battery].batRegFlag[regNumber] = 0x1;
+ time((time_t*)&server.battery[battery].batRegTime[regNumber]);
}
count -= 2;
Modified: pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean.h
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean.h 2009-08-24 19:07:15 UTC (rev 22719)
+++ pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean.h 2009-08-24 19:07:45 UTC (rev 22720)
@@ -8,6 +8,7 @@
#include <time.h>
#include <list>
#include <utility>
+#include "pr2_msgs/BatteryServer.h"
namespace willowgarage
{
@@ -93,6 +94,7 @@
static const struct regPair regList[];
static const unsigned regListLength;
+#if 0
static const unsigned int MAX_BAT_COUNT = 4;
static const unsigned int MAX_BAT_REG = 0x30;
time_t lastTimeSystem, lastTimeController, lastTimeBattery[MAX_BAT_COUNT];
@@ -109,6 +111,8 @@
unsigned short batRegFlag[MAX_BAT_COUNT][MAX_BAT_REG];
time_t batRegTime[MAX_BAT_COUNT][MAX_BAT_REG];
char message[64];
+#endif
+ pr2_msgs::BatteryServer server;
};
}
}
Modified: pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean_test.cpp
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean_test.cpp 2009-08-24 19:07:15 UTC (rev 22719)
+++ pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean_test.cpp 2009-08-24 19:07:45 UTC (rev 22720)
@@ -17,11 +17,12 @@
os.initialize(argv[1]);
- int count = 10;
+ //int count = 10;
while(1)
{
os.run();
usleep(100);
+#if 0
--count;
if(count == 0)
{
@@ -53,5 +54,6 @@
}
cout << "------------------------------\n";
}
+#endif
}
}
Modified: pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/server.cpp
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/server.cpp 2009-08-24 19:07:15 UTC (rev 22719)
+++ pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/server.cpp 2009-08-24 19:07:45 UTC (rev 22720)
@@ -100,6 +100,7 @@
std::stringstream ss;
ros::Publisher pub = handle.advertise<diagnostic_msgs::DiagnosticArray>("/diagnostics", 1);
+ ros::Publisher bs = handle.advertise<pr2_msgs::BatteryServer>("/battery/server", 1);
ros::Rate rate(100); //set the rate we scan the device for input
diagnostic_msgs::DiagnosticArray msg_out;
@@ -117,6 +118,8 @@
//ros::spinOnce();
currentTime = Time::now();
+ bs.publish(os.server);
+
if((os.run() > 0) && ((currentTime - lastTime) > MESSAGE_TIME))
{
@@ -130,15 +133,16 @@
stat.level = 0;
stat.message = "OK";
+#if 0
stat.add("Time Remaining (min)", os.timeLeft);
stat.add("Average charge (percent)", os.averageCharge );
//stat.add("Current (A)", 0);
//stat.add("Voltage (V)", 0);
- stat.add("Time since update (s)", (currentTime.sec - os.lastTimeSystem));
+ stat.add("Time since update (s)", (currentTime.sec - os.server.lastTimeSystem));
msg_out.status.push_back(stat);
- for(unsigned int xx = 0; xx < os.MAX_BAT_COUNT; ++xx)
+ for(unsigned int xx = 0; xx < os.server.MAX_BAT_COUNT; ++xx)
{
unsigned batmask = (1<<xx);
if(os.present & batmask)
@@ -171,7 +175,7 @@
}
}
- stat.add("Time since update (s)", (currentTime.sec - os.lastTimeBattery[xx]));
+ stat.add("Time since update (s)", (currentTime.sec - os.server.lastTimeBattery[xx]));
msg_out.status.push_back(stat);
@@ -183,6 +187,7 @@
#endif
}
}
+#endif
pub.publish(msg_out);
msg_out.status.clear();
@@ -243,8 +248,8 @@
for(int xx = 0; xx < max_ports; ++xx)
server_list[xx].start();
- //ros::spin(); //wait for ros to shut us down
-#if 1
+ ros::spin(); //wait for ros to shut us down
+#if 0
ros::Rate rate(1);
ros::Publisher pubBatteryState = handle.advertise<pr2_msgs::BatteryState>("battery_state", 1);
pr2_msgs::BatteryState batteryState;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wg_...@us...> - 2009-08-24 19:08:51
|
Revision: 22723
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22723&view=rev
Author: wg_cmeyers
Date: 2009-08-24 19:08:39 +0000 (Mon, 24 Aug 2009)
Log Message:
-----------
Finished up the power monitor, is now collecting some data from the battery server.
Modified Paths:
--------------
pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryServer.msg
pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean.cpp
pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean.h
pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/server.cpp
pkg/trunk/stacks/pr2_power_drivers/power_monitor/src/power_monitor.cpp
Added Paths:
-----------
pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/Makefile
Modified: pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryServer.msg
===================================================================
--- pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryServer.msg 2009-08-24 19:08:19 UTC (rev 22722)
+++ pkg/trunk/stacks/pr2_common/pr2_msgs/msg/BatteryServer.msg 2009-08-24 19:08:39 UTC (rev 22723)
@@ -1,6 +1,7 @@
Header header
uint32 MAX_BAT_COUNT=4
uint32 MAX_BAT_REG=48
+int32 id # unique ID for each battery server
# Battery System Stats
int32 lastTimeSystem #epoch time
uint16 timeLeft # in minutes
Added: pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/Makefile
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/Makefile (rev 0)
+++ pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/Makefile 2009-08-24 19:08:39 UTC (rev 22723)
@@ -0,0 +1,2 @@
+include $(shell rospack find mk)/cmake.mk
+
Modified: pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean.cpp
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean.cpp 2009-08-24 19:08:19 UTC (rev 22722)
+++ pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean.cpp 2009-08-24 19:08:39 UTC (rev 22723)
@@ -69,9 +69,10 @@
* the GPS.
*/
-ocean::ocean ( int debug)
+ocean::ocean ( int id, int debug)
{
debuglevel = debug;
+ server.id = id;
server.battery.resize(4);
}
Modified: pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean.h
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean.h 2009-08-24 19:08:19 UTC (rev 22722)
+++ pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/ocean.h 2009-08-24 19:08:39 UTC (rev 22723)
@@ -35,7 +35,7 @@
};
- ocean (int debug = 0);
+ ocean (int id, int debug = 0);
~ocean ();
int run ();
Modified: pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/server.cpp
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/server.cpp 2009-08-24 19:08:19 UTC (rev 22722)
+++ pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/src/ocean_battery_driver/server.cpp 2009-08-24 19:08:39 UTC (rev 22723)
@@ -23,8 +23,6 @@
using namespace willowgarage::ocean;
namespace po = boost::program_options;
-boost::mutex data_lock;
-
float toFloat(const int &value)
{
int tmp = value;
@@ -79,12 +77,6 @@
myThread->join();
}
- float getVoltage(int bat)
- {
- boost::mutex::scoped_lock lock(data_lock);
- return battery_voltage[bat];
- }
-
private:
ros::NodeHandle handle;
@@ -93,7 +85,6 @@
std::string serial_device;
volatile bool stopRequest;
boost::shared_ptr<boost::thread> myThread;
- float battery_voltage[4];
void run()
{
@@ -111,7 +102,7 @@
diagnostic_updater::DiagnosticStatusWrapper stat;
Time lastTime, currentTime;
Duration MESSAGE_TIME(10,0); //the message output rate
- ocean os(debug_level);
+ ocean os( majorID, debug_level);
os.initialize(serial_device.c_str());
lastTime = Time::now();
@@ -138,7 +129,6 @@
stat.level = 0;
stat.message = "OK";
-#if 1
stat.add("Time Remaining (min)", os.server.timeLeft);
stat.add("Average charge (percent)", os.server.averageCharge );
stat.add("Time since update (s)", (currentTime.sec - os.server.lastTimeSystem));
@@ -182,15 +172,8 @@
msg_out.status.push_back(stat);
-#if 1
- {
- boost::mutex::scoped_lock lock(data_lock);
- battery_voltage[xx] = toFloat(os.server.battery[xx].batReg[0x9]);
- } //end mutex lock
-#endif
}
}
-#endif
pub.publish(msg_out);
msg_out.status.clear();
Modified: pkg/trunk/stacks/pr2_power_drivers/power_monitor/src/power_monitor.cpp
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/power_monitor/src/power_monitor.cpp 2009-08-24 19:08:19 UTC (rev 22722)
+++ pkg/trunk/stacks/pr2_power_drivers/power_monitor/src/power_monitor.cpp 2009-08-24 19:08:39 UTC (rev 22723)
@@ -24,36 +24,77 @@
void batteryUpdate( const boost::shared_ptr<pr2_msgs::BatteryServer const> &bat)
{
- ROS_INFO("Received battery message: voltage=%f", toFloat(bat->battery[0].batReg[0x9]));
+ boost::mutex::scoped_lock lock(vLock);
+ ROS_DEBUG("Received battery message: voltage=%f", toFloat(bat->battery[0].batReg[0x9]));
+
+ batteryServers[bat->id] = bat; //add results to our map
};
- void send()
+ void send(const ros::TimerEvent &e)
{
- #if 0
- float min_voltage = server_list[0].getVoltage(0);
- for(int xx = 1; xx < 4; ++xx)
+ float min_voltage(1000.0);
+ int acCount(0);
+ //float totalCurrent[batteryServers.size()];
+ float totalPower(0.0);
+ unsigned int minTime(10000);
+
+ boost::mutex::scoped_lock lock(vLock);
+ map< int, boost::shared_ptr<pr2_msgs::BatteryServer const> >::iterator itr = batteryServers.begin();
+ for( ; itr != batteryServers.end(); ++itr )
{
- if(server_list[0].getVoltage(xx) < min_voltage)
- min_voltage = server_list[0].getVoltage(xx);
+ const pr2_msgs::BatteryServer *bat = itr->second.get();
+
+ ROS_DEBUG("------------------------------------");
+ ROS_DEBUG("BATTERY %d", bat->id);
+
+ if(bat->powerPresent == 0xF) //All four batteries show AC present
+ ++acCount;
+
+
+ for(unsigned int xx = 0; xx < bat->MAX_BAT_COUNT; ++xx)
+ {
+ float voltage = toFloat(bat->battery[xx].batReg[0x9]);
+ ROS_DEBUG(" voltage=%f", voltage);
+ if(voltage < min_voltage)
+ min_voltage = voltage;
+
+ float current = toFloat(bat->battery[xx].batReg[0xA]);
+ ROS_DEBUG(" current=%f", current);
+ ROS_DEBUG(" power=%f", current * voltage);
+ totalPower += (current * voltage);
+
+ unsigned tte = bat->battery[xx].batReg[0x12];
+ if(tte < minTime) //search for battery is least time remaining
+ minTime = tte;
+ }
+
+ //totalCurrent[bat->id] = tmpCurrent;
+ //cout << " totalCurrent=" << tmpCurrent << "\n";
}
- cout << "min_voltage=" << min_voltage << endl;
- #endif
+ ROS_DEBUG("PowerMonitor::min_voltage=%f", min_voltage);
+ ROS_DEBUG(" totalPower=%f", totalPower);
- powerState.power_consumption = 0;
- powerState.time_remaining = 60;
+ powerState.power_consumption = totalPower;
+ powerState.time_remaining = minTime;
powerState.prediction_method = "fuel guage";
- powerState.AC_present = 1;
+ powerState.AC_present = acCount;
pub.publish(powerState);
};
+
PowerMonitor()
{
//handle = new ros::NodeHandle();
ros::NodeHandle handle;
+ double freq = 0.1;
+ handle.getParam("/power_monitor/frequency", freq, 0.1);
+
pub = handle.advertise<pr2_msgs::PowerState>("power_state", 5);
sub = handle.subscribe("battery/server", 10, &PowerMonitor::batteryUpdate, this);
+
+ timer = handle.createTimer(ros::Duration(1/freq), &PowerMonitor::send, this);
};
@@ -61,6 +102,9 @@
pr2_msgs::PowerState powerState;
ros::Publisher pub;
ros::Subscriber sub;
+ ros::Timer timer;
+ boost::mutex vLock;
+ std::map< int, boost::shared_ptr<pr2_msgs::BatteryServer const> > batteryServers;
};
int main(int argc, char** argv)
@@ -68,17 +112,8 @@
ros::init(argc, argv, "power_monitor");
PowerMonitor monitor;
- ros::Rate rate(1);
- ros::NodeHandle handle;
- while(handle.ok())
- {
- rate.sleep();
- ros::spinOnce();
+ ros::spin();
-
- monitor.send();
- }
-
-
+ return 0;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wg_...@us...> - 2009-08-24 22:36:39
|
Revision: 22772
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22772&view=rev
Author: wg_cmeyers
Date: 2009-08-24 22:36:30 +0000 (Mon, 24 Aug 2009)
Log Message:
-----------
Added relative_capacity to the PowerState message, this is your
basic fuel guage 0-100%
Modified Paths:
--------------
pkg/trunk/stacks/pr2_common/pr2_msgs/msg/PowerState.msg
pkg/trunk/stacks/pr2_power_drivers/power_monitor/src/power_monitor.cpp
Modified: pkg/trunk/stacks/pr2_common/pr2_msgs/msg/PowerState.msg
===================================================================
--- pkg/trunk/stacks/pr2_common/pr2_msgs/msg/PowerState.msg 2009-08-24 22:31:56 UTC (rev 22771)
+++ pkg/trunk/stacks/pr2_common/pr2_msgs/msg/PowerState.msg 2009-08-24 22:36:30 UTC (rev 22772)
@@ -2,4 +2,5 @@
float64 power_consumption ## Watts
int64 time_remaining ## minutes
string prediction_method ## how time_remaining is being calculated
+int8 relative_capacity ## percent of capacity
int8 AC_present ## number of packs detecting AC power
Modified: pkg/trunk/stacks/pr2_power_drivers/power_monitor/src/power_monitor.cpp
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/power_monitor/src/power_monitor.cpp 2009-08-24 22:31:56 UTC (rev 22771)
+++ pkg/trunk/stacks/pr2_power_drivers/power_monitor/src/power_monitor.cpp 2009-08-24 22:36:30 UTC (rev 22772)
@@ -36,7 +36,9 @@
int acCount(0);
//float totalCurrent[batteryServers.size()];
float totalPower(0.0);
- unsigned int minTime(65535);
+ unsigned int minTime(65535); //for discharging
+ unsigned int maxTime(0); //for charging
+ int minCapacity(1000);
boost::mutex::scoped_lock lock(vLock);
map< int, boost::shared_ptr<pr2_msgs::BatteryServer const> >::iterator itr = batteryServers.begin();
@@ -64,8 +66,16 @@
totalPower += (current * voltage);
unsigned tte = bat->battery[xx].batReg[0x12];
- if(tte < minTime) //search for battery is least time remaining
+ if(tte < minTime) //search for battery with least time remaining
minTime = tte;
+
+ unsigned ttf = bat->battery[xx].batReg[0x13];
+ if(ttf > maxTime) //search for battery with longtest recharge time
+ maxTime = ttf;
+
+ unsigned rsc = bat->battery[xx].batReg[0x0d];
+ if(rsc < minCapacity) //search for battery with lowest state of charge
+ minCapacity = rsc;
}
//totalCurrent[bat->id] = tmpCurrent;
@@ -75,9 +85,13 @@
ROS_DEBUG(" totalPower=%f", totalPower);
powerState.power_consumption = totalPower;
- powerState.time_remaining = minTime;
+ powerState.AC_present = acCount;
+ if(acCount > 0) //Are we charging??
+ powerState.time_remaining = maxTime;
+ else
+ powerState.time_remaining = minTime;
powerState.prediction_method = "fuel guage";
- powerState.AC_present = acCount;
+ powerState.relative_capacity = minCapacity;
pub.publish(powerState);
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tf...@us...> - 2009-08-25 00:01:17
|
Revision: 22792
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22792&view=rev
Author: tfoote
Date: 2009-08-25 00:01:06 +0000 (Tue, 25 Aug 2009)
Log Message:
-----------
moving laser_scan as per discussion this morning
Added Paths:
-----------
pkg/trunk/stacks/laser_drivers/laser_scan/
Removed Paths:
-------------
pkg/trunk/stacks/common/laser_scan/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bla...@us...> - 2009-08-25 15:57:10
|
Revision: 22834
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22834&view=rev
Author: blaisegassend
Date: 2009-08-25 15:56:53 +0000 (Tue, 25 Aug 2009)
Log Message:
-----------
Updated package URLs.
Modified Paths:
--------------
pkg/trunk/stacks/camera_drivers/camera_launch_files/manifest.xml
pkg/trunk/stacks/camera_drivers/dcam/manifest.xml
pkg/trunk/stacks/camera_drivers/forearm_cam/manifest.xml
pkg/trunk/stacks/camera_drivers/prosilica_cam/manifest.xml
pkg/trunk/stacks/camera_drivers/stack.xml
pkg/trunk/stacks/driver_common/driver_base/manifest.xml
pkg/trunk/stacks/driver_common/dynamic_reconfigure/manifest.xml
pkg/trunk/stacks/imu_drivers/3dmgx2_driver/manifest.xml
pkg/trunk/stacks/imu_drivers/imu_node/manifest.xml
pkg/trunk/stacks/joystick_drivers/joy/manifest.xml
pkg/trunk/stacks/joystick_drivers/ps3joy/manifest.xml
pkg/trunk/stacks/joystick_drivers/stack.xml
pkg/trunk/stacks/laser_drivers/hokuyo_node/manifest.xml
pkg/trunk/stacks/laser_drivers/sicktoolbox_wrapper/manifest.xml
pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/manifest.xml
pkg/trunk/stacks/pr2_power_drivers/power_monitor/manifest.xml
pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/manifest.xml
pkg/trunk/stacks/sound_drivers/sound_play/manifest.xml
Modified: pkg/trunk/stacks/camera_drivers/camera_launch_files/manifest.xml
===================================================================
--- pkg/trunk/stacks/camera_drivers/camera_launch_files/manifest.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/camera_drivers/camera_launch_files/manifest.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -6,7 +6,7 @@
<author>Blaise Gassend</author>
<license>BSD</license>
<review status="unreviewed" notes=""/>
- <url>http://pr.willowgarage.com/wiki/camera_launch_files</url>
+ <url>http://www.ros.org/wiki/camera_launch_files</url>
<depend package="forearm_cam"/>
<depend package="prosilica_cam"/>
<depend package="dcam"/>
Modified: pkg/trunk/stacks/camera_drivers/dcam/manifest.xml
===================================================================
--- pkg/trunk/stacks/camera_drivers/dcam/manifest.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/camera_drivers/dcam/manifest.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -18,5 +18,5 @@
<depend package="stereo_msgs"/>
<rosdep name="fltk"/>
- <url></url>
+ <url>http://www.ros.org/wiki/dcam</url>
</package>
Modified: pkg/trunk/stacks/camera_drivers/forearm_cam/manifest.xml
===================================================================
--- pkg/trunk/stacks/camera_drivers/forearm_cam/manifest.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/camera_drivers/forearm_cam/manifest.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -1,7 +1,7 @@
<package>
<description>A library and ROS node to provide access to the forearm camera from MindTribe.</description>
<author>Blaise Gassend, Patrick Mihelich, Eric MacIntosh, David Palchak</author>
- <url>http://pr.willowgarage.com/wiki/forearm_cam</url>
+ <url>http://www.ros.org/wiki/forearm_cam</url>
<license>BSD</license>
<review status="unreviewed" notes=""/>
<depend package="roscpp" />
Modified: pkg/trunk/stacks/camera_drivers/prosilica_cam/manifest.xml
===================================================================
--- pkg/trunk/stacks/camera_drivers/prosilica_cam/manifest.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/camera_drivers/prosilica_cam/manifest.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -15,5 +15,5 @@
<export>
<cpp lflags="-Wl,-rpath,${prefix}/lib -L${prefix}/lib -lprosilica" cflags="-I${prefix}/include -I${prefix}/srv/cpp"/>
</export>
- <url></url>
+ <url>http://www.ros.org/wiki/prosilica_cam</url>
</package>
Modified: pkg/trunk/stacks/camera_drivers/stack.xml
===================================================================
--- pkg/trunk/stacks/camera_drivers/stack.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/camera_drivers/stack.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -7,4 +7,8 @@
<review status="unreviewed" notes=""/>
<url>http://pr.willowgarage.com/wiki/camera_drivers</url>
<depend stack="ros"/>
+ <depend stack="common_msgs"/>
+ <depend stack="diagnostics"/>
+ <depend stack="driver_base"/>
+ <depend stack="imaging_pipeline"/>
</stack>
Modified: pkg/trunk/stacks/driver_common/driver_base/manifest.xml
===================================================================
--- pkg/trunk/stacks/driver_common/driver_base/manifest.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/driver_common/driver_base/manifest.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -10,6 +10,6 @@
<export>
<cpp cflags="-I${prefix}/include"/>
</export>
- <url></url>
+ <url>http://www.ros.org/wiki/driver_base</url>
</package>
Modified: pkg/trunk/stacks/driver_common/dynamic_reconfigure/manifest.xml
===================================================================
--- pkg/trunk/stacks/driver_common/dynamic_reconfigure/manifest.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/driver_common/dynamic_reconfigure/manifest.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -6,7 +6,7 @@
<author>Blaise Gassend</author>
<license>BSD</license>
<review status="unreviewed" notes=""/>
- <url>http://pr.willowgarage.com/wiki/dynamic_reconfigure</url>
+ <url>http://www.ros.org/wiki/dynamic_reconfigure</url>
<depend package="rospy" />
<depend package="roscpp" />
<export>
Modified: pkg/trunk/stacks/imu_drivers/3dmgx2_driver/manifest.xml
===================================================================
--- pkg/trunk/stacks/imu_drivers/3dmgx2_driver/manifest.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/imu_drivers/3dmgx2_driver/manifest.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -8,6 +8,7 @@
<author>Jeremy Leibs</author>
<license>LGPL</license>
<review status="API cleared" notes="2009-03-30"/>
+ <url>http://www.ros.org/wiki/imu_node</url>
<depend package="rosconsole"/>
<export>
<cpp cflags="-I${prefix}/include" lflags="-L${prefix}/lib -l3dmgx2"/>
Modified: pkg/trunk/stacks/imu_drivers/imu_node/manifest.xml
===================================================================
--- pkg/trunk/stacks/imu_drivers/imu_node/manifest.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/imu_drivers/imu_node/manifest.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -2,7 +2,7 @@
<description>
A node that uses the 3dmgx_driver.
</description>
- <author>Jeremy Leibs</author>
+ <author>Jeremy Leibs, Blaise Gassend</author>
<license>BSD</license>
<review status="unreviewed" notes=""/>
<depend package="roscpp"/>
Modified: pkg/trunk/stacks/joystick_drivers/joy/manifest.xml
===================================================================
--- pkg/trunk/stacks/joystick_drivers/joy/manifest.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/joystick_drivers/joy/manifest.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -8,6 +8,7 @@
The ps3_joy node uses the PS3 SIXAXIS joystick. This node is very similar to the txjoy node, but the PS3 joystick uses a different default range for its axes. All PS3 joysticks must use this node.
</description>
<license>BSD</license>
+ <url>http://www.ros.org/wiki/joy</url>
<review status="unreviewed" notes=""/>
<depend package="roscpp"/>
<export>
Modified: pkg/trunk/stacks/joystick_drivers/ps3joy/manifest.xml
===================================================================
--- pkg/trunk/stacks/joystick_drivers/ps3joy/manifest.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/joystick_drivers/ps3joy/manifest.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -12,7 +12,7 @@
<review status="unreviewed" notes=""/>
<depend package="roscpp"/>
<depend package="joy"/>
- <url>http://pr.willowgarage.com/wiki/ps3joy</url>
+ <url>http://www.ros.org/wiki/ps3joy</url>
<rosdep name="libusb"/>
<rosdep name="joystick"/>
</package>
Modified: pkg/trunk/stacks/joystick_drivers/stack.xml
===================================================================
--- pkg/trunk/stacks/joystick_drivers/stack.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/joystick_drivers/stack.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -8,5 +8,5 @@
<review status="unreviewed" notes=""/>
<url>http://pr.willowgarage.com/wiki/joystick_drivers</url>
<depend stack="ros"/> <!-- roscpp -->
-
+ <depend stack="common_msgs"/>
</stack>
Modified: pkg/trunk/stacks/laser_drivers/hokuyo_node/manifest.xml
===================================================================
--- pkg/trunk/stacks/laser_drivers/hokuyo_node/manifest.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/laser_drivers/hokuyo_node/manifest.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -11,7 +11,7 @@
<depend package="self_test" />
<depend package="diagnostic_updater" />
<depend package="dynamic_reconfigure" />
- <url>http://pr.willowgarage.com/wiki/Hokuyo_TOP-URG</url>
+ <url>http://www.ros.org/wiki/hokuyo_node</url>
<export>
<cpp cflags="-I${prefix}/msg/cpp -I${prefix}/srv/cpp"/>
</export>
Modified: pkg/trunk/stacks/laser_drivers/sicktoolbox_wrapper/manifest.xml
===================================================================
--- pkg/trunk/stacks/laser_drivers/sicktoolbox_wrapper/manifest.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/laser_drivers/sicktoolbox_wrapper/manifest.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -4,6 +4,7 @@
library for interfacing with the SICK LMS2xx lasers.
</description>
<author>Morgan Quigley</author>
+ <url>www.ros.org/wiki/sicktoolbox_wrapper</url>
<license>BSD</license>
<review status="unreviewed" notes=""/>
<depend package="sicktoolbox"/>
Modified: pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/manifest.xml
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/manifest.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/pr2_power_drivers/ocean_battery_driver/manifest.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -1,6 +1,6 @@
<package>
<description>This is an interface to the Ocean Server Technology Intelligent Battery and Power System.</description>
- <author>Tully Foote</author>
+ <author>Tully Foote, Curt Meyers</author>
<license>BSD</license>
<review status="API cleared" notes=""/>
<depend package="roscpp" />
@@ -12,4 +12,5 @@
<export>
<cpp cflags="-I${prefix}/srv/cpp" />
</export>
+ <url>http://www.ros.org/wiki/ocean_battery_driver</url>
</package>
Modified: pkg/trunk/stacks/pr2_power_drivers/power_monitor/manifest.xml
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/power_monitor/manifest.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/pr2_power_drivers/power_monitor/manifest.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -7,7 +7,7 @@
<author>Curt Meyers</author>
<license>BSD</license>
<review status="unreviewed" notes=""/>
- <url>http://pr.willowgarage.com/wiki/power_monitor</url>
+ <url>http://www.ros.org/wiki/power_monitor</url>
<depend package="roscpp"/>
<depend package="std_msgs"/>
<depend package="pr2_msgs"/>
Modified: pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/manifest.xml
===================================================================
--- pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/manifest.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/pr2_power_drivers/pr2_power_board/manifest.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -8,6 +8,7 @@
<depend package="diagnostic_updater" />
<depend package="diagnostic_msgs" />
<depend package="pr2_msgs" />
+ <url>http://www.ros.org/wiki/pr2_power_board</url>
<export>
<cpp cflags="-I${prefix}/srv/cpp" />
</export>
Modified: pkg/trunk/stacks/sound_drivers/sound_play/manifest.xml
===================================================================
--- pkg/trunk/stacks/sound_drivers/sound_play/manifest.xml 2009-08-25 14:50:37 UTC (rev 22833)
+++ pkg/trunk/stacks/sound_drivers/sound_play/manifest.xml 2009-08-25 15:56:53 UTC (rev 22834)
@@ -20,6 +20,7 @@
<export>
<cpp cflags="-I${prefix}/msg/cpp" />
</export>
+ <url>http://www.ros.org/wiki/sound_play</url>
</package>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-08-25 19:57:26
|
Revision: 22883
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22883&view=rev
Author: sfkwc
Date: 2009-08-25 19:57:20 +0000 (Tue, 25 Aug 2009)
Log Message:
-----------
removing release properties files
Removed Paths:
-------------
pkg/trunk/stacks/common_msgs/release-properties.yaml
pkg/trunk/stacks/visualization_common/release-properties.yaml
Deleted: pkg/trunk/stacks/common_msgs/release-properties.yaml
===================================================================
--- pkg/trunk/stacks/common_msgs/release-properties.yaml 2009-08-25 19:56:00 UTC (rev 22882)
+++ pkg/trunk/stacks/common_msgs/release-properties.yaml 2009-08-25 19:57:20 UTC (rev 22883)
@@ -1,8 +0,0 @@
-# url where the releasable code is being developed
-# you may use the %(name)s key to substitute in the name of your stack/app
-svn-dev: https://personalrobots.svn.sourceforge.net/svnroot/personalrobots/pkg/trunk/stacks/%(name)s/
-# url where the released code should be tagged, e.g. your_stack-1.2.3
-# you may use the %(name)s key to substitute in the name of your stack/app
-# you may use the %(version)s key to substitute in the version number
-svn-tags: https://personalrobots.svn.sourceforge.net/svnroot/personalrobots/stacks/%(name)s/tags/%(name)s-%(version)s
-tarball-url: https://personalrobots.sourceforge.net/files/%(name)s/%(version)s/%(file)s
Deleted: pkg/trunk/stacks/visualization_common/release-properties.yaml
===================================================================
--- pkg/trunk/stacks/visualization_common/release-properties.yaml 2009-08-25 19:56:00 UTC (rev 22882)
+++ pkg/trunk/stacks/visualization_common/release-properties.yaml 2009-08-25 19:57:20 UTC (rev 22883)
@@ -1,8 +0,0 @@
-# url where the releasable code is being developed
-# you may use the %(name)s key to substitute in the name of your stack/app
-svn-dev: https://personalrobots.svn.sourceforge.net/svnroot/personalrobots/pkg/trunk/stacks/%(name)s/
-# url where the released code should be tagged, e.g. your_stack-1.2.3
-# you may use the %(name)s key to substitute in the name of your stack/app
-# you may use the %(version)s key to substitute in the version number
-svn-tags: https://personalrobots.svn.sourceforge.net/svnroot/personalrobots/stacks/%(name)s/tags/%(name)s-%(version)s
-tarball-url: https://personalrobots.sourceforge.net/files/%(name)s/%(version)s/%(file)s
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|