You can subscribe to this list here.
| 2008 |
Jan
|
Feb
|
Mar
(43) |
Apr
(196) |
May
(316) |
Jun
(518) |
Jul
(1293) |
Aug
(1446) |
Sep
(930) |
Oct
(1271) |
Nov
(1275) |
Dec
(1385) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2009 |
Jan
(1622) |
Feb
(1546) |
Mar
(1236) |
Apr
(1512) |
May
(1782) |
Jun
(1551) |
Jul
(2300) |
Aug
(3088) |
Sep
(452) |
Oct
|
Nov
|
Dec
|
|
From: <pa...@us...> - 2009-09-04 01:16:59
|
Revision: 23806
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23806&view=rev
Author: paepcke
Date: 2009-09-04 01:16:47 +0000 (Fri, 04 Sep 2009)
Log Message:
-----------
Added numpy dependency
Modified Paths:
--------------
pkg/trunk/stacks/joystick_drivers/wiimote/manifest.xml
Modified: pkg/trunk/stacks/joystick_drivers/wiimote/manifest.xml
===================================================================
--- pkg/trunk/stacks/joystick_drivers/wiimote/manifest.xml 2009-09-04 01:13:14 UTC (rev 23805)
+++ pkg/trunk/stacks/joystick_drivers/wiimote/manifest.xml 2009-09-04 01:16:47 UTC (rev 23806)
@@ -20,6 +20,8 @@
<review status="unreviewed" notes=""/>
<url>http://pr.willowgarage.com/wiki/wiimote</url>
<depend package="rospy"/>
+ <depend package="std_msgs"/>
+ <depend package="numpy"/>
</package>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wgh...@us...> - 2009-09-04 01:13:20
|
Revision: 23805
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23805&view=rev
Author: wghassan
Date: 2009-09-04 01:13:14 +0000 (Fri, 04 Sep 2009)
Log Message:
-----------
moved into src
Added Paths:
-----------
pkg/trunk/sandbox/web/navigation_application/src/navigation_application/cgibin/
pkg/trunk/sandbox/web/navigation_application/src/navigation_application/images/
pkg/trunk/sandbox/web/navigation_application/src/navigation_application/jslib/
pkg/trunk/sandbox/web/navigation_application/src/navigation_application/templates/
Removed Paths:
-------------
pkg/trunk/sandbox/web/navigation_application/cgibin/
pkg/trunk/sandbox/web/navigation_application/images/
pkg/trunk/sandbox/web/navigation_application/jslib/
pkg/trunk/sandbox/web/navigation_application/templates/
Property changes on: pkg/trunk/sandbox/web/navigation_application/src/navigation_application/cgibin
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/sandbox/web/navigation_application/src/navigation_application/images
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/sandbox/web/navigation_application/src/navigation_application/jslib
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/sandbox/web/navigation_application/src/navigation_application/templates
___________________________________________________________________
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-09-04 01:11:43
|
Revision: 23804
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23804&view=rev
Author: rob_wheeler
Date: 2009-09-04 01:11:27 +0000 (Fri, 04 Sep 2009)
Log Message:
-----------
controls bar
Modified Paths:
--------------
pkg/trunk/sandbox/web/navigation_application/jslib/map_viewer.js
Added Paths:
-----------
pkg/trunk/sandbox/web/navigation_application/images/goal_disable.png
pkg/trunk/sandbox/web/navigation_application/images/goal_enable.png
pkg/trunk/sandbox/web/navigation_application/images/pan_disable.png
pkg/trunk/sandbox/web/navigation_application/images/pan_enable.png
pkg/trunk/sandbox/web/navigation_application/images/pin_disable.png
pkg/trunk/sandbox/web/navigation_application/images/pin_enable.png
pkg/trunk/sandbox/web/navigation_application/images/reset_disable.png
pkg/trunk/sandbox/web/navigation_application/images/reset_enable.png
pkg/trunk/sandbox/web/navigation_application/images/zoomin_disable.png
pkg/trunk/sandbox/web/navigation_application/images/zoomin_enable.png
pkg/trunk/sandbox/web/navigation_application/images/zoomout_disable.png
pkg/trunk/sandbox/web/navigation_application/images/zoomout_enable.png
Added: pkg/trunk/sandbox/web/navigation_application/images/goal_disable.png
===================================================================
(Binary files differ)
Property changes on: pkg/trunk/sandbox/web/navigation_application/images/goal_disable.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: pkg/trunk/sandbox/web/navigation_application/images/goal_enable.png
===================================================================
(Binary files differ)
Property changes on: pkg/trunk/sandbox/web/navigation_application/images/goal_enable.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: pkg/trunk/sandbox/web/navigation_application/images/pan_disable.png
===================================================================
(Binary files differ)
Property changes on: pkg/trunk/sandbox/web/navigation_application/images/pan_disable.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: pkg/trunk/sandbox/web/navigation_application/images/pan_enable.png
===================================================================
(Binary files differ)
Property changes on: pkg/trunk/sandbox/web/navigation_application/images/pan_enable.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: pkg/trunk/sandbox/web/navigation_application/images/pin_disable.png
===================================================================
(Binary files differ)
Property changes on: pkg/trunk/sandbox/web/navigation_application/images/pin_disable.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: pkg/trunk/sandbox/web/navigation_application/images/pin_enable.png
===================================================================
(Binary files differ)
Property changes on: pkg/trunk/sandbox/web/navigation_application/images/pin_enable.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: pkg/trunk/sandbox/web/navigation_application/images/reset_disable.png
===================================================================
(Binary files differ)
Property changes on: pkg/trunk/sandbox/web/navigation_application/images/reset_disable.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: pkg/trunk/sandbox/web/navigation_application/images/reset_enable.png
===================================================================
(Binary files differ)
Property changes on: pkg/trunk/sandbox/web/navigation_application/images/reset_enable.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: pkg/trunk/sandbox/web/navigation_application/images/zoomin_disable.png
===================================================================
(Binary files differ)
Property changes on: pkg/trunk/sandbox/web/navigation_application/images/zoomin_disable.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: pkg/trunk/sandbox/web/navigation_application/images/zoomin_enable.png
===================================================================
(Binary files differ)
Property changes on: pkg/trunk/sandbox/web/navigation_application/images/zoomin_enable.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: pkg/trunk/sandbox/web/navigation_application/images/zoomout_disable.png
===================================================================
(Binary files differ)
Property changes on: pkg/trunk/sandbox/web/navigation_application/images/zoomout_disable.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: pkg/trunk/sandbox/web/navigation_application/images/zoomout_enable.png
===================================================================
(Binary files differ)
Property changes on: pkg/trunk/sandbox/web/navigation_application/images/zoomout_enable.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: pkg/trunk/sandbox/web/navigation_application/jslib/map_viewer.js
===================================================================
--- pkg/trunk/sandbox/web/navigation_application/jslib/map_viewer.js 2009-09-04 01:06:49 UTC (rev 23803)
+++ pkg/trunk/sandbox/web/navigation_application/jslib/map_viewer.js 2009-09-04 01:11:27 UTC (rev 23804)
@@ -49,6 +49,20 @@
this.topics = ['/robot_pose_visualization', '/move_base/NavfnROS/plan:simplified'];
},
+ buttons: [
+ {'name': 'zoomin', 'desc': 'Zoom In'},
+ {'name': 'zoomout', 'desc': 'Zoom Out'},
+ {'name': 'reset', 'desc': 'Reset the view'},
+ {'name': 'pan', 'desc': 'Pan'},
+ {'name': 'goal', 'desc': 'Set the robot\'s goal'},
+ {'name': 'pose', 'desc': 'Set the robot\'s initial pose'},
+ {'name': 'pin', 'desc': 'Follow the robot'},
+ ],
+
+ addButton: function(b) {
+ this.buttonbar.insert('<img title="'+b.desc+'" style="margin:1;border:1px solid" src="' + window.location.pathname + '/images/'+b.name+'_disable.png"><br>');
+ },
+
init: function() {
// Overlay a canvas the same size as this div
this.canvas = new Element('canvas', {'id': 'map_canvas', 'width': this.viewer.getWidth(), 'height': this.viewer.getHeight(), 'style': 'z-index:1;position:absolute'});
@@ -59,6 +73,11 @@
this.panner.left = this.panner.top = 0;
this.viewer.appendChild(this.panner);
+ this.buttonbar = new Element('div', {'style' : 'z-index:10;position:absolute;padding:5'});
+ this.viewer.appendChild(this.buttonbar);
+
+ this.buttons.each(this.addButton.bind(this));
+
this.sourceWidth = 2332;
this.sourceHeight = 1825;
this.sourceResolution = 0.025;
@@ -290,7 +309,7 @@
this.drawRobot(ctx, this.robot, 1.0);
}
if (this.robot_est) {
- this.drawRobot(ctx, this.robot_est, 0.75);
+ this.drawRobot(ctx, this.robot_est, 0.5);
}
},
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mee...@us...> - 2009-09-04 01:07:09
|
Revision: 23803
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23803&view=rev
Author: meeussen
Date: 2009-09-04 01:06:49 +0000 (Fri, 04 Sep 2009)
Log Message:
-----------
add new stats about joints, add controller state to mechanism state to replace the diagnostics that are not realtime safe. Remove hardware interface as much as possible from components
Modified Paths:
--------------
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_control/include/pr2_mechanism_control/mechanism_control.h
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_control/src/mechanism_control.cpp
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/include/pr2_mechanism_model/joint.h
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/include/pr2_mechanism_model/robot.h
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/src/joint.cpp
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/src/robot.cpp
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/JointState.msg
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/MechanismState.msg
pkg/trunk/stacks/pr2_simulator/pr2_gazebo_plugins/src/gazebo_mechanism_control.cpp
Added Paths:
-----------
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/ControllerState.msg
Modified: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_control/include/pr2_mechanism_control/mechanism_control.h
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_control/include/pr2_mechanism_control/mechanism_control.h 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_control/include/pr2_mechanism_control/mechanism_control.h 2009-09-04 01:06:49 UTC (rev 23803)
@@ -79,7 +79,6 @@
pr2_mechanism::Robot model_;
pr2_mechanism::RobotState *state_;
- HardwareInterface *hw_;
private:
void getControllerNames(std::vector<std::string> &v);
@@ -106,12 +105,13 @@
// for publishing constroller state/diagnostics
void publishDiagnostics();
- void publishState();
+ void publishJointState();
+ void publishMechanismState();
realtime_tools::RealtimePublisher<diagnostic_msgs::DiagnosticArray> pub_diagnostics_;
realtime_tools::RealtimePublisher<sensor_msgs::JointState> pub_joint_state_;
realtime_tools::RealtimePublisher<pr2_mechanism_msgs::MechanismState> pub_mech_state_;
- double publish_period_state_, last_published_state_;
- double publish_period_diagnostics_, last_published_diagnostics_;
+ ros::Duration publish_period_joint_state_, publish_period_mechanism_state_, publish_period_diagnostics_;
+ ros::Time last_published_joint_state_, last_published_mechanism_state_, last_published_diagnostics_;
// services to work with controllers
bool listControllerTypesSrv(pr2_mechanism_msgs::ListControllerTypes::Request &req,
Modified: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_control/src/mechanism_control.cpp
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_control/src/mechanism_control.cpp 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_control/src/mechanism_control.cpp 2009-09-04 01:06:49 UTC (rev 23803)
@@ -44,7 +44,7 @@
MechanismControl::MechanismControl(HardwareInterface *hw) :
model_(hw),
- state_(NULL), hw_(hw),
+ state_(NULL),
controller_loader_("pr2_controller_interface", "controller::Controller"),
start_request_(0),
stop_request_(0),
@@ -55,8 +55,9 @@
pub_diagnostics_(node_, "/diagnostics", 1),
pub_joint_state_(node_, "joint_states", 1),
pub_mech_state_(node_, "mechanism_state", 1),
- last_published_state_(ros::Time::now().toSec()),
- last_published_diagnostics_(ros::Time::now().toSec())
+ last_published_joint_state_(ros::Time::now()),
+ last_published_mechanism_state_(ros::Time::now()),
+ last_published_diagnostics_(ros::Time::now())
{}
MechanismControl::~MechanismControl()
@@ -69,10 +70,11 @@
bool MechanismControl::initXml(TiXmlElement* config)
{
model_.initXml(config);
- state_ = new RobotState(&model_, hw_);
+ state_ = new RobotState(&model_);
// pre-allocate for realtime publishing
- pub_mech_state_.msg_.set_actuator_states_size(hw_->actuators_.size());
+ pub_mech_state_.msg_.set_controller_states_size(0);
+ pub_mech_state_.msg_.set_actuator_states_size(model_.actuators_.size());
int joints_size = 0;
for (unsigned int i = 0; i < model_.joints_.size(); ++i)
{
@@ -86,6 +88,7 @@
pub_joint_state_.msg_.set_velocity_size(joints_size);
pub_joint_state_.msg_.set_effort_size(joints_size);
+
// Advertise services
srv_list_controllers_ = node_.advertiseService("list_controllers", &MechanismControl::listControllersSrv, this);
srv_list_controller_types_ = node_.advertiseService("list_controller_types", &MechanismControl::listControllerTypesSrv, this);
@@ -94,11 +97,13 @@
srv_switch_controller_ = node_.advertiseService("switch_controller", &MechanismControl::switchControllerSrv, this);
// get the publish rate for mechanism state and diagnostics
- double publish_rate_state, publish_rate_diagnostics;
- node_.param("~publish_rate_mechanism_state", publish_rate_state, 100.0);
+ double publish_rate_joint_state, publish_rate_mechanism_state, publish_rate_diagnostics;
+ node_.param("~publish_rate_mechanism_state", publish_rate_mechanism_state, 1.0);
+ node_.param("~publish_rate_joint_state", publish_rate_joint_state, 100.0);
node_.param("~publish_rate_diagnostics", publish_rate_diagnostics, 1.0);
- publish_period_state_ = 1.0/fmax(0.000001, publish_rate_state);
- publish_period_diagnostics_ = 1.0/fmax(0.000001, publish_rate_diagnostics);
+ publish_period_mechanism_state_ = Duration(1.0/fmax(0.000001, publish_rate_mechanism_state));
+ publish_period_joint_state_ = Duration(1.0/fmax(0.000001, publish_rate_joint_state));
+ publish_period_diagnostics_ = Duration(1.0/fmax(0.000001, publish_rate_diagnostics));
return true;
}
@@ -114,32 +119,33 @@
std::vector<ControllerSpec> &controllers = controllers_lists_[used_by_realtime_];
std::vector<size_t> &scheduling = controllers_scheduling_[used_by_realtime_];
- double start = ros::Time::now().toSec();
+ ros::Time start = ros::Time::now();
state_->propagateState();
state_->zeroCommands();
- double start_update = ros::Time::now().toSec();
- pre_update_stats_.acc(start_update - start);
+ ros::Time start_update = ros::Time::now();
+ pre_update_stats_.acc((start_update - start).toSec());
// Update all controllers in scheduling order
for (size_t i=0; i<controllers.size(); i++){
- double start = ros::Time::now().toSec();
+ ros::Time start = ros::Time::now();
controllers[scheduling[i]].c->updateRequest();
- double end = ros::Time::now().toSec();
- controllers[scheduling[i]].stats->acc(end - start);
+ ros::Time end = ros::Time::now();
+ controllers[scheduling[i]].stats->acc((end - start).toSec());
}
- double end_update = ros::Time::now().toSec();
- update_stats_.acc(end_update - start_update);
+ ros::Time end_update = ros::Time::now();
+ update_stats_.acc((end_update - start_update).toSec());
state_->enforceSafety();
state_->propagateEffort();
- double end = ros::Time::now().toSec();
- post_update_stats_.acc(end - end_update);
+ ros::Time end = ros::Time::now();
+ post_update_stats_.acc((end - end_update).toSec());
// publish diagnostics and state
+ publishMechanismState();
+ publishJointState();
publishDiagnostics();
- publishState();
- // there are controllers to atomically start/stop
+ // there are controllers to start/stop
if (please_switch_)
{
// try to start controllers
@@ -285,6 +291,13 @@
return false;
}
+ // Resize controller state vector
+ pub_mech_state_.lock();
+ pub_mech_state_.msg_.set_controller_states_size(to.size());
+ for (size_t i=0; i<to.size(); i++)
+ pub_mech_state_.msg_.controller_states[i].name = to[i].name;
+ pub_mech_state_.unlock();
+
// Success! Swaps in the new set of controllers.
int former_current_controllers_list_ = current_controllers_list_;
current_controllers_list_ = free_controllers_list;
@@ -370,6 +383,13 @@
usleep(200);
from.clear();
+ // Resize controller state vector
+ pub_mech_state_.lock();
+ pub_mech_state_.msg_.set_controller_states_size(to.size());
+ for (size_t i=0; i<to.size(); i++)
+ pub_mech_state_.msg_.controller_states[i].name = to[i].name;
+ pub_mech_state_.unlock();
+
ROS_DEBUG("Successfully killed controller '%s'", name.c_str());
return true;
}
@@ -436,11 +456,12 @@
void MechanismControl::publishDiagnostics()
{
- if (round ((ros::Time::now().toSec() - last_published_diagnostics_ - publish_period_diagnostics_)/ (0.000001)) >= 0)
+ ros::Time now = ros::Time::now();
+ if (now > last_published_diagnostics_ + publish_period_diagnostics_)
{
- last_published_diagnostics_ = ros::Time::now().toSec();
if (pub_diagnostics_.trylock())
{
+ last_published_diagnostics_ = now;
std::vector<ControllerSpec> &controllers = controllers_lists_[used_by_realtime_];
int active = 0;
TimeStatistics blank_statistics;
@@ -502,13 +523,49 @@
}
-void MechanismControl::publishState()
+void MechanismControl::publishJointState()
{
- if (round ((ros::Time::now().toSec() - last_published_state_ - publish_period_state_)/ (0.000001)) >= 0)
+ ros::Time now = ros::Time::now();
+ if (now > last_published_joint_state_ + publish_period_joint_state_)
{
- last_published_state_ = ros::Time::now().toSec();
+ if (pub_joint_state_.trylock())
+ {
+ last_published_joint_state_ = now;
+ unsigned int j = 0;
+ for (unsigned int i = 0; i < model_.joints_.size(); ++i)
+ {
+ int type = state_->joint_states_[i].joint_->type_;
+ if (type == urdf::Joint::REVOLUTE || type == urdf::Joint::CONTINUOUS || type == urdf::Joint::PRISMATIC)
+ {
+ assert(j < pub_joint_state_.msg_.get_name_size());
+ assert(j < pub_joint_state_.msg_.get_position_size());
+ assert(j < pub_joint_state_.msg_.get_velocity_size());
+ assert(j < pub_joint_state_.msg_.get_effort_size());
+ pr2_mechanism::JointState *in = &state_->joint_states_[i];
+ pub_joint_state_.msg_.name[j] = model_.joints_[i]->name_;
+ pub_joint_state_.msg_.position[j] = in->position_;
+ pub_joint_state_.msg_.velocity[j] = in->velocity_;
+ pub_joint_state_.msg_.effort[j] = in->applied_effort_;
+
+ j++;
+ }
+ }
+ pub_joint_state_.msg_.header.stamp = ros::Time::now();
+ pub_joint_state_.unlockAndPublish();
+ }
+ }
+}
+
+
+void MechanismControl::publishMechanismState()
+{
+ ros::Time now = ros::Time::now();
+ if (now > last_published_mechanism_state_ + publish_period_mechanism_state_)
+ {
if (pub_mech_state_.trylock())
{
+ last_published_mechanism_state_ = now;
+ // joint state
unsigned int j = 0;
for (unsigned int i = 0; i < model_.joints_.size(); ++i)
{
@@ -524,15 +581,23 @@
out->applied_effort = in->applied_effort_;
out->commanded_effort = in->commanded_effort_;
out->is_calibrated = in->calibrated_;
+ out->saturated = in->joint_statistics_.saturated_;
+ out->odometer = in->joint_statistics_.odometer_;
+ out->min_position = in->joint_statistics_.min_position_;
+ out->max_position = in->joint_statistics_.max_position_;
+ out->max_abs_velocity = in->joint_statistics_.max_abs_velocity_;
+ out->max_abs_effort = in->joint_statistics_.max_abs_effort_;
+ in->joint_statistics_.reset();
j++;
}
}
- for (unsigned int i = 0; i < hw_->actuators_.size(); ++i)
+ // actuator state
+ for (unsigned int i = 0; i < model_.actuators_.size(); ++i)
{
pr2_mechanism_msgs::ActuatorState *out = &pub_mech_state_.msg_.actuator_states[i];
- ActuatorState *in = &hw_->actuators_[i]->state_;
- out->name = hw_->actuators_[i]->name_;
+ ActuatorState *in = &model_.actuators_[i]->state_;
+ out->name = model_.actuators_[i]->name_;
out->encoder_count = in->encoder_count_;
out->position = in->position_;
out->timestamp = in->timestamp_;
@@ -555,41 +620,27 @@
out->motor_voltage = in->motor_voltage_;
out->num_encoder_errors = in->num_encoder_errors_;
}
- pub_mech_state_.msg_.header.stamp = ros::Time::now();
- pub_mech_state_.msg_.time = ros::Time::now().toSec();
- pub_mech_state_.unlockAndPublish();
- }
-
- if (pub_joint_state_.trylock())
- {
- unsigned int j = 0;
- for (unsigned int i = 0; i < model_.joints_.size(); ++i)
+ // controller state
+ std::vector<ControllerSpec> &controllers = controllers_lists_[used_by_realtime_];
+ for (unsigned int i = 0; i < controllers.size(); ++i)
{
- int type = state_->joint_states_[i].joint_->type_;
- if (type == urdf::Joint::REVOLUTE || type == urdf::Joint::CONTINUOUS || type == urdf::Joint::PRISMATIC)
- {
- assert(j < pub_joint_state_.msg_.get_name_size());
- assert(j < pub_joint_state_.msg_.get_position_size());
- assert(j < pub_joint_state_.msg_.get_velocity_size());
- assert(j < pub_joint_state_.msg_.get_effort_size());
- pr2_mechanism::JointState *in = &state_->joint_states_[i];
- pub_joint_state_.msg_.name[j] = model_.joints_[i]->name_;
- pub_joint_state_.msg_.position[j] = in->position_;
- pub_joint_state_.msg_.velocity[j] = in->velocity_;
- pub_joint_state_.msg_.effort[j] = in->applied_effort_;
-
- j++;
- }
+ pr2_mechanism_msgs::ControllerState *out = &pub_mech_state_.msg_.controller_states[i];
+ out->running = controllers[i].c->isRunning();
+ out->max_time = max(controllers[i].stats->acc);
+ out->mean_time = mean(controllers[i].stats->acc);
+ out->variance_time = sqrt(variance(controllers[i].stats->acc));
}
- pub_joint_state_.msg_.header.stamp = ros::Time::now();
+ pub_mech_state_.msg_.header.stamp = ros::Time::now();
- pub_joint_state_.unlockAndPublish();
+ pub_mech_state_.unlockAndPublish();
}
}
}
+
+
bool MechanismControl::listControllerTypesSrv(
pr2_mechanism_msgs::ListControllerTypes::Request &req,
pr2_mechanism_msgs::ListControllerTypes::Response &resp)
Modified: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/include/pr2_mechanism_model/joint.h
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/include/pr2_mechanism_model/joint.h 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/include/pr2_mechanism_model/joint.h 2009-09-04 01:06:49 UTC (rev 23803)
@@ -85,6 +85,29 @@
};
+
+class JointStatistics
+{
+ public:
+ JointStatistics():odometer_(0.0), max_abs_velocity_(0.0), max_abs_effort_(0.0),
+ saturated_(false), initialized_(false){}
+
+ void update(JointState* s);
+ void reset();
+
+ double odometer_;
+ double min_position_, max_position_;
+ double max_abs_velocity_;
+ double max_abs_effort_;
+ bool saturated_;
+
+ private:
+ bool initialized_;
+ double old_position_;
+};
+
+
+
class JointState
{
public:
@@ -95,17 +118,16 @@
double velocity_;
double applied_effort_;
+ // joint statistics
+ JointStatistics joint_statistics_;
+
// Command
double commanded_effort_;
bool calibrated_;
JointState() : joint_(NULL), position_(0.0), velocity_(0.0), applied_effort_(0.0),
- commanded_effort_(0), calibrated_(false) {}
- JointState(const JointState &s)
- : joint_(s.joint_), position_(s.position_), velocity_(s.velocity_),
- applied_effort_(s.applied_effort_), commanded_effort_(s.commanded_effort_), calibrated_(s.calibrated_)
- {}
+ commanded_effort_(0.0), calibrated_(false){}
};
enum
@@ -119,6 +141,7 @@
JOINT_TYPES_MAX
};
+
}
#endif /* JOINT_H */
Modified: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/include/pr2_mechanism_model/robot.h
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/include/pr2_mechanism_model/robot.h 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/include/pr2_mechanism_model/robot.h 2009-09-04 01:06:49 UTC (rev 23803)
@@ -71,7 +71,7 @@
{
public:
/// Constructor
- Robot(HardwareInterface *hw): hw_(hw) {}
+ Robot(HardwareInterface *hw);
/// Destructor
~Robot()
@@ -107,8 +107,10 @@
/// get a transmission pointer based on the transmission name. Returns NULL on failure
Transmission* getTransmission(const std::string &name) const;
+ ros::Time getTime() {return hw_->current_time_;};
+
private:
- HardwareInterface *hw_;
+ HardwareInterface* hw_;
};
@@ -125,7 +127,7 @@
class RobotState
{
public:
- RobotState(Robot *model, HardwareInterface *hw);
+ RobotState(Robot *model);
Robot *model_;
@@ -133,7 +135,7 @@
JointState *getJointState(const std::string &name);
const JointState *getJointState(const std::string &name) const;
- ros::Time getTime() {return hw_->current_time_;};
+ ros::Time getTime() {return model_->getTime();};
/**
* Each transmission refers to the actuators and joints it connects by name.
@@ -151,8 +153,6 @@
void propagateStateBackwards();
void propagateEffortBackwards();
-private:
- HardwareInterface *hw_;
};
}
Modified: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/src/joint.cpp
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/src/joint.cpp 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/src/joint.cpp 2009-09-04 01:06:49 UTC (rev 23803)
@@ -150,3 +150,30 @@
return true;
}
+
+void JointStatistics::update(JointState* jnt)
+{
+ if (initialized_){
+ odometer_ += fabs(old_position_ - jnt->position_);
+ if (fabs(jnt->commanded_effort_) > jnt->joint_->effort_limit_)
+ saturated_ = true;
+ min_position_ = fmin(jnt->position_, min_position_);
+ max_position_ = fmax(jnt->position_, max_position_);
+ max_abs_velocity_ = fmax(fabs(jnt->velocity_), max_abs_velocity_);
+ max_abs_effort_ = fmax(fabs(jnt->applied_effort_), max_abs_effort_);
+ }
+ else
+ initialized_ = true;
+ old_position_ = jnt->position_;
+}
+
+
+void JointStatistics::reset()
+{
+ double tmp = min_position_;
+ min_position_ = max_position_;
+ max_position_ = tmp;
+ max_abs_velocity_ = 0.0;
+ max_abs_effort_ = 0.0;
+ saturated_ = false;
+}
Modified: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/src/robot.cpp
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/src/robot.cpp 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/src/robot.cpp 2009-09-04 01:06:49 UTC (rev 23803)
@@ -41,14 +41,20 @@
namespace pr2_mechanism {
+
+Robot::Robot(HardwareInterface *hw)
+ :hw_(hw)
+{}
+
+
bool Robot::initXml(TiXmlElement *root)
{
- // Gets the actuator list from the hardware interface
+ // check if current time is valid
if (!hw_){
- ROS_ERROR("Mechanism Model got an invalid pointer to the hardware interface");
+ ROS_ERROR("Mechanism Model received an invalid hardware interface");
return false;
}
- actuators_ = hw_->actuators_;
+ actuators_ = hw_->actuators_;
// Parses the xml into a robot model
urdf::Model robot_description;
@@ -72,7 +78,14 @@
delete jnt;
return false;
}
- joints_.push_back(jnt);
+ // only collect joint types we know about
+ if (jnt->type_ == JOINT_PRISMATIC ||
+ jnt->type_ == JOINT_ROTARY ||
+ jnt->type_ == JOINT_FIXED ||
+ jnt->type_ == JOINT_CONTINUOUS)
+ joints_.push_back(jnt);
+ else
+ delete jnt;
}
// Constructs the transmissions by parsing custom xml.
@@ -100,10 +113,10 @@
transmissions_.push_back(t);
}
-
return true;
}
+
template <class T>
int findIndexByName(const std::vector<T*>& v, const std::string &name)
{
@@ -152,11 +165,10 @@
-RobotState::RobotState(Robot *model, HardwareInterface *hw)
- : model_(model), hw_(hw)
+RobotState::RobotState(Robot *model)
+ : model_(model)
{
assert(model_);
- assert(hw_);
joint_states_.resize(model->joints_.size());
transmissions_in_.resize(model->transmissions_.size());
@@ -180,7 +192,7 @@
{
int index = model_->getActuatorIndex(t->actuator_names_[j]);
assert(index >= 0);
- transmissions_in_[i].push_back(hw_->actuators_[index]);
+ transmissions_in_[i].push_back(model_->actuators_[index]);
}
for (unsigned int j = 0; j < t->joint_names_.size(); ++j)
{
@@ -211,6 +223,11 @@
model_->transmissions_[i]->propagatePosition(transmissions_in_[i],
transmissions_out_[i]);
}
+
+ for (unsigned int i = 0; i < joint_states_.size(); i++)
+ {
+ joint_states_[i].joint_statistics_.update(&(joint_states_[i]));
+ }
}
void RobotState::propagateEffort()
Added: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/ControllerState.msg
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/ControllerState.msg (rev 0)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/ControllerState.msg 2009-09-04 01:06:49 UTC (rev 23803)
@@ -0,0 +1,5 @@
+string name
+byte running
+float64 max_time
+float64 mean_time
+float64 variance_time
Modified: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/JointState.msg
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/JointState.msg 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/JointState.msg 2009-09-04 01:06:49 UTC (rev 23803)
@@ -3,4 +3,10 @@
float64 velocity
float64 applied_effort
float64 commanded_effort
-byte is_calibrated
\ No newline at end of file
+byte is_calibrated
+byte saturated
+float64 odometer
+float64 min_position
+float64 max_position
+float64 max_abs_velocity
+float64 max_abs_effort
Modified: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/MechanismState.msg
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/MechanismState.msg 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/MechanismState.msg 2009-09-04 01:06:49 UTC (rev 23803)
@@ -1,4 +1,4 @@
Header header
-float64 time # Deprecated. Use the timestamp in the header
ActuatorState[] actuator_states
JointState[] joint_states
+ControllerState[] controller_states
Modified: pkg/trunk/stacks/pr2_simulator/pr2_gazebo_plugins/src/gazebo_mechanism_control.cpp
===================================================================
--- pkg/trunk/stacks/pr2_simulator/pr2_gazebo_plugins/src/gazebo_mechanism_control.cpp 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_simulator/pr2_gazebo_plugins/src/gazebo_mechanism_control.cpp 2009-09-04 01:06:49 UTC (rev 23803)
@@ -93,7 +93,7 @@
ReadPr2Xml(node);
// Initializes the fake state (for running the transmissions backwards).
- this->fake_state_ = new pr2_mechanism::RobotState(&this->mc_->model_, &this->hw_);
+ this->fake_state_ = new pr2_mechanism::RobotState(&this->mc_->model_);
// The gazebo joints and mechanism joints should match up.
for (unsigned int i = 0; i < this->mc_->model_.joints_.size(); ++i)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sac...@us...> - 2009-09-04 01:00:09
|
Revision: 23802
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23802&view=rev
Author: sachinchitta
Date: 2009-09-04 01:00:00 +0000 (Fri, 04 Sep 2009)
Log Message:
-----------
commiting from robot
Modified Paths:
--------------
pkg/trunk/sandbox/doors_planner_core/launch/door_planner.launch
pkg/trunk/sandbox/doors_planner_core/launch/right_arm.launch
pkg/trunk/sandbox/doors_planner_core/src/action_release_handle.cpp
pkg/trunk/sandbox/doors_planner_core/test/test_planner_executive.cpp
Modified: pkg/trunk/sandbox/doors_planner_core/launch/door_planner.launch
===================================================================
--- pkg/trunk/sandbox/doors_planner_core/launch/door_planner.launch 2009-09-04 00:48:40 UTC (rev 23801)
+++ pkg/trunk/sandbox/doors_planner_core/launch/door_planner.launch 2009-09-04 01:00:00 UTC (rev 23802)
@@ -1,4 +1,5 @@
<launch>
<include file="$(find pr2_alpha)/$(env ROBOT).machine" />
<include file="$(find doors_planner_core)/launch/milestone2_planner.launch" />
+ <!--include file="$(find doors_planner_core)/launch/right_arm.launch"/-->
</launch>
Modified: pkg/trunk/sandbox/doors_planner_core/launch/right_arm.launch
===================================================================
--- pkg/trunk/sandbox/doors_planner_core/launch/right_arm.launch 2009-09-04 00:48:40 UTC (rev 23801)
+++ pkg/trunk/sandbox/doors_planner_core/launch/right_arm.launch 2009-09-04 01:00:00 UTC (rev 23802)
@@ -1,12 +1,12 @@
<launch>
<!-- start collision map -->
- <include file="$(find 3dnav_pr2)/launch/perception/bits/collision_map_self_occ.launch" />
+ <include file="$(find 3dnav_pr2)/launch/perception/laser-perception-DOORS.launch" />
- <!-- start move_arm -->
+ <!-- start move_arm -->
<include file="$(find 3dnav_pr2)/launch/actions/right_arm.launch" />
- <!-- start ompl planner -->
- <include file="$(find 3dnav_pr2)/launch/planning/ompl_fake_planning.launch" />
+ <!-- start ompl planner -->
+ <include file="$(find 3dnav_pr2)/launch/planning/bits/ompl_planning.launch" />
</launch>
Modified: pkg/trunk/sandbox/doors_planner_core/src/action_release_handle.cpp
===================================================================
--- pkg/trunk/sandbox/doors_planner_core/src/action_release_handle.cpp 2009-09-04 00:48:40 UTC (rev 23801)
+++ pkg/trunk/sandbox/doors_planner_core/src/action_release_handle.cpp 2009-09-04 01:00:00 UTC (rev 23802)
@@ -99,7 +99,7 @@
// move gripper away from the door
- Pose offset(Quaternion(0,0,0), Vector3(-0.2,0,0));
+ Pose offset(Quaternion(0,0,0), Vector3(-0.1,0,0));
Pose gripper_goal = gripper_pose_ * offset;
poseStampedTFToMsg(Stamped<Pose>(gripper_goal, Time::now(), gripper_pose_.frame_id_), req_moveto.pose);
Modified: pkg/trunk/sandbox/doors_planner_core/test/test_planner_executive.cpp
===================================================================
--- pkg/trunk/sandbox/doors_planner_core/test/test_planner_executive.cpp 2009-09-04 00:48:40 UTC (rev 23801)
+++ pkg/trunk/sandbox/doors_planner_core/test/test_planner_executive.cpp 2009-09-04 01:00:00 UTC (rev 23802)
@@ -66,6 +66,9 @@
#include <pr2_msgs/SetPeriodicCmd.h>
#include <pr2_msgs/SetLaserTrajCmd.h>
+#include <visualization_msgs/Marker.h>
+#include <door_handle_detector/DoorsDetector.h>
+
using namespace ros;
using namespace std;
using namespace door_functions;
@@ -110,6 +113,7 @@
std::map<std::string, std::string> controller_targets_;
std::vector<std::string> current_controllers_;
+ double gripper_palm_wrist_distance_;
void registerController(const std::string name, const std::string group)
{
@@ -294,7 +298,7 @@
sbpl_door_planner_.reset(new robot_actions::ActionClient<door_msgs::DoorCmd, pr2_robot_actions::DoorCmdActionState, door_msgs::Door>("sbpl_door_planner"));
move_base_client_.reset(new MoveBaseClient("move_base_local"));
- move_arm_client_.reset(new MoveArmClient("move_arm_client"));
+ move_arm_client_.reset(new MoveArmClient("move_right_arm"));
current_controllers_.clear();
@@ -370,9 +374,9 @@
switchlist_.start_controllers.clear();
switchlist_.stop_controllers.clear();
/* if(door_open_direction == door_msgs::DoorCmd::PULL)
- {
+ {
switchlist_.start_controllers.push_back("laser_tilt_controller");
- }
+ }
*/
switchlist_.start_controllers.push_back("head_controller");
switchlist_.start_controllers.push_back("head_pan_joint_position_controller");
@@ -524,14 +528,14 @@
}
/* bool refineDoorModel(const door_msgs::Door &door)
- {
+ {
door_msgs::Door tmp_door;
ROS_INFO("Refining door model");
boost::thread* thread;
thread = new boost::thread(boost::bind(&robot_actions::ActionClient<door_msgs::Door,
- pr2_robot_actions::DoorActionState, door_msgs::Door>::execute,
- *refine_door_, door, tmp_door, timeout_long));
- }
+ pr2_robot_actions::DoorActionState, door_msgs::Door>::execute,
+ *refine_door_, door, tmp_door, timeout_long));
+ }
*/
bool pushThroughDoor(const door_msgs::Door &door)
{
@@ -620,7 +624,7 @@
return true;
}
- bool openDoorUsingPlanner(const door_msgs::Door &door, int door_open_direction)
+ bool openDoorUsingPlanner(door_msgs::Door &door, int door_open_direction)
{
ROS_INFO("Open door using the planner");
door_msgs::Door tmp_door;
@@ -643,6 +647,7 @@
ROS_INFO("Door planner failed");
return false;
}
+ door = tmp_door;
ROS_INFO("Door planner done");
return true;
}
@@ -739,7 +744,7 @@
}
if(!unlatchHandle(door,door_open_direction))
{
-// return false;
+ return false;
}
if(!openDoorUsingPlanner(door,door_open_direction))
{
@@ -756,12 +761,40 @@
return true;
}
+ bool visualizeMarker(geometry_msgs::PoseStamped p_in)
+ {
+ ros::NodeHandle nh;
+ visualization_msgs::Marker marker;
+ marker.header.frame_id = p_in.header.frame_id;
+ marker.header.stamp = ros::Time::now();
+ marker.ns = "~";
+ marker.id = 1;
+ marker.type = visualization_msgs::Marker::ARROW;
+ marker.action = visualization_msgs::Marker::ADD;
+ marker.pose = p_in.pose;
+ marker.scale.x = 0.40;
+ marker.scale.y = 0.25;
+ marker.scale.z = 0.25;
+ marker.color.a = 1.0;
+ marker.color.r = 0.0;
+ marker.color.g = 1.0;
+ marker.color.b = 0.0;
+ ros::Publisher viz_markers = nh.advertise<visualization_msgs::Marker>("visualization_marker",1);
+ viz_markers.publish(marker);
+ sleep(1.0);
+ viz_markers.publish(marker);
+ return true;
+ }
+
bool graspHandleUsingPlanner(const door_msgs::Door &door, int side)
{
+ ros::NodeHandle nh;
+ nh.param("~gripper_palm_wrist_distance",gripper_palm_wrist_distance_,0.10);
+
ROS_INFO("Grasp handle using planner");
// Use move arm to grasp the other handle
// Then use the door opening code to open the door
- switchlist_.start_controllers.push_back("r_arm_joint_trajectory_controller");
+ switchlist_.start_controllers.push_back("r_arm_trajectory_controller");
switchlist_.stop_controllers.push_back("r_arm_constraint_cartesian_trajectory_controller");
switchlist_.stop_controllers.push_back("r_arm_constraint_cartesian_pose_controller");
switchlist_.stop_controllers.push_back("r_arm_constraint_cartesian_twist_controller");
@@ -770,10 +803,16 @@
return false;
tf::Stamped<tf::Pose> handle_pose = getHandlePose(door,side);
+ tf::Pose gripper_pullback(tf::Quaternion(0,0,0),tf::Vector3(-gripper_palm_wrist_distance_,0.0,0.0));
+ tf::Pose gripper_rotate(tf::Quaternion(0.0,0.0,M_PI/2.0),tf::Vector3(0.0,0.0,0.0));
+ handle_pose.mult(handle_pose,gripper_rotate);
+ handle_pose.mult(handle_pose,gripper_pullback);
+
+
geometry_msgs::PoseStamped handle_msg;
handle_pose.stamp_ = ros::Time::now();
poseStampedTFToMsg(handle_pose, handle_msg);
-
+ visualizeMarker(handle_msg);
if(!setLaserParams("linear",10.0,0.75,0.25))
{
ROS_ERROR("Could not set laser periodic command for move arm");
@@ -784,9 +823,17 @@
move_arm_goal.goal_constraints.set_pose_constraint_size(1);
move_arm_goal.goal_constraints.pose_constraint[0].pose = handle_msg;
- move_arm_goal.goal_constraints.pose_constraint[0].pose.header.stamp = ros::Time::now();
- move_arm_goal.goal_constraints.pose_constraint[0].pose.header.frame_id = "torso_lift_link";
+ ROS_INFO("Desired pose for handle: %s, %f %f %f :: %f %f %f %f",handle_msg.header.frame_id.c_str(),handle_msg.pose.position.x,handle_msg.pose.position.y,handle_msg.pose.position.z,handle_msg.pose.orientation.x,handle_msg.pose.orientation.y,handle_msg.pose.orientation.z,handle_msg.pose.orientation.w);
+
+ move_arm_goal.goal_constraints.pose_constraint[0].pose.pose.position.x = 0.65;
+ move_arm_goal.goal_constraints.pose_constraint[0].pose.pose.position.y = 0;
+ move_arm_goal.goal_constraints.pose_constraint[0].pose.pose.position.z = 0.877;
+
+ move_arm_goal.goal_constraints.pose_constraint[0].pose.header.stamp = ros::Time();
+ move_arm_goal.goal_constraints.pose_constraint[0].pose.header.frame_id = "base_link";
+// move_arm_goal.goal_constraints.pose_constraint[0].pose.header.frame_id = door.header.frame_id;
+
move_arm_goal.goal_constraints.pose_constraint[0].link_name = "r_wrist_roll_link";
move_arm_goal.goal_constraints.pose_constraint[0].position_tolerance_above.x = 0.005;
move_arm_goal.goal_constraints.pose_constraint[0].position_tolerance_below.x = 0.005;
@@ -805,8 +852,49 @@
move_arm_goal.goal_constraints.pose_constraint[0].orientation_importance = 0.1;
move_arm_goal.goal_constraints.pose_constraint[0].type = motion_planning_msgs::PoseConstraint::POSITION_X + motion_planning_msgs::PoseConstraint::POSITION_Y + motion_planning_msgs::PoseConstraint::POSITION_Z + motion_planning_msgs::PoseConstraint::ORIENTATION_R + motion_planning_msgs::PoseConstraint::ORIENTATION_P + motion_planning_msgs::PoseConstraint::ORIENTATION_Y;
move_arm_client_->sendGoal(move_arm_goal);
- return true;
+
+ int counter = 0;
+ bool done = false;
+ ros::Duration timeout_small(1.0);
+ while(!done && counter < 20)
+ {
+ bool finished_before_timeout = move_arm_client_->waitForGoalToFinish(timeout_small);
+ if (finished_before_timeout)
+ {
+ std::cout << "Final state is " << move_arm_client_->getTerminalState().toString() << std::endl;
+ return true;
+ }
+ else
+ {
+ std::cerr << "Not yet achieved goal" << std::endl;
+ }
+ ros::spinOnce();
+ counter++;
+ }
+ return false;
}
+
+ bool getTrackedDoor(const door_msgs::Door &door_msg_in, door_msgs::Door &door_msg_out)
+ {
+ ROS_INFO("getTrackedDoor() is DISABLED");
+ ros::NodeHandle node_handle;
+ ros::ServiceClient door_tracker_client = node_handle.serviceClient<door_handle_detector::DoorsDetector>("/doors_detector",true);
+ door_handle_detector::DoorsDetector srv;
+ srv.request.door = door_msg_in;
+
+ if(door_tracker_client.call(srv))
+ {
+ if(srv.response.doors.empty())
+ return false;
+ door_msg_out = srv.response.doors[0];
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
};
/* Door location in Gazebo
@@ -843,6 +931,8 @@
door.hinge = door_msgs::Door::HINGE_P1;
door.header.frame_id = "base_footprint";
+ tf::TransformListener tf;
+
DoorPlannerExecutive dpe;
dpe.init();
std::cout << "before " << door << std::endl;
@@ -856,6 +946,34 @@
return(-1);
}
+/* if(!dpe.getTrackedDoor(door,tmp_door))
+ {
+ ROS_INFO("Could not track door");
+ return -1;
+ }
+
+ tmp_door.header.stamp = ros::Time();
+ door_msgs::Door tmp_door_tr;
+ if(!door_functions::transformTo(tf,door.header.frame_id,tmp_door,tmp_door_tr))
+ {
+ ROS_ERROR("Could not transform tracked door");
+ return(-1);
+ }
+
+ tmp_door_tr.frame_p1 = door.frame_p1;
+ tmp_door_tr.frame_p2 = door.frame_p2;
+ tmp_door_tr.handle = door.handle;
+ tmp_door_tr.height = door.height;
+ tmp_door_tr.rot_dir = door.rot_dir;
+ tmp_door_tr.latch_state = door.latch_state;
+
+ ROS_INFO("Door angle is now : %f",getDoorAngle(tmp_door_tr));
+ std::cout << "new door position " << tmp_door_tr << std::endl;
+
+ tmp_door = tmp_door_tr;
+*/
+ tmp_door = door;
+ std::cout << "new door position " << tmp_door << std::endl;
ROS_INFO("Door angle is now : %f",getDoorAngle(tmp_door));
if(fabs(getDoorAngle(tmp_door)) < (M_PI/2.0-0.3))
@@ -869,11 +987,9 @@
return(-1);
}
}
-
if(!dpe.tuckArm())
{
return(-1);
}
-
return (0);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wgh...@us...> - 2009-09-04 00:48:51
|
Revision: 23801
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23801&view=rev
Author: wghassan
Date: 2009-09-04 00:48:40 +0000 (Fri, 04 Sep 2009)
Log Message:
-----------
newsub
Modified Paths:
--------------
pkg/trunk/sandbox/web/navigation_application/navigation_amcl.launch
Added Paths:
-----------
pkg/trunk/sandbox/web/navigation_application/src/
pkg/trunk/sandbox/web/navigation_application/src/navigation_application/
Modified: pkg/trunk/sandbox/web/navigation_application/navigation_amcl.launch
===================================================================
--- pkg/trunk/sandbox/web/navigation_application/navigation_amcl.launch 2009-09-04 00:47:08 UTC (rev 23800)
+++ pkg/trunk/sandbox/web/navigation_application/navigation_amcl.launch 2009-09-04 00:48:40 UTC (rev 23801)
@@ -7,7 +7,6 @@
<param name="base_watchdog_timeout" value="0.2"/>
</node>
<include file="$(find move_base_stage)/config/amcl_node.xml"/>
- <include file="$(find move_base_stage)/move_base/nav_view.xml"/>
<node pkg="tf" type="change_notifier" respawn="false" />
</launch>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wgh...@us...> - 2009-09-04 00:47:17
|
Revision: 23800
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23800&view=rev
Author: wghassan
Date: 2009-09-04 00:47:08 +0000 (Fri, 04 Sep 2009)
Log Message:
-----------
reorg
Added Paths:
-----------
pkg/trunk/sandbox/web/sample_application/src/sample_application/cgibin/
pkg/trunk/sandbox/web/sample_application/src/sample_application/images/
pkg/trunk/sandbox/web/sample_application/src/sample_application/jslib/
pkg/trunk/sandbox/web/sample_application/src/sample_application/listener
pkg/trunk/sandbox/web/sample_application/src/sample_application/listener.py
pkg/trunk/sandbox/web/sample_application/src/sample_application/talker
pkg/trunk/sandbox/web/sample_application/src/sample_application/talker.py
pkg/trunk/sandbox/web/sample_application/src/sample_application/templates/
pkg/trunk/sandbox/web/sample_application/webhandler.py
Removed Paths:
-------------
pkg/trunk/sandbox/web/sample_application/README
pkg/trunk/sandbox/web/sample_application/cgibin/
pkg/trunk/sandbox/web/sample_application/images/
pkg/trunk/sandbox/web/sample_application/jslib/
pkg/trunk/sandbox/web/sample_application/listener
pkg/trunk/sandbox/web/sample_application/listener.py
pkg/trunk/sandbox/web/sample_application/talker
pkg/trunk/sandbox/web/sample_application/talker.py
pkg/trunk/sandbox/web/sample_application/templates/
Deleted: pkg/trunk/sandbox/web/sample_application/README
===================================================================
--- pkg/trunk/sandbox/web/sample_application/README 2009-09-04 00:46:13 UTC (rev 23799)
+++ pkg/trunk/sandbox/web/sample_application/README 2009-09-04 00:47:08 UTC (rev 23800)
@@ -1,3 +0,0 @@
-This is the simplest rospy demo: a talker node that publishes
-std_msgs/String to the /chatter topic and a listener node that subscribes
-to these messages.
Deleted: pkg/trunk/sandbox/web/sample_application/listener
===================================================================
--- pkg/trunk/sandbox/web/sample_application/listener 2009-09-04 00:46:13 UTC (rev 23799)
+++ pkg/trunk/sandbox/web/sample_application/listener 2009-09-04 00:47:08 UTC (rev 23800)
@@ -1 +0,0 @@
-link listener.py
\ No newline at end of file
Deleted: pkg/trunk/sandbox/web/sample_application/listener.py
===================================================================
--- pkg/trunk/sandbox/web/sample_application/listener.py 2009-09-04 00:46:13 UTC (rev 23799)
+++ pkg/trunk/sandbox/web/sample_application/listener.py 2009-09-04 00:47:08 UTC (rev 23800)
@@ -1,63 +0,0 @@
-#!/usr/bin/env python
-# Software License Agreement (BSD License)
-#
-# Copyright (c) 2008, Willow Garage, Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of Willow Garage, Inc. nor the names of its
-# contributors may be used to endorse or promote products derived
-# from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-# Revision $Id: listener.py 5263 2009-07-17 23:30:38Z sfkwc $
-
-## Simple talker demo that listens to std_msgs/Strings published
-## to the 'chatter' topic
-
-PKG = 'rospy_tutorials' # this package name
-import roslib; roslib.load_manifest(PKG)
-
-import rospy
-from std_msgs.msg import String
-
-def callback(data):
- rospy.loginfo(rospy.get_caller_id()+"I heard %s",data.data)
-
-def listener():
-
- # in ROS, nodes are unique named. If two nodes with the same
- # node are launched, the previous one is kicked off. The
- # anonymous=True flag means that rospy will choose a unique
- # name for our 'talker' node so that multiple talkers can
- # run simultaenously.
- rospy.init_node('listener', anonymous=True)
-
- rospy.Subscriber("chatter", String, callback)
-
- # spin() simply keeps python from exiting until this node is stopped
- rospy.spin()
-
-if __name__ == '__main__':
- listener()
Property changes on: pkg/trunk/sandbox/web/sample_application/src/sample_application/cgibin
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/sandbox/web/sample_application/src/sample_application/images
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/sandbox/web/sample_application/src/sample_application/jslib
___________________________________________________________________
Added: svn:mergeinfo
+
Added: pkg/trunk/sandbox/web/sample_application/src/sample_application/listener
===================================================================
--- pkg/trunk/sandbox/web/sample_application/src/sample_application/listener (rev 0)
+++ pkg/trunk/sandbox/web/sample_application/src/sample_application/listener 2009-09-04 00:47:08 UTC (rev 23800)
@@ -0,0 +1 @@
+link listener.py
\ No newline at end of file
Property changes on: pkg/trunk/sandbox/web/sample_application/src/sample_application/listener
___________________________________________________________________
Added: svn:special
+ *
Added: pkg/trunk/sandbox/web/sample_application/src/sample_application/listener.py
===================================================================
--- pkg/trunk/sandbox/web/sample_application/src/sample_application/listener.py (rev 0)
+++ pkg/trunk/sandbox/web/sample_application/src/sample_application/listener.py 2009-09-04 00:47:08 UTC (rev 23800)
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+# Software License Agreement (BSD License)
+#
+# Copyright (c) 2008, Willow Garage, Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+# * Neither the name of Willow Garage, Inc. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# Revision $Id: listener.py 5263 2009-07-17 23:30:38Z sfkwc $
+
+## Simple talker demo that listens to std_msgs/Strings published
+## to the 'chatter' topic
+
+PKG = 'rospy_tutorials' # this package name
+import roslib; roslib.load_manifest(PKG)
+
+import rospy
+from std_msgs.msg import String
+
+def callback(data):
+ rospy.loginfo(rospy.get_caller_id()+"I heard %s",data.data)
+
+def listener():
+
+ # in ROS, nodes are unique named. If two nodes with the same
+ # node are launched, the previous one is kicked off. The
+ # anonymous=True flag means that rospy will choose a unique
+ # name for our 'talker' node so that multiple talkers can
+ # run simultaenously.
+ rospy.init_node('listener', anonymous=True)
+
+ rospy.Subscriber("chatter", String, callback)
+
+ # spin() simply keeps python from exiting until this node is stopped
+ rospy.spin()
+
+if __name__ == '__main__':
+ listener()
Property changes on: pkg/trunk/sandbox/web/sample_application/src/sample_application/listener.py
___________________________________________________________________
Added: svn:executable
+ *
Added: pkg/trunk/sandbox/web/sample_application/src/sample_application/talker
===================================================================
--- pkg/trunk/sandbox/web/sample_application/src/sample_application/talker (rev 0)
+++ pkg/trunk/sandbox/web/sample_application/src/sample_application/talker 2009-09-04 00:47:08 UTC (rev 23800)
@@ -0,0 +1 @@
+link talker.py
\ No newline at end of file
Property changes on: pkg/trunk/sandbox/web/sample_application/src/sample_application/talker
___________________________________________________________________
Added: svn:special
+ *
Added: pkg/trunk/sandbox/web/sample_application/src/sample_application/talker.py
===================================================================
--- pkg/trunk/sandbox/web/sample_application/src/sample_application/talker.py (rev 0)
+++ pkg/trunk/sandbox/web/sample_application/src/sample_application/talker.py 2009-09-04 00:47:08 UTC (rev 23800)
@@ -0,0 +1,57 @@
+#!/usr/bin/env python
+# Software License Agreement (BSD License)
+#
+# Copyright (c) 2008, Willow Garage, Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+# * Neither the name of Willow Garage, Inc. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# Revision $Id: talker.py 5263 2009-07-17 23:30:38Z sfkwc $
+
+## Simple talker demo that published std_msgs/Strings messages
+## to the 'chatter' topic
+
+import roslib; roslib.load_manifest('rospy_tutorials')
+
+import rospy
+from std_msgs.msg import String
+
+def talker():
+ pub = rospy.Publisher('chatter', String)
+ rospy.init_node('talker', anonymous=True)
+ r = rospy.Rate(1) # 10hz
+ while not rospy.is_shutdown():
+ str = "hello world %s"%rospy.get_time()
+ rospy.loginfo(str)
+ pub.publish(str)
+ r.sleep()
+
+if __name__ == '__main__':
+ try:
+ talker()
+ except rospy.ROSInterruptException: pass
Property changes on: pkg/trunk/sandbox/web/sample_application/src/sample_application/talker.py
___________________________________________________________________
Added: svn:executable
+ *
Property changes on: pkg/trunk/sandbox/web/sample_application/src/sample_application/templates
___________________________________________________________________
Added: svn:mergeinfo
+
Deleted: pkg/trunk/sandbox/web/sample_application/talker
===================================================================
--- pkg/trunk/sandbox/web/sample_application/talker 2009-09-04 00:46:13 UTC (rev 23799)
+++ pkg/trunk/sandbox/web/sample_application/talker 2009-09-04 00:47:08 UTC (rev 23800)
@@ -1 +0,0 @@
-link talker.py
\ No newline at end of file
Deleted: pkg/trunk/sandbox/web/sample_application/talker.py
===================================================================
--- pkg/trunk/sandbox/web/sample_application/talker.py 2009-09-04 00:46:13 UTC (rev 23799)
+++ pkg/trunk/sandbox/web/sample_application/talker.py 2009-09-04 00:47:08 UTC (rev 23800)
@@ -1,57 +0,0 @@
-#!/usr/bin/env python
-# Software License Agreement (BSD License)
-#
-# Copyright (c) 2008, Willow Garage, Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of Willow Garage, Inc. nor the names of its
-# contributors may be used to endorse or promote products derived
-# from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-# Revision $Id: talker.py 5263 2009-07-17 23:30:38Z sfkwc $
-
-## Simple talker demo that published std_msgs/Strings messages
-## to the 'chatter' topic
-
-import roslib; roslib.load_manifest('rospy_tutorials')
-
-import rospy
-from std_msgs.msg import String
-
-def talker():
- pub = rospy.Publisher('chatter', String)
- rospy.init_node('talker', anonymous=True)
- r = rospy.Rate(1) # 10hz
- while not rospy.is_shutdown():
- str = "hello world %s"%rospy.get_time()
- rospy.loginfo(str)
- pub.publish(str)
- r.sleep()
-
-if __name__ == '__main__':
- try:
- talker()
- except rospy.ROSInterruptException: pass
Added: pkg/trunk/sandbox/web/sample_application/webhandler.py
===================================================================
--- pkg/trunk/sandbox/web/sample_application/webhandler.py (rev 0)
+++ pkg/trunk/sandbox/web/sample_application/webhandler.py 2009-09-04 00:47:08 UTC (rev 23800)
@@ -0,0 +1,15 @@
+#! /usr/bin/env python
+
+import rosweb
+from std_msgs.msg import String
+
+def config_plugin(context):
+ context.register_subtopic("/chatter:more", UpperChatterSubtopic)
+
+class UpperChatterSubtopic(rosweb.ROSWebSubTopic):
+ def __init__(self, topic, factory, main_rwt):
+ rosweb.ROSWebSubTopic.__init__(self, topic, factory, main_rwt)
+
+ def transform(self, msg):
+ newmsg = String(msg.data.upper())
+ return newmsg
Property changes on: pkg/trunk/sandbox/web/sample_application/webhandler.py
___________________________________________________________________
Added: svn:executable
+ *
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tf...@us...> - 2009-09-04 00:46:21
|
Revision: 23799
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23799&view=rev
Author: tfoote
Date: 2009-09-04 00:46:13 +0000 (Fri, 04 Sep 2009)
Log Message:
-----------
patching transformsender to take quaternions on the command line #1784 thanks for the patch mdogar
Modified Paths:
--------------
pkg/trunk/stacks/geometry/tf/src/transform_sender.cpp
Modified: pkg/trunk/stacks/geometry/tf/src/transform_sender.cpp
===================================================================
--- pkg/trunk/stacks/geometry/tf/src/transform_sender.cpp 2009-09-04 00:27:31 UTC (rev 23798)
+++ pkg/trunk/stacks/geometry/tf/src/transform_sender.cpp 2009-09-04 00:46:13 UTC (rev 23799)
@@ -37,6 +37,8 @@
//constructor
TransformSender(double x, double y, double z, double yaw, double pitch, double roll, ros::Time time, const std::string& frame_id, const std::string& parent_id) :
transform_(btTransform(btQuaternion(yaw,pitch,roll), btVector3(x,y,z)), time, frame_id , parent_id){};
+ TransformSender(double x, double y, double z, double qx, double qy, double qz, double qw, ros::Time time, const std::string& frame_id, const std::string& parent_id) :
+ transform_(btTransform(btQuaternion(qx,qy,qz,qw), btVector3(x,y,z)), time, frame_id , parent_id){};
//Clean up ros connections
~TransformSender() { }
@@ -61,34 +63,64 @@
//Initialize ROS
ros::init(argc, argv,"transform_sender", ros::init_options::AnonymousName);
- if(argc != 10)
+ if(argc == 11)
+ {
+ ros::Duration sleeper(atof(argv[10])/1000.0);
+
+ if (strcmp(argv[8], argv[9]) == 0)
+ ROS_FATAL("target_frame and source frame are the same (%s, %s) this cannot work", argv[8], argv[9]);
+
+ TransformSender tf_sender(atof(argv[1]), atof(argv[2]), atof(argv[3]),
+ atof(argv[4]), atof(argv[5]), atof(argv[6]), atof(argv[7]),
+ ros::Time::now() + sleeper, //Future dating to allow slower sending w/o timeout
+ argv[8], argv[9]);
+
+
+
+ while(tf_sender.node_.ok())
{
- printf("A command line utility for manually sending a transform.\n");
- printf("It will periodicaly republish the given transform. \n");
- printf("Usage: transform_sender x y z yaw pitch roll frame_id parent_id period(miliseconds) \n");
- ROS_ERROR("transform_sender exited due to not having the right number of arguments");
- return -1;
+ tf_sender.send(ros::Time::now() + sleeper);
+ ROS_DEBUG("Sending transform from %s with parent %s\n", argv[8], argv[9]);
+ sleeper.sleep();
}
- ros::Duration sleeper(atof(argv[9])/1000.0);
+ return 0;
+ }
+ else if (argc == 10)
+ {
+ ros::Duration sleeper(atof(argv[9])/1000.0);
- if (strcmp(argv[7], argv[8]) == 0)
- ROS_FATAL("target_frame and source frame are the same (%s, %s) this cannot work", argv[7], argv[8]);
+ if (strcmp(argv[7], argv[8]) == 0)
+ ROS_FATAL("target_frame and source frame are the same (%s, %s) this cannot work", argv[7], argv[8]);
- TransformSender tf_sender(atof(argv[1]), atof(argv[2]), atof(argv[3]),
- atof(argv[4]), atof(argv[5]), atof(argv[6]),
- ros::Time::now() + sleeper, //Future dating to allow slower sending w/o timeout
- argv[7], argv[8]);
+ TransformSender tf_sender(atof(argv[1]), atof(argv[2]), atof(argv[3]),
+ atof(argv[4]), atof(argv[5]), atof(argv[6]),
+ ros::Time::now() + sleeper, //Future dating to allow slower sending w/o timeout
+ argv[7], argv[8]);
- while(tf_sender.node_.ok())
+ while(tf_sender.node_.ok())
+ {
+ tf_sender.send(ros::Time::now() + sleeper);
+ ROS_DEBUG("Sending transform from %s with parent %s\n", argv[7], argv[8]);
+ sleeper.sleep();
+ }
+
+ return 0;
+
+ }
+ else
{
- tf_sender.send(ros::Time::now() + sleeper);
- ROS_DEBUG("Sending transform from %s with parent %s\n", argv[7], argv[8]);
- sleeper.sleep();
+ printf("A command line utility for manually sending a transform.\n");
+ printf("It will periodicaly republish the given transform. \n");
+ printf("Usage: transform_sender x y z yaw pitch roll frame_id parent_id period(miliseconds) \n");
+ printf("OR \n");
+ printf("Usage: transform_sender x y z qx qy qz qw frame_id parent_id period(miliseconds) \n");
+ ROS_ERROR("transform_sender exited due to not having the right number of arguments");
+ return -1;
}
- return 0;
+
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ei...@us...> - 2009-09-04 00:26:13
|
Revision: 23797
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23797&view=rev
Author: eitanme
Date: 2009-09-04 00:25:58 +0000 (Fri, 04 Sep 2009)
Log Message:
-----------
Checking in files that will work for running the joystick on pre
Added Paths:
-----------
pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/config/base_odom_teleop_pre.xml
pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/move_base/2dnav_pre.launch
pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/move_base_local/2dnav_pre.launch
Added: pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/config/base_odom_teleop_pre.xml
===================================================================
--- pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/config/base_odom_teleop_pre.xml (rev 0)
+++ pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/config/base_odom_teleop_pre.xml 2009-09-04 00:25:58 UTC (rev 23797)
@@ -0,0 +1,62 @@
+<launch>
+<param name="pr2_base_controller/autostart" value="true"/>
+
+<include file="$(find pr2_default_controllers)/pr2_base_controller_odom.launch"/>
+
+<node pkg="backup_safetysound" type="backingup.py" machine="four" />
+
+<!-- The robot pose EKF is launched with the base controller-->
+<node pkg="robot_pose_ekf" type="robot_pose_ekf" name="robot_pose_ekf">
+ <param name="freq" value="30.0"/>
+ <param name="sensor_timeout" value="1.0"/>
+ <param name="publish_tf" value="true"/>
+ <param name="odom_used" value="true"/>
+ <param name="imu_used" value="true"/>
+ <param name="vo_used" value="false"/>
+ <remap from="odom" to="pr2_odometry/odom" />
+</node>
+
+<!--ps3 joystick -->
+<!-- Start up pairing thing -->
+<node machine="two_root" pkg="ps3joy" output="screen"
+ type="ps3joy.py" name="ps3_connector" />
+
+<!-- PS3 joy node -->
+<node machine="two" respawn="true" pkg="ps3joy"
+ type="ps3_joy_node" name="ps3_joy" >
+ <param name="dev" type="string" value="/dev/sensors/ps3joy" />
+ <param name="deadzone" value="0.12" />
+</node>
+
+<!-- Axes -->
+<param name="axis_vx" value="3" type="int"/>
+<param name="axis_vy" value="2" type="int"/>
+<param name="axis_vw" value="0" type="int"/>
+<param name="axis_pan" value="0" type="int"/>
+<param name="axis_tilt" value="3" type="int"/>
+
+<!-- Base velocities -->
+<param name="max_vw" value="0.8" />
+<param name="max_vx" value="0.5" />
+<param name="max_vy" value="0.5" />
+<param name="max_vw_run" value="1.4" />
+<param name="max_vx_run" value="1.0" />
+<param name="max_vy_run" value="1.0" />
+
+<!-- Head -->
+<param name="max_pan" value="2.7" />
+<param name="max_tilt" value="1.4" />
+<param name="min_tilt" value="-0.4" />
+<param name="tilt_step" value="0.015" />
+<param name="pan_step" value="0.02" />
+
+<!-- Buttons have changed for PS3 controller mapping -->
+<param name="run_button" value="11" type="int" />
+<param name="torso_dn_button" value="14" type="int" />
+<param name="torso_up_button" value="12" type="int" />
+<param name="head_button" value="8" type="int" />
+<param name="deadman_button" value="10" type="int"/>
+
+<node pkg="teleop_pr2" type="teleop_pr2" output="screen" args="--deadman_no_publish"/>
+
+</launch>
Added: pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/move_base/2dnav_pre.launch
===================================================================
--- pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/move_base/2dnav_pre.launch (rev 0)
+++ pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/move_base/2dnav_pre.launch 2009-09-04 00:25:58 UTC (rev 23797)
@@ -0,0 +1,13 @@
+<launch>
+ <group name="wg">
+ <include file="$(find pr2_alpha)/$(env ROBOT).machine" />
+ <include file="$(find 2dnav_pr2)/config/new_amcl_node.xml" />
+ <include file="$(find 2dnav_pr2)/config/base_odom_teleop_pre.xml" />
+ <include file="$(find 2dnav_pr2)/config/lasers_and_filters.xml" />
+ <include file="$(find 2dnav_pr2)/config/map_server.xml" />
+ <include file="$(find 2dnav_pr2)/config/ground_plane.xml" />
+
+ <!-- The naviagtion stack and associated parameters -->
+ <include file="$(find 2dnav_pr2)/move_base/move_base.xml" />
+ </group>
+</launch>
Added: pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/move_base_local/2dnav_pre.launch
===================================================================
--- pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/move_base_local/2dnav_pre.launch (rev 0)
+++ pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/move_base_local/2dnav_pre.launch 2009-09-04 00:25:58 UTC (rev 23797)
@@ -0,0 +1,9 @@
+<launch>
+ <include file="$(find pr2_alpha)/$(env ROBOT).machine" />
+ <include file="$(find 2dnav_pr2)/config/base_odom_teleop_pre.xml" />
+ <include file="$(find 2dnav_pr2)/config/lasers_and_filters.xml" />
+ <include file="$(find 2dnav_pr2)/config/ground_plane.xml" />
+
+ <!-- The naviagtion stack and associated parameters -->
+ <include file="$(find 2dnav_pr2)/move_base_local/move_base_local.xml" />
+</launch>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mee...@us...> - 2009-09-04 00:02:31
|
Revision: 23796
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23796&view=rev
Author: meeussen
Date: 2009-09-04 00:02:21 +0000 (Fri, 04 Sep 2009)
Log Message:
-----------
trajectory controllers directly includes from pr2_mechanism_control. Add dep
Modified Paths:
--------------
pkg/trunk/sandbox/trajectory_controllers/manifest.xml
Modified: pkg/trunk/sandbox/trajectory_controllers/manifest.xml
===================================================================
--- pkg/trunk/sandbox/trajectory_controllers/manifest.xml 2009-09-03 23:17:53 UTC (rev 23795)
+++ pkg/trunk/sandbox/trajectory_controllers/manifest.xml 2009-09-04 00:02:21 UTC (rev 23796)
@@ -10,6 +10,7 @@
<url>http://pr.willowgarage.com/wiki/trajectory_controllers</url>
<depend package="pr2_controller_interface" />
+ <depend package="pr2_mechanism_control" />
<depend package="pluginlib" />
<depend package="robot_mechanism_controllers" />
<depend package="spline_smoother" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mee...@us...> - 2009-09-03 23:18:02
|
Revision: 23795
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23795&view=rev
Author: meeussen
Date: 2009-09-03 23:17:53 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
maybe needed for pluginlib. Will test later
Modified Paths:
--------------
pkg/trunk/controllers/pr2_mechanism_controllers/manifest.xml
pkg/trunk/controllers/robot_mechanism_controllers/manifest.xml
Modified: pkg/trunk/controllers/pr2_mechanism_controllers/manifest.xml
===================================================================
--- pkg/trunk/controllers/pr2_mechanism_controllers/manifest.xml 2009-09-03 23:15:32 UTC (rev 23794)
+++ pkg/trunk/controllers/pr2_mechanism_controllers/manifest.xml 2009-09-03 23:17:53 UTC (rev 23795)
@@ -33,6 +33,7 @@
<depend package="control_toolbox" />
<depend package="filters" />
<depend package="diagnostic_updater" />
+ <depend package="pr2_mechanism_control" />
<url>http://pr.willowgarage.com</url>
<repository>http://pr.willowgarage.com/repos</repository>
Modified: pkg/trunk/controllers/robot_mechanism_controllers/manifest.xml
===================================================================
--- pkg/trunk/controllers/robot_mechanism_controllers/manifest.xml 2009-09-03 23:15:32 UTC (rev 23794)
+++ pkg/trunk/controllers/robot_mechanism_controllers/manifest.xml 2009-09-03 23:17:53 UTC (rev 23795)
@@ -8,6 +8,7 @@
<depend package="rospy"/>
<depend package="pr2_controller_interface" />
<depend package="pr2_mechanism_model" />
+ <depend package="pr2_mechanism_control" />
<depend package="control_toolbox" />
<depend package="realtime_tools" />
<depend package="roscpp" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mee...@us...> - 2009-09-03 23:15:42
|
Revision: 23794
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23794&view=rev
Author: meeussen
Date: 2009-09-03 23:15:32 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
controllers should not depend on pr2_mechanism_control
Modified Paths:
--------------
pkg/trunk/controllers/pr2_mechanism_controllers/manifest.xml
pkg/trunk/controllers/pr2_mechanism_controllers/src/head_position_controller.cpp
Modified: pkg/trunk/controllers/pr2_mechanism_controllers/manifest.xml
===================================================================
--- pkg/trunk/controllers/pr2_mechanism_controllers/manifest.xml 2009-09-03 23:13:48 UTC (rev 23793)
+++ pkg/trunk/controllers/pr2_mechanism_controllers/manifest.xml 2009-09-03 23:15:32 UTC (rev 23794)
@@ -33,7 +33,6 @@
<depend package="control_toolbox" />
<depend package="filters" />
<depend package="diagnostic_updater" />
- <depend package="pr2_mechanism_control" />
<url>http://pr.willowgarage.com</url>
<repository>http://pr.willowgarage.com/repos</repository>
Modified: pkg/trunk/controllers/pr2_mechanism_controllers/src/head_position_controller.cpp
===================================================================
--- pkg/trunk/controllers/pr2_mechanism_controllers/src/head_position_controller.cpp 2009-09-03 23:13:48 UTC (rev 23793)
+++ pkg/trunk/controllers/pr2_mechanism_controllers/src/head_position_controller.cpp 2009-09-03 23:15:32 UTC (rev 23794)
@@ -35,7 +35,6 @@
#include "pr2_mechanism_controllers/head_position_controller.h"
#include <cmath>
-#include "pr2_mechanism_control/mechanism_control.h"
#include "pluginlib/class_list_macros.h"
using namespace tf;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mee...@us...> - 2009-09-03 23:13:54
|
Revision: 23793
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23793&view=rev
Author: meeussen
Date: 2009-09-03 23:13:48 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
controllers should not depend on pr2_mechanism_control
Modified Paths:
--------------
pkg/trunk/controllers/robot_mechanism_controllers/manifest.xml
pkg/trunk/controllers/robot_mechanism_controllers/src/cartesian_pose_controller.cpp
pkg/trunk/controllers/robot_mechanism_controllers/src/cartesian_twist_controller.cpp
Modified: pkg/trunk/controllers/robot_mechanism_controllers/manifest.xml
===================================================================
--- pkg/trunk/controllers/robot_mechanism_controllers/manifest.xml 2009-09-03 22:48:55 UTC (rev 23792)
+++ pkg/trunk/controllers/robot_mechanism_controllers/manifest.xml 2009-09-03 23:13:48 UTC (rev 23793)
@@ -8,7 +8,6 @@
<depend package="rospy"/>
<depend package="pr2_controller_interface" />
<depend package="pr2_mechanism_model" />
- <depend package="pr2_mechanism_control" />
<depend package="control_toolbox" />
<depend package="realtime_tools" />
<depend package="roscpp" />
Modified: pkg/trunk/controllers/robot_mechanism_controllers/src/cartesian_pose_controller.cpp
===================================================================
--- pkg/trunk/controllers/robot_mechanism_controllers/src/cartesian_pose_controller.cpp 2009-09-03 22:48:55 UTC (rev 23792)
+++ pkg/trunk/controllers/robot_mechanism_controllers/src/cartesian_pose_controller.cpp 2009-09-03 23:13:48 UTC (rev 23793)
@@ -36,7 +36,6 @@
#include "robot_mechanism_controllers/cartesian_pose_controller.h"
#include <algorithm>
#include "kdl/chainfksolverpos_recursive.hpp"
-#include "pr2_mechanism_control/mechanism_control.h"
#include "pluginlib/class_list_macros.h"
Modified: pkg/trunk/controllers/robot_mechanism_controllers/src/cartesian_twist_controller.cpp
===================================================================
--- pkg/trunk/controllers/robot_mechanism_controllers/src/cartesian_twist_controller.cpp 2009-09-03 22:48:55 UTC (rev 23792)
+++ pkg/trunk/controllers/robot_mechanism_controllers/src/cartesian_twist_controller.cpp 2009-09-03 23:13:48 UTC (rev 23793)
@@ -33,7 +33,6 @@
#include "robot_mechanism_controllers/cartesian_twist_controller.h"
#include <algorithm>
-#include "pr2_mechanism_control/mechanism_control.h"
#include "kdl/chainfksolvervel_recursive.hpp"
#include "pluginlib/class_list_macros.h"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <is...@us...> - 2009-09-03 22:49:01
|
Revision: 23792
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23792&view=rev
Author: isucan
Date: 2009-09-03 22:48:55 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
fixing test
Modified Paths:
--------------
pkg/trunk/motion_planning/planning_environment/test/test_robot_models.xml
Modified: pkg/trunk/motion_planning/planning_environment/test/test_robot_models.xml
===================================================================
--- pkg/trunk/motion_planning/planning_environment/test/test_robot_models.xml 2009-09-03 22:39:04 UTC (rev 23791)
+++ pkg/trunk/motion_planning/planning_environment/test/test_robot_models.xml 2009-09-03 22:48:55 UTC (rev 23792)
@@ -1,6 +1,6 @@
<launch>
- <param name="robot_description" command="$(find xacro)/xacro.py '$(find pr2_defs)/robots/pr2.xacro.xml'" />
+ <include file="$(find pr2_defs)/launch/upload_pr2.launch" />
<rosparam command="load" ns="robot_description_planning" file="$(find 3dnav_pr2)/params/planning/planning.yaml" />
<test test-name="test_robot_models" pkg="planning_environment" type="test_robot_models" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wg_...@us...> - 2009-09-03 22:39:14
|
Revision: 23791
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23791&view=rev
Author: wg_cmeyers
Date: 2009-09-03 22:39:04 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
changed name of yaml file and correctly mapped joystick buttons (to the way I like).
Modified Paths:
--------------
pkg/trunk/sandbox/texas/ps3_drive.launch
Modified: pkg/trunk/sandbox/texas/ps3_drive.launch
===================================================================
--- pkg/trunk/sandbox/texas/ps3_drive.launch 2009-09-03 21:35:43 UTC (rev 23790)
+++ pkg/trunk/sandbox/texas/ps3_drive.launch 2009-09-03 22:39:04 UTC (rev 23791)
@@ -1,5 +1,5 @@
<launch>
- <rosparam command="load" file="$(find texas)/dallas_base_controller.yaml" ns="pr2_base_controller" />
+ <rosparam command="load" file="$(find texas)/texas.yaml" ns="pr2_base_controller" />
<node pkg="pr2_mechanism_control" type="spawner.py" args="pr2_base_controller" />
<group name="ps3_teleop">
@@ -28,9 +28,9 @@
<!-- Buttons have changed for PS3 controller mapping -->
<param name="run_button" value="11" type="int" />
<param name="torso_dn_button" value="14" type="int" />
- <param name="torso_up_button" value="12" type="int" />
+ <param name="torso_up_button" value="10" type="int" />
<param name="head_button" value="8" type="int" />
- <param name="deadman_button" value="10" type="int"/>
+ <param name="deadman_button" value="12" type="int"/>
<param name="walk_vel" value="0.20" />
<param name="run_vel" value="0.5" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ei...@us...> - 2009-09-03 21:35:58
|
Revision: 23790
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23790&view=rev
Author: eitanme
Date: 2009-09-03 21:35:43 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
Fixing torso calibration
Modified Paths:
--------------
pkg/trunk/sandbox/mechanism_bringup/scripts/calibrate_pr2.py
pkg/trunk/stacks/pr2/pr2_default_controllers/pr2_joint_position_controllers.yaml
Modified: pkg/trunk/sandbox/mechanism_bringup/scripts/calibrate_pr2.py
===================================================================
--- pkg/trunk/sandbox/mechanism_bringup/scripts/calibrate_pr2.py 2009-09-03 21:31:32 UTC (rev 23789)
+++ pkg/trunk/sandbox/mechanism_bringup/scripts/calibrate_pr2.py 2009-09-03 21:35:43 UTC (rev 23790)
@@ -131,11 +131,12 @@
switch_controller([controller], [], SwitchControllerRequest.BEST_EFFORT)
break
+ else:
+ print 'Error spawning %s' % controller
except Exception, ex:
rospy.logerr("Failed to spawn holding controller %s on try %d: %s" % (controller, i+1, str(ex)))
- print "SENDING HOLD", controller, command
- pub = rospy.Publisher("%s/set_command" % controller, Float64,
+ pub = rospy.Publisher("%s/command" % controller, Float64,
SendMessageOnSubscribe(Float64(command)))
pub.publish(Float64(command))
@@ -212,6 +213,7 @@
hold('l_shoulder_lift', 1.0)
hold('torso_lift', 0.0)
+ sleep(1.0)
# Everything else
Modified: pkg/trunk/stacks/pr2/pr2_default_controllers/pr2_joint_position_controllers.yaml
===================================================================
--- pkg/trunk/stacks/pr2/pr2_default_controllers/pr2_joint_position_controllers.yaml 2009-09-03 21:31:32 UTC (rev 23789)
+++ pkg/trunk/stacks/pr2/pr2_default_controllers/pr2_joint_position_controllers.yaml 2009-09-03 21:35:43 UTC (rev 23790)
@@ -110,8 +110,8 @@
type: JointPositionController
joint: torso_lift_joint
pid:
- p: 1000000
- i: 0.0
- d: 10000
+ p: 100000000
+ i: 10000
+ d: 0.0
i_clamp: 100000.0
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pa...@us...> - 2009-09-03 21:31:41
|
Revision: 23789
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23789&view=rev
Author: paepcke
Date: 2009-09-03 21:31:32 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
Uncommented message generation line.
Modified Paths:
--------------
pkg/trunk/stacks/joystick_drivers/wiimote/CMakeLists.txt
Modified: pkg/trunk/stacks/joystick_drivers/wiimote/CMakeLists.txt
===================================================================
--- pkg/trunk/stacks/joystick_drivers/wiimote/CMakeLists.txt 2009-09-03 21:30:13 UTC (rev 23788)
+++ pkg/trunk/stacks/joystick_drivers/wiimote/CMakeLists.txt 2009-09-03 21:31:32 UTC (rev 23789)
@@ -17,7 +17,7 @@
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
#uncomment if you have defined messages
-#rosbuild_genmsg()
+rosbuild_genmsg()
#uncomment if you have defined services
#rosbuild_gensrv()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wa...@us...> - 2009-09-03 21:30:22
|
Revision: 23788
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23788&view=rev
Author: wattsk
Date: 2009-09-03 21:30:13 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
Adding documentation to diagnostics_analysis
Modified Paths:
--------------
pkg/trunk/stacks/diagnostics/diagnostics_analysis/mainpage.dox
pkg/trunk/stacks/diagnostics/diagnostics_analysis/scripts/export_csv.py
pkg/trunk/stacks/diagnostics/diagnostics_analysis/test/bag_csv_test.py
Modified: pkg/trunk/stacks/diagnostics/diagnostics_analysis/mainpage.dox
===================================================================
--- pkg/trunk/stacks/diagnostics/diagnostics_analysis/mainpage.dox 2009-09-03 21:26:38 UTC (rev 23787)
+++ pkg/trunk/stacks/diagnostics/diagnostics_analysis/mainpage.dox 2009-09-03 21:30:13 UTC (rev 23788)
@@ -25,10 +25,10 @@
If your CSV file is too big, it may not be readable by common spreadsheet editor, such as Open Office. To solve this problem, you can make a "sparse" CSV by removing every nth line from the file.
\verbatim
-$ ./sparse_csv.py output/my_bagfile_2009_07_24-topic_csv/status_name.csv [number_of_lines_to_skip]
+$ rosrun diagnostics_analysi sparse_csv.py output/my_bagfile_2009_07_24-topic_csv/status_name.csv -m
\endverbatim
-This makes the file output/my_bagfile_2009_07_24-topic_csv/status_name_sparse.csv, and only records every 10th line be default. To change the frequency of recording, change the number_of_lines_to_skip arguement.
+This makes the file output/my_bagfile_2009_07_24-topic_csv/status_name_sprs_len.csv, and makes sure it is no longer than 65000 lines.
*/
\ No newline at end of file
Modified: pkg/trunk/stacks/diagnostics/diagnostics_analysis/scripts/export_csv.py
===================================================================
--- pkg/trunk/stacks/diagnostics/diagnostics_analysis/scripts/export_csv.py 2009-09-03 21:26:38 UTC (rev 23787)
+++ pkg/trunk/stacks/diagnostics/diagnostics_analysis/scripts/export_csv.py 2009-09-03 21:30:13 UTC (rev 23788)
@@ -51,7 +51,7 @@
# Allow user to set output directory
parser = OptionParser()
parser.add_option("-d", "--directory", dest="directory",
- help="Write output to DIR. Default: %s" % PKG, metavar="DIR",
+ help="Write output to DIR/output. Default: %s" % PKG, metavar="DIR",
default=roslib.packages.get_pkg_dir(PKG), action="store")
options, args = parser.parse_args()
Modified: pkg/trunk/stacks/diagnostics/diagnostics_analysis/test/bag_csv_test.py
===================================================================
--- pkg/trunk/stacks/diagnostics/diagnostics_analysis/test/bag_csv_test.py 2009-09-03 21:26:38 UTC (rev 23787)
+++ pkg/trunk/stacks/diagnostics/diagnostics_analysis/test/bag_csv_test.py 2009-09-03 21:30:13 UTC (rev 23788)
@@ -53,6 +53,7 @@
row_count = 100
+##\brief Make DiagnosticArray message for testing
def make_status_msg(count):
array = DiagnosticArray()
stat = DiagnosticStatus()
@@ -87,10 +88,12 @@
self.skip_10 = make_sparse_skip(self.filename, 10)
self.length_10 = make_sparse_length(self.filename, 10)
+ ##\brief Tests that exported file exists and is not None
def test_file_exists(self):
self.assert_(self.filename is not None, "CSV file is None")
self.assert_(os.path.isfile(self.filename), "CSV file doesn't exist")
+ ##\brief Test that CSV file has correct data, number of lines
def test_export(self):
# Read CSV, count rows
input_reader = csv.reader(open(self.filename, 'rb'))
@@ -108,9 +111,11 @@
self.assert_(count == row_count, "Row count doesn't match")
+ ##\brief Tests that sparse CSV made with 'skip' option has correct number of lines
def test_sparse_skip(self):
self.assert_(len(open(self.skip_10).read().split('\n')) <= int(row_count / 10) + 2, "Length of sparse CSV (skipped) incorrect")
+ ##\brief Tests that sparse CSV made with 'length' option has correct number of lines
def test_sparse_length(self):
self.assert_(len(open(self.length_10).read().split('\n')) == 12, "Length of sparse CSV incorrect")
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hsu...@us...> - 2009-09-03 21:26:49
|
Revision: 23787
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23787&view=rev
Author: hsujohnhsu
Date: 2009-09-03 21:26:38 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
fix test due to base friction change (0), for plug in grasping
Modified Paths:
--------------
pkg/trunk/stacks/pr2_simulator/test_pr2_collision_gazebo/test_slide.launch
pkg/trunk/stacks/pr2_simulator/test_pr2_collision_gazebo/test_slide.py
Modified: pkg/trunk/stacks/pr2_simulator/test_pr2_collision_gazebo/test_slide.launch
===================================================================
--- pkg/trunk/stacks/pr2_simulator/test_pr2_collision_gazebo/test_slide.launch 2009-09-03 21:20:20 UTC (rev 23786)
+++ pkg/trunk/stacks/pr2_simulator/test_pr2_collision_gazebo/test_slide.launch 2009-09-03 21:26:38 UTC (rev 23787)
@@ -11,7 +11,7 @@
<include file="$(find pr2_defs)/launch/upload_pr2.launch" />
<!-- push robot_description to factory and spawn robot in gazebo -->
- <node name="urdf2factory" pkg="gazebo_tools" type="urdf2factory" args="robot_description 0 6 18 0 -75 90 pr2_model" respawn="false" output="screen" />
+ <node name="urdf2factory" pkg="gazebo_tools" type="urdf2factory" args="robot_description 0 6 17 0 -75 90 pr2_model" respawn="false" output="screen" />
<!-- test -->
<test test-name="pr2_test_slide" pkg="test_pr2_collision_gazebo" type="test_slide.py" time-limit="120" />
Modified: pkg/trunk/stacks/pr2_simulator/test_pr2_collision_gazebo/test_slide.py
===================================================================
--- pkg/trunk/stacks/pr2_simulator/test_pr2_collision_gazebo/test_slide.py 2009-09-03 21:20:20 UTC (rev 23786)
+++ pkg/trunk/stacks/pr2_simulator/test_pr2_collision_gazebo/test_slide.py 2009-09-03 21:26:38 UTC (rev 23787)
@@ -42,7 +42,7 @@
import unittest, sys, os, math
import time
import rospy, rostest
-from nav_msgs.msg import *
+from nav_msgs.msg import Odometry
TEST_DURATION = 90.0
TARGET_X = -6.0 + 25.65 #contains offset specified in P3D for base, alternatively, use the gripper roll ground truths
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jfa...@us...> - 2009-09-03 21:20:33
|
Revision: 23786
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23786&view=rev
Author: jfaustwg
Date: 2009-09-03 21:20:20 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
Delete turtlesim from sandbox (moved to ros_tutorials stack)
Removed Paths:
-------------
pkg/trunk/sandbox/turtlesim/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vij...@us...> - 2009-09-03 21:06:04
|
Revision: 23785
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23785&view=rev
Author: vijaypradeep
Date: 2009-09-03 21:05:56 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
Adding script to generate gazebo checkerboard
Added Paths:
-----------
pkg/trunk/calibration_experimental/pr2_calibration_launch/build_checker.py
pkg/trunk/calibration_experimental/pr2_calibration_launch/checker.launch
Added: pkg/trunk/calibration_experimental/pr2_calibration_launch/build_checker.py
===================================================================
--- pkg/trunk/calibration_experimental/pr2_calibration_launch/build_checker.py (rev 0)
+++ pkg/trunk/calibration_experimental/pr2_calibration_launch/build_checker.py 2009-09-03 21:05:56 UTC (rev 23785)
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+
+import sys
+import os
+import string
+
+def print_usage():
+ print '''Usage:
+ build_checker.py <num_x> <num_y> <square_size>
+'''
+
+if len(sys.argv) < 4:
+ print_usage();
+
+num_x = int(sys.argv[1])
+num_y = int(sys.argv[2])
+sq_size = float(sys.argv[3])
+
+print '''<?xml version="1.0" ?>
+<!-- Object2: example checker box -->
+<model:physical name="checker_model">
+ <xyz> 0.0 0.0 2.0 </xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <body:box name="checker_body">'''
+
+for y in range(0, num_y):
+ for x in range(0, num_x):
+ if y%2 == x%2:
+ laser_retro = 3000
+ material_str = "PR2/White"
+ else:
+ laser_retro = 1000
+ material_str = "PR2/Black"
+ box_name_str = "checker_%u%u_geom" % (x,y)
+ position_str = "0.0 %.3f %.3f" % (x*sq_size, y*sq_size)
+ size_str = "%.3f %.3f %.3f" % (sq_size, sq_size, sq_size)
+ print '''
+ <geom:box name="%s">
+ <xyz>%s</xyz>
+ <size>%s</size>
+ <laserRetro>%u</laserRetro>
+ <kp>1000000.0</kp>
+ <kd>1.0</kd>
+ <mesh>default</mesh>
+ <mass> 0.01</mass>
+ <visual>
+ <size>%s</size>
+ <material>%s</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>''' % (box_name_str, position_str, size_str, laser_retro, size_str, material_str)
+
+print ''' </body:box>
+ <controller:ros_p3d name="p3d_object_controller" plugin="libros_p3d.so">
+ <alwaysOn>true</alwaysOn>
+ <updateRate>100.0</updateRate>
+ <bodyName>checker_body</bodyName>
+ <topicName>checker_pose_ground_truty</topicName>
+ <frameName>map</frameName>
+ <interface:position name="p3d_object_position"/>
+ </controller:ros_p3d>
+</model:physical>'''
Property changes on: pkg/trunk/calibration_experimental/pr2_calibration_launch/build_checker.py
___________________________________________________________________
Added: svn:executable
+ *
Added: pkg/trunk/calibration_experimental/pr2_calibration_launch/checker.launch
===================================================================
--- pkg/trunk/calibration_experimental/pr2_calibration_launch/checker.launch (rev 0)
+++ pkg/trunk/calibration_experimental/pr2_calibration_launch/checker.launch 2009-09-03 21:05:56 UTC (rev 23785)
@@ -0,0 +1,10 @@
+<launch>
+ <param name="/use_sim_time" value="true" />
+ <!-- send xml to param server -->
+ <param name="checker" textfile="$(find gazebo_worlds)/launch/checker.model" />
+
+ <!-- push robot_description to factory and spawn robot in gazebo -->
+ <node pkg="gazebo_tools" type="xml2factory" args="checker 2.0 -.5 .5 0 0 0 checker_model" respawn="false" output="screen" />
+
+</launch>
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hsu...@us...> - 2009-09-03 20:55:49
|
Revision: 23784
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23784&view=rev
Author: hsujohnhsu
Date: 2009-09-03 20:55:38 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
fixe names: test_2dnav_* to test_pr2_2dnav_*
Modified Paths:
--------------
pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/CMakeLists.txt
Added Paths:
-----------
pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_amcl_axis.launch
pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_axis.launch
pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_diagonal.launch
pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_odom.launch
pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_rotation.launch
pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_wg.launch
Removed Paths:
-------------
pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_amcl_axis.launch
pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_axis.launch
pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_diagonal.launch
pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_odom.launch
pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_rotation.launch
pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_wg.launch
Modified: pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/CMakeLists.txt
===================================================================
--- pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/CMakeLists.txt 2009-09-03 20:52:28 UTC (rev 23783)
+++ pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/CMakeLists.txt 2009-09-03 20:55:38 UTC (rev 23784)
@@ -22,11 +22,11 @@
#
#if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND _is32bit)
#
-#rospack_add_rostest(test_2dnav_wg.launch)
-#rospack_add_rostest(test_2dnav_empty_rotation.launch)
-#rospack_add_rostest(test_2dnav_empty_odom.launch)
-#rospack_add_rostest(test_2dnav_empty_diagonal.launch)
-#rospack_add_rostest(test_2dnav_empty_axis.launch)
-#rospack_add_rostest(test_2dnav_empty_amcl_axis.launch)
+#rospack_add_rostest(test_pr2_2dnav_wg.launch)
+#rospack_add_rostest(test_pr2_2dnav_empty_rotation.launch)
+#rospack_add_rostest(test_pr2_2dnav_empty_odom.launch)
+#rospack_add_rostest(test_pr2_2dnav_empty_diagonal.launch)
+#rospack_add_rostest(test_pr2_2dnav_empty_axis.launch)
+#rospack_add_rostest(test_pr2_2dnav_empty_amcl_axis.launch)
#
#endif(CMAKE_SYSTEM_NAME MATCHES "Linux" AND _is32bit)
Deleted: pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_amcl_axis.launch
===================================================================
--- pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_amcl_axis.launch 2009-09-03 20:52:28 UTC (rev 23783)
+++ pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_amcl_axis.launch 2009-09-03 20:55:38 UTC (rev 23784)
@@ -1,50 +0,0 @@
-<launch>
-
- <!-- start up empty world -->
- <include file="$(find gazebo)/launch/empty_world.launch"/>
-
- <!-- start up robot -->
- <include file="$(find pr2_gazebo)/prototype1.launch"/>
-
- <!-- load map -->
- <node pkg="map_server" type="map_server" args="$(find gazebo_worlds)/Media/materials/textures/map_blank.png 0.1" respawn="false" />
-
- <!-- nav-stack -->
- <include file="$(find pr2_2dnav_gazebo)/2dnav-stack-amcl.launch"/>
-
- <!-- for visualization -->
- <!--
- <node pkg="nav_view" type="nav_view" respawn="false" />
- <node pkg="rviz" type="rviz" respawn="false" />
- <node pkg="rosviz" type="rxplot" respawn="false" args="-m. -p10 /state/pos/x,/state/pos/y,/state/pos/th" />
- -->
-
- <!--
- <param name="/trex/ping_frequency" value="1"/>
- <node pkg="highlevel_controllers" type="recharge_controller" args="" respawn="false" />
- <node pkg="kinematic_planning" type="kinematic_planning" args="robot_description"/>
- <include file="$(find world_3d_map)/run.xml"/>
- <node pkg="highlevel_controllers" type="move_arm" args="right" respawn="false"/>
- <node pkg="highlevel_controllers" type="move_arm" args="left" respawn="false" />
- <node pkg="highlevel_controllers" type="move_end_effector" args="right" respawn="false"/>
- -->
-
- <!-- test -->
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_amcl_xmpi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 23.56 -y 25.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 140 -amcl 25.70 25.70 0" time-limit="150" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_amcl_xm1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 24.70 -y 25.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 140 -amcl 25.70 25.70 0" time-limit="150" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_amcl_x1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 26.70 -y 25.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 70 -amcl 25.70 25.70 0" time-limit="80" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_amcl_xpi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 28.84 -y 25.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 70 -amcl 25.70 25.70 0" time-limit="80" />
-
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_amcl_ympi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 23.56 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 110 -amcl 25.70 25.70 0" time-limit="120" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_amcl_y1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 26.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 80 -amcl 25.70 25.70 0" time-limit="90" />
-
- <!-- these tests do not pass, commented out for now until fixed
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_amcl_ym1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 24.70 -t 0 -nav_t_tol 0.1 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 80 -amcl 25.70 25.70 0" time-limit="90" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_amcl_ypi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 28.84 -t 0 -nav_t_tol 0.1 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 80 -amcl 25.70 25.70 0" time-limit="90" />
- -->
-
- <!--
- <node pkg="rosrecord" type="rosrecord" args="-f 2dnav_empty_amcl_axis-build$(optenv BUILD_NUMBER) /odom /cmd_vel"/>
- -->
-
-</launch>
Deleted: pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_axis.launch
===================================================================
--- pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_axis.launch 2009-09-03 20:52:28 UTC (rev 23783)
+++ pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_axis.launch 2009-09-03 20:55:38 UTC (rev 23784)
@@ -1,51 +0,0 @@
-<launch>
- <master auto="start" />
-
- <!-- start up empty world -->
- <include file="$(find gazebo)/launch/empty_world.launch"/>
-
- <!-- start up robot -->
- <include file="$(find pr2_gazebo)/prototype1.launch"/>
-
- <!-- load map -->
- <node pkg="map_server" type="map_server" args="$(find gazebo_worlds)/Media/materials/textures/map_blank.png 0.1" respawn="false" />
-
- <!-- nav-stack -->
- <include file="$(find pr2_2dnav_gazebo)/2dnav-stack-fake_localization.launch"/>
-
- <!-- for visualization -->
- <!--
- <node pkg="nav_view" type="nav_view" respawn="false" />
- <node pkg="rviz" type="rviz" respawn="false" />
- <node pkg="rosviz" type="rxplot" respawn="false" args="-m. -p10 /state/pos/x,/state/pos/y,/state/pos/th" />
- -->
-
- <!--
- <param name="/trex/ping_frequency" value="1"/>
- <node pkg="highlevel_controllers" type="recharge_controller" args="" respawn="false" />
- <node pkg="kinematic_planning" type="kinematic_planning" args="robot_description"/>
- <include file="$(find world_3d_map)/run.xml"/>
- <node pkg="highlevel_controllers" type="move_arm" args="right" respawn="false"/>
- <node pkg="highlevel_controllers" type="move_arm" args="left" respawn="false" />
- <node pkg="highlevel_controllers" type="move_end_effector" args="right" respawn="false"/>
- -->
-
- <!-- test -->
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_xmpi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 23.56 -y 25.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 140 " time-limit="150" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_xm1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 24.70 -y 25.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 140 " time-limit="150" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_x1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 26.70 -y 25.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 70 " time-limit="80" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_xpi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 28.84 -y 25.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 70 " time-limit="80" />
-
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_ympi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 23.56 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 110 " time-limit="120" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_y1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 26.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 80 " time-limit="90" />
-
- <!-- these tests do not pass, commented out for now until fixed
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_ym1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 24.70 -t 0 -nav_t_tol 0.1 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 80 " time-limit="90" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_ypi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 28.84 -t 0 -nav_t_tol 0.1 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 80 " time-limit="90" />
- -->
-
- <!--
- <node pkg="rosrecord" type="rosrecord" args="-f 2dnav_empty_axis-build$(optenv BUILD_NUMBER) /odom /cmd_vel"/>
- -->
-
-</launch>
Deleted: pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_diagonal.launch
===================================================================
--- pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_diagonal.launch 2009-09-03 20:52:28 UTC (rev 23783)
+++ pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_diagonal.launch 2009-09-03 20:55:38 UTC (rev 23784)
@@ -1,50 +0,0 @@
-<launch>
- <master auto="start" />
-
- <!-- start up empty world -->
- <include file="$(find gazebo)/launch/empty_world.launch"/>
-
- <!-- start up robot -->
- <include file="$(find pr2_gazebo)/prototype1.launch"/>
-
- <!-- load map -->
- <node pkg="map_server" type="map_server" args="$(find gazebo_worlds)/Media/materials/textures/map_blank.png 0.1" respawn="false" />
-
- <!-- nav-stack -->
- <include file="$(find pr2_2dnav_gazebo)/2dnav-stack-fake_localization.launch"/>
-
- <!-- for visualization -->
- <!--
- <node pkg="rviz" type="rviz" respawn="false" />
- <node pkg="nav_view" type="nav_view" respawn="false" />
- -->
-
- <!--
- <param name="/trex/ping_frequency" value="1"/>
- <node pkg="highlevel_controllers" type="recharge_controller" args="" respawn="false" />
- <node pkg="kinematic_planning" type="kinematic_planning" args="robot_description"/>
- <include file="$(find world_3d_map)/run.xml"/>
- <node pkg="highlevel_controllers" type="move_arm" args="right" respawn="false"/>
- <node pkg="highlevel_controllers" type="move_arm" args="left" respawn="false" />
- <node pkg="highlevel_controllers" type="move_end_effector" args="right" respawn="false"/>
- -->
-
- <!-- test -->
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_xm1y1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 24.70 -y 26.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 150 " time-limit="170" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_xm1ym1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 24.70 -y 24.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 150 " time-limit="170" />
-
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_xpiypi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 28.84 -y 28.84 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.80 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 150 " time-limit="170" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_xmpiypi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 23.56 -y 28.84 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 150 " time-limit="170" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_xmpiympi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 23.56 -y 23.56 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 150 " time-limit="170" />
-
- <!-- these tests do not pass, commented out for now until fixed
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_x1y1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 26.70 -y 26.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 80 " time-limit="90" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_xpiympi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 28.84 -y 23.56 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 110 " time-limit="120" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_x1ym1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 26.70 -y 24.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 180 " time-limit="200" />
- -->
-
- <!--
- <node pkg="rosrecord" type="rosrecord" args="-f 2dnav_empty_diagonal-build$(optenv BUILD_NUMBER) /odom /cmd_vel"/>
- -->
-
-</launch>
Deleted: pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_odom.launch
===================================================================
--- pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_odom.launch 2009-09-03 20:52:28 UTC (rev 23783)
+++ pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_odom.launch 2009-09-03 20:55:38 UTC (rev 23784)
@@ -1,50 +0,0 @@
-<launch>
- <master auto="start" />
-
- <!-- start up empty world -->
- <include file="$(find gazebo)/launch/empty_world.launch"/>
-
- <!-- start up robot -->
- <include file="$(find pr2_gazebo)/prototype1.launch"/>
-
- <!-- load map -->
- <node pkg="map_server" type="map_server" args="$(find gazebo_worlds)/Media/materials/textures/map_blank.png 0.1" respawn="false" />
-
- <!-- nav-stack -->
- <include file="$(find pr2_2dnav_gazebo)/2dnav-stack-fake_localization.launch"/>
-
- <!-- for visualization -->
- <!--
- <node pkg="nav_view" type="nav_view" respawn="false" />
- <node pkg="rviz" type="rviz" respawn="false" />
- -->
-
- <!--
- <param name="/trex/ping_frequency" value="1"/>
- <node pkg="highlevel_controllers" type="recharge_controller" args="" respawn="false" />
- <node pkg="kinematic_planning" type="kinematic_planning" args="robot_description"/>
- <include file="$(find world_3d_map)/run.xml"/>
- <node pkg="highlevel_controllers" type="move_arm" args="right" respawn="false"/>
- <node pkg="highlevel_controllers" type="move_arm" args="left" respawn="false" />
- <node pkg="highlevel_controllers" type="move_end_effector" args="right" respawn="false"/>
- -->
-
- <!-- test -->
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_odom_xmpiypi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 23.56 -y 28.84 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 2.00 -odom_xy_tol 3.00 -timeout 170 " time-limit="180" />
-
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_odom_tm2pi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 25.70 -t -6.2832 -nav_t_tol 0.2 -nav_xy_tol 0.01 -odom_t_tol 0.05 -odom_xy_tol 0.05 -timeout 50 " time-limit="60" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_odom_t2pi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 25.70 -t 6.2832 -nav_t_tol 0.2 -nav_xy_tol 0.01 -odom_t_tol 0.05 -odom_xy_tol 0.05 -timeout 50 " time-limit="60" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_odom_tmpi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 25.70 -t -3.1416 -nav_t_tol 0.2 -nav_xy_tol 0.30 -odom_t_tol 0.05 -odom_xy_tol 0.05 -timeout 50 " time-limit="60" />
-
- <!-- these tests do not pass, commented out for now until fixed
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_odom_xmpiympi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 23.56 -y 23.56 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.70 -odom_xy_tol 0.30 -timeout 80 " time-limit="90" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_odom_xpiympi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 28.84 -y 23.56 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 1.00 -odom_xy_tol 0.50 -timeout 80 " time-limit="90" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_odom_xpiypi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 28.84 -y 28.84 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.80 -odom_t_tol 2.00 -odom_xy_tol 3.00 -timeout 110 " time-limit="120" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_odom_tpi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 25.70 -t 3.1416 -nav_t_tol 0.2 -nav_xy_tol 0.30 -odom_t_tol 0.05 -odom_xy_tol 0.05 -timeout 50 " time-limit="60" />
- -->
-
- <!--
- <node pkg="rosrecord" type="rosrecord" args="-f 2dnav_empty_odom-build$(optenv BUILD_NUMBER) /odom /cmd_vel"/>
- -->
-
-</launch>
Deleted: pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_rotation.launch
===================================================================
--- pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_rotation.launch 2009-09-03 20:52:28 UTC (rev 23783)
+++ pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_rotation.launch 2009-09-03 20:55:38 UTC (rev 23784)
@@ -1,45 +0,0 @@
-<launch>
- <master auto="start" />
-
- <!-- start up empty world -->
- <include file="$(find gazebo)/launch/empty_world.launch"/>
-
- <!-- start up robot -->
- <include file="$(find pr2_gazebo)/prototype1.launch"/>
-
- <!-- load map -->
- <node pkg="map_server" type="map_server" args="$(find gazebo_worlds)/Media/materials/textures/map_blank.png 0.1" respawn="false" />
-
- <!-- nav-stack -->
- <include file="$(find pr2_2dnav_gazebo)/2dnav-stack-fake_localization.launch"/>
-
- <!-- for visualization -->
- <!--
- <node pkg="rviz" type="rviz" respawn="false" />
- <node pkg="nav_view" type="nav_view" respawn="false" />
- -->
-
- <!--
- <param name="/trex/ping_frequency" value="1"/>
- <node pkg="highlevel_controllers" type="recharge_controller" args="" respawn="false" />
- <node pkg="kinematic_planning" type="kinematic_planning" args="robot_description"/>
- <include file="$(find world_3d_map)/run.xml"/>
- <node pkg="highlevel_controllers" type="move_arm" args="right" respawn="false"/>
- <node pkg="highlevel_controllers" type="move_arm" args="left" respawn="false" />
- <node pkg="highlevel_controllers" type="move_end_effector" args="right" respawn="false"/>
- -->
-
- <!-- test -->
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_tm2pi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 25.70 -t -6.2832 -nav_t_tol 0.1 -nav_xy_tol 0.01 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 50 " time-limit="60" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_tmpi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 25.70 -t -3.1416 -nav_t_tol 0.1 -nav_xy_tol 0.20 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 80 " time-limit="90" />
-
- <!-- these tests do not pass, commented out for now until fixed
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_tpi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 25.70 -t 3.1416 -nav_t_tol 0.1 -nav_xy_tol 0.02 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 50 " time-limit="60" />
- <test test-name="pr2_2dnav_gazebo_test_2dnav_empty_t2pi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 25.70 -t 6.2832 -nav_t_tol 0.1 -nav_xy_tol 0.01 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 50 " time-limit="60" />
- -->
-
- <!--
- <node pkg="rosrecord" type="rosrecord" args="-f 2dnav_empty_rotation-build$(optenv BUILD_NUMBER) /odom /cmd_vel"/>
- -->
-
-</launch>
Deleted: pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_wg.launch
===================================================================
--- pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_wg.launch 2009-09-03 20:52:28 UTC (rev 23783)
+++ pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_wg.launch 2009-09-03 20:55:38 UTC (rev 23784)
@@ -1,39 +0,0 @@
-<launch>
- <master auto="start" />
-
- <!-- start up wg world -->
- <include file="$(find gazebo)/launch/wg_world.launch"/>
-
- <!-- start up robot -->
- <include file="$(find pr2_gazebo)/prototype1.launch"/>
-
- <!-- load map -->
- <node pkg="map_server" type="map_server" args="$(find gazebo_worlds)/Media/materials/textures/willowMap25mm.png 0.025" respawn="false" />
- <!--
- <node pkg="map_server" type="map_server" args="$(find gazebo_worlds)/Media/materials/textures/willowMap.png 0.1" respawn="false" />
- -->
-
- <!-- nav-stack -->
- <include file="$(find pr2_2dnav_gazebo)/2dnav-stack-fake_localization.launch"/>
-
- <include file="$(find 2dnav_pr2)/rviz/rviz_move_base.launch"/>
- <node pkg="rxtools" type="rxconsole" respawn="false" />
- <!--
- <param name="/trex/ping_frequency" value="1"/>
- <node pkg="highlevel_controllers" type="recharge_controller" args="" respawn="false" />
- <node pkg="kinematic_planning" type="kinematic_planning" args="robot_description"/>
- <node pkg="highlevel_controllers" type="move_arm" args="right" respawn="false"/>
- <node pkg="highlevel_controllers" type="move_arm" args="left" respawn="false" />
- <node pkg="highlevel_controllers" type="move_end_effector" args="right" respawn="false"/>
- -->
-
- <!-- test -->
- <test test-name="pr2_2dnav_gazebo_test_2dnav_wg_waypoint_1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 40.8 -y 42.5 -t 3.083 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 800 " time-limit="820"/>
- <!-- these tests do not pass, commented out for now until fixed
- <test test-name="pr2_2dnav_gazebo_test_2dnav_wg_waypoint_2" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 36.0 -y 34.9 -t 2.554 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 480 " time-limit="500"/>
- <test test-name="pr2_2dnav_gazebo_test_2dnav_wg_waypoint_3" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 31.3 -y 45.8 -t 0.000 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 480 " time-limit="500"/>
- <test test-name="pr2_2dnav_gazebo_test_2dnav_wg_waypoint_4" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 22.2 -y 20.0 -t 0.000 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 480 " time-limit="500"/>
- <test test-name="pr2_2dnav_gazebo_test_2dnav_wg_waypoint_5" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 7.5 -y 45.0 -t 1.571 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 480 " time-limit="500"/>
- <test test-name="pr2_2dnav_gazebo_test_2dnav_wg_waypoint_6" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 9.4 -y 11.2 -t 0.000 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 480 " time-limit="500"/>
- -->
-</launch>
Copied: pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_amcl_axis.launch (from rev 23768, pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_amcl_axis.launch)
===================================================================
--- pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_amcl_axis.launch (rev 0)
+++ pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_amcl_axis.launch 2009-09-03 20:55:38 UTC (rev 23784)
@@ -0,0 +1,50 @@
+<launch>
+
+ <!-- start up empty world -->
+ <include file="$(find gazebo)/launch/empty_world.launch"/>
+
+ <!-- start up robot -->
+ <include file="$(find pr2_gazebo)/prototype1.launch"/>
+
+ <!-- load map -->
+ <node pkg="map_server" type="map_server" args="$(find gazebo_worlds)/Media/materials/textures/map_blank.png 0.1" respawn="false" />
+
+ <!-- nav-stack -->
+ <include file="$(find pr2_2dnav_gazebo)/2dnav-stack-amcl.launch"/>
+
+ <!-- for visualization -->
+ <!--
+ <node pkg="nav_view" type="nav_view" respawn="false" />
+ <node pkg="rviz" type="rviz" respawn="false" />
+ <node pkg="rosviz" type="rxplot" respawn="false" args="-m. -p10 /state/pos/x,/state/pos/y,/state/pos/th" />
+ -->
+
+ <!--
+ <param name="/trex/ping_frequency" value="1"/>
+ <node pkg="highlevel_controllers" type="recharge_controller" args="" respawn="false" />
+ <node pkg="kinematic_planning" type="kinematic_planning" args="robot_description"/>
+ <include file="$(find world_3d_map)/run.xml"/>
+ <node pkg="highlevel_controllers" type="move_arm" args="right" respawn="false"/>
+ <node pkg="highlevel_controllers" type="move_arm" args="left" respawn="false" />
+ <node pkg="highlevel_controllers" type="move_end_effector" args="right" respawn="false"/>
+ -->
+
+ <!-- test -->
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_amcl_xmpi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 23.56 -y 25.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 140 -amcl 25.70 25.70 0" time-limit="150" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_amcl_xm1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 24.70 -y 25.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 140 -amcl 25.70 25.70 0" time-limit="150" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_amcl_x1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 26.70 -y 25.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 70 -amcl 25.70 25.70 0" time-limit="80" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_amcl_xpi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 28.84 -y 25.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 70 -amcl 25.70 25.70 0" time-limit="80" />
+
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_amcl_ympi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 23.56 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 110 -amcl 25.70 25.70 0" time-limit="120" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_amcl_y1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 26.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 80 -amcl 25.70 25.70 0" time-limit="90" />
+
+ <!-- these tests do not pass, commented out for now until fixed
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_amcl_ym1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 24.70 -t 0 -nav_t_tol 0.1 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 80 -amcl 25.70 25.70 0" time-limit="90" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_amcl_ypi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 28.84 -t 0 -nav_t_tol 0.1 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 80 -amcl 25.70 25.70 0" time-limit="90" />
+ -->
+
+ <!--
+ <node pkg="rosrecord" type="rosrecord" args="-f 2dnav_empty_amcl_axis-build$(optenv BUILD_NUMBER) /odom /cmd_vel"/>
+ -->
+
+</launch>
Copied: pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_axis.launch (from rev 23768, pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_axis.launch)
===================================================================
--- pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_axis.launch (rev 0)
+++ pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_axis.launch 2009-09-03 20:55:38 UTC (rev 23784)
@@ -0,0 +1,51 @@
+<launch>
+ <master auto="start" />
+
+ <!-- start up empty world -->
+ <include file="$(find gazebo)/launch/empty_world.launch"/>
+
+ <!-- start up robot -->
+ <include file="$(find pr2_gazebo)/prototype1.launch"/>
+
+ <!-- load map -->
+ <node pkg="map_server" type="map_server" args="$(find gazebo_worlds)/Media/materials/textures/map_blank.png 0.1" respawn="false" />
+
+ <!-- nav-stack -->
+ <include file="$(find pr2_2dnav_gazebo)/2dnav-stack-fake_localization.launch"/>
+
+ <!-- for visualization -->
+ <!--
+ <node pkg="nav_view" type="nav_view" respawn="false" />
+ <node pkg="rviz" type="rviz" respawn="false" />
+ <node pkg="rosviz" type="rxplot" respawn="false" args="-m. -p10 /state/pos/x,/state/pos/y,/state/pos/th" />
+ -->
+
+ <!--
+ <param name="/trex/ping_frequency" value="1"/>
+ <node pkg="highlevel_controllers" type="recharge_controller" args="" respawn="false" />
+ <node pkg="kinematic_planning" type="kinematic_planning" args="robot_description"/>
+ <include file="$(find world_3d_map)/run.xml"/>
+ <node pkg="highlevel_controllers" type="move_arm" args="right" respawn="false"/>
+ <node pkg="highlevel_controllers" type="move_arm" args="left" respawn="false" />
+ <node pkg="highlevel_controllers" type="move_end_effector" args="right" respawn="false"/>
+ -->
+
+ <!-- test -->
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_xmpi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 23.56 -y 25.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 140 " time-limit="150" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_xm1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 24.70 -y 25.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 140 " time-limit="150" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_x1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 26.70 -y 25.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 70 " time-limit="80" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_xpi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 28.84 -y 25.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 70 " time-limit="80" />
+
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_ympi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 23.56 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 110 " time-limit="120" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_y1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 26.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 80 " time-limit="90" />
+
+ <!-- these tests do not pass, commented out for now until fixed
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_ym1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 24.70 -t 0 -nav_t_tol 0.1 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 80 " time-limit="90" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_ypi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 28.84 -t 0 -nav_t_tol 0.1 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 80 " time-limit="90" />
+ -->
+
+ <!--
+ <node pkg="rosrecord" type="rosrecord" args="-f 2dnav_empty_axis-build$(optenv BUILD_NUMBER) /odom /cmd_vel"/>
+ -->
+
+</launch>
Copied: pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_diagonal.launch (from rev 23768, pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_diagonal.launch)
===================================================================
--- pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_diagonal.launch (rev 0)
+++ pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_diagonal.launch 2009-09-03 20:55:38 UTC (rev 23784)
@@ -0,0 +1,50 @@
+<launch>
+ <master auto="start" />
+
+ <!-- start up empty world -->
+ <include file="$(find gazebo)/launch/empty_world.launch"/>
+
+ <!-- start up robot -->
+ <include file="$(find pr2_gazebo)/prototype1.launch"/>
+
+ <!-- load map -->
+ <node pkg="map_server" type="map_server" args="$(find gazebo_worlds)/Media/materials/textures/map_blank.png 0.1" respawn="false" />
+
+ <!-- nav-stack -->
+ <include file="$(find pr2_2dnav_gazebo)/2dnav-stack-fake_localization.launch"/>
+
+ <!-- for visualization -->
+ <!--
+ <node pkg="rviz" type="rviz" respawn="false" />
+ <node pkg="nav_view" type="nav_view" respawn="false" />
+ -->
+
+ <!--
+ <param name="/trex/ping_frequency" value="1"/>
+ <node pkg="highlevel_controllers" type="recharge_controller" args="" respawn="false" />
+ <node pkg="kinematic_planning" type="kinematic_planning" args="robot_description"/>
+ <include file="$(find world_3d_map)/run.xml"/>
+ <node pkg="highlevel_controllers" type="move_arm" args="right" respawn="false"/>
+ <node pkg="highlevel_controllers" type="move_arm" args="left" respawn="false" />
+ <node pkg="highlevel_controllers" type="move_end_effector" args="right" respawn="false"/>
+ -->
+
+ <!-- test -->
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_xm1y1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 24.70 -y 26.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 150 " time-limit="170" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_xm1ym1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 24.70 -y 24.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 150 " time-limit="170" />
+
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_xpiypi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 28.84 -y 28.84 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.80 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 150 " time-limit="170" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_xmpiypi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 23.56 -y 28.84 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 150 " time-limit="170" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_xmpiympi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 23.56 -y 23.56 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 150 " time-limit="170" />
+
+ <!-- these tests do not pass, commented out for now until fixed
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_x1y1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 26.70 -y 26.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 80 " time-limit="90" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_xpiympi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 28.84 -y 23.56 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 110 " time-limit="120" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_x1ym1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 26.70 -y 24.70 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 180 " time-limit="200" />
+ -->
+
+ <!--
+ <node pkg="rosrecord" type="rosrecord" args="-f 2dnav_empty_diagonal-build$(optenv BUILD_NUMBER) /odom /cmd_vel"/>
+ -->
+
+</launch>
Copied: pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_odom.launch (from rev 23768, pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_odom.launch)
===================================================================
--- pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_odom.launch (rev 0)
+++ pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_odom.launch 2009-09-03 20:55:38 UTC (rev 23784)
@@ -0,0 +1,50 @@
+<launch>
+ <master auto="start" />
+
+ <!-- start up empty world -->
+ <include file="$(find gazebo)/launch/empty_world.launch"/>
+
+ <!-- start up robot -->
+ <include file="$(find pr2_gazebo)/prototype1.launch"/>
+
+ <!-- load map -->
+ <node pkg="map_server" type="map_server" args="$(find gazebo_worlds)/Media/materials/textures/map_blank.png 0.1" respawn="false" />
+
+ <!-- nav-stack -->
+ <include file="$(find pr2_2dnav_gazebo)/2dnav-stack-fake_localization.launch"/>
+
+ <!-- for visualization -->
+ <!--
+ <node pkg="nav_view" type="nav_view" respawn="false" />
+ <node pkg="rviz" type="rviz" respawn="false" />
+ -->
+
+ <!--
+ <param name="/trex/ping_frequency" value="1"/>
+ <node pkg="highlevel_controllers" type="recharge_controller" args="" respawn="false" />
+ <node pkg="kinematic_planning" type="kinematic_planning" args="robot_description"/>
+ <include file="$(find world_3d_map)/run.xml"/>
+ <node pkg="highlevel_controllers" type="move_arm" args="right" respawn="false"/>
+ <node pkg="highlevel_controllers" type="move_arm" args="left" respawn="false" />
+ <node pkg="highlevel_controllers" type="move_end_effector" args="right" respawn="false"/>
+ -->
+
+ <!-- test -->
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_odom_xmpiypi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 23.56 -y 28.84 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 2.00 -odom_xy_tol 3.00 -timeout 170 " time-limit="180" />
+
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_odom_tm2pi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 25.70 -t -6.2832 -nav_t_tol 0.2 -nav_xy_tol 0.01 -odom_t_tol 0.05 -odom_xy_tol 0.05 -timeout 50 " time-limit="60" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_odom_t2pi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 25.70 -t 6.2832 -nav_t_tol 0.2 -nav_xy_tol 0.01 -odom_t_tol 0.05 -odom_xy_tol 0.05 -timeout 50 " time-limit="60" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_odom_tmpi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 25.70 -t -3.1416 -nav_t_tol 0.2 -nav_xy_tol 0.30 -odom_t_tol 0.05 -odom_xy_tol 0.05 -timeout 50 " time-limit="60" />
+
+ <!-- these tests do not pass, commented out for now until fixed
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_odom_xmpiympi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 23.56 -y 23.56 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.70 -odom_xy_tol 0.30 -timeout 80 " time-limit="90" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_odom_xpiympi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 28.84 -y 23.56 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 1.00 -odom_xy_tol 0.50 -timeout 80 " time-limit="90" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_odom_xpiypi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 28.84 -y 28.84 -t 0 -nav_t_tol 0.2 -nav_xy_tol 0.80 -odom_t_tol 2.00 -odom_xy_tol 3.00 -timeout 110 " time-limit="120" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_odom_tpi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 25.70 -t 3.1416 -nav_t_tol 0.2 -nav_xy_tol 0.30 -odom_t_tol 0.05 -odom_xy_tol 0.05 -timeout 50 " time-limit="60" />
+ -->
+
+ <!--
+ <node pkg="rosrecord" type="rosrecord" args="-f 2dnav_empty_odom-build$(optenv BUILD_NUMBER) /odom /cmd_vel"/>
+ -->
+
+</launch>
Copied: pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_rotation.launch (from rev 23768, pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_empty_rotation.launch)
===================================================================
--- pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_rotation.launch (rev 0)
+++ pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_empty_rotation.launch 2009-09-03 20:55:38 UTC (rev 23784)
@@ -0,0 +1,45 @@
+<launch>
+ <master auto="start" />
+
+ <!-- start up empty world -->
+ <include file="$(find gazebo)/launch/empty_world.launch"/>
+
+ <!-- start up robot -->
+ <include file="$(find pr2_gazebo)/prototype1.launch"/>
+
+ <!-- load map -->
+ <node pkg="map_server" type="map_server" args="$(find gazebo_worlds)/Media/materials/textures/map_blank.png 0.1" respawn="false" />
+
+ <!-- nav-stack -->
+ <include file="$(find pr2_2dnav_gazebo)/2dnav-stack-fake_localization.launch"/>
+
+ <!-- for visualization -->
+ <!--
+ <node pkg="rviz" type="rviz" respawn="false" />
+ <node pkg="nav_view" type="nav_view" respawn="false" />
+ -->
+
+ <!--
+ <param name="/trex/ping_frequency" value="1"/>
+ <node pkg="highlevel_controllers" type="recharge_controller" args="" respawn="false" />
+ <node pkg="kinematic_planning" type="kinematic_planning" args="robot_description"/>
+ <include file="$(find world_3d_map)/run.xml"/>
+ <node pkg="highlevel_controllers" type="move_arm" args="right" respawn="false"/>
+ <node pkg="highlevel_controllers" type="move_arm" args="left" respawn="false" />
+ <node pkg="highlevel_controllers" type="move_end_effector" args="right" respawn="false"/>
+ -->
+
+ <!-- test -->
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_tm2pi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 25.70 -t -6.2832 -nav_t_tol 0.1 -nav_xy_tol 0.01 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 50 " time-limit="60" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_tmpi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 25.70 -t -3.1416 -nav_t_tol 0.1 -nav_xy_tol 0.20 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 80 " time-limit="90" />
+
+ <!-- these tests do not pass, commented out for now until fixed
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_tpi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 25.70 -t 3.1416 -nav_t_tol 0.1 -nav_xy_tol 0.02 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 50 " time-limit="60" />
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_empty_t2pi" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 25.70 -y 25.70 -t 6.2832 -nav_t_tol 0.1 -nav_xy_tol 0.01 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 50 " time-limit="60" />
+ -->
+
+ <!--
+ <node pkg="rosrecord" type="rosrecord" args="-f 2dnav_empty_rotation-build$(optenv BUILD_NUMBER) /odom /cmd_vel"/>
+ -->
+
+</launch>
Copied: pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_wg.launch (from rev 23768, pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_2dnav_wg.launch)
===================================================================
--- pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_wg.launch (rev 0)
+++ pkg/trunk/stacks/pr2_simulator/test_pr2_2dnav_gazebo/test_pr2_2dnav_wg.launch 2009-09-03 20:55:38 UTC (rev 23784)
@@ -0,0 +1,39 @@
+<launch>
+ <master auto="start" />
+
+ <!-- start up wg world -->
+ <include file="$(find gazebo)/launch/wg_world.launch"/>
+
+ <!-- start up robot -->
+ <include file="$(find pr2_gazebo)/prototype1.launch"/>
+
+ <!-- load map -->
+ <node pkg="map_server" type="map_server" args="$(find gazebo_worlds)/Media/materials/textures/willowMap25mm.png 0.025" respawn="false" />
+ <!--
+ <node pkg="map_server" type="map_server" args="$(find gazebo_worlds)/Media/materials/textures/willowMap.png 0.1" respawn="false" />
+ -->
+
+ <!-- nav-stack -->
+ <include file="$(find pr2_2dnav_gazebo)/2dnav-stack-fake_localization.launch"/>
+
+ <include file="$(find 2dnav_pr2)/rviz/rviz_move_base.launch"/>
+ <node pkg="rxtools" type="rxconsole" respawn="false" />
+ <!--
+ <param name="/trex/ping_frequency" value="1"/>
+ <node pkg="highlevel_controllers" type="recharge_controller" args="" respawn="false" />
+ <node pkg="kinematic_planning" type="kinematic_planning" args="robot_description"/>
+ <node pkg="highlevel_controllers" type="move_arm" args="right" respawn="false"/>
+ <node pkg="highlevel_controllers" type="move_arm" args="left" respawn="false" />
+ <node pkg="highlevel_controllers" type="move_end_effector" args="right" respawn="false"/>
+ -->
+
+ <!-- test -->
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_wg_waypoint_1" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 40.8 -y 42.5 -t 3.083 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 800 " time-limit="820"/>
+ <!-- these tests do not pass, commented out for now until fixed
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_wg_waypoint_2" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 36.0 -y 34.9 -t 2.554 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 480 " time-limit="500"/>
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_wg_waypoint_3" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 31.3 -y 45.8 -t 0.000 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 480 " time-limit="500"/>
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_wg_waypoint_4" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 22.2 -y 20.0 -t 0.000 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 480 " time-limit="500"/>
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_wg_waypoint_5" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 7.5 -y 45.0 -t 1.571 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 480 " time-limit="500"/>
+ <test test-name="pr2_2dnav_gazebo_test_pr2_2dnav_wg_waypoint_6" pkg="test_pr2_2dnav_gazebo" type="set_goal.py" args=" -x 9.4 -y 11.2 -t 0.000 -nav_t_tol 0.2 -nav_xy_tol 0.70 -odom_t_tol 0.0 -odom_xy_tol 0.0 -timeout 480 " time-limit="500"/>
+ -->
+</launch>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tf...@us...> - 2009-09-03 20:52:38
|
Revision: 23783
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23783&view=rev
Author: tfoote
Date: 2009-09-03 20:52:28 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
removing stuff now on the wiki
Modified Paths:
--------------
pkg/trunk/stacks/geometry/tf/mainpage.dox
Modified: pkg/trunk/stacks/geometry/tf/mainpage.dox
===================================================================
--- pkg/trunk/stacks/geometry/tf/mainpage.dox 2009-09-03 20:50:25 UTC (rev 23782)
+++ pkg/trunk/stacks/geometry/tf/mainpage.dox 2009-09-03 20:52:28 UTC (rev 23783)
@@ -5,113 +5,6 @@
@b tf is a library for keeping track of coordinate frames. There are both C++ and Python bindings.
- - @ref overview
- - @ref utilities
- - @ref python
- - @ref cpp
- - @ref faq
-
-
-@page utilities tf Utilities
-@section debugging_utilities Debugging Utilities
-@subsection tf_monitor tf_monitor
-This node will listen to the tf_message topic and generate statistics to help diagnose problems.
-
-\todo WRITE ME
-
-@subsection tf_echo tf_echo
-This node will echo the latest transform between two frames.
-
-\todo WRITE ME
-
-@subsection view_frames view_frames
-This node will generate a pdf of the current transform tree.
-
-\todo WRITE ME
-
-@section helper_utilities Helper Utilites
-@subsection transform_sender transform_sender
-This is a command line tool to send static transforms periodically.
-
-\todo WRITE ME
-
-@page overview Overview of Functionality
-@section summary Summary
-tf is a software library that keeps track of coordinate frames.
-The main interface to the tf is through the tf::Transformer class. This class
-provides all the necessary external interfaces and can be used independently of ROS.
-For ROS integrations, there are two subclasses of tf::Transformer that assist with
-receiving and publishing transforms.
-The tf::TransformListener class automatically listens for transform messages sent over ROS and updates the Transformer.
-The tf::TransformBroadcaster class publishes transforms to ROS.
-
-tf utilizes the Linear Math libraries from the Bullet Physics engine.
-
-@section library Library
-The tf::Transformer class is a ROS-indepdent library. Its design, implementation and rationale
-are described below.
-
-@subsection storage Storage
-Transforms are expressed as a combination of a translation and rotation in 3D space,
-in the form of a tf::Vector3 and a tf::Quaternion.
-Each transform has an associated frame id, parent id, and time stamp. Each transform added
-to the library is pushed into a list sorted by time for each frame id.
-
-@subsection lookup Transform Composition
-To generate a transform between two arbitrary frames,
-the structure of the relationship between the frames is assumed to be a tree.
-To find the spanning set between any two frames, tf starts by recursively finding
-the parent of both the target frame and the source frame. These will both end at the root of the tree.
-tf then steps back down the tree and removes all but the closest common parent.
-
-@subsection timetransform Transforms in Time
-It is often useful to know where an object is in relation to something at a different time. Data is timestamped
-when observed, however it is often used at a non negligable time later than when it was observed. To handle this the
-tf API provide an advanced form of each method which can transform a Stamped piece of data from it's observed frame and
-time into a different frame at a different time. This is only possible if there exists a frame in which the object is
-expected not to move relative to during the period between the starting time and the ending time. This frame is explicitly
-passed in the function calls for it will vary based on the context. For example when building a local map using the odometric
-frame as a fixed frame is usually the most accurate, while when working with navigational landmarks and loop closures a map
-based frame will be more accurate. Or if an object is currently being held in the gripper the gripper frame is the best frame to
-declare as the fixed frame.
-
-A very common example is an object observed as a vehicle is driving. Two seconds later as the
-vehicle approaches the obstacle, the navigation algorithms would like to know where the object is in relation to the vehicle.
-To provide this a tf user would call the advanced version of the API with the odometric frame as the fixed frame. The source frame
-and time would have been set by the data source, and the target frame would be set to the vehicle frame and the time requested could
-either be "now" or "latest". Tf's response will be to transform the data at the time it was observed into the fixed frame. It will
-then jump the timestamp to the target_time. After jumping the timestamp to the target time the transform from the fixed frame to the
-target frame is computed. Thus tf can effectively transform data in time.
-
-An accurate choice of the fixed frame is a required for validity of this method. The above choice of the odometric frame would
-be incorrect if the vehicle had a robotic hand which grabbed the
-object when it was observed. Two seconds after grabbing the object, it would be in the same position
-with relation to the hand, and and not the vehicle,
-so the fixed frame would be hand. And the lookup would show the position of the object in the body frame the same
-distance from the hand as observed when picked up, but the position of the hand may have changed relative to the body in
-the two seconds, to which this would be robust.
-
-@subsection exceptions Exceptions
-Exceptions are thrown for bad lookup requests and malformed trees. The exceptions all derive from tf::TransformException,
-which is a subclass of std::RuntimeError and have the method what() defined for debugging.
-The specific exception classes are tf::LookupException, tf::MaxDepthException and tf::ConnectivityException.
-
-Timing is also important to tf, so there a tf::ExtrapolationException that is thrown in cases when
-the time requested is too far from data currently stored in the library. There are two common cases when this would
-happen. If requests are made of tf faster than new transforms are added, it will complain.
-The other case is if the requested time is too far in the past to be in the list of transforms stored. The tf::Transformer constructor allows you to configure the amount of extrapolation
-and how long to keep data.
-
-@subsection computation Computation
-tf does not do any background processing. All transforms are generated when requested and
-transform lists are updated during the inserting function call. Transform updates
-simply prune expired transforms from the end of the list.
-
-All interfaces use the std::string representation of the frame id, although
-these strings are mapped to numerical ids interally to avoid calculations with strings.
-
-
-@page cpp C++ Usage
@section usage Common Usage
For most ROS use cases, the basic tf::Transformer library is not used directly.
@@ -150,307 +43,12 @@
-Stamped version of all of the above inherits from the data type and also has:
- ros::Time stamp_
- std::string frame_id_
- - std::string parent_frame_id_ (only used for Stamped<Transform> )
+ - std::string child_frame_id_ (only used for Stamped<Transform> )
- There are analogous ROS messages in std_msgs to the Stamped data types.
- Time represented by ros::Time and ros::Duration in ros/time.h in roscpp
-@page python Python Usage
-@page faq FAQ
-
-@section debugging Common Debugging Questions
-@subsection introspection Introspection Methods
- - How can I see what transforms are in the system?
-
-Use the script view_frames in the tf package. By default, it listens
-to tf messages for 5 seconds and produces a pdf (frames.pdf) that graphs
-all frames heard from.
-The "--node=NODE_NAME" option can assist with debugging transform issues with a
-specific node.
-The --node option will query the TransformListener instance in NODE_NAME
-for its transform information.
-This will allow you to see what that TransformListener is processing.
-
- - How can I see how fast transforms are coming in.
-
-Use \ref tf_monitor
-
- - How can I see what a specific transform's value is?
-
-Use \ref tf_echo
-
-@subsection tf_self_transform TF_SELF_TRANSFORM
- - What does a warning about TF_SELF_TRANFORM mean?
-
-TF_SELF_TRANSFORM errors occur when a transform is published with
-itself listed as its parent. TF will ignore this information for it
-is impossible to be your own parent.
-This means that there is a problem with the source of that transform
-which is listed as the authority in the error message.
-
-@subsection old_data TF_OLD_DATA
- - What does a warning about TF_OLD_DATA mean?
-
-TF_OLD_DATA errors mean that a transform is attempted to be added to the system,
-but the data is greater than cache_time_ before the most recent data
-recieved for this link.
-
- - What is the most common reason to see TF_OLD_DATA errors?
-
-The most common cause of TF_OLD_DATA warnings are if rostime has gone backwards.
-This can be caused by restarting a bag playback or restarting a simulator.
-The fix for this is to send an Empty message the topic /reset_time, there is a button in rviz
-to do this.
-
- - Is there any other way to see TF_OLD_DATA warnings?
-
-Yes, if there there is any outdated or delayed source of transforms this may appear.
-The error message will tell you what is the authority which is sending the
-outdated data. If it is running in a ros node you can use view_frames to
-determine the more recent authority. See \ref view_frames.
-
-@subsection tf_no_frame_id TF_NO_FRAME_ID
- - What does the error TF_NO_FRAME_ID mean?
-
-The TF_NO_FRAME_ID error means that a transform was attempted to be set
-with an empty frame_id. This transform will be ignored by TF.
-
-@subsection tf_no_parent_id TF_NO_PARENT_ID
- - What does the error TF_NO_PARENT_ID mean?
-
-The TF_NO_PARENT_ID error means that a transform was attempted to be set
-with an empty parent_id. This transform will be ignored by TF.
-
-@subsection tf_nan_input TF_NAN_INPUT
- - What does the error TF_NAN_INPUT mean?
-
-The TF_NAN_INPUT error means that a transform was attempted to be set
-with a nan value. This transform will be ignored by TF.
-
-@subsection extrapolation_exceptions Extrapolation Exceptions
- - I'm seeing an ExtrapolationException which is always X seconds in
-the past. Why?
-
-A constant offset extrapolation error is often caused by a lack of
-synchronization of the clocks between computers. One computer thinks
-it is ahead of the other and consequently the data received on a
-different machine will be off consistently. As new data comes in ,the
-closest data will always be the same distance away resulting in the
-constant ExtrapolationException.
-
- - I'm seeing a very small extrapolation in the future. Where might that come from?
-
-In a distributed system information is not available instantaneously
-in all parts of the system. Depending on the setup is is possible for
-data to be available before all the transforms necessary are available.
-The recommended way to deal with this is to use a tf::MessageFilter.
-
- - I'm seeing a huge (~1.2E9 second) extrapolation error, why is that?
-
-Most likely this is a problem that part of the ROS system is running
-on sim time, while part is running without simtime. Make sure that all
-nodes are started while time is being published. And set the param
-"/using_sim_time" to true so that on startup there will not be a race
-condition for what mode ros::Time is running in.
-
-@subsection lookup_exception LookupException
- - What does a LookupException mean?
-
-A LookupException is thrown in the case that a frame id requested
-does not exist in the tf tree.
-
- - What does "Recursed too deep into graph" mean?
-
-This error is thrown when tf finds itself taking more than MAX_GRAPH_DEPTH
-steps to try to find the top of the tree. This is set high enough that the
-only common reason to hit this point is if the graph has a cycle in it.
-Look at the rest of the error message and see if any cycles exist.
-The program \ref tf_monitor will show who is publishing which transform.
-
-@subsection connectivity_exceptions ConnectivityException
- - What does a connectivityException tell me about my robot?
-
-A ConnectivityException says that it is not possible to transform
-between the requested frame_ids.
-
- - What are common sources of ConnectivityExceptions?
-
-The most common source of a ConnectivityException is that a tf
-authority is not publishing an intermediate transform required
-to get between the source and target frame. If you are running
-a large launch script look carefully for any nodes crashing
-or failing to start. The best utility to see what is being
-published is view_frames see \ref view_frames for usage.
-
- - What do the different versions of ConnectivityExceptions mean?
-
- - NO_PARENT at top of tree means that one or both of the target and source
-frame ids has NO_PARENT set as it's parent_id.
- - No Common Parent Case A is when the forward transform list is zero length
-and the top of the inverse transform list is not the target frame_id.
- - No Common Parent Case B is when the forward and inverse transform lists
-are both zero length, but the target and source frame_ids are not the same.
- - No Common Parent Case C is when the end of the forward transform list
-is not equal to the source_frame, but the inverse list is zero length.
- - No Common Parent Case D is the same as B.
-
- - What does "Could not find a common time" mean?
-
-This will be thrown when using getLatestCommonTime
-(usually done by passing a time of 0 to the tf API)
-if the frames exist and are connected
-but there are no overlapping data in time. Often this is caused by
-one or more frames stopping being published.
-
-
-@subsection datatypes_questions Data Types
- - What is the difference between a tf::Transform and a tf::Pose, or
-for that matter a tf::Point and a tf::Vector3? They look like the
-same data type.
-
-Think of it as the difference between time and duration. Pose is a
-specific location, like time. You can take the difference between two
-Poses, and you get a transform, which is like a duration. However,
-you can't add two Poses. You can add a duration to a time and get a
-time, likewise you can add a transform to a Pose and get a Pose. A
-Point is like Pose, while a Vector3 is like a Transform showing the
-difference between two Points.
-
-There's also another difference in interpretation in the difference
-between point and vector. A vector subject to transformation will
-only apply the rotational elements for a vector is always at the
-origin. Or another way to say it is that a vector subject to
-translation is unchanged. The same holds for a transform, but you
-usually think of applying a transform to another transform, you chain
-them. The same goes for vectors.
-
-@section faq_usage Usage Questions
- - How can tf be used in a 3D-mapping framework? The
-very simple example that I had in mind for the past few days was the
-following: given 4 sensing devices: 1 Hokuyo, 1 SwissRanger SR4000, 1
-Videre STOC and 1 Thermal FLIR camera. The first 3 produce point
-clouds, and the last 3, images. After calibration, you get the
-necessary rotation matrices that you need to use to transform the
-SwissRanger point cloud into the left camera on the STOC, respectively
-the thermal image into left STOC, etc. While collecting data, you
-constantly need to apply these rotation matrices to the point clouds
-generated by some sensors, to annotate your 3D points with texture
-(RGB), thermal information, etc
-
-This is exactly where you want to use tf::TransformListener. The point
-cloud aggregator will be recieving messages over ROS from all of the
-sensors, in their respective date types. However, say the
-Hokuyo is mounted on the base, the Videre stereo camera is on the head, and the
-swiss ranger is on the left arm. The aggregating process has no idea
-where all these coordinate frames actually are in space. However the
-mechanims control process knows where the head and arms are in
-relationship to the base. And the localization process knows where
-the base is in relationship to the world. Now if they are all
-publishing transforms using their own broadcaster instances. All the
-aggregator node needs to do is instantiate the TransformListener and
-it will be able to relate the data from the videre to the data from
-the hokuyo and data from the swiss ranger. The TransformListener
-class will extract all that information from the ROS network and
-provide it automatically to the Transformer base class. The
-Transformer class then can provide the aggregator with any transform
-they wish. The goal is that the end user doesn't have to worry about
-collecting any transforms, and they are automatically cached in time
-and can provide interpolated or extrapolated results if desired. The
-way to make this easy for the the developer/user is the use of frame
-ids. The frame id's are simply strings which uniquely identify
-coordinate frames. When the system is operating, if you have a point
-cloud arrive from the videre it will be in the "videre_camera_frame"
-to use it in whatever frame you want simply transform it to the frame
-id of the frame you want and use it.
-
- - Can I transform a Point Cloud?
-
-Yes it's in tf package right now it will be moving to a point cloud package soon.
-
- - Can I transform a laser scan into a point cloud in a different frame?
-Yes see the laser_scan package.
-
- - Would it be possible to bring back into tf a method a-la
-setWithMatrix () ? Are there any disadvantages (other than re-exposing
-NEWMAT) on doing that ?
-
-I would suggest you take a look at the bullet data types. The
-btTransform can be constructed using a btQuaternion and a btVector3,
-or a btMatrix and a btVector3. And a btMatrix3x3 will take 9 values
-in it's constructor. Thus you can do
-tf_instance.setTransform(Stamped<tf::Transform>(tf::Transform(btMatrix3x3(1,2,3,4,5,6,7,8,9),
-btVector3(x,y,z)), ros::Time().fromSec(timestamp), "frame id", "parent
-id"));
-
- - I already have my own classes for converting to/from all 4 major
-representations (euler, axis-angle, rotation matrices and
-quaternions), but it would be great to use tf instead, as that makes
-all these routines nicely accessible from virtually all nodes that we
-want to build in ROS later.
-
-Take a look at the bullet headers they provide all these through the
-btQuaternion and btMatrix3x3 classes.
-
- - Is there a way to declare static transforms independent of a
-specific process? Some transforms seem better suited to be defined as
-parameters independent of a specific node.
-
-There is no way to define a static transform in tf. This is a
-design decision to make sure that log files retain relevancy. Since
-nodes can start and stop at any time, they must be able to get all
-necessary data starting at any time. The ROS Parameter Server could hold
-this data. However, preserving the state of the Parameter Server
-between sessions, especially when logging, is complicated. Thus, the
-solution we have chosen is to simply republish static transforms
-periodically. This make sure that at startup a node knows about all
-transforms, and it also means that logging the topic /tf_message
-captures all state of transforms making log files complete.
-
- - Some code (such as amcl_player.cc) refers to an expiration time for
-transforms. How does the concept of transforms that expire interact
-with the transform library's attempts at interpolation/extrapolation?
-Is this documented anywhere?
-
-The concept of expiring transforms is not actually supported. What
-amcl_player and a few others do is date their transforms in the
-future. This is to get around the problem that a chain of transforms
-is only as current as the oldest link of the chain. The future dating
-of a transform allows the slow transform to be looked up in the
-intervening period between broadcasts. This technique is dangerous in
-general, for it will cause tf to lag actual information, for tf will
-assume that information is correct until it's timestamp in the future
-passes. However for transforms which change only very slowly this lag
-will not be observable, which is why it is valid for amcl_player to
-use this. It can safely be used for static transforms. I highly
-recommend being careful with future dating any measurements. Another
-technique available is to allow extrapolation. And either technique
-can creep up on you and cause unusual behavior which is untraceable.
-
- - Can different expiration limits be set for specific transforms?
- After all, I would expect different transforms to update at rates
- that are potentially orders of magnitude different.
-
-For the current implementation, it is simply how far you future date
-your data for that transform. Remember, this will cause the transform
-to lag by however much you future date the values. I do not recommend
-this for any value which is expected to change at a rate more than a
-slight drift correction (ala amcl_player).
-
- - It doesn't make sense to extrapolate some transforms (such as the
- current estimated localization offset). How do these transforms
- interact with transforms that should be interpolated/extrapolated
- when combining multiple transforms?
-
-Our experimentation has shown that interpolation is fine, but
-extrapolation almost always ends up becoming more of a problem than a
-solution. If you are having trouble with data being ready before
-transforms are available I suggest using the tf::MessageFilter class in
-tf. It will queue incoming data until transforms are available.
-Having tried allowing "just a little" extrapolation, waiting for
-accurate data to be available has proved a much better approach.
-
-
*/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vij...@us...> - 2009-09-03 20:50:32
|
Revision: 23782
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23782&view=rev
Author: vijaypradeep
Date: 2009-09-03 20:50:25 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
Adding experimental package to store calibration apps/launch files during development
Added Paths:
-----------
pkg/trunk/calibration_experimental/pr2_calibration_launch/
pkg/trunk/calibration_experimental/pr2_calibration_launch/CMakeLists.txt
pkg/trunk/calibration_experimental/pr2_calibration_launch/Makefile
pkg/trunk/calibration_experimental/pr2_calibration_launch/mainpage.dox
pkg/trunk/calibration_experimental/pr2_calibration_launch/manifest.xml
pkg/trunk/calibration_experimental/pr2_calibration_launch/send_laser_traj_cmd.py
Added: pkg/trunk/calibration_experimental/pr2_calibration_launch/CMakeLists.txt
===================================================================
--- pkg/trunk/calibration_experimental/pr2_calibration_launch/CMakeLists.txt (rev 0)
+++ pkg/trunk/calibration_experimental/pr2_calibration_launch/CMakeLists.txt 2009-09-03 20:50:25 UTC (rev 23782)
@@ -0,0 +1,30 @@
+cmake_minimum_required(VERSION 2.4.6)
+include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+
+# Set the build type. Options are:
+# Coverage : w/ debug symbols, w/o optimization, w/ code-coverage
+# Debug : w/ debug symbols, w/o optimization
+# Release : w/o debug symbols, w/ optimization
+# RelWithDebInfo : w/ debug symbols, w/ optimization
+# MinSizeRel : w/o debug symbols, w/ optimization, stripped binaries
+#set(ROS_BUILD_TYPE RelWithDebInfo)
+
+rosbuild_init()
+
+#set the default path for built executables to the "bin" directory
+set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
+#set the default path for built libraries to the "lib" directory
+set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
+
+#uncomment if you have defined messages
+#rosbuild_genmsg()
+#uncomment if you have defined services
+#rosbuild_gensrv()
+
+#common commands for building c++ executables and libraries
+#rosbuild_add_library(${PROJECT_NAME} src/example.cpp)
+#target_link_libraries(${PROJECT_NAME} another_library)
+#rosbuild_add_boost_directories()
+#rosbuild_link_boost(${PROJECT_NAME} thread)
+#rosbuild_add_executable(example examples/example.cpp)
+#target_link_libraries(example ${PROJECT_NAME})
Added: pkg/trunk/calibration_experimental/pr2_calibration_launch/Makefile
===================================================================
--- pkg/trunk/calibration_experimental/pr2_calibration_launch/Makefile (rev 0)
+++ pkg/trunk/calibration_experimental/pr2_calibration_launch/Makefile 2009-09-03 20:50:25 UTC (rev 23782)
@@ -0,0 +1 @@
+include $(shell rospack find mk)/cmake.mk
\ No newline at end of file
Added: pkg/trunk/calibration_experimental/pr2_calibration_launch/mainpage.dox
===================================================================
--- pkg/trunk/calibration_experimental/pr2_calibration_launch/mainpage.dox (rev 0)
+++ pkg/trunk/calibration_experimental/pr2_calibration_launch/mainpage.dox 2009-09-03 20:50:25 UTC (rev 23782)
@@ -0,0 +1,119 @@
+/**
+\mainpage
+\htmlinclude manifest.html
+
+\b pr2_calibration_launch 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/calibration_experimental/pr2_calibration_launch/manifest.xml
===================================================================
--- pkg/trunk/calibration_experimental/pr2_calibration_launch/manifest.xml (rev 0)
+++ pkg/trunk/calibration_experimental/pr2_calibration_launch/manifest.xml 2009-09-03 20:50:25 UTC (rev 23782)
@@ -0,0 +1,14 @@
+<package>
+ <description brief="pr2_calibration_launch">
+
+ pr2_calibration_launch
+
+ </description>
+ <author>Vijay Pradeep</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/pr2_calibration_launch</url>
+
+</package>
+
+
Added: pkg/trunk/calibration_experimental/pr2_calibration_launch/send_laser_traj_cmd.py
===================================================================
--- pkg/trunk/calibration_experimental/pr2_calibration_launch/send_laser_traj_cmd.py (rev 0)
+++ pkg/trunk/calibration_experimental/pr2_calibration_launch/send_laser_traj_cmd.py 2009-09-03 20:50:25 UTC (rev 23782)
@@ -0,0 +1,53 @@
+#!/usr/bin/env python
+
+PKG = "pr2_mechanism_controllers"
+
+import roslib; roslib.load_manifest(PKG)
+
+import sys
+import os
+import string
+
+import rospy
+from std_msgs import *
+
+from pr2_msgs.msg import LaserTrajCmd
+from pr2_msgs.srv import *
+from time import sleep
+
+def print_usage(exit_code = 0):
+ print '''Usage:
+ send_periodic_cmd.py [controller]
+'''
+ sys.exit(exit_code)
+
+if __name__ == '__main__':
+ if len(sys.argv) < 2:
+ print_usage()
+
+ cmd = LaserTrajCmd()
+ controller = sys.argv[1]
+ cmd.header = roslib.msg.Header(None, None, None)
+ cmd.profile = "blended_linear"
+ #cmd.pos = [1.0, .26, -.26, -.7, -.7, -.26, .26, 1.0, 1.0]
+ d = .025
+ #cmd.time = [0.0, 0.4, 1.0, 1.1, 1.1+d, 1.2+d, 1.8+d, 2.2+d, 2.2+2*d]
+
+ cmd.pos = [-.25, .50, -.25]
+ cmd.time= [0.0, 8.0, 10]
+ cmd.max_rate = 5 # Ignores param
+ cmd.max_accel= 5 # ignores param
+
+ print 'Sending Command to %s: ' % controller
+ print ' Profile Type: %s' % cmd.profile
+ print ' Pos: %s ' % ','.join(['%.3f' % x for x in cmd.pos])
+ print ' Time: %s' % ','.join(['%.3f' % x for x in cmd.time])
+ print ' MaxRate: %f' % cmd.max_rate
+ print ' MaxAccel: %f' % cmd.max_accel
+
+ rospy.wait_for_service(controller + '/set_traj_cmd')
+ s = rospy.ServiceProxy(controller + '/set_traj_cmd', SetLaserTrajCmd)
+ resp = s.call(SetLaserTrajCmdRequest(cmd))
+
+ print 'Command sent!'
+ print ' Resposne: %f' % resp.start_time.to_seconds()
Property changes on: pkg/trunk/calibration_experimental/pr2_calibration_launch/send_laser_traj_cmd.py
___________________________________________________________________
Added: svn:executable
+ *
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vij...@us...> - 2009-09-03 20:50:21
|
Revision: 23781
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23781&view=rev
Author: vijaypradeep
Date: 2009-09-03 20:50:11 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
Forgot to listen on scan topic
Modified Paths:
--------------
pkg/trunk/sandbox/pr2_dense_laser_snapshotter/src/dense_laser_snapshotter.cpp
Modified: pkg/trunk/sandbox/pr2_dense_laser_snapshotter/src/dense_laser_snapshotter.cpp
===================================================================
--- pkg/trunk/sandbox/pr2_dense_laser_snapshotter/src/dense_laser_snapshotter.cpp 2009-09-03 20:49:59 UTC (rev 23780)
+++ pkg/trunk/sandbox/pr2_dense_laser_snapshotter/src/dense_laser_snapshotter.cpp 2009-09-03 20:50:11 UTC (rev 23781)
@@ -53,8 +53,10 @@
DenseLaserSnapshotter()
{
+ assembler_.setCacheSize(40*20);
prev_signal_.header.stamp = ros::Time(0, 0);
signal_sub_ = n_.subscribe("laser_tilt_controller/laser_scanner_signal", 2, &DenseLaserSnapshotter::scannerSignalCallback, this);
+ scan_sub_ = n_.subscribe("scan", 1, &DenseLaserSnapshotter::scanCallback, this);
snapshot_pub_ = n_.advertise<calibration_msgs::DenseLaserSnapshot> ("dense_laser_snapshot", 1);
first_time_ = true;
}
@@ -64,6 +66,11 @@
}
+ void scanCallback(const sensor_msgs::LaserScanConstPtr& scan)
+ {
+ assembler_.add(scan);
+ }
+
void scannerSignalCallback(const pr2_msgs::LaserScannerSignalConstPtr& cur_signal)
{
ROS_DEBUG("Got Scanner Signal") ;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|