|
From: <mee...@us...> - 2009-05-07 18:17:02
|
Revision: 15041
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15041&view=rev
Author: meeussen
Date: 2009-05-07 18:16:56 +0000 (Thu, 07 May 2009)
Log Message:
-----------
move door message from robot_msgs to new package door_msgs
Modified Paths:
--------------
pkg/trunk/highlevel/doors/door_functions/CMakeLists.txt
pkg/trunk/highlevel/doors/door_functions/include/door_functions/door_functions.h
pkg/trunk/highlevel/doors/door_functions/manifest.xml
pkg/trunk/highlevel/doors/door_functions/src/door_functions.cpp
pkg/trunk/highlevel/doors/door_functions/test/test_door_functions.cpp
pkg/trunk/highlevel/doors/doors_core/CMakeLists.txt
pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_detect_door.h
pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_detect_handle.h
pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_grasp_handle.h
pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_open_door.h
pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_push_door.h
pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_release_handle.h
pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_touch_door.h
pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_unlatch_handle.h
pkg/trunk/highlevel/doors/doors_core/include/doors_core/door_reactive_planner.h
pkg/trunk/highlevel/doors/doors_core/include/doors_core/move_base_door_action.h
pkg/trunk/highlevel/doors/doors_core/manifest.xml
pkg/trunk/highlevel/doors/doors_core/src/action_detect_door.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_detect_handle.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_grasp_handle.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_open_door.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_push_door.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_release_handle.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_runner_detect_door.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_runner_detect_handle.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_runner_grasp_handle.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_runner_open_door.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_runner_push_door.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_runner_release_handle.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_runner_touch_door.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_runner_unlatch_handle.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_touch_door.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_unlatch_handle.cpp
pkg/trunk/highlevel/doors/doors_core/src/door_reactive_planner.cpp
pkg/trunk/highlevel/doors/doors_core/src/move_base_door_action.cpp
pkg/trunk/highlevel/doors/doors_core/test/test_executive.cpp
pkg/trunk/highlevel/doors/doors_core/test/test_executive_functions.cpp
pkg/trunk/highlevel/doors/doors_core/test/trigger_doors_detector.cpp
pkg/trunk/highlevel/doors/doors_core/test/trigger_doors_opener.cpp
pkg/trunk/highlevel/doors/doors_core/test/trigger_handle_release.cpp
pkg/trunk/highlevel/doors/doors_core/test/trigger_push_door.cpp
pkg/trunk/highlevel/executive_trex/executive_trex_pr2/include/executive_trex_pr2/adapter_utilities.h
pkg/trunk/highlevel/executive_trex/executive_trex_pr2/include/executive_trex_pr2/adapters.h
pkg/trunk/highlevel/executive_trex/executive_trex_pr2/include/executive_trex_pr2/topological_map.h
pkg/trunk/highlevel/executive_trex/executive_trex_pr2/src/adapter_utilities.cc
pkg/trunk/highlevel/executive_trex/executive_trex_pr2/src/adapters.cc
pkg/trunk/highlevel/executive_trex/executive_trex_pr2/src/door_domain_constraints.cc
pkg/trunk/highlevel/executive_trex/executive_trex_pr2/src/stub_ros_container.cc
pkg/trunk/highlevel/executive_trex/executive_trex_pr2/src/topological_map.cc
pkg/trunk/highlevel/executive_trex/executive_trex_pr2/test/topological_map_tests.cc
pkg/trunk/highlevel/pr2_robot_actions/manifest.xml
pkg/trunk/highlevel/pr2_robot_actions/msg/DoorActionState.msg
pkg/trunk/mapping/door_handle_detector/CMakeLists.txt
pkg/trunk/mapping/door_handle_detector/include/door_handle_detector/doors_detector.h
pkg/trunk/mapping/door_handle_detector/include/door_handle_detector/geometric_helper.h
pkg/trunk/mapping/door_handle_detector/include/door_handle_detector/handle_detector.h
pkg/trunk/mapping/door_handle_detector/manifest.xml
pkg/trunk/mapping/door_handle_detector/scripts/find_door.py
pkg/trunk/mapping/door_handle_detector/src/doors_detector.cpp
pkg/trunk/mapping/door_handle_detector/src/geometric_helper.cpp
pkg/trunk/mapping/door_handle_detector/src/handle_detector.cpp
pkg/trunk/mapping/door_handle_detector/src/handle_detector_vision.cpp
pkg/trunk/mapping/door_handle_detector/srv/DoorsDetector.srv
pkg/trunk/mapping/door_handle_detector/srv/DoorsDetectorCloud.srv
pkg/trunk/mapping/door_handle_detector/test/door_checkerboard_detector.cpp
pkg/trunk/mapping/door_handle_detector/test/test_door_detection.cpp
pkg/trunk/mapping/door_handle_detector/test/test_door_detection_joystick.cpp
pkg/trunk/mapping/door_stereo_detector/src/door_stereo_detector.cpp
pkg/trunk/mapping/door_tracker/manifest.xml
pkg/trunk/mapping/door_tracker/msg/DoorDatabaseObject.msg
pkg/trunk/mapping/door_tracker/src/door_database.cpp
pkg/trunk/mapping/door_tracker/src/door_tracker.cpp
pkg/trunk/motion_planning/mpbench/manifest.xml
pkg/trunk/motion_planning/mpbench/src/setup.cpp
pkg/trunk/motion_planning/mpglue/include/mpglue/sbpl_environment.h
pkg/trunk/motion_planning/mpglue/manifest.xml
pkg/trunk/motion_planning/planning_research/sbpl_door_planner/include/sbpl_door_planner/environment_navxythetadoor.h
pkg/trunk/motion_planning/planning_research/sbpl_door_planner/manifest.xml
pkg/trunk/motion_planning/planning_research/sbpl_door_planner_action/include/sbpl_door_planner_action/sbpl_door_planner_action.h
pkg/trunk/motion_planning/planning_research/sbpl_door_planner_action/src/action_runner_sbpl_door_planner.cpp
pkg/trunk/vision/recognition_lambertian/manifest.xml
pkg/trunk/vision/recognition_lambertian/src/recognition_lambertian.cpp
pkg/trunk/vision/recognition_lambertian/srv/DoorsDetector.srv
pkg/trunk/vision/recognition_lambertian/srv/DoorsDetectorCloud.srv
pkg/trunk/world_models/topological_map/include/topological_map/door_info.h
pkg/trunk/world_models/topological_map/include/topological_map/topological_map.h
pkg/trunk/world_models/topological_map/include/topological_map/topological_map_impl.h
pkg/trunk/world_models/topological_map/manifest.xml
pkg/trunk/world_models/topological_map/src/generate_from_ground_truth.cpp
pkg/trunk/world_models/topological_map/src/tm_driver.cpp
pkg/trunk/world_models/topological_map/src/visualization.cpp
Added Paths:
-----------
pkg/trunk/highlevel/doors/door_msgs/
pkg/trunk/highlevel/doors/door_msgs/CMakeLists.txt
pkg/trunk/highlevel/doors/door_msgs/Makefile
pkg/trunk/highlevel/doors/door_msgs/manifest.xml
pkg/trunk/highlevel/doors/door_msgs/msg/
pkg/trunk/highlevel/doors/door_msgs/msg/Door.msg
Removed Paths:
-------------
pkg/trunk/common/robot_msgs/msg/Door.msg
Deleted: pkg/trunk/common/robot_msgs/msg/Door.msg
===================================================================
--- pkg/trunk/common/robot_msgs/msg/Door.msg 2009-05-07 17:29:40 UTC (rev 15040)
+++ pkg/trunk/common/robot_msgs/msg/Door.msg 2009-05-07 18:16:56 UTC (rev 15041)
@@ -1,27 +0,0 @@
-Header header
-robot_msgs/Point32 frame_p1 ## position of the door frame
-robot_msgs/Point32 frame_p2 ## position of the door frame
-robot_msgs/Point32 door_p1 ## Ground plane projection of a point on the plane of the door
-robot_msgs/Point32 door_p2 ## Ground plane projection of a point on the plane of the door
-robot_msgs/Point32 handle ## Position of the door handle
-float32 height ## Height of the door
-
-int32 UNKNOWN=0
-
-int32 HINGE_P1=1
-int32 HINGE_P2=2
-int32 hinge
-
-int32 ROT_DIR_CLOCKWISE=1
-int32 ROT_DIR_COUNTERCLOCKWISE=2
-int32 rot_dir
-
-int32 LOCKED=1
-int32 LATCHED=2
-int32 UNLATCHED=3
-int32 latch_state
-
-Vector3 travel_dir ## vector pointing in the direction the robot is going to travel through the door
-float32 weight ## @Sachin: what do we use this for?
-
-
Modified: pkg/trunk/highlevel/doors/door_functions/CMakeLists.txt
===================================================================
--- pkg/trunk/highlevel/doors/door_functions/CMakeLists.txt 2009-05-07 17:29:40 UTC (rev 15040)
+++ pkg/trunk/highlevel/doors/door_functions/CMakeLists.txt 2009-05-07 18:16:56 UTC (rev 15041)
@@ -11,28 +11,3 @@
rospack_add_executable(test_door_functions test/test_door_functions.cpp src/door_functions.cpp)
rospack_add_library(door_functions src/door_functions.cpp)
-# check for OpenMP
-include(CheckIncludeFile)
-include(CheckCXXCompilerFlag)
-include(CheckLibraryExists)
-
-if( WIN32 )
- CHECK_INCLUDE_FILE(omp.h HAVE_OMP_H)
- if( HAVE_OMP_H )
- message(STATUS "Using OpenMP")
- check_cxx_compiler_flag(/openmp HAVE_OPENMP)
-
- if( HAVE_OPENMP )
- add_definitions("/openmp")
- endif( HAVE_OPENMP )
- endif( HAVE_OMP_H )
-elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
- # check if compilers supports -fopenmp
- check_cxx_compiler_flag(-fopenmp HAVE_OPENMP)
- check_library_exists(gomp omp_get_num_threads "" HAS_GOMP_LIB)
-
- if( HAVE_OPENMP AND HAS_GOMP_LIB )
- add_definitions("-fopenmp")
- set(OPENMP_LFLAGS "-lgomp")
- endif( HAVE_OPENMP AND HAS_GOMP_LIB )
-endif( WIN32 )
Modified: pkg/trunk/highlevel/doors/door_functions/include/door_functions/door_functions.h
===================================================================
--- pkg/trunk/highlevel/doors/door_functions/include/door_functions/door_functions.h 2009-05-07 17:29:40 UTC (rev 15040)
+++ pkg/trunk/highlevel/doors/door_functions/include/door_functions/door_functions.h 2009-05-07 18:16:56 UTC (rev 15041)
@@ -35,34 +35,33 @@
#ifndef DOOR_FUNCTIONS_H
#define DOOR_FUNCTIONS_H
-#include <robot_msgs/Door.h>
+#include <door_msgs/Door.h>
#include <tf/tf.h>
#include <string.h>
-#include <robot_msgs/Door.h>
#include <kdl/frames.hpp>
namespace door_functions{
/// get robot and gripper pose
- tf::Stamped<tf::Pose> getRobotPose(const robot_msgs::Door& door, double dist);
- tf::Stamped<tf::Pose> getGripperPose(const robot_msgs::Door& door, double angle, double dist);
+ tf::Stamped<tf::Pose> getRobotPose(const door_msgs::Door& door, double dist);
+ tf::Stamped<tf::Pose> getGripperPose(const door_msgs::Door& door, double angle, double dist);
/// get the door angle
- double getDoorAngle(const robot_msgs::Door& door);
+ double getDoorAngle(const door_msgs::Door& door);
double getVectorAngle(const KDL::Vector& v1, const KDL::Vector& v2);
- KDL::Vector getDoorNormal(const robot_msgs::Door& door);
- KDL::Vector getFrameNormal(const robot_msgs::Door& door);
+ KDL::Vector getDoorNormal(const door_msgs::Door& door);
+ KDL::Vector getFrameNormal(const door_msgs::Door& door);
/// convert door message from its original frame/time, to the goal frame at time::now.
- bool transformTo(const tf::Transformer& tf, const std::string& goal_frame, const robot_msgs::Door& door_in,
- robot_msgs::Door& door_out, const std::string& fixed_frame="odom_combined");
+ bool transformTo(const tf::Transformer& tf, const std::string& goal_frame, const door_msgs::Door& door_in,
+ door_msgs::Door& door_out, const std::string& fixed_frame="odom_combined");
bool transformPointTo(const tf::Transformer& tf, const std::string& source_frame, const std::string& goal_frame, const ros::Time& time_source,
const robot_msgs::Point32& point_in, robot_msgs::Point32& point_out, const std::string& fixed_frame, const ros::Time& time_goal);
bool transformVectorTo(const tf::Transformer& tf, const std::string& source_frame, const std::string& goal_frame, const ros::Time& time_source,
const robot_msgs::Vector3& point_in, robot_msgs::Vector3& point_out, const std::string& fixed_frame, const ros::Time& time_goal);
- std::ostream& operator<< (std::ostream& os, const robot_msgs::Door& d);
- std::vector<robot_msgs::Point> getPolygon(const robot_msgs::Door& door, const double &door_thickness);
+ std::ostream& operator<< (std::ostream& os, const door_msgs::Door& d);
+ std::vector<robot_msgs::Point> getPolygon(const door_msgs::Door& door, const double &door_thickness);
}
#endif
Modified: pkg/trunk/highlevel/doors/door_functions/manifest.xml
===================================================================
--- pkg/trunk/highlevel/doors/door_functions/manifest.xml 2009-05-07 17:29:40 UTC (rev 15040)
+++ pkg/trunk/highlevel/doors/door_functions/manifest.xml 2009-05-07 18:16:56 UTC (rev 15041)
@@ -10,7 +10,7 @@
<depend package="roscpp" />
<depend package="std_msgs" />
- <depend package="robot_msgs" />
+ <depend package="door_msgs" />
<depend package="kdl"/>
<depend package="tf"/>
<depend package="gtest"/>
Modified: pkg/trunk/highlevel/doors/door_functions/src/door_functions.cpp
===================================================================
--- pkg/trunk/highlevel/doors/door_functions/src/door_functions.cpp 2009-05-07 17:29:40 UTC (rev 15040)
+++ pkg/trunk/highlevel/doors/door_functions/src/door_functions.cpp 2009-05-07 18:16:56 UTC (rev 15041)
@@ -45,7 +45,7 @@
static const double eps_angle = 5.0*M_PI/180.0;
static const double gripper_height = 0.8;
- tf::Stamped<tf::Pose> getRobotPose(const robot_msgs::Door& door, double dist)
+ tf::Stamped<tf::Pose> getRobotPose(const door_msgs::Door& door, double dist)
{
Vector x_axis(1,0,0);
@@ -67,17 +67,17 @@
}
- tf::Stamped<tf::Pose> getGripperPose(const robot_msgs::Door& door, double angle, double dist)
+ tf::Stamped<tf::Pose> getGripperPose(const door_msgs::Door& door, double angle, double dist)
{
Vector x_axis(1,0,0);
// get hinge point
Vector hinge, frame_vec;
- if (door.hinge == robot_msgs::Door::HINGE_P1){
+ if (door.hinge == door_msgs::Door::HINGE_P1){
hinge = Vector(door.door_p1.x, door.door_p1.y, door.door_p1.z);
frame_vec = Vector(door.frame_p2.x - door.frame_p1.x, door.frame_p2.y - door.frame_p1.y, door.frame_p2.z - door.frame_p1.z);
}
- else if (door.hinge == robot_msgs::Door::HINGE_P2){
+ else if (door.hinge == door_msgs::Door::HINGE_P2){
hinge = Vector(door.door_p2.x, door.door_p2.y, door.door_p2.z);
frame_vec = Vector(door.frame_p1.x - door.frame_p2.x, door.frame_p1.y - door.frame_p2.y, door.frame_p1.z - door.frame_p2.z);
}
@@ -98,17 +98,17 @@
return gripper_pose;
}
- double getDoorAngle(const robot_msgs::Door& door)
+ double getDoorAngle(const door_msgs::Door& door)
{
Vector frame_vec(door.frame_p1.x-door.frame_p2.x, door.frame_p1.y-door.frame_p2.y, door.frame_p1.z-door.frame_p2.z);
Vector door_vec(door.door_p1.x-door.door_p2.x, door.door_p1.y-door.door_p2.y, door.door_p1.z-door.door_p2.z);
double angle = getVectorAngle(frame_vec, door_vec);
// validity check
- if (door.rot_dir == robot_msgs::Door::ROT_DIR_CLOCKWISE && angle > eps_angle)
+ if (door.rot_dir == door_msgs::Door::ROT_DIR_CLOCKWISE && angle > eps_angle)
ROS_ERROR("Door angle is positive, but door message specifies it turns clockwise");
- if (door.rot_dir == robot_msgs::Door::ROT_DIR_COUNTERCLOCKWISE && angle < -eps_angle)
+ if (door.rot_dir == door_msgs::Door::ROT_DIR_COUNTERCLOCKWISE && angle < -eps_angle)
ROS_ERROR("Door angle is negative, but door message specifies it turns counter-clockwise");
return angle;
@@ -125,7 +125,7 @@
}
- Vector getDoorNormal(const robot_msgs::Door& door)
+ Vector getDoorNormal(const door_msgs::Door& door)
{
Vector frame_normal = getFrameNormal(door);
Rotation rot_frame_door = Rotation::RotZ(getDoorAngle(door));
@@ -133,7 +133,7 @@
}
- Vector getFrameNormal(const robot_msgs::Door& door)
+ Vector getFrameNormal(const door_msgs::Door& door)
{
// normal on frame
Vector p12(door.frame_p1.x-door.frame_p2.x, door.frame_p1.y-door.frame_p2.y, door.frame_p1.z-door.frame_p2.z);
@@ -150,7 +150,7 @@
}
- bool transformTo(const tf::Transformer& tf, const string& goal_frame, const robot_msgs::Door& door_in, robot_msgs::Door& door_out, const std::string& fixed_frame)
+ bool transformTo(const tf::Transformer& tf, const string& goal_frame, const door_msgs::Door& door_in, door_msgs::Door& door_out, const std::string& fixed_frame)
{
door_out = door_in;
ros::Time time_now = ros::Time::now();
@@ -193,7 +193,7 @@
return true;
}
- std::vector<robot_msgs::Point> getPolygon(const robot_msgs::Door& door, const double &door_thickness)
+ std::vector<robot_msgs::Point> getPolygon(const door_msgs::Door& door, const double &door_thickness)
{
std::vector<robot_msgs::Point> door_polygon;
robot_msgs::Point tmp;
@@ -216,7 +216,7 @@
return door_polygon;
}
- std::ostream& operator<< (std::ostream& os, const robot_msgs::Door& d)
+ std::ostream& operator<< (std::ostream& os, const door_msgs::Door& d)
{
os << "Door message in " << d.header.frame_id << " at time " << d.header.stamp.toSec() << endl;
os << " - frame ("
Modified: pkg/trunk/highlevel/doors/door_functions/test/test_door_functions.cpp
===================================================================
--- pkg/trunk/highlevel/doors/door_functions/test/test_door_functions.cpp 2009-05-07 17:29:40 UTC (rev 15040)
+++ pkg/trunk/highlevel/doors/door_functions/test/test_door_functions.cpp 2009-05-07 18:16:56 UTC (rev 15041)
@@ -37,7 +37,7 @@
/* Author: Wim Meeussen */
-#include <robot_msgs/Door.h>
+#include <door_msgs/Door.h>
#include <ros/node.h>
#include <gtest/gtest.h>
#include <kdl/frames.hpp>
@@ -58,7 +58,7 @@
class TestEKF : public testing::Test
{
public:
- robot_msgs::Door my_door_1, my_door_2, my_door_3, my_door_4, my_door_5, my_door_6;
+ door_msgs::Door my_door_1, my_door_2, my_door_3, my_door_4, my_door_5, my_door_6;
protected:
/// constructor
@@ -75,8 +75,8 @@
my_door_1.travel_dir.x = 1.0;
my_door_1.travel_dir.y = 0.0;
my_door_1.travel_dir.z = 0.0;
- my_door_1.rot_dir = robot_msgs::Door::ROT_DIR_COUNTERCLOCKWISE;
- my_door_1.hinge = robot_msgs::Door::HINGE_P2;
+ my_door_1.rot_dir = door_msgs::Door::ROT_DIR_COUNTERCLOCKWISE;
+ my_door_1.hinge = door_msgs::Door::HINGE_P2;
my_door_1.header.frame_id = "base_footprint";
my_door_2.frame_p2.x = 1.0;
@@ -90,8 +90,8 @@
my_door_2.travel_dir.x = 1.0;
my_door_2.travel_dir.y = 0.0;
my_door_2.travel_dir.z = 0.0;
- my_door_2.rot_dir = robot_msgs::Door::ROT_DIR_COUNTERCLOCKWISE;
- my_door_2.hinge = robot_msgs::Door::HINGE_P1;
+ my_door_2.rot_dir = door_msgs::Door::ROT_DIR_COUNTERCLOCKWISE;
+ my_door_2.hinge = door_msgs::Door::HINGE_P1;
my_door_2.header.frame_id = "base_footprint";
my_door_3.frame_p1.x = 1.0;
@@ -105,8 +105,8 @@
my_door_3.travel_dir.x = 1.0;
my_door_3.travel_dir.y = 0.0;
my_door_3.travel_dir.z = 0.0;
- my_door_3.rot_dir = robot_msgs::Door::ROT_DIR_COUNTERCLOCKWISE;
- my_door_3.hinge = robot_msgs::Door::HINGE_P2;
+ my_door_3.rot_dir = door_msgs::Door::ROT_DIR_COUNTERCLOCKWISE;
+ my_door_3.hinge = door_msgs::Door::HINGE_P2;
my_door_3.header.frame_id = "base_footprint";
my_door_4.frame_p2.x = 1.0;
@@ -120,8 +120,8 @@
my_door_4.travel_dir.x = 1.0;
my_door_4.travel_dir.y = 0.0;
my_door_4.travel_dir.z = 0.0;
- my_door_4.rot_dir = robot_msgs::Door::ROT_DIR_COUNTERCLOCKWISE;
- my_door_4.hinge = robot_msgs::Door::HINGE_P2;
+ my_door_4.rot_dir = door_msgs::Door::ROT_DIR_COUNTERCLOCKWISE;
+ my_door_4.hinge = door_msgs::Door::HINGE_P2;
my_door_4.header.frame_id = "base_footprint";
my_door_5.frame_p1.x = 1.0;
@@ -135,8 +135,8 @@
my_door_5.travel_dir.x = 1.0;
my_door_5.travel_dir.y = 0.0;
my_door_5.travel_dir.z = 0.0;
- my_door_5.rot_dir = robot_msgs::Door::ROT_DIR_CLOCKWISE;
- my_door_5.hinge = robot_msgs::Door::HINGE_P2;
+ my_door_5.rot_dir = door_msgs::Door::ROT_DIR_CLOCKWISE;
+ my_door_5.hinge = door_msgs::Door::HINGE_P2;
my_door_5.header.frame_id = "base_footprint";
my_door_6.frame_p2.x = 1.0;
@@ -150,8 +150,8 @@
my_door_6.travel_dir.x = 1.0;
my_door_6.travel_dir.y = 0.0;
my_door_6.travel_dir.z = 0.0;
- my_door_6.rot_dir = robot_msgs::Door::ROT_DIR_CLOCKWISE;
- my_door_6.hinge = robot_msgs::Door::HINGE_P2;
+ my_door_6.rot_dir = door_msgs::Door::ROT_DIR_CLOCKWISE;
+ my_door_6.hinge = door_msgs::Door::HINGE_P2;
my_door_6.header.frame_id = "base_footprint";
}
Copied: pkg/trunk/highlevel/doors/door_msgs/CMakeLists.txt (from rev 15034, pkg/trunk/common/robot_msgs/CMakeLists.txt)
===================================================================
--- pkg/trunk/highlevel/doors/door_msgs/CMakeLists.txt (rev 0)
+++ pkg/trunk/highlevel/doors/door_msgs/CMakeLists.txt 2009-05-07 18:16:56 UTC (rev 15041)
@@ -0,0 +1,6 @@
+cmake_minimum_required(VERSION 2.4.6)
+include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+rospack(door_msgs)
+genmsg()
+
+
Copied: pkg/trunk/highlevel/doors/door_msgs/Makefile (from rev 15034, pkg/trunk/common/robot_msgs/Makefile)
===================================================================
--- pkg/trunk/highlevel/doors/door_msgs/Makefile (rev 0)
+++ pkg/trunk/highlevel/doors/door_msgs/Makefile 2009-05-07 18:16:56 UTC (rev 15041)
@@ -0,0 +1 @@
+include $(shell rospack find mk)/cmake.mk
Copied: pkg/trunk/highlevel/doors/door_msgs/manifest.xml (from rev 15034, pkg/trunk/common/robot_msgs/manifest.xml)
===================================================================
--- pkg/trunk/highlevel/doors/door_msgs/manifest.xml (rev 0)
+++ pkg/trunk/highlevel/doors/door_msgs/manifest.xml 2009-05-07 18:16:56 UTC (rev 15041)
@@ -0,0 +1,14 @@
+<package>
+ <description brief="door_msgs">
+ Messages for door opening
+ </description>
+ <author>Wim Meeussen</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki</url>
+ <depend package="robot_msgs"/>
+ <export>
+ <cpp cflags="-I${prefix}/msg/cpp"/>
+ </export>
+</package>
+
Copied: pkg/trunk/highlevel/doors/door_msgs/msg/Door.msg (from rev 15035, pkg/trunk/common/robot_msgs/msg/Door.msg)
===================================================================
--- pkg/trunk/highlevel/doors/door_msgs/msg/Door.msg (rev 0)
+++ pkg/trunk/highlevel/doors/door_msgs/msg/Door.msg 2009-05-07 18:16:56 UTC (rev 15041)
@@ -0,0 +1,27 @@
+Header header
+robot_msgs/Point32 frame_p1 ## position of the door frame
+robot_msgs/Point32 frame_p2 ## position of the door frame
+robot_msgs/Point32 door_p1 ## Ground plane projection of a point on the plane of the door
+robot_msgs/Point32 door_p2 ## Ground plane projection of a point on the plane of the door
+robot_msgs/Point32 handle ## Position of the door handle
+float32 height ## Height of the door
+
+int32 UNKNOWN=0
+
+int32 HINGE_P1=1
+int32 HINGE_P2=2
+int32 hinge
+
+int32 ROT_DIR_CLOCKWISE=1
+int32 ROT_DIR_COUNTERCLOCKWISE=2
+int32 rot_dir
+
+int32 LOCKED=1
+int32 LATCHED=2
+int32 UNLATCHED=3
+int32 latch_state
+
+robot_msgs/Vector3 travel_dir ## vector pointing in the direction the robot is going to travel through the door
+float32 weight ## @Sachin: what do we use this for?
+
+
Modified: pkg/trunk/highlevel/doors/doors_core/CMakeLists.txt
===================================================================
--- pkg/trunk/highlevel/doors/doors_core/CMakeLists.txt 2009-05-07 17:29:40 UTC (rev 15040)
+++ pkg/trunk/highlevel/doors/doors_core/CMakeLists.txt 2009-05-07 18:16:56 UTC (rev 15041)
@@ -90,30 +90,3 @@
src/move_base_door_action.cpp
src/door_reactive_planner.cpp
)
-
-
-# check for OpenMP
-include(CheckIncludeFile)
-include(CheckCXXCompilerFlag)
-include(CheckLibraryExists)
-
-if( WIN32 )
- CHECK_INCLUDE_FILE(omp.h HAVE_OMP_H)
- if( HAVE_OMP_H )
- message(STATUS "Using OpenMP")
- check_cxx_compiler_flag(/openmp HAVE_OPENMP)
-
- if( HAVE_OPENMP )
- add_definitions("/openmp")
- endif( HAVE_OPENMP )
- endif( HAVE_OMP_H )
-elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
- # check if compilers supports -fopenmp
- check_cxx_compiler_flag(-fopenmp HAVE_OPENMP)
- check_library_exists(gomp omp_get_num_threads "" HAS_GOMP_LIB)
-
- if( HAVE_OPENMP AND HAS_GOMP_LIB )
- add_definitions("-fopenmp")
- set(OPENMP_LFLAGS "-lgomp")
- endif( HAVE_OPENMP AND HAS_GOMP_LIB )
-endif( WIN32 )
Modified: pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_detect_door.h
===================================================================
--- pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_detect_door.h 2009-05-07 17:29:40 UTC (rev 15040)
+++ pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_detect_door.h 2009-05-07 18:16:56 UTC (rev 15041)
@@ -39,26 +39,26 @@
#include <ros/node.h>
-#include <robot_msgs/Door.h>
+#include <door_msgs/Door.h>
#include <robot_actions/action.h>
#include <tf/transform_listener.h>
namespace door_handle_detector{
-class DetectDoorAction: public robot_actions::Action<robot_msgs::Door, robot_msgs::Door>
+class DetectDoorAction: public robot_actions::Action<door_msgs::Door, door_msgs::Door>
{
public:
DetectDoorAction(ros::Node& node);
~DetectDoorAction();
- virtual robot_actions::ResultStatus execute(const robot_msgs::Door& goal, robot_msgs::Door& feedback);
+ virtual robot_actions::ResultStatus execute(const door_msgs::Door& goal, door_msgs::Door& feedback);
- robot_msgs::Door tmp_result_;
+ door_msgs::Door tmp_result_;
private:
- bool laserDetection(const robot_msgs::Door& door_in, robot_msgs::Door& door_out);
+ bool laserDetection(const door_msgs::Door& door_in, door_msgs::Door& door_out);
tf::TransformListener tf_;
};
Modified: pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_detect_handle.h
===================================================================
--- pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_detect_handle.h 2009-05-07 17:29:40 UTC (rev 15040)
+++ pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_detect_handle.h 2009-05-07 18:16:56 UTC (rev 15041)
@@ -39,25 +39,25 @@
#include <ros/node.h>
-#include <robot_msgs/Door.h>
+#include <door_msgs/Door.h>
#include <robot_actions/action.h>
#include <tf/transform_listener.h>
namespace door_handle_detector{
-class DetectHandleAction: public robot_actions::Action<robot_msgs::Door, robot_msgs::Door>
+class DetectHandleAction: public robot_actions::Action<door_msgs::Door, door_msgs::Door>
{
public:
DetectHandleAction(ros::Node& node);
~DetectHandleAction();
- virtual robot_actions::ResultStatus execute(const robot_msgs::Door& goal, robot_msgs::Door& feedback);
+ virtual robot_actions::ResultStatus execute(const door_msgs::Door& goal, door_msgs::Door& feedback);
private:
- bool laserDetection(const robot_msgs::Door& door_in, robot_msgs::Door& door_out);
- bool cameraDetection(const robot_msgs::Door& door, robot_msgs::Door& door_out);
+ bool laserDetection(const door_msgs::Door& door_in, door_msgs::Door& door_out);
+ bool cameraDetection(const door_msgs::Door& door, door_msgs::Door& door_out);
ros::Node& node_;
tf::TransformListener tf_;
Modified: pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_grasp_handle.h
===================================================================
--- pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_grasp_handle.h 2009-05-07 17:29:40 UTC (rev 15040)
+++ pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_grasp_handle.h 2009-05-07 18:16:56 UTC (rev 15041)
@@ -40,7 +40,7 @@
#include <ros/node.h>
-#include <robot_msgs/Door.h>
+#include <door_msgs/Door.h>
#include <std_msgs/Float64.h>
#include <std_msgs/String.h>
#include <std_srvs/Empty.h>
@@ -52,13 +52,13 @@
namespace door_handle_detector{
-class GraspHandleAction: public robot_actions::Action<robot_msgs::Door, robot_msgs::Door>
+class GraspHandleAction: public robot_actions::Action<door_msgs::Door, door_msgs::Door>
{
public:
GraspHandleAction(ros::Node& node);
~GraspHandleAction();
- virtual robot_actions::ResultStatus execute(const robot_msgs::Door& goal, robot_msgs::Door& feedback);
+ virtual robot_actions::ResultStatus execute(const door_msgs::Door& goal, door_msgs::Door& feedback);
private:
Modified: pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_open_door.h
===================================================================
--- pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_open_door.h 2009-05-07 17:29:40 UTC (rev 15040)
+++ pkg/trunk/highlevel/doors/doors_core/include/doors_core/action_open_door.h 2009-05-07 18:16:56 UTC (rev 15041)
@@ -38,7 +38,7 @@
#define ACTION_OPEN_DOOR_H
#include <ros/node.h>
-#include <robot_msgs/Door.h>
+#include <door_msgs/Door.h>
#include <robot_msgs/TaskFrameFormalism.h>
#include <tf/tf.h>
#include <tf/transform_listener.h>
@@ -51,13 +51,13 @@
namespace door_handle_detector{
-class OpenDoorAction: public robot_actions::Action<robot_msgs::Door, robot_msgs::Door>
+class OpenDoorAction: public robot_actions::Action<door_msgs::Door, door_msgs::Door>
{
public:
OpenDoorAction(ros::Node& node);
~OpenDoorAction();
- virtual robot_actions::ResultStatus execute(const robot_msgs::Door& goal, robot_msgs::Door& feedback);
+ virtual rob...
[truncated message content] |
|
From: <mee...@us...> - 2009-05-08 23:15:22
|
Revision: 15124
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15124&view=rev
Author: meeussen
Date: 2009-05-08 23:15:14 +0000 (Fri, 08 May 2009)
Log Message:
-----------
use build type release to take load off realtime process
Modified Paths:
--------------
pkg/trunk/controllers/pr2_mechanism_controllers/CMakeLists.txt
pkg/trunk/controllers/robot_mechanism_controllers/CMakeLists.txt
pkg/trunk/mechanism/mechanism_control/CMakeLists.txt
pkg/trunk/mechanism/mechanism_model/CMakeLists.txt
pkg/trunk/robot_control_loops/pr2_etherCAT/CMakeLists.txt
Modified: pkg/trunk/controllers/pr2_mechanism_controllers/CMakeLists.txt
===================================================================
--- pkg/trunk/controllers/pr2_mechanism_controllers/CMakeLists.txt 2009-05-08 23:10:10 UTC (rev 15123)
+++ pkg/trunk/controllers/pr2_mechanism_controllers/CMakeLists.txt 2009-05-08 23:15:14 UTC (rev 15124)
@@ -1,5 +1,6 @@
cmake_minimum_required(VERSION 2.4.6)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+set(ROS_BUILD_TYPE Release)
rospack(pr2_mechanism_controllers)
genmsg()
gensrv()
Modified: pkg/trunk/controllers/robot_mechanism_controllers/CMakeLists.txt
===================================================================
--- pkg/trunk/controllers/robot_mechanism_controllers/CMakeLists.txt 2009-05-08 23:10:10 UTC (rev 15123)
+++ pkg/trunk/controllers/robot_mechanism_controllers/CMakeLists.txt 2009-05-08 23:15:14 UTC (rev 15124)
@@ -1,5 +1,6 @@
cmake_minimum_required(VERSION 2.4.6)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+set(ROS_BUILD_TYPE Release)
rospack(robot_mechanism_controllers)
genmsg()
gensrv()
Modified: pkg/trunk/mechanism/mechanism_control/CMakeLists.txt
===================================================================
--- pkg/trunk/mechanism/mechanism_control/CMakeLists.txt 2009-05-08 23:10:10 UTC (rev 15123)
+++ pkg/trunk/mechanism/mechanism_control/CMakeLists.txt 2009-05-08 23:15:14 UTC (rev 15124)
@@ -1,5 +1,6 @@
cmake_minimum_required(VERSION 2.4.6)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+set(ROS_BUILD_TYPE Release)
rospack(mechanism_control)
genmsg()
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
Modified: pkg/trunk/mechanism/mechanism_model/CMakeLists.txt
===================================================================
--- pkg/trunk/mechanism/mechanism_model/CMakeLists.txt 2009-05-08 23:10:10 UTC (rev 15123)
+++ pkg/trunk/mechanism/mechanism_model/CMakeLists.txt 2009-05-08 23:15:14 UTC (rev 15124)
@@ -1,5 +1,6 @@
cmake_minimum_required(VERSION 2.4.6)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+set(ROS_BUILD_TYPE Release)
rospack(mechanism_model)
rospack_add_library( mechanism_model
src/simple_transmission.cpp
Modified: pkg/trunk/robot_control_loops/pr2_etherCAT/CMakeLists.txt
===================================================================
--- pkg/trunk/robot_control_loops/pr2_etherCAT/CMakeLists.txt 2009-05-08 23:10:10 UTC (rev 15123)
+++ pkg/trunk/robot_control_loops/pr2_etherCAT/CMakeLists.txt 2009-05-08 23:15:14 UTC (rev 15124)
@@ -1,5 +1,6 @@
cmake_minimum_required(VERSION 2.4.6)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+set(ROS_BUILD_TYPE Release)
rospack(pr2_etherCAT)
genmsg()
rospack_add_boost_directories()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hsu...@us...> - 2009-05-09 01:03:52
|
Revision: 15130
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15130&view=rev
Author: hsujohnhsu
Date: 2009-05-09 01:03:43 +0000 (Sat, 09 May 2009)
Log Message:
-----------
update door handle look try to improve visual detection.
Modified Paths:
--------------
pkg/trunk/demos/door_demos_gazebo/door_defs/door_defs.xml
pkg/trunk/robot_descriptions/gazebo_robot_description/world/Media/materials/scripts/pr2.material
Modified: pkg/trunk/demos/door_demos_gazebo/door_defs/door_defs.xml
===================================================================
--- pkg/trunk/demos/door_demos_gazebo/door_defs/door_defs.xml 2009-05-09 00:20:07 UTC (rev 15129)
+++ pkg/trunk/demos/door_demos_gazebo/door_defs/door_defs.xml 2009-05-09 01:03:43 UTC (rev 15130)
@@ -204,7 +204,7 @@
<visual >
<origin xyz="0.0 ${handle_length/2-0.01} 0.0" rpy="${1*M_PI/2} 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Black" />
+ <elem key="material" value="PR2/Shiny" />
</map>
<geometry name="sholder_roll_mesh_file">
<mesh scale="0.02 0.02 ${handle_length}" />
@@ -239,7 +239,7 @@
<visual >
<origin xyz="0.025 0.0 0.0" rpy="0 ${1*M_PI/2.0} 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Black" />
+ <elem key="material" value="PR2/Shiny" />
</map>
<geometry name="sholder_roll_mesh_file">
<mesh scale="0.02 0.02 0.05" />
@@ -275,7 +275,7 @@
<visual >
<origin xyz="0.025 0.0 0.0" rpy="0 ${1*M_PI/2.0} 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Black" />
+ <elem key="material" value="PR2/Shiny" />
</map>
<geometry name="sholder_roll_mesh_file">
<mesh scale="0.02 0.02 0.05" />
@@ -311,7 +311,7 @@
<visual >
<origin xyz="0.06 0.0 0.0" rpy="0 ${1*M_PI/2.0} 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Black" />
+ <elem key="material" value="PR2/Shiny" />
</map>
<geometry name="sholder_roll_mesh_file">
<mesh scale="0.06 0.06 0.02" />
@@ -332,6 +332,41 @@
</map>
</link>
+ <link name="keyhold_link">
+ <parent name="door_link" />
+ <origin xyz="-0.11 -0.8 ${handle_height-0.05+0.15}" rpy="${0*M_PI/2.0} 0 0" />
+ <joint name="keyhold_joint" type="fixed" />
+ <inertial >
+ <mass value="0.1" />
+ <com xyz="0.0 0.0 0.0" />
+ <inertia ixx="0.01" ixy="0.0" ixz="0.0"
+ iyy="0.01" iyz="0.0"
+ izz="0.001" />
+ </inertial>
+ <visual >
+ <origin xyz="0.0 0.0 0.0" rpy="0 ${1*M_PI/2.0} 0" />
+ <map name="gazebo_material" flag="gazebo">
+ <elem key="material" value="PR2/Shiny" />
+ </map>
+ <geometry name="sholder_roll_mesh_file">
+ <mesh scale="0.06 0.06 0.02" />
+ </geometry>
+ </visual>
+ <collision >
+ <origin xyz="0.0 0.0 0.0" rpy="0 ${1*M_PI/2.0} 0" />
+ <geometry name="keyhold_collision_geom">
+ <cylinder radius="0.03" length="0.02" />
+ </geometry>
+ <map name="keyhold_intensity" flag="gazebo">
+ <elem key="laserRetro" value="100.0" />
+ </map>
+ </collision>
+ <map name="keyhold_options" flag="gazebo">
+ <elem key="turnGravityOff" value="true" />
+ <elem key="selfCollide" value="true" />
+ </map>
+ </link>
+
<map name="sensor" flag="gazebo">
<verbatim key="door_p3d_block">
<!-- ros_p3d for position groundtruth -->
Modified: pkg/trunk/robot_descriptions/gazebo_robot_description/world/Media/materials/scripts/pr2.material
===================================================================
--- pkg/trunk/robot_descriptions/gazebo_robot_description/world/Media/materials/scripts/pr2.material 2009-05-09 00:20:07 UTC (rev 15129)
+++ pkg/trunk/robot_descriptions/gazebo_robot_description/world/Media/materials/scripts/pr2.material 2009-05-09 01:03:43 UTC (rev 15130)
@@ -170,4 +170,20 @@
}
+material PR2/Shiny
+{
+ technique
+ {
+ pass
+ {
+ ambient 0.75 0.75 0.75
+ texture_unit
+ {
+ texture Chrome.jpg
+ env_map spherical
+ }
+ }
+ }
+}
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hsu...@us...> - 2009-05-09 01:21:15
|
Revision: 15133
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15133&view=rev
Author: hsujohnhsu
Date: 2009-05-09 01:21:04 +0000 (Sat, 09 May 2009)
Log Message:
-----------
plugs setup in gazebo.
Modified Paths:
--------------
pkg/trunk/robot_descriptions/gazebo_robot_description/world/Media/materials/scripts/pr2.material
Added Paths:
-----------
pkg/trunk/demos/plug_in_gazebo/
pkg/trunk/demos/plug_in_gazebo/launch/
pkg/trunk/demos/plug_in_gazebo/launch/plug_only.launch
pkg/trunk/demos/plug_in_gazebo/launch/pr2_and_plug.launch
pkg/trunk/demos/plug_in_gazebo/manifest.xml
pkg/trunk/demos/plug_in_gazebo/plug_defs/
pkg/trunk/demos/plug_in_gazebo/plug_defs/Makefile
pkg/trunk/demos/plug_in_gazebo/plug_defs/plug_defs.xml
pkg/trunk/demos/plug_in_gazebo/plug_defs/send_description.launch
pkg/trunk/demos/plug_in_gazebo/robots/
pkg/trunk/demos/plug_in_gazebo/robots/plug_only.xacro.xml
pkg/trunk/demos/plug_in_gazebo/robots/pr2_and_plug.xacro.xml
pkg/trunk/robot_descriptions/gazebo_robot_description/world/Media/materials/textures/plug_texture.jpg
Added: pkg/trunk/demos/plug_in_gazebo/launch/plug_only.launch
===================================================================
--- pkg/trunk/demos/plug_in_gazebo/launch/plug_only.launch (rev 0)
+++ pkg/trunk/demos/plug_in_gazebo/launch/plug_only.launch 2009-05-09 01:21:04 UTC (rev 15133)
@@ -0,0 +1,19 @@
+<launch>
+ <group name="wg">
+ <!-- send plug_only.xml to param server -->
+ <param name="robotdesc/pr2" command="$(find xacro)/xacro.py '$(find plug_in_gazebo)/robots/plug_only.xacro.xml'" />
+
+ <!-- start gazebo -->
+ <node pkg="gazebo" type="gazebo" args="$(find gazebo_robot_description)/gazebo_worlds/empty.world" respawn="false" output="screen">
+ <env name="LD_LIBRARY_PATH" value="$(find gazebo_plugin)/lib:$(find gazebo)/gazebo/lib:$(find Cg)/Cg/lib:$(optenv LD_LIBRARY_PATH)" />
+ <env name="GAZEBO_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
+ <env name="OGRE_RESOURCE_PATH" value="$(find ogre)/ogre/lib/OGRE" />
+ <env name="MC_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
+ </node>
+ </group>
+
+ <!-- push robotdesc/pr2 to factory and spawn robot in gazebo -->
+ <node pkg="gazebo_plugin" type="urdf2factory" args="robotdesc/pr2" respawn="false" output="screen" /> <!-- load default arm controller -->
+
+</launch>
+
Added: pkg/trunk/demos/plug_in_gazebo/launch/pr2_and_plug.launch
===================================================================
--- pkg/trunk/demos/plug_in_gazebo/launch/pr2_and_plug.launch (rev 0)
+++ pkg/trunk/demos/plug_in_gazebo/launch/pr2_and_plug.launch 2009-05-09 01:21:04 UTC (rev 15133)
@@ -0,0 +1,24 @@
+<launch>
+ <group name="gazebo">
+ <include file="$(find pr2_alpha)/$(env ROBOT).machine" />
+ <!-- start gazebo -->
+ <node pkg="gazebo" type="gazebo" args="-n $(find gazebo_robot_description)/gazebo_worlds/empty.world" respawn="false" output="screen" machine="five">
+ <env name="LD_LIBRARY_PATH" value="$(find gazebo_plugin)/lib:$(find gazebo)/gazebo/lib:$(find Cg)/Cg/lib:$(optenv LD_LIBRARY_PATH)" />
+ <env name="GAZEBO_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
+ <env name="OGRE_RESOURCE_PATH" value="$(find ogre)/ogre/lib/OGRE" />
+ <env name="MC_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
+ </node>
+
+ <!-- send pr2.xml to param server -->
+ <!-- push robotdesc/pr2 to factory and spawn robot in gazebo -->
+ <param ns="pr2" name="robotdesc/pr2" command="$(find xacro)/xacro.py '$(find plug_in_gazebo)/robots/pr2_and_plug.xacro.xml'" />
+ <node pkg="gazebo_plugin" type="urdf2factory" args="robotdesc/pr2" respawn="false" output="screen" machine="five" />
+
+ <!-- uncomment for visualization -->
+ <!--
+ <node pkg="rviz" type="rviz" output="screen"/>
+ -->
+
+ </group>
+</launch>
+
Added: pkg/trunk/demos/plug_in_gazebo/manifest.xml
===================================================================
--- pkg/trunk/demos/plug_in_gazebo/manifest.xml (rev 0)
+++ pkg/trunk/demos/plug_in_gazebo/manifest.xml 2009-05-09 01:21:04 UTC (rev 15133)
@@ -0,0 +1,11 @@
+<package>
+ <description>Launch files for pluggin in in Gazebo.</description>
+ <author>John Hsu</author>
+ <license>BSD</license>
+ <review status="na" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/FIXME</url>
+ <depend package="milestone2"/>
+ <depend package="plugs_core"/>
+ <depend package="pr2_gazebo"/>
+ <depend package="pr2_mechanism_controllers"/>
+</package>
Added: pkg/trunk/demos/plug_in_gazebo/plug_defs/Makefile
===================================================================
--- pkg/trunk/demos/plug_in_gazebo/plug_defs/Makefile (rev 0)
+++ pkg/trunk/demos/plug_in_gazebo/plug_defs/Makefile 2009-05-09 01:21:04 UTC (rev 15133)
@@ -0,0 +1,14 @@
+XACRO = `rospack find xacro`/xacro.py
+URDF2GAZEBO = `rospack find gazebo_plugin`/urdf2file
+ROBOT_PATH = `rospack find plug_in_gazebo`/robots
+
+ROBOT = plug
+
+$(ROBOT).model: $(ROBOT_PATH)/$(ROBOT).xacro.xml
+ $(XACRO) $^ > $^.expanded.xml
+ $(URDF2GAZEBO) $^.expanded.xml $(ROBOT_PATH)/$@
+
+clean:
+ $(RM) $(ROBOT).xml.expanded $(ROBOT_PATH)/$(ROBOT).model
+ $(RM) core.* Ogre.log
+
Added: pkg/trunk/demos/plug_in_gazebo/plug_defs/plug_defs.xml
===================================================================
--- pkg/trunk/demos/plug_in_gazebo/plug_defs/plug_defs.xml (rev 0)
+++ pkg/trunk/demos/plug_in_gazebo/plug_defs/plug_defs.xml 2009-05-09 01:21:04 UTC (rev 15133)
@@ -0,0 +1,335 @@
+<?xml version="1.0"?>
+<robot name="pr2"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:gazebo="http://playerstage.sourceforge.net/gazebo/xmlschema/#gz"
+ xmlns:model="http://playerstage.sourceforge.net/gazebo/xmlschema/#model"
+ xmlns:sensor="http://playerstage.sourceforge.net/gazebo/xmlschema/#sensor"
+ xmlns:body="http://playerstage.sourceforge.net/gazebo/xmlschema/#body"
+ xmlns:geom="http://playerstage.sourceforge.net/gazebo/xmlschema/#geom"
+ xmlns:joint="http://playerstage.sourceforge.net/gazebo/xmlschema/#joint"
+ xmlns:interface="http://playerstage.sourceforge.net/gazebo/xmlschema/#interface"
+ xmlns:rendering="http://playerstage.sourceforge.net/gazebo/xmlschema/#rendering"
+ xmlns:renderable="http://playerstage.sourceforge.net/gazebo/xmlschema/#renderable"
+ xmlns:controller="http://playerstage.sourceforge.net/gazebo/xmlschema/#controller"
+ xmlns:physics="http://playerstage.sourceforge.net/gazebo/xmlschema/#physics">
+
+ <property name="M_PI" value="3.1415926535897931" />
+
+ <property name="plug_x_loc" value="0.5" />
+ <property name="plug_y_loc" value="0.0" />
+ <property name="plug_z_loc" value="1.0" />
+ <property name="plug_x_size" value="0.07" />
+ <property name="plug_y_size" value="0.025" />
+ <property name="plug_z_size" value="0.03" />
+
+ <property name="wall_x_loc" value="5.0" />
+ <property name="handle_height" value="0.87" />
+ <property name="jack_offset_y" value="0.05" />
+ <property name="jack_offset_z" value="0.05" />
+ <property name="jack_size" value="0.04" />
+
+ <!-- joint blocks -->
+ <joint name="floor_joint" type="planar" />
+ <joint name="outlet_joint" type="fixed" />
+ <joint name="wall_joint" type="fixed" />
+ <joint name="jack1_joint" type="fixed" />
+ <joint name="jack2_joint" type="fixed" />
+ <joint name="jack3_joint" type="fixed" />
+ <joint name="jack4_joint" type="fixed" />
+ <joint name="plug_joint" type="planar" />
+
+ <!-- link blocks -->
+ <link name="plug_link">
+ <parent name="world" />
+ <origin xyz="${plug_x_loc} ${plug_y_loc} ${plug_z_loc}" rpy="0 0 0" />
+ <joint name="plug_joint" />
+ <inertial>
+ <mass value="1" />
+ <com xyz="0 0 0.0" />
+ <inertia ixx="0.1" ixy="0" ixz="0"
+ iyy="0.1" iyz="0"
+ izz="0.1" />
+ </inertial>
+ <visual>
+ <origin xyz="0 0 0.0" rpy="0 0 0" />
+ <map name="gazebo_material" flag="gazebo">
+ <elem key="material" value="PR2/Plug" />
+ </map>
+ <geometry name="plug_visual_geom">
+ <mesh scale="${plug_x_size} ${plug_y_size} ${plug_z_size}" />
+ </geometry>
+ </visual>
+ <collision>
+ <origin xyz="0 0 0.0" rpy="0 0 0" />
+ <geometry name="plug_collision_geom">
+ <box size="${plug_x_size} ${plug_y_size} ${plug_z_size}" />
+ </geometry>
+ <map name="friction_coefficients" flag="gazebo">
+ <elem key="mu1" value="50.0" />
+ <elem key="mu2" value="50.0" />
+ <elem key="kp" value="100000000.0" />
+ <elem key="kd" value="1.0" />
+ </map>
+ </collision>
+ </link>
+
+ <link name="floor_link">
+ <parent name="world" />
+ <origin xyz="${wall_x_loc} 0.0 0.01" rpy="0 0 0" />
+ <joint name="floor_joint" />
+ <inertial>
+ <mass value="100" />
+ <com xyz="0 0 0.001" />
+ <inertia ixx="10" ixy="0" ixz="0"
+ iyy="10" iyz="0"
+ izz="10" />
+ </inertial>
+ <visual>
+ <origin xyz="0 0 0.001" rpy="0 0 0" />
+ <map name="gazebo_material" flag="gazebo">
+ <elem key="material" value="Gazebo/Grey" />
+ </map>
+ <geometry name="floor_visual_geom">
+ <mesh scale="4 4 0.002" />
+ </geometry>
+ </visual>
+ <collision>
+ <origin xyz="0 0 0.001" rpy="0.0 0.0 0.0" />
+ <geometry name="floor_collision_geom">
+ <box size="4 4 0.002" />
+ </geometry>
+ <map name="friction_coefficients" flag="gazebo">
+ <elem key="mu1" value="50.0" />
+ <elem key="mu2" value="50.0" />
+ <elem key="kp" value="100000000.0" />
+ <elem key="kd" value="1.0" />
+ </map>
+ </collision>
+ </link>
+
+ <link name="wall_link">
+ <parent name="floor_link" />
+ <origin xyz="0 0 1" rpy="0 0 0" />
+ <joint name="wall_joint" />
+ <inertial>
+ <mass value="100" />
+ <com xyz="0 0 1" />
+ <inertia ixx="10" ixy="0" ixz="0"
+ iyy="10" iyz="0"
+ izz="10" />
+ </inertial>
+ <visual>
+ <origin xyz="0 0 0" rpy="0 0 0" />
+ <map name="gazebo_material" flag="gazebo">
+ <elem key="material" value="Gazebo/GrassFloor" />
+ </map>
+ <geometry name="wall_visual_geom">
+ <mesh scale="0.4 10 2" />
+ </geometry>
+ </visual>
+ <collision>
+ <origin xyz="0 0 0" rpy="0.0 0.0 0.0" />
+ <geometry name="wall_collision_geom">
+ <box size="0.4 10 2" />
+ </geometry>
+ <map name="wall_intensity" flag="gazebo">
+ <elem key="laserRetro" value="0.5" />
+ </map>
+ </collision>
+ <map name="wall_collide" flag="gazebo">
+ <elem key="selfCollide" value="true" />
+ </map>
+ </link>
+
+
+ <link name="outlet_link">
+ <parent name="wall_link" />
+ <origin xyz="-0.21 0.0 -0.8" rpy="0 0 0" />
+ <joint name="outlet_joint" />
+ <inertial >
+ <mass value="1" />
+ <com xyz="0.0 0.0 0.0" />
+ <inertia ixx="0.1" ixy="0.0" ixz="0.0"
+ iyy="0.1" iyz="0.0"
+ izz="0.1" />
+ </inertial>
+ <visual >
+ <origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
+ <map name="gazebo_material" flag="gazebo">
+ <elem key="material" value="Gazebo/White" />
+ </map>
+ <geometry name="outlet_visual">
+ <mesh scale="0.02 0.2 0.2" />
+ </geometry>
+ </visual>
+ <collision >
+ <origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
+ <geometry name="outlet_collision_geom">
+ <box size="0.02 0.2 0.2" />
+ </geometry>
+ <map name="outlet_intensity" flag="gazebo">
+ <elem key="laserRetro" value="10.0" />
+ </map>
+ </collision>
+ <map name="outlet_gravity" flag="gazebo">
+ <elem key="turnGravityOff" value="true" />
+ <elem key="selfCollide" value="true" />
+ </map>
+ </link>
+
+ <link name="jack1_link">
+ <parent name="outlet_link" />
+ <origin xyz="-0.006 ${-jack_offset_y} ${-jack_offset_z}" rpy="0 0 0" />
+ <joint name="jack1_joint" />
+ <inertial >
+ <mass value="1.0" />
+ <com xyz="0.0 0.0 0.0" />
+ <inertia ixx="0.1" ixy="0.0" ixz="0.0"
+ iyy="0.1" iyz="0.0"
+ izz="0.1" />
+ </inertial>
+ <visual >
+ <origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
+ <map name="gazebo_material" flag="gazebo">
+ <elem key="material" value="Gazebo/Red" />
+ </map>
+ <geometry name="jack1_visual">
+ <mesh scale="0.01 ${jack_size} ${jack_size}" />
+ </geometry>
+ </visual>
+ <collision >
+ <origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
+ <geometry name="jack1_collision_geom">
+ <box size="0.01 ${jack_size} ${jack_size}" />
+ </geometry>
+ <map name="jack1_intensity" flag="gazebo">
+ <elem key="laserRetro" value="10.0" />
+ </map>
+ </collision>
+ <map name="jack1_gravity" flag="gazebo">
+ <elem key="turnGravityOff" value="true" />
+ <elem key="selfCollide" value="true" />
+ </map>
+ </link>
+
+ <link name="jack2_link">
+ <parent name="outlet_link" />
+ <origin xyz="-0.006 ${ jack_offset_y} ${-jack_offset_z}" rpy="0 0 0" />
+ <joint name="jack2_joint" />
+ <inertial >
+ <mass value="1.0" />
+ <com xyz="0.0 0.0 0.0" />
+ <inertia ixx="0.1" ixy="0.0" ixz="0.0"
+ iyy="0.1" iyz="0.0"
+ izz="0.1" />
+ </inertial>
+ <visual >
+ <origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
+ <map name="gazebo_material" flag="gazebo">
+ <elem key="material" value="Gazebo/Red" />
+ </map>
+ <geometry name="jack2_visual">
+ <mesh scale="0.01 ${jack_size} ${jack_size}" />
+ </geometry>
+ </visual>
+ <collision >
+ <origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
+ <geometry name="jack2_collision_geom">
+ <box size="0.01 ${jack_size} ${jack_size}" />
+ </geometry>
+ <map name="jack2_intensity" flag="gazebo">
+ <elem key="laserRetro" value="10.0" />
+ </map>
+ </collision>
+ <map name="jack2_gravity" flag="gazebo">
+ <elem key="turnGravityOff" value="true" />
+ <elem key="selfCollide" value="true" />
+ </map>
+ </link>
+
+ <link name="jack3_link">
+ <parent name="outlet_link" />
+ <origin xyz="-0.006 ${-jack_offset_y} ${ jack_offset_z}" rpy="0 0 0" />
+ <joint name="jack3_joint" />
+ <inertial >
+ <mass value="1.0" />
+ <com xyz="0.0 0.0 0.0" />
+ <inertia ixx="0.1" ixy="0.0" ixz="0.0"
+ iyy="0.1" iyz="0.0"
+ izz="0.1" />
+ </inertial>
+ <visual >
+ <origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
+ <map name="gazebo_material" flag="gazebo">
+ <elem key="material" value="Gazebo/Red" />
+ </map>
+ <geometry name="jack3_visual">
+ <mesh scale="0.01 ${jack_size} ${jack_size}" />
+ </geometry>
+ </visual>
+ <collision >
+ <origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
+ <geometry name="jack3_collision_geom">
+ <box size="0.01 ${jack_size} ${jack_size}" />
+ </geometry>
+ <map name="jack3_intensity" flag="gazebo">
+ <elem key="laserRetro" value="10.0" />
+ </map>
+ </collision>
+ <map name="jack3_gravity" flag="gazebo">
+ <elem key="turnGravityOff" value="true" />
+ <elem key="selfCollide" value="true" />
+ </map>
+ </link>
+
+ <link name="jack4_link">
+ <parent name="outlet_link" />
+ <origin xyz="-0.006 ${ jack_offset_y} ${ jack_offset_z}" rpy="0 0 0" />
+ <joint name="jack4_joint" />
+ <inertial >
+ <mass value="1.0" />
+ <com xyz="0.0 0.0 0.0" />
+ <inertia ixx="0.1" ixy="0.0" ixz="0.0"
+ iyy="0.1" iyz="0.0"
+ izz="0.1" />
+ </inertial>
+ <visual >
+ <origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
+ <map name="gazebo_material" flag="gazebo">
+ <elem key="material" value="Gazebo/Red" />
+ </map>
+ <geometry name="jack4_visual">
+ <mesh scale="0.01 ${jack_size} ${jack_size}" />
+ </geometry>
+ </visual>
+ <collision >
+ <origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
+ <geometry name="jack4_collision_geom">
+ <box size="0.01 ${jack_size} ${jack_size}" />
+ </geometry>
+ <map name="jack4_intensity" flag="gazebo">
+ <elem key="laserRetro" value="10.0" />
+ </map>
+ </collision>
+ <map name="jack4_gravity" flag="gazebo">
+ <elem key="turnGravityOff" value="true" />
+ <elem key="selfCollide" value="true" />
+ </map>
+ </link>
+
+
+ <map name="sensor" flag="gazebo">
+ <verbatim key="outlet_p3d_block">
+ <!-- ros_p3d for position groundtruth -->
+ <controller:ros_p3d name="p3d_outlet_controller" plugin="libros_p3d.so">
+ <alwaysOn>true</alwaysOn>
+ <updateRate>100.0</updateRate>
+ <bodyName>outlet_link</bodyName>
+ <topicName>outlet_pose</topicName>
+ <frameName>map</frameName>
+ <interface:position name="p3d_outlet_position"/>
+ </controller:ros_p3d>
+ </verbatim>
+ </map>
+
+</robot>
Added: pkg/trunk/demos/plug_in_gazebo/plug_defs/send_description.launch
===================================================================
--- pkg/trunk/demos/plug_in_gazebo/plug_defs/send_description.launch (rev 0)
+++ pkg/trunk/demos/plug_in_gazebo/plug_defs/send_description.launch 2009-05-09 01:21:04 UTC (rev 15133)
@@ -0,0 +1,5 @@
+<launch>
+
+ <param name="robotdesc/pr2" command="$(find xacro)/xacro.py '$(find plug_in_gazebo)/robots/plug_only.xacro.xml'" />
+
+</launch>
Added: pkg/trunk/demos/plug_in_gazebo/robots/plug_only.xacro.xml
===================================================================
--- pkg/trunk/demos/plug_in_gazebo/robots/plug_only.xacro.xml (rev 0)
+++ pkg/trunk/demos/plug_in_gazebo/robots/plug_only.xacro.xml 2009-05-09 01:21:04 UTC (rev 15133)
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<robot name="pr2"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:gazebo="http://playerstage.sourceforge.net/gazebo/xmlschema/#gz"
+ xmlns:model="http://playerstage.sourceforge.net/gazebo/xmlschema/#model"
+ xmlns:sensor="http://playerstage.sourceforge.net/gazebo/xmlschema/#sensor"
+ xmlns:body="http://playerstage.sourceforge.net/gazebo/xmlschema/#body"
+ xmlns:geom="http://playerstage.sourceforge.net/gazebo/xmlschema/#geom"
+ xmlns:joint="http://playerstage.sourceforge.net/gazebo/xmlschema/#joint"
+ xmlns:interface="http://playerstage.sourceforge.net/gazebo/xmlschema/#interface"
+ xmlns:rendering="http://playerstage.sourceforge.net/gazebo/xmlschema/#rendering"
+ xmlns:renderable="http://playerstage.sourceforge.net/gazebo/xmlschema/#renderable"
+ xmlns:controller="http://playerstage.sourceforge.net/gazebo/xmlschema/#controller"
+ xmlns:physics="http://playerstage.sourceforge.net/gazebo/xmlschema/#physics">
+
+
+ <include filename="$(find plug_in_gazebo)/plug_defs/plug_defs.xml" />
+
+ <map name="sensor" flag="gazebo">
+ <verbatim key="mechanism_control_simulation">
+
+ <controller:ros_time name="ros_time" plugin="libros_time.so">
+ <alwaysOn>true</alwaysOn>
+ <updateRate>1000.0</updateRate>
+ <interface:audio name="dummy_ros_time_iface_should_not_be_here"/>
+ </controller:ros_time>
+
+ <!-- no mechanism controllers for plug yet
+ <controller:gazebo_mechanism_control name="gazebo_mechanism_control_plug" plugin="libgazebo_mechanism_control.so">
+ <robotParam>robotdesc/pr2</robotParam>
+ <mechanismTopic>mechanism_state/pr2</mechanismTopic>
+ <alwaysOn>true</alwaysOn>
+ <updateRate>1000.0</updateRate>
+ <interface:audio name="plug_gazebo_mechanism_control_dummy_iface" />
+ </controller:gazebo_mechanism_control>
+ -->
+ </verbatim>
+ </map>
+
+</robot>
Added: pkg/trunk/demos/plug_in_gazebo/robots/pr2_and_plug.xacro.xml
===================================================================
--- pkg/trunk/demos/plug_in_gazebo/robots/pr2_and_plug.xacro.xml (rev 0)
+++ pkg/trunk/demos/plug_in_gazebo/robots/pr2_and_plug.xacro.xml 2009-05-09 01:21:04 UTC (rev 15133)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<robot name="pr2">
+
+ <!-- declare the path where all models/textures/materials are stored -->
+ <include filename="$(find plug_in_gazebo)/plug_defs/plug_defs.xml" />
+ <include filename="$(find pr2_defs)/robots/pr2.xacro.xml" />
+
+</robot>
Modified: pkg/trunk/robot_descriptions/gazebo_robot_description/world/Media/materials/scripts/pr2.material
===================================================================
--- pkg/trunk/robot_descriptions/gazebo_robot_description/world/Media/materials/scripts/pr2.material 2009-05-09 01:17:13 UTC (rev 15132)
+++ pkg/trunk/robot_descriptions/gazebo_robot_description/world/Media/materials/scripts/pr2.material 2009-05-09 01:21:04 UTC (rev 15133)
@@ -186,4 +186,18 @@
}
}
+material PR2/Plug
+{
+ technique
+ {
+ pass
+ {
+ texture_unit
+ {
+ texture plug_texture.jpg
+ }
+ }
+ }
+}
+
Added: pkg/trunk/robot_descriptions/gazebo_robot_description/world/Media/materials/textures/plug_texture.jpg
===================================================================
(Binary files differ)
Property changes on: pkg/trunk/robot_descriptions/gazebo_robot_description/world/Media/materials/textures/plug_texture.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mar...@us...> - 2009-05-11 17:18:36
|
Revision: 15167
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15167&view=rev
Author: mariusmuja
Date: 2009-05-11 17:18:33 +0000 (Mon, 11 May 2009)
Log Message:
-----------
Moved the outlet executive functions from outlet detection to a new package (plugs_functions).
This reduces the number of dependencies for the executive. Closing ticket #1348.
Modified Paths:
--------------
pkg/trunk/highlevel/executive_trex/executive_trex_pr2/CMakeLists.txt
pkg/trunk/highlevel/executive_trex/executive_trex_pr2/manifest.xml
pkg/trunk/highlevel/executive_trex/executive_trex_pr2/src/components.cpp
pkg/trunk/vision/outlet_detection/CMakeLists.txt
Added Paths:
-----------
pkg/trunk/highlevel/plugs/plugs_functions/
pkg/trunk/highlevel/plugs/plugs_functions/CMakeLists.txt
pkg/trunk/highlevel/plugs/plugs_functions/Makefile
pkg/trunk/highlevel/plugs/plugs_functions/include/
pkg/trunk/highlevel/plugs/plugs_functions/include/plugs_functions/
pkg/trunk/highlevel/plugs/plugs_functions/include/plugs_functions/plugs_functions.h
pkg/trunk/highlevel/plugs/plugs_functions/manifest.xml
pkg/trunk/highlevel/plugs/plugs_functions/src/
pkg/trunk/highlevel/plugs/plugs_functions/src/plugs_functions.cpp
Removed Paths:
-------------
pkg/trunk/vision/outlet_detection/include/outlet_detection/outlet_executive_functions.h
pkg/trunk/vision/outlet_detection/src/outlet_executive_functions.cpp
Modified: pkg/trunk/highlevel/executive_trex/executive_trex_pr2/CMakeLists.txt
===================================================================
--- pkg/trunk/highlevel/executive_trex/executive_trex_pr2/CMakeLists.txt 2009-05-11 17:06:04 UTC (rev 15166)
+++ pkg/trunk/highlevel/executive_trex/executive_trex_pr2/CMakeLists.txt 2009-05-11 17:18:33 UTC (rev 15167)
@@ -68,7 +68,7 @@
# trexdebug builds with a large number of run-time error checking running which is expensive
# but gives good feedback in discovering problems.
rospack_add_library(executive_trex_pr2_g ${TREX_FILES})
-target_link_libraries(executive_trex_pr2_g Utils_g TREX_g topological_graph outlet_executive_functions)
+target_link_libraries(executive_trex_pr2_g Utils_g TREX_g topological_graph plugs_functions)
rospack_add_executable(bin/trexdebug src/main.cpp)
target_link_libraries(bin/trexdebug executive_trex_pr2_g )
rospack_link_boost(bin/trexdebug thread)
@@ -81,7 +81,7 @@
# trexfast is about an order of magnitude faster than trexdebug
rospack_add_library(executive_trex_pr2_o ${TREX_FILES})
-target_link_libraries(executive_trex_pr2_o Utils_o TREX_o topological_graph outlet_executive_functions)
+target_link_libraries(executive_trex_pr2_o Utils_o TREX_o topological_graph plugs_functions)
rospack_add_executable(bin/trexfast src/main.cpp)
target_link_libraries(bin/trexfast executive_trex_pr2_o)
rospack_link_boost(bin/trexfast thread)
Modified: pkg/trunk/highlevel/executive_trex/executive_trex_pr2/manifest.xml
===================================================================
--- pkg/trunk/highlevel/executive_trex/executive_trex_pr2/manifest.xml 2009-05-11 17:06:04 UTC (rev 15166)
+++ pkg/trunk/highlevel/executive_trex/executive_trex_pr2/manifest.xml 2009-05-11 17:18:33 UTC (rev 15167)
@@ -8,7 +8,7 @@
<depend package="rosconsole"/>
<depend package="topological_map" />
<depend package="door_functions" />
- <depend package="outlet_detection" />
+ <depend package="plugs_functions" />
<depend package="robot_actions" />
<depend package="nav_robot_actions" />
<depend package="pr2_robot_actions" />
Modified: pkg/trunk/highlevel/executive_trex/executive_trex_pr2/src/components.cpp
===================================================================
--- pkg/trunk/highlevel/executive_trex/executive_trex_pr2/src/components.cpp 2009-05-11 17:06:04 UTC (rev 15166)
+++ pkg/trunk/highlevel/executive_trex/executive_trex_pr2/src/components.cpp 2009-05-11 17:18:33 UTC (rev 15167)
@@ -10,7 +10,7 @@
#include "Agent.hh"
#include "executive_trex_pr2/calc_angle_diff_constraint.h"
#include "executive_trex_pr2/calc_distance_constraint.h"
-#include <outlet_detection/outlet_executive_functions.h>
+#include "plugs_functions/plugs_functions.h"
#include "OrienteeringSolver.hh"
#include "Utilities.hh"
#include "LabelStr.hh"
@@ -91,7 +91,7 @@
return new_scope;
}
-
+
EntityId parentOf(const ConstrainedVariableId& var){
// If it has a parent, that parent should be a token
if(var->parent().isId()){
@@ -141,7 +141,7 @@
const LabelStr& propagatorName,
const ConstraintEngineId& constraintEngine,
const std::vector<ConstrainedVariableId>& variables)
- : ParamEqConstraint(name, propagatorName, constraintEngine, variables,
+ : ParamEqConstraint(name, propagatorName, constraintEngine, variables,
"frame_id:time_stamp:latch_state:frame_p1_x:frame_p1_y:frame_p1_z:frame_p2_x:frame_p2_y:frame_p2_z:height:hinge:rot_dir:door_p1_x:door_p1_y:door_p1_z:door_p2_x:door_p2_y:door_p2_z:handle_x:handle_y:handle_z:travel_dir_x:travel_dir_y:travel_dir_z")
{}
};
@@ -152,7 +152,7 @@
const LabelStr& propagatorName,
const ConstraintEngineId& constraintEngine,
const std::vector<ConstrainedVariableId>& variables)
- : ParamEqConstraint(name, propagatorName, constraintEngine, variables,
+ : ParamEqConstraint(name, propagatorName, constraintEngine, variables,
"frame_id:time_stamp:stowed:x:y:z")
{}
};
@@ -163,7 +163,7 @@
const LabelStr& propagatorName,
const ConstraintEngineId& constraintEngine,
const std::vector<ConstrainedVariableId>& variables)
- : ParamEqConstraint(name, propagatorName, constraintEngine, variables,
+ : ParamEqConstraint(name, propagatorName, constraintEngine, variables,
"frame_id:time_stamp:x:y:z")
{}
};
@@ -174,7 +174,7 @@
const LabelStr& propagatorName,
const ConstraintEngineId& constraintEngine,
const std::vector<ConstrainedVariableId>& variables)
- : ParamEqConstraint(name, propagatorName, constraintEngine, variables,
+ : ParamEqConstraint(name, propagatorName, constraintEngine, variables,
"frame_id:time_stamp:x:y:z:qx:qy:qz:qw")
{}
};
@@ -185,11 +185,11 @@
const LabelStr& propagatorName,
const ConstraintEngineId& constraintEngine,
const std::vector<ConstrainedVariableId>& variables)
- : ParamEqConstraint(name, propagatorName, constraintEngine, variables,
+ : ParamEqConstraint(name, propagatorName, constraintEngine, variables,
"frame_id:x:y:z:qx:qy:qz:qw")
{}
};
-
+
class TFGetRobotPoseConstraint: public Constraint {
public:
TFGetRobotPoseConstraint(const LabelStr& name,
@@ -209,14 +209,14 @@
checkError(_frame_id.isSingleton(), "The frame has not been specified for tf to get robot pose. See model for error." << _frame_id.toString());
condDebugMsg(!_frame_id.isSingleton(), "trex:error:tf_get_robot_pose", "Frame has not been specified" << variables[7]->toLongString());
}
-
+
private:
void handleExecute(){
debugMsg("trex:debug:propagation:tf_get_robot_pose", "BEFORE: " << toString());
tf::Stamped<tf::Pose> pose;
getPose(pose);
- debugMsg("trex:debug:propagation:tf_get_robot_pose", "Compute pose <" <<
+ debugMsg("trex:debug:propagation:tf_get_robot_pose", "Compute pose <" <<
pose.getOrigin().x() << ", " <<
pose.getOrigin().y() << ", " <<
pose.getOrigin().z() << ", " <<
@@ -235,7 +235,7 @@
debugMsg("trex:debug:propagation:tf_get_robot_pose", "AFTER: " << toString());
}
-
+
void getPose(tf::Stamped<tf::Pose>& pose){
tf::Stamped<tf::Pose> robot_pose;
robot_pose.setIdentity();
@@ -257,12 +257,12 @@
ROS_ERROR("Extrapolation Error: %s\n", ex.what());
}
}
-
+
IntervalDomain& _x, _y, _z, _qx, _qy, _qz, _qw; // Pose is the output
StringDomain& _frame_id;
const std::string _frame;
};
-
+
class AllBoundsSetConstraint: public Constraint{
public:
AllBoundsSetConstraint(const LabelStr& name,
@@ -315,7 +315,7 @@
const AbstractDomain& m_y;
ObjectDomain& m_location;
};
-
+
class RandomSelection: public Constraint{
public:
RandomSelection(const LabelStr& name,
@@ -360,28 +360,28 @@
executive_trex_pr2::MapGetNextMoveConstraint, "map_get_next_move", "Default");
REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
executive_trex_pr2::MapConnectorConstraint, "map_connector", "Default");
- REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
+ REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
executive_trex_pr2::MapGetRegionFromPositionConstraint, "map_get_region_from_position", "Default");
- REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
+ REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
executive_trex_pr2::MapGetDoorwayFromPointsConstraint, "map_get_doorway_from_points", "Default");
- REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
+ REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
executive_trex_pr2::MapIsDoorwayConstraint, "map_is_doorway", "Default");
- REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
+ REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
executive_trex_pr2::MapGetDoorStateConstraint, "map_get_door_state", "Default");
- REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
+ REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
executive_trex_pr2::MapNotifyDoorBlockedConstraint, "map_notify_door_blocked", "Default");
- REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
+ REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
executive_trex_pr2::MapGetNearestOutletConstraint, "map_get_nearest_outlet", "Default");
- REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
+ REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
executive_trex_pr2::MapGetOutletStateConstraint, "map_get_outlet_state", "Default");
- REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
+ REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
executive_trex_pr2::MapNotifyOutletBlockedConstraint, "map_notify_outlet_blocked", "Default");
- REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
+ REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
TREX::TFGetRobotPoseConstraint, "tf_get_robot_pose", "Default");
// Register functions for calculations in the door domain
- REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
+ REGISTER_CONSTRAINT(constraintEngine->getCESchema(),
executive_trex_pr2::GetRobotPoseForDoorConstraint, "door_get_robot_pose_for_door", "Default");
// Register SOLVER components for topological map.
@@ -405,11 +405,11 @@
const LabelStr& propagatorName,
const ConstraintEngineId& constraintEngine,
const std::vector<ConstrainedVariableId>& variables)
- :Constraint(name, propagatorName, constraintEngine, variables),
+ :Constraint(name, propagatorName, constraintEngine, variables),
_token(TREX::getParentToken(variables[0])){
checkError(variables.size() == 1, "Invalid signature for " << name.toString() << ". Check the constraint signature in the model.");
}
-
+
/**
* Will fire if any bounds are not singletons
*/
@@ -513,10 +513,10 @@
debugMsg("trex:debug:propagation:world_model:plugs_get_offset_pose", "AFTER: " << toString());
}
-
-
-
+
+
+
NearestLocation::NearestLocation(const LabelStr& name,
const LabelStr& propagatorName,
const ConstraintEngineId& constraintEngine,
@@ -527,7 +527,7 @@
m_location(static_cast<ObjectDomain&>(getCurrentDomain(variables[2]))){
checkError(variables.size() == 3, "Invalid Arg Count: " << variables.size());
}
-
+
/**
* Should wait till inputs are bound, then iterate over the locations and select the nearest one.
*/
@@ -538,7 +538,7 @@
debugMsg("trex:debug:propagation:world_model:nearest_location", "BEFORE: " << toString());
if(m_x.isSingleton() && m_y.isSingleton()){
- std::list<ObjectId> locations = m_location.makeObjectList();
+ std::list<ObjectId> locations = m_location.makeObjectList();
ObjectId nearestLocation = locations.front();
for(std::list<ObjectId>::const_iterator it = locations.begin(); it != locations.end(); ++it){
iterations++;
@@ -563,7 +563,7 @@
m_location.set(nearestLocation);
}
- debugMsg("trex:debug:propagation:world_model:nearest_location", "AFTER: " << toString()
+ debugMsg("trex:debug:propagation:world_model:nearest_location", "AFTER: " << toString()
<< std::endl << std::endl << "After " << iterations << " iterations, found a location within " << minDistance << " meters.");
}
@@ -584,7 +584,7 @@
initialized = true;
}
}
-
+
/**
* Randomly choose a value from the propagated domain
*/
Added: pkg/trunk/highlevel/plugs/plugs_functions/CMakeLists.txt
===================================================================
--- pkg/trunk/highlevel/plugs/plugs_functions/CMakeLists.txt (rev 0)
+++ pkg/trunk/highlevel/plugs/plugs_functions/CMakeLists.txt 2009-05-11 17:18:33 UTC (rev 15167)
@@ -0,0 +1,12 @@
+cmake_minimum_required(VERSION 2.4.6)
+
+include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+set(ROS_BUILD_TYPE RelWithDebInfo)
+rospack(plugs_functions)
+gensrv()
+genmsg()
+
+set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
+
+rospack_add_library(plugs_functions src/plugs_functions.cpp)
+
Added: pkg/trunk/highlevel/plugs/plugs_functions/Makefile
===================================================================
--- pkg/trunk/highlevel/plugs/plugs_functions/Makefile (rev 0)
+++ pkg/trunk/highlevel/plugs/plugs_functions/Makefile 2009-05-11 17:18:33 UTC (rev 15167)
@@ -0,0 +1 @@
+include $(shell rospack find mk)/cmake.mk
Copied: pkg/trunk/highlevel/plugs/plugs_functions/include/plugs_functions/plugs_functions.h (from rev 15166, pkg/trunk/vision/outlet_detection/include/outlet_detection/outlet_executive_functions.h)
===================================================================
--- pkg/trunk/highlevel/plugs/plugs_functions/include/plugs_functions/plugs_functions.h (rev 0)
+++ pkg/trunk/highlevel/plugs/plugs_functions/include/plugs_functions/plugs_functions.h 2009-05-11 17:18:33 UTC (rev 15167)
@@ -0,0 +1,44 @@
+/*********************************************************************
+ * 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 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.
+ *********************************************************************/
+
+#ifndef OUTLET_EXECUTIVE_FUNCTIONS_H
+#define OUTLET_EXECUTIVE_FUNCTIONS_H
+
+
+#include <robot_msgs/Pose.h>
+
+robot_msgs::Pose transformOutletPose(robot_msgs::Pose outletPose, float value);
+
+
+#endif // OUTLET_EXECUTIVE_FUNCTIONS_H
Added: pkg/trunk/highlevel/plugs/plugs_functions/manifest.xml
===================================================================
--- pkg/trunk/highlevel/plugs/plugs_functions/manifest.xml (rev 0)
+++ pkg/trunk/highlevel/plugs/plugs_functions/manifest.xml 2009-05-11 17:18:33 UTC (rev 15167)
@@ -0,0 +1,21 @@
+<package>
+ <description>
+ Plugs functions package
+ </description>
+
+ <author>Marius Muja</author>
+ <license>BSD</license>
+ <url>http://pr.willowgarage.com</url>
+ <review status="experimental" notes="beta"/>
+
+ <depend package="roscpp" />
+ <depend package="robot_msgs" />
+ <depend package="tf"/>
+
+
+ <export>
+ <cpp cflags="-I${prefix}/msg/cpp -I${prefix}/srv/cpp -I${prefix}/include" lflags="-Wl,-rpath,${prefix}/lib -L${prefix}/lib -lplugs_functions"/>
+ </export>
+
+
+</package>
Copied: pkg/trunk/highlevel/plugs/plugs_functions/src/plugs_functions.cpp (from rev 15166, pkg/trunk/vision/outlet_detection/src/outlet_executive_functions.cpp)
===================================================================
--- pkg/trunk/highlevel/plugs/plugs_functions/src/plugs_functions.cpp (rev 0)
+++ pkg/trunk/highlevel/plugs/plugs_functions/src/plugs_functions.cpp 2009-05-11 17:18:33 UTC (rev 15167)
@@ -0,0 +1,54 @@
+/*********************************************************************
+ * 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 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.
+ *********************************************************************/
+
+
+#include "plugs_functions/plugs_functions.h"
+#include <tf/tf.h>
+
+
+robot_msgs::Pose transformOutletPose(robot_msgs::Pose outletPose, float value)
+{
+ tf::Pose tf_pose;
+ robot_msgs::Pose final_pose;
+
+ tf::PoseMsgToTF(outletPose,tf_pose);
+ tf::Point point(-value,0,0);
+ tf::Point new_origin = tf_pose*point;
+
+ tf_pose.setOrigin(new_origin);
+
+ tf::PoseTFToMsg(tf_pose,final_pose);
+
+ return final_pose;
+}
Modified: pkg/trunk/vision/outlet_detection/CMakeLists.txt
===================================================================
--- pkg/trunk/vision/outlet_detection/CMakeLists.txt 2009-05-11 17:06:04 UTC (rev 15166)
+++ pkg/trunk/vision/outlet_detection/CMakeLists.txt 2009-05-11 17:18:33 UTC (rev 15167)
@@ -41,5 +41,3 @@
target_link_libraries(plug_node plug)
#rospack_add_executable(calibrate_plug src/calibrate_plug.cpp)
-
-rospack_add_library(outlet_executive_functions src/outlet_executive_functions.cpp)
Deleted: pkg/trunk/vision/outlet_detection/include/outlet_detection/outlet_executive_functions.h
===================================================================
--- pkg/trunk/vision/outlet_detection/include/outlet_detection/outlet_executive_functions.h 2009-05-11 17:06:04 UTC (rev 15166)
+++ pkg/trunk/vision/outlet_detection/include/outlet_detection/outlet_executive_functions.h 2009-05-11 17:18:33 UTC (rev 15167)
@@ -1,44 +0,0 @@
-/*********************************************************************
- * 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 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.
- *********************************************************************/
-
-#ifndef OUTLET_EXECUTIVE_FUNCTIONS_H
-#define OUTLET_EXECUTIVE_FUNCTIONS_H
-
-
-#include <robot_msgs/Pose.h>
-
-robot_msgs::Pose transformOutletPose(robot_msgs::Pose outletPose, float value);
-
-
-#endif // OUTLET_EXECUTIVE_FUNCTIONS_H
Deleted: pkg/trunk/vision/outlet_detection/src/outlet_executive_functions.cpp
===================================================================
--- pkg/trunk/vision/outlet_detection/src/outlet_executive_functions.cpp 2009-05-11 17:06:04 UTC (rev 15166)
+++ pkg/trunk/vision/outlet_detection/src/outlet_executive_functions.cpp 2009-05-11 17:18:33 UTC (rev 15167)
@@ -1,54 +0,0 @@
-/*********************************************************************
- * 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 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.
- *********************************************************************/
-
-
-#include "outlet_detection/outlet_executive_functions.h"
-#include <tf/tf.h>
-
-
-robot_msgs::Pose transformOutletPose(robot_msgs::Pose outletPose, float value)
-{
- tf::Pose tf_pose;
- robot_msgs::Pose final_pose;
-
- tf::PoseMsgToTF(outletPose,tf_pose);
- tf::Point point(-value,0,0);
- tf::Point new_origin = tf_pose*point;
-
- tf_pose.setOrigin(new_origin);
-
- tf::PoseTFToMsg(tf_pose,final_pose);
-
- return final_pose;
-}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <is...@us...> - 2009-05-11 21:23:18
|
Revision: 15190
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15190&view=rev
Author: isucan
Date: 2009-05-11 21:22:55 +0000 (Mon, 11 May 2009)
Log Message:
-----------
moved my planning messages and services to motion_planning_[msgs/srvs]
Modified Paths:
--------------
pkg/trunk/motion_planning/ompl_planning/include/kinematic_planning/CollisionSpaceMonitor.h
pkg/trunk/motion_planning/ompl_planning/include/kinematic_planning/RKPBasicRequest.h
pkg/trunk/motion_planning/ompl_planning/include/kinematic_planning/RKPBasicRequestLinkPosition.h
pkg/trunk/motion_planning/ompl_planning/include/kinematic_planning/RKPBasicRequestState.h
pkg/trunk/motion_planning/ompl_planning/include/kinematic_planning/RKPConstraintEvaluator.h
pkg/trunk/motion_planning/ompl_planning/include/kinematic_planning/ompl_extensions/RKPStateValidator.h
pkg/trunk/motion_planning/ompl_planning/manifest.xml
pkg/trunk/motion_planning/ompl_planning/src/motion_planner.cpp
pkg/trunk/motion_planning/ompl_planning/src/motion_validator.cpp
pkg/trunk/motion_planning/ompl_planning/test/avoid_monster.cpp
pkg/trunk/motion_planning/plan_ompl_path/manifest.xml
pkg/trunk/motion_planning/plan_ompl_path/src/base/execute_plan_to_state_minimal.cpp
pkg/trunk/motion_planning/plan_ompl_path/src/plan_kinematic_path.cpp
pkg/trunk/motion_planning/plan_ompl_path/src/right_arm/execute_plan_to_position_minimal.cpp
pkg/trunk/motion_planning/plan_ompl_path/src/right_arm/execute_plan_to_state.cpp
pkg/trunk/motion_planning/plan_ompl_path/src/right_arm/execute_plan_to_state_minimal.cpp
pkg/trunk/motion_planning/plan_ompl_path/src/right_arm/execute_replan_to_state.cpp
pkg/trunk/pr2_msgs/manifest.xml
pkg/trunk/pr2_msgs/msg/MoveArmGoal.msg
pkg/trunk/visualization/rviz/manifest.xml
pkg/trunk/visualization/rviz/src/rviz/displays/planning_display.cpp
pkg/trunk/visualization/rviz/src/rviz/displays/planning_display.h
Added Paths:
-----------
pkg/trunk/motion_planning/motion_planning_msgs/
pkg/trunk/motion_planning/motion_planning_msgs/CMakeLists.txt
pkg/trunk/motion_planning/motion_planning_msgs/Makefile
pkg/trunk/motion_planning/motion_planning_msgs/manifest.xml
pkg/trunk/motion_planning/motion_planning_msgs/msg/
pkg/trunk/motion_planning/motion_planning_msgs/msg/DisplayKinematicPath.msg
pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicConstraints.msg
pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicPath.msg
pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicPlanLinkPositionRequest.msg
pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicPlanStateRequest.msg
pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicPlanStatus.msg
pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicSpaceParameters.msg
pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicState.msg
pkg/trunk/motion_planning/motion_planning_msgs/msg/PoseConstraint.msg
pkg/trunk/motion_planning/motion_planning_srvs/
pkg/trunk/motion_planning/motion_planning_srvs/CMakeLists.txt
pkg/trunk/motion_planning/motion_planning_srvs/Makefile
pkg/trunk/motion_planning/motion_planning_srvs/mainpage.dox
pkg/trunk/motion_planning/motion_planning_srvs/manifest.xml
pkg/trunk/motion_planning/motion_planning_srvs/srv/
pkg/trunk/motion_planning/motion_planning_srvs/srv/CollisionCheckState.srv
pkg/trunk/motion_planning/motion_planning_srvs/srv/KinematicPlanLinkPosition.srv
pkg/trunk/motion_planning/motion_planning_srvs/srv/KinematicPlanState.srv
pkg/trunk/motion_planning/motion_planning_srvs/srv/KinematicReplanLinkPosition.srv
pkg/trunk/motion_planning/motion_planning_srvs/srv/KinematicReplanState.srv
pkg/trunk/motion_planning/motion_planning_srvs/srv/ValidateKinematicPath.srv
pkg/trunk/motion_planning/motion_planning_srvs/srv/ValidateKinematicState.srv
Removed Paths:
-------------
pkg/trunk/common/robot_msgs/msg/DisplayKinematicPath.msg
pkg/trunk/common/robot_msgs/msg/KinematicConstraints.msg
pkg/trunk/common/robot_msgs/msg/KinematicPath.msg
pkg/trunk/common/robot_msgs/msg/KinematicPlanLinkPositionRequest.msg
pkg/trunk/common/robot_msgs/msg/KinematicPlanStateRequest.msg
pkg/trunk/common/robot_msgs/msg/KinematicPlanStatus.msg
pkg/trunk/common/robot_msgs/msg/KinematicSpaceParameters.msg
pkg/trunk/common/robot_msgs/msg/KinematicState.msg
pkg/trunk/common/robot_msgs/msg/NamedKinematicPath.msg
pkg/trunk/common/robot_msgs/msg/NamedKinematicState.msg
pkg/trunk/common/robot_msgs/msg/PoseConstraint.msg
pkg/trunk/common/robot_srvs/srv/CollisionCheckState.srv
pkg/trunk/common/robot_srvs/srv/KinematicPlanLinkPosition.srv
pkg/trunk/common/robot_srvs/srv/KinematicPlanState.srv
pkg/trunk/common/robot_srvs/srv/KinematicReplanLinkPosition.srv
pkg/trunk/common/robot_srvs/srv/KinematicReplanState.srv
pkg/trunk/common/robot_srvs/srv/NamedKinematicPlanState.srv
pkg/trunk/common/robot_srvs/srv/ValidateKinematicPath.srv
pkg/trunk/common/robot_srvs/srv/ValidateKinematicState.srv
Deleted: pkg/trunk/common/robot_msgs/msg/DisplayKinematicPath.msg
===================================================================
--- pkg/trunk/common/robot_msgs/msg/DisplayKinematicPath.msg 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_msgs/msg/DisplayKinematicPath.msg 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,6 +0,0 @@
-# The definition of a kinematic path that has a name
-# The name identifies the part of the robot the path is for
-string frame_id
-string model_name
-KinematicState start_state
-KinematicPath path
Deleted: pkg/trunk/common/robot_msgs/msg/KinematicConstraints.msg
===================================================================
--- pkg/trunk/common/robot_msgs/msg/KinematicConstraints.msg 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_msgs/msg/KinematicConstraints.msg 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,3 +0,0 @@
-# This message contains a list of motion planning constraints.
-
-PoseConstraint[] pose
Deleted: pkg/trunk/common/robot_msgs/msg/KinematicPath.msg
===================================================================
--- pkg/trunk/common/robot_msgs/msg/KinematicPath.msg 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_msgs/msg/KinematicPath.msg 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,3 +0,0 @@
-# The definition of a kinematic path. Simply a list of states
-
-KinematicState[] states
Deleted: pkg/trunk/common/robot_msgs/msg/KinematicPlanLinkPositionRequest.msg
===================================================================
--- pkg/trunk/common/robot_msgs/msg/KinematicPlanLinkPositionRequest.msg 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_msgs/msg/KinematicPlanLinkPositionRequest.msg 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,36 +0,0 @@
-# This message contains the definition for a request to the motion
-# planner
-
-
-# Parameters for the state space
-robot_msgs/KinematicSpaceParameters params
-
-
-# The starting state for the robot. This is eth complete state of the
-# robot, all joint values, everything that needs to be specified to
-# completely define where each part of the robot is in space. The
-# meaning for each element in the state vector can be extracted from
-# viewing the output of the robot model construction (the kinematic
-# model constructed from the parsed URDF model) in verbose mode
-robot_msgs/KinematicState start_state
-
-
-# The goal state for the model to plan for. The state is not explicit.
-# The goal is considered achieved if all the constraints are satisfied.
-robot_msgs/PoseConstraint[] goal_constraints
-
-
-# No state in the produced motion plan will violate these constraints
-robot_msgs/KinematicConstraints constraints
-
-
-# The number of times this plan is to be computed. Shortest solution
-# will be reported.
-int32 times
-
-# Boolean flag: if true, the returned path will contain interpolated
-# states as well
-byte interpolate
-
-# The maximum amount of time the motion planner is allowed to plan for
-float64 allowed_time
Deleted: pkg/trunk/common/robot_msgs/msg/KinematicPlanStateRequest.msg
===================================================================
--- pkg/trunk/common/robot_msgs/msg/KinematicPlanStateRequest.msg 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_msgs/msg/KinematicPlanStateRequest.msg 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,38 +0,0 @@
-# This message contains the definition for a request to the motion
-# planner
-
-# Parameters for the state space
-robot_msgs/KinematicSpaceParameters params
-
-# The starting state for the robot. This is the complete state of the
-# robot, all joint values, everything that needs to be specified to
-# completely define where each part of the robot is in space. The
-# meaning for each element in the state vector can be extracted from
-# viewing the output of the robot model construction (the kinematic
-# model constructed from the parsed URDF model) in verbose mode
-robot_msgs/KinematicState start_state
-
-
-# The goal state for the model to plan for. The dimension of this
-# state must be equal to the dimension of the state space
-# characterizing the model (group) to plan for.
-robot_msgs/KinematicState goal_state
-
-# No state in the produced motion plan will violate these constraints
-robot_msgs/KinematicConstraints constraints
-
-# The number of times this plan is to be computed. Shortest solution
-# will be reported.
-int32 times
-
-# Boolean flag: if true, the returned path will contain interpolated
-# states as well
-byte interpolate
-
-# The maximum amount of time the motion planner is allowed to plan for
-float64 allowed_time
-
-
-# The threshold (distance) that is allowed between the returned
-# solution and the actual goal
-float64 threshold
Deleted: pkg/trunk/common/robot_msgs/msg/KinematicPlanStatus.msg
===================================================================
--- pkg/trunk/common/robot_msgs/msg/KinematicPlanStatus.msg 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_msgs/msg/KinematicPlanStatus.msg 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,39 +0,0 @@
-# This message contains the definition for the state of a motion plan
-
-# The ID of the request the status message refers to. A value of -1 means that
-# replanning is not active
-int32 id
-
-# If the ID just changed, this value will be 1. Subsequent messages
-# will have the value equal to 0
-byte new_id
-
-# The result of a motion plan: a kinematic path. If the motion plan is
-# not succesful, this path has 0 states. If the motion plan is
-# succesful, this path contains the minimum number of states (but it
-# includes start and goal states) to define the motions for the
-# robot. If more intermediate states are needed, linear interpolation
-# is to be assumed.
-robot_msgs/KinematicPath path
-
-
-# The threshold that was actually achieved. If the planner did not have enough time,
-# it may return a distance larger than the desired threshold. The user may choose to
-# discard the path
-float64 distance
-
-# If the starting state was already in the goal region,
-# this is set to 1. Otherwise, it will be set to 0
-byte done
-
-
-# If computing the path was not possible, this will be set to 0
-# otherwise, it will be 1
-byte valid
-
-# If the solution only gets close to the goal but does not reach it
-# this is set to 1. Otherwise, it will be set to 0
-byte approximate
-
-# If the data the planner has when planning is stale, set this flag to 1
-byte unsafe
Deleted: pkg/trunk/common/robot_msgs/msg/KinematicSpaceParameters.msg
===================================================================
--- pkg/trunk/common/robot_msgs/msg/KinematicSpaceParameters.msg 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_msgs/msg/KinematicSpaceParameters.msg 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,24 +0,0 @@
-# This message contains a set of parameters useful in setting up a
-# kinematic space for planning
-
-# The model (defined in the robot description as a group of links)
-# for which the motion planner should plan for
-string model_id
-
-
-# The name of the motion planner to use. If no name is specified,
-# a default motion planner will be used
-string planner_id
-
-
-# A string that identifies which distance metric the planner should use
-string distance_metric
-
-# Lower coordinate for a box defining the volume in the workspace the
-# motion planner is active in. If planning in 2D, only first 2 values
-# (x, y) of the points are used.
-robot_msgs/Point volumeMin
-
-
-# Higher coordinate for the box described above
-robot_msgs/Point volumeMax
Deleted: pkg/trunk/common/robot_msgs/msg/KinematicState.msg
===================================================================
--- pkg/trunk/common/robot_msgs/msg/KinematicState.msg 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_msgs/msg/KinematicState.msg 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,4 +0,0 @@
-# The definition of a kinematic state. Simply a list of double
-# precision floating point values
-
-float64[] vals
Deleted: pkg/trunk/common/robot_msgs/msg/NamedKinematicPath.msg
===================================================================
--- pkg/trunk/common/robot_msgs/msg/NamedKinematicPath.msg 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_msgs/msg/NamedKinematicPath.msg 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,3 +0,0 @@
-# The definition of a kinematic path. Simply a list of states
-
-NamedKinematicState[] states
Deleted: pkg/trunk/common/robot_msgs/msg/NamedKinematicState.msg
===================================================================
--- pkg/trunk/common/robot_msgs/msg/NamedKinematicState.msg 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_msgs/msg/NamedKinematicState.msg 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,10 +0,0 @@
-#Provides a set of named states for joints. Each kinematic state is a joint,
-# and each of its vals is one of its axes.
-
-string[] names
-
-KinematicState[] joints
-
-
-
-
Deleted: pkg/trunk/common/robot_msgs/msg/PoseConstraint.msg
===================================================================
--- pkg/trunk/common/robot_msgs/msg/PoseConstraint.msg 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_msgs/msg/PoseConstraint.msg 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,49 +0,0 @@
-# This message contains the definition of a motion planning constraint.
-# Since there are multiple types of constraints, the 'type' member is used
-# to identify the different constraints
-
-
-int32 POSITION_XYZ=1 # only x,y,z of position is considered
-int32 POSITION_XY=2 # only x,y of position is considered
-int32 POSITION_XZ=3 # only x,z of position is considered
-int32 POSITION_YZ=4 # only y,z of position is considered
-int32 POSITION_X=5 # only x of position is considered
-int32 POSITION_Y=6 # only y of position is considered
-int32 POSITION_Z=7 # only z of position is considered
-
-# the next values can be combined with one of the above, so they are offset by
-# 256, so we can use bit operations on them
-
-int32 ORIENTATION_RPY=256 # only roll, pitch, yaw of orientation is considered
-int32 ORIENTATION_RY=512 # only roll, yaw of orientation is considered
-int32 ORIENTATION_RP=768 # only roll, yaw of orientation is considered
-int32 ORIENTATION_PY=1024 # only roll, yaw of orientation is considered
-int32 ORIENTATION_R=1280 # only roll, yaw of orientation is considered
-int32 ORIENTATION_P=1536 # only roll, yaw of orientation is considered
-int32 ORIENTATION_Y=1792 # only roll, yaw of orientation is considered
-
-int32 type
-
-# The robot link this constraint refers to
-string robot_link
-
-# The desired pose of the robot link (in the robot frame)
-float64 x
-float64 y
-float64 z
-
-# euler angles around YXZ
-float64 roll # around Z axis
-float64 pitch # around X axis
-float64 yaw # around Y axis
-
-# the allowed difference (square of euclidian distance) for position
-float64 position_distance
-
-# the allowed difference (shortest angular distance, in radians) for orientation
-float64 orientation_distance
-
-# a factor that gets multiplied to the orientation when computing the
-# distance to the goal.
-# Distance_to_goal = position_distance + orientation_importance * orientation_distance
-float64 orientation_importance
Deleted: pkg/trunk/common/robot_srvs/srv/CollisionCheckState.srv
===================================================================
--- pkg/trunk/common/robot_srvs/srv/CollisionCheckState.srv 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_srvs/srv/CollisionCheckState.srv 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,18 +0,0 @@
-# This service is used to enable / disable the collision checking for
-# various links. The returned value is the old state of the collision
-# checking
-
-# The robot which contains the link
-string robot_name
-
-# The link name
-string link_name
-
-# The new state for collision checking on this link
-byte value
-
----
-
-# If succesful, the old state of collision checking (0 or 1)
-# If not succesful, -1
-byte value
Deleted: pkg/trunk/common/robot_srvs/srv/KinematicPlanLinkPosition.srv
===================================================================
--- pkg/trunk/common/robot_srvs/srv/KinematicPlanLinkPosition.srv 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_srvs/srv/KinematicPlanLinkPosition.srv 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,5 +0,0 @@
-robot_msgs/KinematicPlanLinkPositionRequest value
-
----
-
-robot_msgs/KinematicPlanStatus value
Deleted: pkg/trunk/common/robot_srvs/srv/KinematicPlanState.srv
===================================================================
--- pkg/trunk/common/robot_srvs/srv/KinematicPlanState.srv 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_srvs/srv/KinematicPlanState.srv 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,5 +0,0 @@
-robot_msgs/KinematicPlanStateRequest value
-
----
-
-robot_msgs/KinematicPlanStatus value
Deleted: pkg/trunk/common/robot_srvs/srv/KinematicReplanLinkPosition.srv
===================================================================
--- pkg/trunk/common/robot_srvs/srv/KinematicReplanLinkPosition.srv 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_srvs/srv/KinematicReplanLinkPosition.srv 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,5 +0,0 @@
-robot_msgs/KinematicPlanLinkPositionRequest value
-
----
-
-int32 id
Deleted: pkg/trunk/common/robot_srvs/srv/KinematicReplanState.srv
===================================================================
--- pkg/trunk/common/robot_srvs/srv/KinematicReplanState.srv 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_srvs/srv/KinematicReplanState.srv 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,5 +0,0 @@
-robot_msgs/KinematicPlanStateRequest value
-
----
-
-int32 id
Deleted: pkg/trunk/common/robot_srvs/srv/NamedKinematicPlanState.srv
===================================================================
--- pkg/trunk/common/robot_srvs/srv/NamedKinematicPlanState.srv 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_srvs/srv/NamedKinematicPlanState.srv 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,54 +0,0 @@
-# This message contains the definition for a request to the motion
-# planner
-
-# Parameters for the state space
-robot_msgs/KinematicSpaceParameters params
-
-# The starting state for the robot. This is eth complete state of the
-# robot, all joint values, everything that needs to be specified to
-# completely define where each part of the robot is in space. The
-# meaning for each element in the state vector can be extracted from
-# viewing the output of the robot model construction (the kinematic
-# model constructed from the parsed URDF model) in verbose mode
-robot_msgs/NamedKinematicState start_state
-
-
-# The goal state for the model to plan for. The dimension of this
-# state must be equal to the dimension of the state space
-# characterizing the model (group) to plan for.
-robot_msgs/NamedKinematicState goal_state
-
-# No state in the produced motion plan will violate these constraints
-robot_msgs/KinematicConstraints constraints
-
-# The number of times this plan is to be computed. Shortest solution
-# will be reported.
-int32 times
-
-# Boolean flag: if true, the returned path will contain interpolated
-# states as well
-byte interpolate
-
-# The maximum amount of time the motion planner is allowed to plan for
-float64 allowed_time
-
-
-# The threshold (distance) that is allowed between the returned
-# solution and the actual goal
-float64 threshold
-
----
-
-# The result of a motion plan: a kinematic path. If the motion plan is
-# not succesful, this path has 0 states. If the motion plan is
-# succesful, this path contains the minimum number of states (but it
-# includes start and goal states) to define the motions for the
-# robot. If more intermediate states are needed, linear interpolation
-# is to be assumed.
-robot_msgs/NamedKinematicPath path
-
-
-# The threshold that was actually achieved. If the planner did not have enough time,
-# it may return a distance larger than the desired threshold. The user may choose to
-# discard the path
-float64 distance
Deleted: pkg/trunk/common/robot_srvs/srv/ValidateKinematicPath.srv
===================================================================
--- pkg/trunk/common/robot_srvs/srv/ValidateKinematicPath.srv 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_srvs/srv/ValidateKinematicPath.srv 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,27 +0,0 @@
-# This message contains the definition for a request to the state
-# validator
-
-# The model to validate for
-string model_id
-
-# The starting state for the robot. This is the complete state of the
-# robot, all joint values, everything that needs to be specified to
-# completely define where each part of the robot is in space. The
-# meaning for each element in the state vector can be extracted from
-# viewing the output of the robot model construction (the kinematic
-# model constructed from the parsed URDF model) in verbose mode
-robot_msgs/KinematicState start_state
-
-
-# The goal state for the model to validate for. The dimension of this
-# state must be equal to the dimension of the state space
-# characterizing the model (group) to plan for.
-robot_msgs/KinematicState goal_state
-
-# No state in the produced motion plan will violate these constraints
-robot_msgs/KinematicConstraints constraints
-
----
-
-# Return true or false, to say if path is valid or not.
-byte valid
Deleted: pkg/trunk/common/robot_srvs/srv/ValidateKinematicState.srv
===================================================================
--- pkg/trunk/common/robot_srvs/srv/ValidateKinematicState.srv 2009-05-11 21:19:26 UTC (rev 15189)
+++ pkg/trunk/common/robot_srvs/srv/ValidateKinematicState.srv 2009-05-11 21:22:55 UTC (rev 15190)
@@ -1,26 +0,0 @@
-# This message contains the definition for a request to the state
-# validator
-
-# The model to validate for
-string model_id
-
-# The starting state for the robot. This is either the complete state
-# of the robot, all joint values, everything that needs to be
-# specified to completely define where each part of the robot is in
-# space, or the state of the model. If only the state for the model is
-# specified, the rest of the values are taken from the robot's current
-# state.
-# The meaning for each element in the state vector can be
-# extracted from viewing the output of the robot model construction
-# (the kinematic model constructed from the parsed URDF model) in
-# verbose mode
-robot_msgs/KinematicState state
-
-
-# No state in the produced motion plan will violate these constraints
-robot_msgs/KinematicConstraints constraints
-
----
-
-# Return true or false, to say if state is valid or not.
-byte valid
Added: pkg/trunk/motion_planning/motion_planning_msgs/CMakeLists.txt
===================================================================
--- pkg/trunk/motion_planning/motion_planning_msgs/CMakeLists.txt (rev 0)
+++ pkg/trunk/motion_planning/motion_planning_msgs/CMakeLists.txt 2009-05-11 21:22:55 UTC (rev 15190)
@@ -0,0 +1,4 @@
+cmake_minimum_required(VERSION 2.4.6)
+include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+rospack(motion_planning_msgs)
+genmsg()
Added: pkg/trunk/motion_planning/motion_planning_msgs/Makefile
===================================================================
--- pkg/trunk/motion_planning/motion_planning_msgs/Makefile (rev 0)
+++ pkg/trunk/motion_planning/motion_planning_msgs/Makefile 2009-05-11 21:22:55 UTC (rev 15190)
@@ -0,0 +1 @@
+include $(shell rospack find mk)/cmake.mk
\ No newline at end of file
Added: pkg/trunk/motion_planning/motion_planning_msgs/manifest.xml
===================================================================
--- pkg/trunk/motion_planning/motion_planning_msgs/manifest.xml (rev 0)
+++ pkg/trunk/motion_planning/motion_planning_msgs/manifest.xml 2009-05-11 21:22:55 UTC (rev 15190)
@@ -0,0 +1,21 @@
+<package>
+ <description brief="motion_planning_msgs">
+
+ motion_planning_msgs
+
+ </description>
+ <author>Ioan Sucan/is...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/motion_planning_msgs</url>
+
+ <depend package="std_msgs"/>
+ <depend package="robot_msgs"/>
+
+ <export>
+ <cpp cflags="-I${prefix}/msg/cpp"/>
+ </export>
+
+</package>
+
+
Added: pkg/trunk/motion_planning/motion_planning_msgs/msg/DisplayKinematicPath.msg
===================================================================
--- pkg/trunk/motion_planning/motion_planning_msgs/msg/DisplayKinematicPath.msg (rev 0)
+++ pkg/trunk/motion_planning/motion_planning_msgs/msg/DisplayKinematicPath.msg 2009-05-11 21:22:55 UTC (rev 15190)
@@ -0,0 +1,6 @@
+# The definition of a kinematic path that has a name
+# The name identifies the part of the robot the path is for
+string frame_id
+string model_name
+KinematicState start_state
+KinematicPath path
Added: pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicConstraints.msg
===================================================================
--- pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicConstraints.msg (rev 0)
+++ pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicConstraints.msg 2009-05-11 21:22:55 UTC (rev 15190)
@@ -0,0 +1,3 @@
+# This message contains a list of motion planning constraints.
+
+PoseConstraint[] pose
Added: pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicPath.msg
===================================================================
--- pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicPath.msg (rev 0)
+++ pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicPath.msg 2009-05-11 21:22:55 UTC (rev 15190)
@@ -0,0 +1,3 @@
+# The definition of a kinematic path. Simply a list of states
+
+KinematicState[] states
Added: pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicPlanLinkPositionRequest.msg
===================================================================
--- pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicPlanLinkPositionRequest.msg (rev 0)
+++ pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicPlanLinkPositionRequest.msg 2009-05-11 21:22:55 UTC (rev 15190)
@@ -0,0 +1,36 @@
+# This message contains the definition for a request to the motion
+# planner
+
+
+# Parameters for the state space
+KinematicSpaceParameters params
+
+
+# The starting state for the robot. This is eth complete state of the
+# robot, all joint values, everything that needs to be specified to
+# completely define where each part of the robot is in space. The
+# meaning for each element in the state vector can be extracted from
+# viewing the output of the robot model construction (the kinematic
+# model constructed from the parsed URDF model) in verbose mode
+KinematicState start_state
+
+
+# The goal state for the model to plan for. The state is not explicit.
+# The goal is considered achieved if all the constraints are satisfied.
+PoseConstraint[] goal_constraints
+
+
+# No state in the produced motion plan will violate these constraints
+KinematicConstraints constraints
+
+
+# The number of times this plan is to be computed. Shortest solution
+# will be reported.
+int32 times
+
+# Boolean flag: if true, the returned path will contain interpolated
+# states as well
+byte interpolate
+
+# The maximum amount of time the motion planner is allowed to plan for
+float64 allowed_time
Added: pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicPlanStateRequest.msg
===================================================================
--- pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicPlanStateRequest.msg (rev 0)
+++ pkg/trunk/motion_planning/motion_planning_msgs/msg/KinematicPlanStateRequest.msg 2009-05-11 21:22:55 UTC (rev 15190)
@@ -0,0 +1,38 @@
+# This message contains the definition for a request to the motion
+# planner
+
+# Parameters for the state space
+KinematicSpaceParameters params
+
+# The starting state for the robot. This is the complete state of the
+# robot, all joint values, everything that needs to be specified to
+# completely define where each part of the robot is in space. The
+# meaning for each element in the state vector can be extracted from
+# viewing the output of the robot model construction (the kinematic
+# model constructed from the parsed URDF model) in verbose mode
+KinematicState start_state
+
+
+# The goal state for the model to plan for. The dimension of this
+# state must be equal to the dimension of the state space
+# characterizing the model (group) to plan for.
+KinematicState goal_state
+
+# No state in the produced motion plan will violate these constraints
+KinematicConstraints constraints
+
+# The number of times this plan is to be computed. Shortest solution
+# will be reported.
+int32 times
+
+# Boolean flag: if true, the returned path will contain interpolated
+# states a...
[truncated message content] |
|
From: <rob...@us...> - 2009-05-11 23:57:13
|
Revision: 15210
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15210&view=rev
Author: rob_wheeler
Date: 2009-05-11 23:57:06 +0000 (Mon, 11 May 2009)
Log Message:
-----------
Add a service to halt motors, and add a corresponding button to the dashboard.
Modified Paths:
--------------
pkg/trunk/drivers/motor/ethercat_hardware/include/ethercat_hardware/ethercat_hardware.h
pkg/trunk/drivers/motor/ethercat_hardware/src/ethercat_hardware.cpp
pkg/trunk/robot_control_loops/pr2_etherCAT/src/main.cpp
pkg/trunk/visualization/pr2_dashboard/src/pr2_dashboard/hardware_panel.py
Added Paths:
-----------
pkg/trunk/visualization/pr2_dashboard/formbuilder/motor_panel.fbp
pkg/trunk/visualization/pr2_dashboard/src/pr2_dashboard/motor.py
pkg/trunk/visualization/pr2_dashboard/xrc/motor_panel.xrc
Removed Paths:
-------------
pkg/trunk/visualization/pr2_dashboard/formbuilder/reset_panel.fbp
pkg/trunk/visualization/pr2_dashboard/src/pr2_dashboard/reset.py
pkg/trunk/visualization/pr2_dashboard/xrc/reset_panel.xrc
Modified: pkg/trunk/drivers/motor/ethercat_hardware/include/ethercat_hardware/ethercat_hardware.h
===================================================================
--- pkg/trunk/drivers/motor/ethercat_hardware/include/ethercat_hardware/ethercat_hardware.h 2009-05-11 23:56:16 UTC (rev 15209)
+++ pkg/trunk/drivers/motor/ethercat_hardware/include/ethercat_hardware/ethercat_hardware.h 2009-05-11 23:57:06 UTC (rev 15210)
@@ -63,7 +63,7 @@
/*!
* \brief update send most recent motor commands and retrieve updates. This command must be run at a sufficient rate or else the motors will be disabled.
*/
- void update(bool reset);
+ void update(bool reset, bool halt);
/*!
* \brief Initialize the EtherCAT Master Library.
Modified: pkg/trunk/drivers/motor/ethercat_hardware/src/ethercat_hardware.cpp
===================================================================
--- pkg/trunk/drivers/motor/ethercat_hardware/src/ethercat_hardware.cpp 2009-05-11 23:56:16 UTC (rev 15209)
+++ pkg/trunk/drivers/motor/ethercat_hardware/src/ethercat_hardware.cpp 2009-05-11 23:57:06 UTC (rev 15210)
@@ -318,7 +318,7 @@
}
}
-void EthercatHardware::update(bool reset)
+void EthercatHardware::update(bool reset, bool halt)
{
unsigned char *current, *last;
@@ -327,6 +327,9 @@
// Convert HW Interface commands to MCB-specific buffers
current = current_buffer_;
+ if (halt)
+ halt_motors_ = true;
+
if (reset)
{
reset_state_ = 2 * num_slaves_;
Modified: pkg/trunk/robot_control_loops/pr2_etherCAT/src/main.cpp
===================================================================
--- pkg/trunk/robot_control_loops/pr2_etherCAT/src/main.cpp 2009-05-11 23:56:16 UTC (rev 15209)
+++ pkg/trunk/robot_control_loops/pr2_etherCAT/src/main.cpp 2009-05-11 23:57:06 UTC (rev 15210)
@@ -94,6 +94,7 @@
static int g_quit = 0;
static bool g_reset_motors = true;
+static bool g_halt_motors = false;
static const int NSEC_PER_SEC = 1e+9;
static struct
@@ -238,13 +239,14 @@
{
accumulator_set<double, stats<tag::max, tag::mean> > zero;
acc = zero;
- ec.update(true);
+ ec.update(true, g_halt_motors);
g_reset_motors = false;
}
else
{
- ec.update(false);
+ ec.update(false, g_halt_motors);
}
+ g_halt_motors = false;
double after_ec = now();
mcn.update();
double after_mc = now();
@@ -288,7 +290,7 @@
ec.hw_->actuators_[i]->command_.enable_ = false;
ec.hw_->actuators_[i]->command_.effort_ = 0;
}
- ec.update(false);
+ ec.update(false, true);
publisher.stop();
if (rtpublisher) delete rtpublisher;
@@ -313,6 +315,12 @@
return true;
}
+bool haltMotorsService(std_srvs::Empty::Request &req, std_srvs::Empty::Response &resp)
+{
+ g_halt_motors = true;
+ return true;
+}
+
void warnOnSecondary(int sig)
{
void *bt[32];
@@ -518,6 +526,7 @@
node->advertiseService("shutdown", shutdownService);
node->advertiseService("reset_motors", resetMotorsService);
+ node->advertiseService("halt_motors", haltMotorsService);
//Start thread
int rv;
Added: pkg/trunk/visualization/pr2_dashboard/formbuilder/motor_panel.fbp
===================================================================
--- pkg/trunk/visualization/pr2_dashboard/formbuilder/motor_panel.fbp (rev 0)
+++ pkg/trunk/visualization/pr2_dashboard/formbuilder/motor_panel.fbp 2009-05-11 23:57:06 UTC (rev 15210)
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<wxFormBuilder_Project>
+ <FileVersion major="1" minor="9" />
+ <object class="Project" expanded="1">
+ <property name="class_decoration"></property>
+ <property name="code_generation">XRC</property>
+ <property name="disconnect_events">1</property>
+ <property name="encoding">UTF-8</property>
+ <property name="event_generation">connect</property>
+ <property name="file">motor_panel</property>
+ <property name="first_id">1000</property>
+ <property name="help_provider">none</property>
+ <property name="internationalize">0</property>
+ <property name="name">Motor Panel</property>
+ <property name="namespace"></property>
+ <property name="path">../xrc</property>
+ <property name="precompiled_header"></property>
+ <property name="relative_path">1</property>
+ <property name="use_enum">0</property>
+ <property name="use_microsoft_bom">0</property>
+ <object class="Panel" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">MotorPanel</property>
+ <property name="pos"></property>
+ <property name="size">337,221</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style">wxTAB_TRAVERSAL</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnInitDialog"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer1</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxStaticBoxSizer" expanded="1">
+ <property name="id">wxID_ANY</property>
+ <property name="label">Motors</property>
+ <property name="minimum_size"></property>
+ <property name="name">sbSizer1</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <event name="OnUpdateUI"></event>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Halt Motors</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">halt_motors_button</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick"></event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Reset Motors</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">reset_motors_button</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick"></event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+</wxFormBuilder_Project>
Deleted: pkg/trunk/visualization/pr2_dashboard/formbuilder/reset_panel.fbp
===================================================================
--- pkg/trunk/visualization/pr2_dashboard/formbuilder/reset_panel.fbp 2009-05-11 23:56:16 UTC (rev 15209)
+++ pkg/trunk/visualization/pr2_dashboard/formbuilder/reset_panel.fbp 2009-05-11 23:57:06 UTC (rev 15210)
@@ -1,123 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
-<wxFormBuilder_Project>
- <FileVersion major="1" minor="9" />
- <object class="Project" expanded="1">
- <property name="class_decoration"></property>
- <property name="code_generation">XRC</property>
- <property name="disconnect_events">1</property>
- <property name="encoding">UTF-8</property>
- <property name="event_generation">connect</property>
- <property name="file">reset_panel</property>
- <property name="first_id">1000</property>
- <property name="help_provider">none</property>
- <property name="internationalize">0</property>
- <property name="name">Reset Panel</property>
- <property name="namespace"></property>
- <property name="path">../xrc</property>
- <property name="precompiled_header"></property>
- <property name="relative_path">1</property>
- <property name="use_enum">0</property>
- <property name="use_microsoft_bom">0</property>
- <object class="Panel" expanded="1">
- <property name="bg"></property>
- <property name="context_help"></property>
- <property name="enabled">1</property>
- <property name="fg"></property>
- <property name="font"></property>
- <property name="hidden">0</property>
- <property name="id">wxID_ANY</property>
- <property name="maximum_size"></property>
- <property name="minimum_size"></property>
- <property name="name">ResetPanel</property>
- <property name="pos"></property>
- <property name="size">337,221</property>
- <property name="subclass"></property>
- <property name="tooltip"></property>
- <property name="window_extra_style"></property>
- <property name="window_name"></property>
- <property name="window_style">wxTAB_TRAVERSAL</property>
- <event name="OnChar"></event>
- <event name="OnEnterWindow"></event>
- <event name="OnEraseBackground"></event>
- <event name="OnInitDialog"></event>
- <event name="OnKeyDown"></event>
- <event name="OnKeyUp"></event>
- <event name="OnKillFocus"></event>
- <event name="OnLeaveWindow"></event>
- <event name="OnLeftDClick"></event>
- <event name="OnLeftDown"></event>
- <event name="OnLeftUp"></event>
- <event name="OnMiddleDClick"></event>
- <event name="OnMiddleDown"></event>
- <event name="OnMiddleUp"></event>
- <event name="OnMotion"></event>
- <event name="OnMouseEvents"></event>
- <event name="OnMouseWheel"></event>
- <event name="OnPaint"></event>
- <event name="OnRightDClick"></event>
- <event name="OnRightDown"></event>
- <event name="OnRightUp"></event>
- <event name="OnSetFocus"></event>
- <event name="OnSize"></event>
- <event name="OnUpdateUI"></event>
- <object class="wxBoxSizer" expanded="1">
- <property name="minimum_size"></property>
- <property name="name">bSizer1</property>
- <property name="orient">wxVERTICAL</property>
- <property name="permission">none</property>
- <object class="sizeritem" expanded="1">
- <property name="border">5</property>
- <property name="flag">wxALL|wxEXPAND</property>
- <property name="proportion">1</property>
- <object class="wxButton" expanded="1">
- <property name="bg"></property>
- <property name="context_help"></property>
- <property name="default">0</property>
- <property name="enabled">1</property>
- <property name="fg"></property>
- <property name="font"></property>
- <property name="hidden">0</property>
- <property name="id">wxID_ANY</property>
- <property name="label">Reset Motors</property>
- <property name="maximum_size"></property>
- <property name="minimum_size"></property>
- <property name="name">reset_motors_button</property>
- <property name="permission">protected</property>
- <property name="pos"></property>
- <property name="size"></property>
- <property name="style"></property>
- <property name="subclass"></property>
- <property name="tooltip"></property>
- <property name="window_extra_style"></property>
- <property name="window_name"></property>
- <property name="window_style"></property>
- <event name="OnButtonClick"></event>
- <event name="OnChar"></event>
- <event name="OnEnterWindow"></event>
- <event name="OnEraseBackground"></event>
- <event name="OnKeyDown"></event>
- <event name="OnKeyUp"></event>
- <event name="OnKillFocus"></event>
- <event name="OnLeaveWindow"></event>
- <event name="OnLeftDClick"></event>
- <event name="OnLeftDown"></event>
- <event name="OnLeftUp"></event>
- <event name="OnMiddleDClick"></event>
- <event name="OnMiddleDown"></event>
- <event name="OnMiddleUp"></event>
- <event name="OnMotion"></event>
- <event name="OnMouseEvents"></event>
- <event name="OnMouseWheel"></event>
- <event name="OnPaint"></event>
- <event name="OnRightDClick"></event>
- <event name="OnRightDown"></event>
- <event name="OnRightUp"></event>
- <event name="OnSetFocus"></event>
- <event name="OnSize"></event>
- <event name="OnUpdateUI"></event>
- </object>
- </object>
- </object>
- </object>
- </object>
-</wxFormBuilder_Project>
Modified: pkg/trunk/visualization/pr2_dashboard/src/pr2_dashboard/hardware_panel.py
===================================================================
--- pkg/trunk/visualization/pr2_dashboard/src/pr2_dashboard/hardware_panel.py 2009-05-11 23:56:16 UTC (rev 15209)
+++ pkg/trunk/visualization/pr2_dashboard/src/pr2_dashboard/hardware_panel.py 2009-05-11 23:57:06 UTC (rev 15210)
@@ -36,7 +36,7 @@
import wx
import wx.aui
from wx import xrc
-import reset
+import motor
import ocean_battery_driver
from ocean_battery_driver.ibps_panel import *
import pr2_power_board
@@ -56,11 +56,11 @@
sizer.Add(self._notebook, 1, wx.EXPAND)
self.SetSizer(sizer)
- self._reset_panel = reset.ResetPanel(self)
+ self._motor_panel = motor.MotorPanel(self)
self._battery_panel = BatteryPanel(self)
self._powerboard_panel = PowerBoardPanel(self)
self._notebook.AddPage(self._powerboard_panel, "Power Board", True)
- self._notebook.AddPage(self._reset_panel, "Reset")
+ self._notebook.AddPage(self._motor_panel, "Motors")
self._notebook.AddPage(self._battery_panel, "Battery")
Added: pkg/trunk/visualization/pr2_dashboard/src/pr2_dashboard/motor.py
===================================================================
--- pkg/trunk/visualization/pr2_dashboard/src/pr2_dashboard/motor.py (rev 0)
+++ pkg/trunk/visualization/pr2_dashboard/src/pr2_dashboard/motor.py 2009-05-11 23:57:06 UTC (rev 15210)
@@ -0,0 +1,76 @@
+# 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 the Willow Garage 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.
+
+import roslib
+roslib.load_manifest('pr2_dashboard')
+
+import wx
+from wx import xrc
+import rospy
+import std_srvs.srv
+
+PKG='pr2_dashboard'
+
+class MotorPanel(wx.Panel):
+ def __init__(self, parent):
+ wx.Panel.__init__(self, parent)
+
+ xrc_path = roslib.packages.get_pkg_dir(PKG) + '/xrc/motor_panel.xrc'
+
+ self._xrc = xrc.XmlResource(xrc_path)
+ self._real_panel = self._xrc.LoadPanel(self, 'MotorPanel')
+ sizer = wx.BoxSizer(wx.VERTICAL)
+ sizer.Add(self._real_panel, 1, wx.EXPAND)
+ self.SetSizer(sizer)
+
+ self._reset_motors = xrc.XRCCTRL(self._real_panel, "reset_motors_button")
+ self._halt_motors = xrc.XRCCTRL(self._real_panel, "halt_motors_button")
+
+ self._reset_motors.Bind(wx.EVT_BUTTON, self.on_reset_motors)
+ self._halt_motors.Bind(wx.EVT_BUTTON, self.on_halt_motors)
+
+ def on_reset_motors(self, event):
+ reset = rospy.ServiceProxy("reset_motors", std_srvs.srv.Empty)
+
+ try:
+ reset()
+ except rospy.ServiceException:
+ rospy.logerr('Failed to reset the motors: service call failed')
+
+ def on_halt_motors(self, event):
+ halt = rospy.ServiceProxy("halt_motors", std_srvs.srv.Empty)
+
+ try:
+ halt()
+ except rospy.ServiceException:
+ rospy.logerr('Failed to halt the motors: service call failed')
+
Deleted: pkg/trunk/visualization/pr2_dashboard/src/pr2_dashboard/reset.py
===================================================================
--- pkg/trunk/visualization/pr2_dashboard/src/pr2_dashboard/reset.py 2009-05-11 23:56:16 UTC (rev 15209)
+++ pkg/trunk/visualization/pr2_dashboard/src/pr2_dashboard/reset.py 2009-05-11 23:57:06 UTC (rev 15210)
@@ -1,66 +0,0 @@
-# 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 the Willow Garage 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.
-
-import roslib
-roslib.load_manifest('pr2_dashboard')
-
-import wx
-from wx import xrc
-import rospy
-import std_srvs.srv
-
-PKG='pr2_dashboard'
-
-class ResetPanel(wx.Panel):
- def __init__(self, parent):
- wx.Panel.__init__(self, parent)
-
- xrc_path = roslib.packages.get_pkg_dir(PKG) + '/xrc/reset_panel.xrc'
-
- self._xrc = xrc.XmlResource(xrc_path)
- self._real_panel = self._xrc.LoadPanel(self, 'ResetPanel')
- sizer = wx.BoxSizer(wx.VERTICAL)
- sizer.Add(self._real_panel, 1, wx.EXPAND)
- self.SetSizer(sizer)
-
- self._reset_motors = xrc.XRCCTRL(self._real_panel, "reset_motors_button")
- ...
[truncated message content] |
|
From: <mar...@us...> - 2009-05-12 08:30:20
|
Revision: 15227
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15227&view=rev
Author: mariusmuja
Date: 2009-05-12 08:30:14 +0000 (Tue, 12 May 2009)
Log Message:
-----------
Moved prosilica capture rectified node into a new package
Modified Paths:
--------------
pkg/trunk/vision/recognition_lambertian/CMakeLists.txt
Added Paths:
-----------
pkg/trunk/util/prosilica_capture_rectified/
pkg/trunk/util/prosilica_capture_rectified/CMakeLists.txt
pkg/trunk/util/prosilica_capture_rectified/Makefile
pkg/trunk/util/prosilica_capture_rectified/launch/
pkg/trunk/util/prosilica_capture_rectified/launch/prosilica_capture.launch
pkg/trunk/util/prosilica_capture_rectified/manifest.xml
pkg/trunk/util/prosilica_capture_rectified/src/
pkg/trunk/util/prosilica_capture_rectified/src/prosilica_capture.cpp
Removed Paths:
-------------
pkg/trunk/vision/recognition_lambertian/src/prosilica_capture.cpp
pkg/trunk/vision/recognition_lambertian/src/rectify_image.cpp
Added: pkg/trunk/util/prosilica_capture_rectified/CMakeLists.txt
===================================================================
--- pkg/trunk/util/prosilica_capture_rectified/CMakeLists.txt (rev 0)
+++ pkg/trunk/util/prosilica_capture_rectified/CMakeLists.txt 2009-05-12 08:30:14 UTC (rev 15227)
@@ -0,0 +1,12 @@
+cmake_minimum_required(VERSION 2.4.6)
+
+include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+set(ROS_BUILD_TYPE RelWithDebInfo)
+rospack(prosilica_capture_rectified)
+rospack_add_boost_directories()
+
+#gensrv()
+#genmsg()
+
+set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
+rospack_add_executable (prosilica_capture src/prosilica_capture.cpp)
Added: pkg/trunk/util/prosilica_capture_rectified/Makefile
===================================================================
--- pkg/trunk/util/prosilica_capture_rectified/Makefile (rev 0)
+++ pkg/trunk/util/prosilica_capture_rectified/Makefile 2009-05-12 08:30:14 UTC (rev 15227)
@@ -0,0 +1 @@
+include $(shell rospack find mk)/cmake.mk
Added: pkg/trunk/util/prosilica_capture_rectified/launch/prosilica_capture.launch
===================================================================
--- pkg/trunk/util/prosilica_capture_rectified/launch/prosilica_capture.launch (rev 0)
+++ pkg/trunk/util/prosilica_capture_rectified/launch/prosilica_capture.launch 2009-05-12 08:30:14 UTC (rev 15227)
@@ -0,0 +1,32 @@
+<launch>
+
+<include file="$(find pr2_alpha)/$(env ROBOT).machine" />
+
+<!-- Base Laser -->
+ <node machine="two" pkg="hokuyo_node" type="hokuyo_node" name="base_hokuyo_node" args="scan:=base_scan">
+ <param name="port" type="string" value="/dev/ttyACM0" />
+ <param name="frameid" type="string" value="base_laser" />
+ <param name="min_ang_degrees" type="double" value="-130.0" />
+ <param name="max_ang_degrees" type="double" value="130.0" />
+ </node>
+
+<!-- Filter for base laser shadowing/veiling -->
+<node pkg="laser_scan" type="scan_shadows_filter_node" respawn="true" machine="three" name="base_shadow_filter_non_preserve" >
+ <param name="scan_topic" value="base_scan" />
+ <param name="cloud_topic" value="base_scan_marking" />
+ <param name="laser_max_range" value="30.0" />
+</node>
+
+
+
+ <group ns="prosilica">
+ <include file="$(find prosilica_cam)/cam_settings.xml"/>
+ <param name="acquisition_mode" type="str" value="Triggered"/>
+ </group>
+ <node name="prosilica" pkg="prosilica_cam" type="prosilica_node" respawn="false" output="screen"/>
+ <node name="prosilica_capture" pkg="recognition_lambertian" type="prosilica_capture" respawn="false" output="screen">
+ <param name="display" value="true" />
+ <param name="capture_button" value="0" />
+ <param name="data_root" value="$(find recognition_lambertian)/outlets" />
+ </node>
+</launch>
Added: pkg/trunk/util/prosilica_capture_rectified/manifest.xml
===================================================================
--- pkg/trunk/util/prosilica_capture_rectified/manifest.xml (rev 0)
+++ pkg/trunk/util/prosilica_capture_rectified/manifest.xml 2009-05-12 08:30:14 UTC (rev 15227)
@@ -0,0 +1,28 @@
+<package>
+ <description>
+ A node for capturing outlet images with the prosilica camera and rectifying the homography based on the base laser reading.
+ </description>
+
+ <author>Marius Muja</author>
+ <license>BSD</license>
+ <url>http://pr.willowgarage.com</url>
+ <review status="experimental" notes="beta"/>
+
+ <depend package="roscpp" />
+ <depend package="robot_msgs" />
+ <depend package="std_msgs" />
+ <depend package="opencv_latest"/>
+ <depend package="image_msgs"/>
+ <depend package="tf"/>
+ <depend package="prosilica_cam"/>
+ <depend package="eigen"/>
+ <depend package="point_cloud_mapping"/>
+ <depend package="joy"/>
+
+
+ <export>
+ <cpp cflags="-I${prefix}/msg/cpp -I${prefix}/srv/cpp -I${prefix}/include" lflags="-Wl,-rpath,${prefix}/lib -L${prefix}/lib"/>
+ </export>
+
+
+</package>
Copied: pkg/trunk/util/prosilica_capture_rectified/src/prosilica_capture.cpp (from rev 15226, pkg/trunk/vision/recognition_lambertian/src/prosilica_capture.cpp)
===================================================================
--- pkg/trunk/util/prosilica_capture_rectified/src/prosilica_capture.cpp (rev 0)
+++ pkg/trunk/util/prosilica_capture_rectified/src/prosilica_capture.cpp 2009-05-12 08:30:14 UTC (rev 15227)
@@ -0,0 +1,461 @@
+/*********************************************************************
+* 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 the Willow Garage 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.
+*********************************************************************/
+
+// Author: Marius Muja
+
+
+#include <string>
+
+#include "ros/node.h"
+#include "opencv_latest/CvBridge.h"
+
+#include "opencv/cv.h"
+#include "opencv/highgui.h"
+
+#include <tf/transform_listener.h>
+
+#include "joy/Joy.h"
+#include "prosilica_cam/PolledImage.h"
+
+#include <point_cloud_mapping/cloud_io.h>
+#include <point_cloud_mapping/geometry/angles.h>
+#include <point_cloud_mapping/sample_consensus/sac_model_plane.h>
+#include <point_cloud_mapping/sample_consensus/sac_model_line.h>
+#include <point_cloud_mapping/sample_consensus/sac.h>
+#include <point_cloud_mapping/sample_consensus/ransac.h>
+#include <point_cloud_mapping/sample_consensus/lmeds.h>
+#include <point_cloud_mapping/geometry/statistics.h>
+
+#include <Eigen/Core>
+
+USING_PART_OF_NAMESPACE_EIGEN
+
+static char windowName[] = "Captured image";
+static char rectifiedWindowName[] = "Rectified image";
+
+
+using namespace std;
+using namespace robot_msgs;
+
+class ProsilicaCapture {
+
+ image_msgs::CvBridge bridge;
+ IplImage* image;
+ IplImage* rectified;
+
+ prosilica_cam::PolledImage::Request req;
+ prosilica_cam::PolledImage::Response res;
+
+ unsigned int index;
+
+ robot_msgs::PointCloud base_cloud_;
+ robot_msgs::PointCloud base_cloud_fetch_;
+ string base_laser_topic_;
+
+ ros::Node& node_;
+
+ boost::mutex clound_point_mutex;
+ boost::condition_variable cloud_point_cv;
+ bool capture_cloud_point_;
+
+ tf::TransformListener *tf_;
+
+ Matrix3f K;
+
+ joy::Joy joy;
+ int capture_button_;
+ bool display_;
+ string data_root_;
+
+public:
+ ProsilicaCapture(ros::Node& node) : index(0), node_(node)
+ {
+ tf_ = new tf::TransformListener(node);
+
+ image = NULL;
+ rectified = NULL;
+
+ node.param<string>("~base_laser", base_laser_topic_, "base_scan_marking");
+ node.param("~capture_button", capture_button_, 0);
+ node.param("~display", display_, false);
+ node.param<string>("~data_root", data_root_, "./");
+ node.subscribe<robot_msgs::PointCloud,ProsilicaCapture>(base_laser_topic_, base_cloud_fetch_, &ProsilicaCapture::laser_callback, this, 1);
+ node.subscribe<joy::Joy,ProsilicaCapture>("/joy", joy, &ProsilicaCapture::joy_callback, this, 1);
+
+ if (display_) {
+ cvNamedWindow(windowName, 0);
+ cvNamedWindow(rectifiedWindowName,0);
+ }
+ }
+
+ void captureFromProsilica(int timeout)
+ {
+ req.timeout_ms = timeout;
+ ROS_INFO("Capturing prosilica image");
+ if (!ros::service::call("prosilica/poll", req, res)) {
+ ROS_ERROR("Service call failed");
+ image = NULL;
+ }
+ else {
+ if (!bridge.fromImage(res.image, "bgr")) {
+ ROS_ERROR("CvBridge::fromImage failed");
+ image = NULL;
+ }
+ else {
+ image = bridge.toIpl();
+ K << res.cam_info.K[0], res.cam_info.K[1], res.cam_info.K[2],
+ res.cam_info.K[3],res.cam_info.K[4],res.cam_info.K[5],
+ res.cam_info.K[6],res.cam_info.K[7],res.cam_info.K[8];
+ }
+ }
+ }
+
+ void laser_callback()
+ {
+ if (!capture_cloud_point_) {
+ return;
+ }
+ boost::lock_guard<boost::mutex> lock(clound_point_mutex);
+ capture_cloud_point_ = false;
+ base_cloud_ = base_cloud_fetch_;
+
+ cloud_point_cv.notify_all();
+ }
+
+
+
+ void captureFromBaseLaser()
+ {
+ boost::unique_lock<boost::mutex> lock(clound_point_mutex);
+ capture_cloud_point_ = true;
+ // waiting for the cloud point
+ ROS_INFO("Waiting for base laser");
+ while (capture_cloud_point_) {
+ cloud_point_cv.wait(lock);
+ }
+ ROS_INFO("Got %d points",base_cloud_.pts.size());
+ }
+
+ void capture()
+ {
+ ROS_INFO("Capturing data");
+ captureFromProsilica(100);
+ captureFromBaseLaser();
+
+ rectifyProsilicaImage();
+ }
+
+
+ void joy_callback()
+ {
+ printf("Joystick callback\n");
+ if (capture_button_<(int)joy.buttons.size() && joy.buttons[capture_button_]) {
+ capture();
+ saveData();
+ }
+ }
+
+
+ bool fitSACLine(PointCloud& points, vector<int> indices, vector<double> &coeff, double dist_thresh, int min_pts, vector<Point32> &line_segment)
+ {
+ Point32 minP, maxP;
+
+ // Create and initialize the SAC model
+ sample_consensus::SACModelLine *model = new sample_consensus::SACModelLine ();
+ sample_consensus::SAC *sac = new sample_consensus::RANSAC (model, dist_thresh);
+ sac->setMaxIterations (100);
+ model->setDataSet (&points, indices);
+
+ if(sac->computeModel())
+ {
+ if((int) sac->getInliers().size() < min_pts) {
+ coeff.resize (0);
+ return (false);
+ }
+ sac->computeCoefficients (coeff);
+
+ Point32 minP, maxP;
+ cloud_geometry::statistics::getLargestDiagonalPoints(points, sac->getInliers(), minP, maxP);
+ line_segment.push_back(minP);
+ line_segment.push_back(maxP);
+
+
+ ROS_INFO ("> Found a model supported by %d inliers: [%g, %g, %g, %g]", (int)sac->getInliers ().size (), coeff[0], coeff[1], coeff[2], coeff[3]);
+ }
+
+ delete sac;
+ delete model;
+ return true;
+ }
+
+ double squaredPointDistance(Point32 p1, Point32 p2)
+ {
+ return (p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)+(p1.z-p2.z)*(p1.z-p2.z);
+ }
+
+ /**
+ * Assuming that the base laser is near the wall, get closest point in order to compute
+ * region near the point where to fit a line.
+ * @param cloud
+ * @return
+ */
+ Point32 findPointAhead(const PointCloud& cloud)
+ {
+ Point32 closest;
+ float dist = 1e10;
+
+ for (size_t i=0; i<cloud.get_pts_size(); ++i) {
+ Point32 crt = cloud.pts[i];
+ if (fabs(crt.x)<1e-10 && fabs(crt.y)<1e-10 && fabs(crt.z)<1e-10) continue;
+ float crt_dist = fabs(crt.y);
+
+ if (dist>crt_dist) {
+ closest = crt;
+ dist = crt_dist;
+ }
+ }
+
+ return closest;
+ }
+
+
+ PointCloud getWallCloud(PointCloud laser_cloud, Point32 point, double distance)
+ {
+ PointCloud result;
+ result.header.frame_id = laser_cloud.header.frame_id;
+ result.header.stamp = laser_cloud.header.stamp;
+
+ double d = distance*distance;
+ for (size_t i=0; i<laser_cloud.get_pts_size(); ++i) {
+ if (squaredPointDistance(laser_cloud.pts[i],point)<d) {
+ result.pts.push_back(laser_cloud.pts[i]);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * This method rectifies an image captured from the prosilica camera by using the
+ * base laser to determine the orientation of the wall.
+ */
+ void rectifyProsilicaImage()
+ {
+ ROS_INFO("Finding wall point in front of the robot, the robot should be facing to the wall at this point.");
+ Point32 start_point = findPointAhead(base_cloud_);
+// printf("(%f,%f,%f)\n", start_point.x,start_point.y,start_point.z);
+
+ ROS_INFO("Filtering point cloud");
+ PointCloud wall_cloud = getWallCloud(base_cloud_,start_point,0.4);
+
+ // fit a line in the outlet cloud
+ vector<int> indices(wall_cloud.pts.size());
+ for (size_t i=0;i<wall_cloud.get_pts_size();++i) {
+ indices[i] = i;
+ }
+ vector<double> coeff(4); // line coefficients
+
+ double dist_thresh = 0.01;
+ int min_pts = 20;
+
+ vector<Point32> line_segment;
+ ROS_INFO("Computing wall orientation");
+ if ( !fitSACLine(wall_cloud, indices, coeff, dist_thresh, min_pts, line_segment) ) {
+ ROS_ERROR("Cannot fit line in laser scan, aborting...");
+ return;
+ }
+
+
+ PointStamped base_p1, base_p2;
+ PointStamped prosilica_p1,prosilica_p2;
+
+ base_p1.header.stamp = ros::Time();
+ base_p1.header.frame_id = base_cloud_.header.frame_id;
+ base_p1.point.x = line_segment[0].x;
+ base_p1.point.y = line_segment[0].y;
+ base_p1.point.z = line_segment[0].z;
+
+ base_p2.header.stamp = ros::Time();
+ base_p2.header.frame_id = base_cloud_.header.frame_id;;
+ base_p2.point.x = line_segment[1].x;
+ base_p2.point.y = line_segment[1].y;
+ base_p2.point.z = line_segment[1].z;
+
+ // need the points in the prosilica frame
+ tf_->transformPoint("high_def_optical_frame", base_p1, prosilica_p1);
+ tf_->transformPoint("high_def_optical_frame", base_p2, prosilica_p2);
+
+
+ float length = 0.2;
+ double distance = sqrt(squaredPointDistance(line_segment[0],line_segment[1]));
+ float alpha = (distance-length)/(2*distance);
+ Vector3f p1= Vector3f(prosilica_p1.point.x,prosilica_p1.point.y,prosilica_p1.point.z);
+ Vector3f p2 = Vector3f(prosilica_p2.point.x,prosilica_p2.point.y,prosilica_p2.point.z);
+
+
+ Vector3f tmp;
+ tmp = (1-alpha)*p1+alpha*p2;
+ p2 = (1-alpha)*p2+alpha*p1;
+ p1 = tmp;
+
+ // project the points into the image plane
+ p1 = K*p1;
+ p1 /= p1.z();
+
+
+ p2 = K*p2;
+ p2 /= p2.z();
+
+ // find another 2 points higher up on the wall
+ base_p1.point.z -= length;
+ base_p2.point.z -= length;
+
+ // need the points in the prosilica frame
+ tf_->transformPoint("high_def_optical_frame", base_p1, prosilica_p1);
+ tf_->transformPoint("high_def_optical_frame", base_p2, prosilica_p2);
+
+
+ Vector3f p3 = Vector3f(prosilica_p1.point.x,prosilica_p1.point.y,prosilica_p1.point.z);
+ p3 = K*p3;
+ p3 /= p3.z();
+
+ Vector3f p4 = Vector3f(prosilica_p2.point.x,prosilica_p2.point.y,prosilica_p2.point.z);
+ p4 = K*p4;
+ p4 /= p4.z();
+
+ tmp = (1-alpha)*p3+alpha*p4;
+ p4 = (1-alpha)*p4+alpha*p3;
+ p3 = tmp;
+
+ if (rectified) {
+ cvReleaseImage(&rectified);
+ }
+ rectified = cvCloneImage(image);
+ CvPoint2D32f objPts[4], imgPts[4];
+
+ objPts[0].x = 500; objPts[0].y = 500;
+ objPts[1].x = 1500; objPts[1].y = 500;
+ objPts[2].x = 500; objPts[2].y = 1500;
+ objPts[3].x = 1500; objPts[3].y = 1500;
+
+ imgPts[0].x = p2.x(); imgPts[0].y = p2.y();
+ imgPts[1].x = p1.x(); imgPts[1].y = p1.y();
+ imgPts[2].x = p4.x(); imgPts[2].y = p4.y();
+ imgPts[3].x = p3.x(); imgPts[3].y = p3.y();
+
+ // compute perspective transformation
+ CvMat *H = cvCreateMat(3,3,CV_32F);
+ cvGetPerspectiveTransform(objPts,imgPts,H);
+ cvWarpPerspective(image,rectified, H,
+ CV_INTER_LINEAR | CV_WARP_INVERSE_MAP | CV_WARP_FILL_OUTLIERS );
+
+ cvReleaseMat(&H);
+
+ if (display_) {
+ cvShowImage(rectifiedWindowName, rectified);
+ }
+ }
+
+
+ void save_intrinsics(char* filename)
+ {
+ ofstream fout(filename);
+ fout.setf(ios_base::scientific);
+ fout << K << endl;
+ fout.close();
+ }
+
+
+ void saveData()
+ {
+ ROS_INFO("Saving data");
+ if (image!=NULL) {
+ char filename[512];
+ // saving image
+ sprintf(filename, "%s/frame%04u.jpg", data_root_.c_str(), index);
+ cvSaveImage( filename, rectified );
+ ROS_INFO("Saved image %s", filename);
+
+ sprintf(filename, "%s/rectified_frame%04u.jpg", data_root_.c_str(), index);
+ cvSaveImage( filename, rectified );
+ ROS_INFO("Saved image %s", filename);
+
+ sprintf(filename, "%s/base_laser%04u.pcd", data_root_.c_str(), index);
+ cloud_io::savePCDFile (filename, base_cloud_, true);
+ ROS_INFO("Saved base point cloud %s", filename);
+
+ sprintf(filename, "%s/intrinsics%04u.dat", data_root_.c_str(), index);
+ save_intrinsics(filename);
+ index++;
+ }
+
+ }
+
+ void spin()
+ {
+
+ while (true)
+ {
+ int k = cvWaitKey(0);
+ switch( (char) k)
+ {
+ case 'c':
+ capture();
+ if (image)
+ cvShowImage(windowName, image);
+ break;
+ case 's':
+ saveData();
+ break;
+ }
+ }
+
+ }
+
+
+
+};
+
+
+
+
+int main(int argc, char** argv)
+{
+ ros::init(argc, argv);
+ ros::Node n("prosilica_capture");
+
+ ProsilicaCapture capture(n);
+ capture.spin();
+
+
+}
Modified: pkg/trunk/vision/recognition_lambertian/CMakeLists.txt
===================================================================
--- pkg/trunk/vision/recognition_lambertian/CMakeLists.txt 2009-05-12 05:51:12 UTC (rev 15226)
+++ pkg/trunk/vision/recognition_lambertian/CMakeLists.txt 2009-05-12 08:30:14 UTC (rev 15227)
@@ -14,7 +14,4 @@
rospack_add_executable(recognition_lambertian src/recognition_lambertian.cpp src/chamfer_matching.cpp)
rospack_add_executable (plane_fit src/plane_fit.cpp)
rospack_add_executable (publish_scene src/publish_scene.cpp)
-rospack_add_executable (prosilica_capture src/prosilica_capture.cpp)
rospack_add_executable(rec_lam_normal_features src/rec_lam_normal_features.cpp src/visualization.cpp)
-
-rospack_add_executable (rectify_image src/rectify_image.cpp)
Deleted: pkg/trunk/vision/recognition_lambertian/src/prosilica_capture.cpp
===================================================================
--- pkg/trunk/vision/recognition_lambertian/src/prosilica_capture.cpp 2009-05-12 05:51:12 UTC (rev 15226)
+++ pkg/trunk/vision/recognition_lambertian/src/prosilica_capture.cpp 2009-05-12 08:30:14 UTC (rev 15227)
@@ -1,434 +0,0 @@
-/*********************************************************************
-* 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 the Willow Garage 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.
-*********************************************************************/
-
-// Author: Marius Muja
-
-
-#include <string>
-
-#include "ros/node.h"
-#include "opencv_latest/CvBridge.h"
-
-#include "opencv/cv.h"
-#include "opencv/highgui.h"
-
-#include <tf/transform_listener.h>
-
-#include "joy/Joy.h"
-#include "prosilica_cam/PolledImage.h"
-
-#include <point_cloud_mapping/cloud_io.h>
-#include <point_cloud_mapping/geometry/angles.h>
-#include <point_cloud_mapping/sample_consensus/sac_model_plane.h>
-#include <point_cloud_mapping/sample_consensus/sac_model_line.h>
-#include <point_cloud_mapping/sample_consensus/sac.h>
-#include <point_cloud_mapping/sample_consensus/ransac.h>
-#include <point_cloud_mapping/sample_consensus/lmeds.h>
-#include <point_cloud_mapping/geometry/statistics.h>
-
-#include <Eigen/Core>
-
-USING_PART_OF_NAMESPACE_EIGEN
-
-static char windowName[] = "Captured image";
-static char rectifiedWindowName[] = "Rectified image";
-
-
-using namespace std;
-using namespace robot_msgs;
-
-class ProsilicaCapture {
-
- image_msgs::CvBridge bridge;
- IplImage* image;
- IplImage* rectified;
-
- prosilica_cam::PolledImage::Request req;
- prosilica_cam::PolledImage::Response res;
-
- unsigned int index;
-
- robot_msgs::PointCloud base_cloud_;
- robot_msgs::PointCloud base_cloud_fetch_;
- string base_laser_topic_;
-
- ros::Node& node_;
-
- boost::mutex clound_point_mutex;
- boost::condition_variable cloud_point_cv;
- bool capture_cloud_point_;
-
- tf::TransformListener *tf_;
-
- Matrix3f K;
-
- joy::Joy joy;
- int capture_button_;
- bool display_;
- string data_root_;
-
-public:
- ProsilicaCapture(ros::Node& node) : index(0), node_(node)
- {
- tf_ = new tf::TransformListener(node);
-
- image = NULL;
- rectified = NULL;
-
- node.param<string>("~base_laser", base_laser_topic_, "base_scan_marking");
- node.param("~capture_button", capture_button_, 0);
- node.param("~display", display_, false);
- node.param<string>("~data_root", data_root_, "./");
- node.subscribe<robot_msgs::PointCloud,ProsilicaCapture>(base_laser_topic_, base_cloud_, &ProsilicaCapture::laser_callback, this, 1);
- node.subscribe<joy::Joy,ProsilicaCapture>("joy", joy, &ProsilicaCapture::joy_callback, this, 1);
-
- if (display_) {
- cvNamedWindow(windowName, 0);
- cvNamedWindow(rectifiedWindowName,0);
- }
- }
-
- void captureFromProsilica(int timeout)
- {
- req.timeout_ms = timeout;
- ROS_INFO("Capturing prosilica image");
- if (!ros::service::call("prosilica/poll", req, res)) {
- ROS_ERROR("Service call failed");
- image = NULL;
- }
- else {
- if (!bridge.fromImage(res.image, "bgr")) {
- ROS_ERROR("CvBridge::fromImage failed");
- image = NULL;
- }
- else {
- image = bridge.toIpl();
- K << res.cam_info.K[0], res.cam_info.K[1], res.cam_info.K[2],
- res.cam_info.K[3],res.cam_info.K[4],res.cam_info.K[5],
- res.cam_info.K[6],res.cam_info.K[7],res.cam_info.K[8];
- }
- }
- }
-
- void laser_callback()
- {
- if (!capture_cloud_point_) {
- return;
- }
- boost::lock_guard<boost::mutex> lock(clound_point_mutex);
- capture_cloud_point_ = false;
- base_cloud_ = base_cloud_fetch_;
-
- cloud_point_cv.notify_all();
- }
-
-
-
- void captureFromBaseLaser()
- {
- boost::unique_lock<boost::mutex> lock(clound_point_mutex);
- capture_cloud_point_ = true;
- // waiting for the cloud point
- ROS_INFO("Waiting for base laser");
- while (capture_cloud_point_) {
- cloud_point_cv.wait(lock);
- }
- }
-
- void capture()
- {
- ROS_INFO("Capturing data");
- captureFromProsilica(100);
- captureFromBaseLaser();
-
- rectifyProsilicaImage();
- }
-
-
- void joy_callback()
- {
- joy.lock();
- if (capture_button_<(int)joy.buttons.size() && joy.buttons[capture_button_]) {
- capture();
- saveData();
- }
- joy.unlock();
- }
-
-
- bool fitSACLine(PointCloud& points, vector<int> indices, vector<double> &coeff, double dist_thresh, int min_pts, vector<Point32> &line_segment)
- {
- Point32 minP, maxP;
-
- // Create and initialize the SAC model
- sample_consensus::SACModelLine *model = new sample_consensus::SACModelLine ();
- sample_consensus::SAC *sac = new sample_consensus::RANSAC (model, dist_thresh);
- sac->setMaxIterations (100);
- model->setDataSet (&points, indices);
-
- if(sac->computeModel())
- {
- if((int) sac->getInliers().size() < min_pts) {
- coeff.resize (0);
- return (false);
- }
- sac->computeCoefficients (coeff);
-
- Point32 minP, maxP;
- cloud_geometry::statistics::getLargestDiagonalPoints(points, sac->getInliers(), minP, maxP);
- line_segment.push_back(minP);
- line_segment.push_back(maxP);
-
-
- ROS_INFO ("> Found a model supported by %d inliers: [%g, %g, %g, %g]", (int)sac->getInliers ().size (), coeff[0], coeff[1], coeff[2], coeff[3]);
- }
-
- delete sac;
- delete model;
- return true;
- }
-
- double squaredPointDistance(Point32 p1, Point32 p2)
- {
- return (p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)+(p1.z-p2.z)*(p1.z-p2.z);
- }
-
- /**
- * Assuming that the base laser is near the wall, get closest point in order to compute
- * region near the point where to fit a line.
- * @param cloud
- * @return
- */
- Point32 findPointAhead(const PointCloud& cloud)
- {
- Point32 closest;
- float dist = 1e10;
-
- for (size_t i=0; i<cloud.get_pts_size(); ++i) {
- Point32 crt = cloud.pts[i];
- if (fabs(crt.x)<1e-10 && fabs(crt.y)<1e-10 && fabs(crt.z)<1e-10) continue;
- float crt_dist = fabs(crt.y);
-
- if (dist>crt_dist) {
- closest = crt;
- dist = crt_dist;
- }
- }
-
- return closest;
- }
-
-
- PointCloud getWallCloud(PointCloud laser_cloud, Point32 point, double distance)
- {
- PointCloud result;
- result.header.frame_id = laser_cloud.header.frame_id;
- result.header.stamp = laser_cloud.header.stamp;
-
- double d = distance*distance;
- for (size_t i=0; i<laser_cloud.get_pts_size(); ++i) {
- if (squaredPointDistance(laser_cloud.pts[i],point)<d) {
- result.pts.push_back(laser_cloud.pts[i]);
- }
- }
- return result;
- }
-
- /**
- * This method rectifies an image captured from the prosilica camera by using the
- * base laser to determine the orientation of the wall.
- */
- void rectifyProsilicaImage()
- {
- ROS_INFO("Finding wall point in front of the robot, the robot should be facing to the wall at this point.");
- Point32 start_point = findPointAhead(base_cloud_);
-// printf("(%f,%f,%f)\n", start_point.x,start_point.y,start_point.z);
-
- ROS_INFO("Filtering point cloud");
- PointCloud wall_cloud = getWallCloud(base_cloud_,start_point,0.2);
-
- // fit a line in the outlet cloud
- vector<int> indices(wall_cloud.pts.size());
- for (size_t i=0;i<wall_cloud.get_pts_size();++i) {
- indices[i] = i;
- }
- vector<double> coeff(4); // line coefficients
-
- double dist_thresh = 0.01;
- int min_pts = 20;
-
- vector<Point32> line_segment;
- ROS_INFO("Computing wall orientation");
- if ( !fitSACLine(wall_cloud, indices, coeff, dist_thresh, min_pts, line_segment) ) {
- ROS_ERROR("Cannot fit line in laser scan, aborting...");
- return;
- }
-
-
- PointStamped base_p1, base_p2;
- PointStamped prosilica_p1,prosilica_p2;
-
- base_p1.header.stamp = ros::Time();
- base_p1.header.frame_id = base_cloud_.header.frame_id;
- base_p1.point.x = line_segment[0].x;
- base_p1.point.y = line_segment[0].y;
- base_p1.point.z = line_segment[0].z;
-
- base_p2.header.stamp = ros::Time();
- base_p2.header.frame_id = base_cloud_.header.frame_id;;
- base_p2.point.x = line_segment[1].x;
- base_p2.point.y = line_segment[1].y;
- base_p2.point.z = line_segment[1].z;
-
- // need the points in the prosilica frame
- tf_->transformPoint("high_def_optical_frame", base_p1, prosilica_p1);
- tf_->transformPoint("high_def_optical_frame", base_p2, prosilica_p2);
-
- // project the points into the image plane
- Vector3f p1 = Vector3f(prosilica_p1.point.x,prosilica_p1.point.y,prosilica_p1.point.z);
- p1 = K*p1;
- p1 /= p1.z();
-
-
- Vector3f p2 = Vector3f(prosilica_p2.point.x,prosilica_p2.point.y,prosilica_p2.point.z);
- p2 = K*p2;
- p2 /= p2.z();
-
- // find another 2 points higher up on the wall
- double distance = sqrt(squaredPointDistance(line_segment[0],line_segment[1]));
- base_p1.point.z += distance;
- base_p2.point.z += distance;
-
- // need the points in the prosilica frame
- tf_->transformPoint("high_def_optical_frame", base_p1, prosilica_p1);
- tf_->transformPoint("high_def_optical_frame", base_p2, prosilica_p2);
-
-
- Vector3f p3 = Vector3f(prosilica_p1.point.x,prosilica_p1.point.y,prosilica_p1.point.z);
- p3 = K*p3;
- p3 /= p3.z();
-
- Vector3f p4 = Vector3f(prosilica_p2.point.x,prosilica_p2.point.y,prosilica_p2.point.z);
- p4 = K*p4;
- p4 /= p4.z();
-
- if (rectified) {
- cvReleaseImage(&rectified);
- }
- rectified = cvCloneImage(image);
- CvPoint2D32f objPts[4], imgPts[4];
-
- objPts[0].x = 1000; objPts[0].y = 500;
- objPts[1].x = 1500; objPts[1].y = 500;
- objPts[2].x = 1000; objPts[2].y = 1000;
- objPts[3].x = 1500; objPts[3].y...
[truncated message content] |
|
From: <stu...@us...> - 2009-05-12 20:11:11
|
Revision: 15263
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15263&view=rev
Author: stuglaser
Date: 2009-05-12 20:10:57 +0000 (Tue, 12 May 2009)
Log Message:
-----------
Separated each safety action into its own binary
Modified Paths:
--------------
pkg/trunk/demos/milestone2/milestone2_actions/milestone2.launch
pkg/trunk/highlevel/safety/safety_core/CMakeLists.txt
pkg/trunk/highlevel/safety/safety_core/src/action_runner.cpp
Added Paths:
-----------
pkg/trunk/highlevel/safety/safety_core/src/run_detect_plug_on_base.cpp
pkg/trunk/highlevel/safety/safety_core/src/run_doors_tuck_arms.cpp
pkg/trunk/highlevel/safety/safety_core/src/run_tuck_arms.cpp
Modified: pkg/trunk/demos/milestone2/milestone2_actions/milestone2.launch
===================================================================
--- pkg/trunk/demos/milestone2/milestone2_actions/milestone2.launch 2009-05-12 19:53:22 UTC (rev 15262)
+++ pkg/trunk/demos/milestone2/milestone2_actions/milestone2.launch 2009-05-12 20:10:57 UTC (rev 15263)
@@ -26,7 +26,10 @@
<!-- Safety -->
- <node machine="four" pkg="safety_core" type="action_runner" output="screen" respawn="true" />
+ <!--<node machine="four" pkg="safety_core" type="action_runner" output="screen" respawn="true" />-->
+ <node machine="four" pkg="safety_core" type="run_detect_plug_on_base" output="screen" respawn="true" />
+ <node machine="four" pkg="safety_core" type="run_doors_tuck_arms" output="screen" respawn="true" />
+ <node machine="four" pkg="safety_core" type="run_tuck_arms" output="screen" respawn="true" />
<!-- joystick -->
Modified: pkg/trunk/highlevel/safety/safety_core/CMakeLists.txt
===================================================================
--- pkg/trunk/highlevel/safety/safety_core/CMakeLists.txt 2009-05-12 19:53:22 UTC (rev 15262)
+++ pkg/trunk/highlevel/safety/safety_core/CMakeLists.txt 2009-05-12 20:10:57 UTC (rev 15263)
@@ -8,7 +8,20 @@
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
-rospack_add_executable(action_runner src/action_detect_plug_on_base.cpp
+rospack_add_executable(action_runner src/action_detect_plug_on_base.cpp
src/action_tuck_arms.cpp
- src/action_doors_tuck_arms.cpp
+ src/action_doors_tuck_arms.cpp
src/action_runner.cpp)
+
+rospack_add_executable(run_detect_plug_on_base
+ src/run_detect_plug_on_base.cpp
+ src/action_detect_plug_on_base.cpp
+ )
+rospack_add_executable(run_doors_tuck_arms
+ src/run_doors_tuck_arms.cpp
+ src/action_doors_tuck_arms.cpp
+ )
+rospack_add_executable(run_tuck_arms
+ src/run_tuck_arms.cpp
+ src/action_tuck_arms.cpp
+ )
Modified: pkg/trunk/highlevel/safety/safety_core/src/action_runner.cpp
===================================================================
--- pkg/trunk/highlevel/safety/safety_core/src/action_runner.cpp 2009-05-12 19:53:22 UTC (rev 15262)
+++ pkg/trunk/highlevel/safety/safety_core/src/action_runner.cpp 2009-05-12 20:10:57 UTC (rev 15263)
@@ -63,12 +63,12 @@
DetectPlugOnBaseAction detect(node);
TuckArmsAction tuck_arms;
DoorsTuckArmsAction doors_tuck_arms;
-
+
robot_actions::ActionRunner runner(10.0);
runner.connect<std_msgs::Empty, pr2_robot_actions::DetectPlugOnBaseState, robot_msgs::PlugStow>(detect);
runner.connect<std_msgs::Empty, robot_actions::NoArgumentsActionState, std_msgs::Empty>(tuck_arms);
runner.connect<std_msgs::Empty, robot_actions::NoArgumentsActionState, std_msgs::Empty>(doors_tuck_arms);
-
+
runner.run();
//robot_msgs::PlugStow feedback;
Copied: pkg/trunk/highlevel/safety/safety_core/src/run_detect_plug_on_base.cpp (from rev 15260, pkg/trunk/highlevel/safety/safety_core/src/action_runner.cpp)
===================================================================
--- pkg/trunk/highlevel/safety/safety_core/src/run_detect_plug_on_base.cpp (rev 0)
+++ pkg/trunk/highlevel/safety/safety_core/src/run_detect_plug_on_base.cpp 2009-05-12 20:10:57 UTC (rev 15263)
@@ -0,0 +1,68 @@
+/*********************************************************************
+ * 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 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.
+ *********************************************************************/
+
+// Msgs
+#include <robot_msgs/PlugStow.h>
+#include <std_msgs/Empty.h>
+
+// Actions
+#include <safety_core/action_detect_plug_on_base.h>
+
+// State Msgs
+#include <robot_actions/NoArgumentsActionState.h>
+#include <pr2_robot_actions/DetectPlugOnBaseState.h>
+
+#include <robot_actions/action.h>
+#include <robot_actions/action_runner.h>
+
+using namespace safety_core;
+
+// -----------------------------------
+// MAIN
+// -----------------------------------
+
+int main(int argc, char** argv)
+{
+ ros::init(argc,argv);
+
+ ros::Node node("safety_core_actions");
+ DetectPlugOnBaseAction detect(node);
+
+ robot_actions::ActionRunner runner(10.0);
+ runner.connect<std_msgs::Empty, pr2_robot_actions::DetectPlugOnBaseState, robot_msgs::PlugStow>(detect);
+ runner.run();
+
+ node.spin();
+ return 0;
+}
Copied: pkg/trunk/highlevel/safety/safety_core/src/run_doors_tuck_arms.cpp (from rev 15260, pkg/trunk/highlevel/safety/safety_core/src/action_runner.cpp)
===================================================================
--- pkg/trunk/highlevel/safety/safety_core/src/run_doors_tuck_arms.cpp (rev 0)
+++ pkg/trunk/highlevel/safety/safety_core/src/run_doors_tuck_arms.cpp 2009-05-12 20:10:57 UTC (rev 15263)
@@ -0,0 +1,67 @@
+/*********************************************************************
+ * 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 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.
+ *********************************************************************/
+
+// Msgs
+#include <robot_msgs/PlugStow.h>
+#include <std_msgs/Empty.h>
+
+// Actions
+#include <safety_core/action_doors_tuck_arms.h>
+
+// State Msgs
+#include <robot_actions/NoArgumentsActionState.h>
+
+#include <robot_actions/action.h>
+#include <robot_actions/action_runner.h>
+
+using namespace safety_core;
+
+// -----------------------------------
+// MAIN
+// -----------------------------------
+
+int main(int argc, char** argv)
+{
+ ros::init(argc,argv);
+
+ ros::Node node("safety_core_actions");
+ DoorsTuckArmsAction doors_tuck_arms;
+
+ robot_actions::ActionRunner runner(10.0);
+ runner.connect<std_msgs::Empty, robot_actions::NoArgumentsActionState, std_msgs::Empty>(doors_tuck_arms);
+ runner.run();
+
+ node.spin();
+ return 0;
+}
Copied: pkg/trunk/highlevel/safety/safety_core/src/run_tuck_arms.cpp (from rev 15260, pkg/trunk/highlevel/safety/safety_core/src/action_runner.cpp)
===================================================================
--- pkg/trunk/highlevel/safety/safety_core/src/run_tuck_arms.cpp (rev 0)
+++ pkg/trunk/highlevel/safety/safety_core/src/run_tuck_arms.cpp 2009-05-12 20:10:57 UTC (rev 15263)
@@ -0,0 +1,67 @@
+/*********************************************************************
+ * 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 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.
+ *********************************************************************/
+
+// Msgs
+#include <robot_msgs/PlugStow.h>
+#include <std_msgs/Empty.h>
+
+// Actions
+#include <safety_core/action_tuck_arms.h>
+
+// State Msgs
+#include <robot_actions/NoArgumentsActionState.h>
+
+#include <robot_actions/action.h>
+#include <robot_actions/action_runner.h>
+
+using namespace safety_core;
+
+// -----------------------------------
+// MAIN
+// -----------------------------------
+
+int main(int argc, char** argv)
+{
+ ros::init(argc,argv);
+
+ ros::Node node("safety_core_actions");
+ TuckArmsAction tuck_arms;
+
+ robot_actions::ActionRunner runner(10.0);
+ runner.connect<std_msgs::Empty, robot_actions::NoArgumentsActionState, std_msgs::Empty>(tuck_arms);
+ runner.run();
+
+ node.spin();
+ return 0;
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <stu...@us...> - 2009-05-13 22:33:54
|
Revision: 15353
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15353&view=rev
Author: stuglaser
Date: 2009-05-13 22:33:50 +0000 (Wed, 13 May 2009)
Log Message:
-----------
Nav stack can now take a goal in any frame
Modified Paths:
--------------
pkg/trunk/highlevel/nav/src/move_base.cpp
pkg/trunk/highlevel/nav/src/move_base_local.cpp
pkg/trunk/nav/base_local_planner/include/base_local_planner/trajectory_planner_ros.h
pkg/trunk/nav/base_local_planner/src/trajectory_planner_ros.cpp
Modified: pkg/trunk/highlevel/nav/src/move_base.cpp
===================================================================
--- pkg/trunk/highlevel/nav/src/move_base.cpp 2009-05-13 21:55:44 UTC (rev 15352)
+++ pkg/trunk/highlevel/nav/src/move_base.cpp 2009-05-13 22:33:50 UTC (rev 15353)
@@ -250,13 +250,15 @@
bool valid_control = false;
//pass plan to controller
- lock_.lock();
+
if(valid_plan_){
//if we have a new plan... we'll update the plan for the controller
if(new_plan_){
- tc_->updatePlan(global_plan_);
new_plan_ = false;
+ if(!tc_->updatePlan(global_plan_))
+ return robot_actions::ABORTED;
}
+
//get observations for the non-costmap controllers
std::vector<Observation> observations;
controller_costmap_ros_->getMarkingObservations(observations);
@@ -297,8 +299,6 @@
//give the base the velocity command
ros_node_.publish("cmd_vel", cmd_vel);
- lock_.unlock();
-
//if we don't have a valid control... we need to re-plan explicitly
if(!valid_control){
ros::Duration patience = ros::Duration(controller_patience_);
Modified: pkg/trunk/highlevel/nav/src/move_base_local.cpp
===================================================================
--- pkg/trunk/highlevel/nav/src/move_base_local.cpp 2009-05-13 21:55:44 UTC (rev 15352)
+++ pkg/trunk/highlevel/nav/src/move_base_local.cpp 2009-05-13 22:33:50 UTC (rev 15353)
@@ -190,7 +190,8 @@
//pass plan to controller
std::vector<robot_msgs::PoseStamped> global_plan;
global_plan.push_back(goal);
- tc_->updatePlan(global_plan);
+ if(!tc_->updatePlan(global_plan))
+ return robot_actions::ABORTED;
//get observations for the non-costmap controllers
std::vector<Observation> observations;
controller_costmap_ros_->getMarkingObservations(observations);
Modified: pkg/trunk/nav/base_local_planner/include/base_local_planner/trajectory_planner_ros.h
===================================================================
--- pkg/trunk/nav/base_local_planner/include/base_local_planner/trajectory_planner_ros.h 2009-05-13 21:55:44 UTC (rev 15352)
+++ pkg/trunk/nav/base_local_planner/include/base_local_planner/trajectory_planner_ros.h 2009-05-13 22:33:50 UTC (rev 15353)
@@ -112,8 +112,9 @@
/**
* @brief Update the plan that the controller is following
* @param orig_global_plan The plan to pass to the controller
+ * @return True if the plan was updated successfully, false otherwise
*/
- void updatePlan(const std::vector<robot_msgs::PoseStamped>& orig_global_plan);
+ bool updatePlan(const std::vector<robot_msgs::PoseStamped>& orig_global_plan);
/**
* @brief Returns the local goal the robot is pursuing
@@ -229,7 +230,7 @@
bool goal_reached_;
costmap_2d::Costmap2DPublisher* costmap_publisher_;
std::vector<robot_msgs::PoseStamped> global_plan_;
- double transform_tolerance_;
+ double transform_tolerance_, update_plan_tolerance_;
};
};
Modified: pkg/trunk/nav/base_local_planner/src/trajectory_planner_ros.cpp
===================================================================
--- pkg/trunk/nav/base_local_planner/src/trajectory_planner_ros.cpp 2009-05-13 21:55:44 UTC (rev 15352)
+++ pkg/trunk/nav/base_local_planner/src/trajectory_planner_ros.cpp 2009-05-13 22:33:50 UTC (rev 15353)
@@ -67,6 +67,7 @@
ros_node.param("~base_local_planner/costmap/global_frame", global_frame_, string("map"));
ros_node.param("~base_local_planner/costmap/robot_base_frame", robot_base_frame_, string("base_link"));
ros_node.param("~base_local_planner/transform_tolerance", transform_tolerance_, 0.2);
+ ros_node.param("~base_local_planner/update_plan_tolerance", update_plan_tolerance_, 1.0);
double map_publish_frequency;
ros_node.param("~base_local_planner/costmap_visualization_rate", map_publish_frequency, 2.0);
@@ -339,7 +340,7 @@
return goal_reached_;
}
- void TrajectoryPlannerROS::updatePlan(const std::vector<robot_msgs::PoseStamped>& orig_global_plan){
+ bool TrajectoryPlannerROS::updatePlan(const std::vector<robot_msgs::PoseStamped>& orig_global_plan){
//reset the global plan
global_plan_.clear();
@@ -349,31 +350,35 @@
robot_msgs::PoseStamped new_pose;
ros::Time current_time = ros::Time::now(); // save time for checking tf delay later
new_pose = orig_global_plan[i];
- new_pose.header.stamp = ros::Time();
+ if(!tf_.canTransform(global_frame_, new_pose.header.frame_id, new_pose.header.stamp, ros::Duration(update_plan_tolerance_))){
+ ROS_ERROR("TrajectoryPlannerROS cannot service your goal because the transform is not available, we waited %.4f seconds", update_plan_tolerance_);
+ return false;
+ }
tf_.transformPose(global_frame_, new_pose, new_pose);
// check global_pose timeout
if (current_time.toSec() - new_pose.header.stamp.toSec() > transform_tolerance_) {
ROS_ERROR("TrajectoryPlannerROS transform timeout updating plan. Current time: %.4f, global_pose stamp: %.4f, tolerance: %.4f",
current_time.toSec() ,new_pose.header.stamp.toSec() ,transform_tolerance_);
- return;
+ return false;
}
global_plan_.push_back(new_pose);
}
}
catch(tf::LookupException& ex) {
ROS_ERROR("No Transform available Error: %s\n", ex.what());
- return;
+ return false;
}
catch(tf::ConnectivityException& ex) {
ROS_ERROR("Connectivity Error: %s\n", ex.what());
- return;
+ return false;
}
catch(tf::ExtrapolationException& ex) {
ROS_ERROR("Extrapolation Error: %s\n", ex.what());
if (orig_global_plan.size() > 0)
ROS_ERROR("Global Frame: %s Plan Frame size %d: %s\n", global_frame_.c_str(),orig_global_plan.size(), orig_global_plan[0].header.frame_id.c_str());
- return;
+ return false;
}
+ return true;
}
bool TrajectoryPlannerROS::computeVelocityCommands(robot_msgs::PoseDot& cmd_vel,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hsu...@us...> - 2009-05-14 06:40:38
|
Revision: 15394
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15394&view=rev
Author: hsujohnhsu
Date: 2009-05-14 06:40:32 +0000 (Thu, 14 May 2009)
Log Message:
-----------
update collision test case.
Modified Paths:
--------------
pkg/trunk/drivers/simulator/test_pr2_collision_gazebo/test_slide.xml
pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/test/test_slide.world
Modified: pkg/trunk/drivers/simulator/test_pr2_collision_gazebo/test_slide.xml
===================================================================
--- pkg/trunk/drivers/simulator/test_pr2_collision_gazebo/test_slide.xml 2009-05-14 06:28:06 UTC (rev 15393)
+++ pkg/trunk/drivers/simulator/test_pr2_collision_gazebo/test_slide.xml 2009-05-14 06:40:32 UTC (rev 15394)
@@ -1,22 +1,20 @@
<launch>
- <master auto="start" />
+ <node pkg="gazebo" type="gazebo" args="-n $(find gazebo_robot_description)/gazebo_worlds/test/test_slide.world" respawn="false" output="screen">
+ <env name="LD_LIBRARY_PATH" value="$(find gazebo_plugin)/lib:$(find gazebo)/gazebo/lib:$(find Cg)/Cg/lib:$(optenv LD_LIBRARY_PATH)" />
+ <env name="GAZEBO_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
+ <env name="OGRE_RESOURCE_PATH" value="$(find ogre)/ogre/lib/OGRE" />
+ <env name="MC_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
+ </node>
- <node pkg="gazebo" type="gazebo" args="-n $(find gazebo_robot_description)/gazebo_worlds/test/test_slide.world" respawn="false" output="screen">
- <env name="LD_LIBRARY_PATH" value="$(find gazebo_plugin)/lib:$(find gazebo)/gazebo/lib:$(find Cg)/Cg/lib:$(optenv LD_LIBRARY_PATH)" />
- <env name="GAZEBO_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
- <env name="OGRE_RESOURCE_PATH" value="$(find ogre)/ogre/lib/OGRE" />
- <env name="MC_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
- </node>
+ <!-- send single_link.xml to param server -->
+ <param name="robotdesc/pr2" command="$(find xacro)/xacro.py '$(find pr2_defs)/robots/pr2.xacro.xml'" />
- <!-- send single_link.xml to param server -->
- <param name="robotdesc/pr2" command="$(find xacro)/xacro.py '$(find pr2_defs)/robots/pr2.xacro.xml'" />
+ <!-- push robotdesc/pr2 to factory and spawn robot in gazebo -->
+ <node pkg="gazebo_plugin" type="urdf2factory" args="/robotdesc/pr2 0 6 18 0 0 90" respawn="false" output="screen" /> <!-- load default arm controller -->
- <!-- push robotdesc/pr2 to factory and spawn robot in gazebo -->
- <node pkg="gazebo_plugin" type="urdf2factory" args="/robotdesc/pr2 0 6 18 0 0 90" respawn="false" output="screen" /> <!-- load default arm controller -->
+ <!-- load controllers -->
+ <include file="$(find pr2_gazebo)/pr2_default_controllers.launch" />
- <!-- load controllers -->
- <include file="$(find pr2_gazebo)/pr2_default_controllers.launch" />
-
- <!-- test -->
- <test test-name="pr2_test_slide" pkg="test_pr2_collision_gazebo" type="test_slide.py" time-limit="120" />
+ <!-- test -->
+ <test test-name="pr2_test_slide" pkg="test_pr2_collision_gazebo" type="test_slide.py" time-limit="120" />
</launch>
Modified: pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/test/test_slide.world
===================================================================
--- pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/test/test_slide.world 2009-05-14 06:28:06 UTC (rev 15393)
+++ pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/test/test_slide.world 2009-05-14 06:40:32 UTC (rev 15394)
@@ -60,7 +60,7 @@
</sky>
<gazeboPath>media</gazeboPath>
<grid>false</grid>
- <maxUpdateRate>0.001</maxUpdateRate>
+ <maxUpdateRate>30.0</maxUpdateRate>
</rendering:ogre>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mee...@us...> - 2009-05-14 15:25:49
|
Revision: 15399
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15399&view=rev
Author: meeussen
Date: 2009-05-14 15:23:09 +0000 (Thu, 14 May 2009)
Log Message:
-----------
create bag files for regression tests
Modified Paths:
--------------
pkg/trunk/highlevel/doors/door_functions/src/door_functions.cpp
pkg/trunk/mapping/door_handle_detector/launch/create_bag_files.launch
Modified: pkg/trunk/highlevel/doors/door_functions/src/door_functions.cpp
===================================================================
--- pkg/trunk/highlevel/doors/door_functions/src/door_functions.cpp 2009-05-14 15:22:18 UTC (rev 15398)
+++ pkg/trunk/highlevel/doors/door_functions/src/door_functions.cpp 2009-05-14 15:23:09 UTC (rev 15399)
@@ -143,7 +143,6 @@
// make normal point in direction we travel through door
Vector dir(door.travel_dir.x, door.travel_dir.y, door.travel_dir.z);
- dir.Normalize();
if (dot(dir, normal) < 0)
normal = normal * -1.0;
Modified: pkg/trunk/mapping/door_handle_detector/launch/create_bag_files.launch
===================================================================
--- pkg/trunk/mapping/door_handle_detector/launch/create_bag_files.launch 2009-05-14 15:22:18 UTC (rev 15398)
+++ pkg/trunk/mapping/door_handle_detector/launch/create_bag_files.launch 2009-05-14 15:23:09 UTC (rev 15399)
@@ -21,7 +21,6 @@
<node pkg="point_cloud_assembler" type="point_cloud_snapshotter" output="screen" name="point_cloud_snapshotter">
<remap from="laser_scanner_signal" to="laser_tilt_controller/laser_scanner_signal"/>
<remap from="build_cloud" to="laser_scan_assembler/build_cloud" />
- <remap from="full_cloud" to="handle_cloud" />
</node>
@@ -29,7 +28,7 @@
<node pkg="stereo_image_proc" type="stereoproc" respawn="false" machine="four" />
<!-- base -->
-<include file="$(find pr2_alpha)/teleop_joystick.launch" />
+ <include file="$(find pr2_alpha)/teleop_joystick.launch" />
</launch>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rdi...@us...> - 2009-05-15 06:43:02
|
Revision: 15497
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15497&view=rev
Author: rdiankov
Date: 2009-05-15 06:42:56 +0000 (Fri, 15 May 2009)
Log Message:
-----------
added python binding to openrave via openravepy
Modified Paths:
--------------
pkg/trunk/3rdparty/openrave/Makefile
pkg/trunk/openrave_planning/openraveros/src/openraveros.cpp
pkg/trunk/openrave_planning/openraveros/src/session.h
pkg/trunk/util/robot_self_filter/src/robotlinks_filter_node.cpp
Modified: pkg/trunk/3rdparty/openrave/Makefile
===================================================================
--- pkg/trunk/3rdparty/openrave/Makefile 2009-05-15 06:19:57 UTC (rev 15496)
+++ pkg/trunk/3rdparty/openrave/Makefile 2009-05-15 06:42:56 UTC (rev 15497)
@@ -2,7 +2,7 @@
SVN_DIR = openrave_svn
# Should really specify a revision
-SVN_REVISION = -r 768
+SVN_REVISION = -r 775
SVN_URL = https://openrave.svn.sourceforge.net/svnroot/openrave
#SVN_PATCH = fini_patch.patch
include $(shell rospack find mk)/svn_checkout.mk
Modified: pkg/trunk/openrave_planning/openraveros/src/openraveros.cpp
===================================================================
--- pkg/trunk/openrave_planning/openraveros/src/openraveros.cpp 2009-05-15 06:19:57 UTC (rev 15496)
+++ pkg/trunk/openrave_planning/openraveros/src/openraveros.cpp 2009-05-15 06:42:56 UTC (rev 15497)
@@ -97,11 +97,6 @@
int main(int argc, char ** argv)
{
- // Set up the output streams to support wide characters
- if (fwide(stdout,1) < 0) {
- printf("Unable to set stdout to wide characters\n");
- }
-
signal(SIGINT,sigint_handler); // control C
ros::init(argc,argv);
Modified: pkg/trunk/openrave_planning/openraveros/src/session.h
===================================================================
--- pkg/trunk/openrave_planning/openraveros/src/session.h 2009-05-15 06:19:57 UTC (rev 15496)
+++ pkg/trunk/openrave_planning/openraveros/src/session.h 2009-05-15 06:42:56 UTC (rev 15497)
@@ -359,8 +359,11 @@
}
int id = rand();
- while(id == 0 || _mapsessions.find(id) != _mapsessions.end())
- id = rand();
+ {
+ boost::mutex::scoped_lock lock(_mutexsession);
+ while(id == 0 || _mapsessions.find(id) != _mapsessions.end())
+ id = rand();
+ }
SessionState state;
@@ -386,6 +389,8 @@
state._pserver.reset(new ROSServer(id, new SessionSetViewerFunc(this), state._penv.get(), req.physicsengine, req.collisionchecker, req.viewer));
state._penv->AttachServer(state._pserver.get());
+
+ boost::mutex::scoped_lock lock(_mutexsession);
_mapsessions[id] = state;
res.sessionid = id;
Modified: pkg/trunk/util/robot_self_filter/src/robotlinks_filter_node.cpp
===================================================================
--- pkg/trunk/util/robot_self_filter/src/robotlinks_filter_node.cpp 2009-05-15 06:19:57 UTC (rev 15496)
+++ pkg/trunk/util/robot_self_filter/src/robotlinks_filter_node.cpp 2009-05-15 06:42:56 UTC (rev 15497)
@@ -97,7 +97,7 @@
};
RobotLinksFilter(const string& robotname, dReal convexpadding, bool bAccurateTiming) : _robotname(robotname), _convexpadding(convexpadding), _bAccurateTiming(bAccurateTiming)
- {
+ {
if( InitRobotLinksFromOpenRAVE(robotname) ) {
double tf_cache_time_secs;
s_pmasternode->param("~tf_cache_time_secs", tf_cache_time_secs, 10.0);
@@ -116,14 +116,10 @@
extrap_limit.fromSec(tf_extrap_limit_secs);
_tf->setExtrapolationLimit(extrap_limit);
ROS_INFO("RobotLinksFilter: tf extrapolation Limit: %f Seconds", tf_extrap_limit_secs);
- _pointcloudnotifier =
- new tf::MessageNotifier<robot_msgs::PointCloud>
- (_tf.get(), ros::Node::instance(),
- boost::bind(&RobotLinksFilter::PointCloudCallback,
- this, _1),
- "tilt_laser_cloud_filtered", "base_link",
- 50);
- ROS_ASSERT(_pointcloudnotifier);
+ _pointcloudnotifier.reset(new tf::MessageNotifier<robot_msgs::PointCloud>
+ (_tf.get(), ros::Node::instance(),
+ boost::bind(&RobotLinksFilter::PointCloudCallback, this, _1),
+ "tilt_laser_cloud_filtered", "base_link", 50));
}
else
ROS_ERROR("failed to init robot %s", robotname.c_str());
@@ -138,8 +134,7 @@
s_pmasternode->unadvertise("robotlinks_cloud_filtered");
}
- if( _pointcloudnotifier)
- delete _pointcloudnotifier;
+ _pointcloudnotifier.reset();
}
bool InitRobotLinksFromOpenRAVE(const string& robotname)
@@ -440,7 +435,7 @@
string _robotname;
dReal _convexpadding;
bool _bAccurateTiming; ///< if true, will interpolate the convex hulls for every time stamp
- tf::MessageNotifier<robot_msgs::PointCloud>* _pointcloudnotifier;
+ boost::shared_ptr<tf::MessageNotifier<robot_msgs::PointCloud> > _pointcloudnotifier;
};
int main(int argc, char ** argv)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mee...@us...> - 2009-05-15 18:26:16
|
Revision: 15529
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15529&view=rev
Author: meeussen
Date: 2009-05-15 18:26:07 +0000 (Fri, 15 May 2009)
Log Message:
-----------
move laser trajectory messages/services to pr2_msgs pr2_srvs
Modified Paths:
--------------
pkg/trunk/controllers/pr2_mechanism_controllers/include/pr2_mechanism_controllers/laser_scanner_traj_controller.h
pkg/trunk/controllers/pr2_mechanism_controllers/src/laser_scanner_traj_controller.cpp
pkg/trunk/highlevel/pr2_robot_actions/src/set_laser_tilt.cpp
Added Paths:
-----------
pkg/trunk/pr2_msgs/msg/LaserTrajCmd.msg
pkg/trunk/pr2_srvs/srv/SetLaserTrajCmd.srv
Removed Paths:
-------------
pkg/trunk/controllers/pr2_mechanism_controllers/msg/LaserTrajCmd.msg
pkg/trunk/controllers/pr2_mechanism_controllers/srv/SetLaserTrajCmd.srv
Modified: pkg/trunk/controllers/pr2_mechanism_controllers/include/pr2_mechanism_controllers/laser_scanner_traj_controller.h
===================================================================
--- pkg/trunk/controllers/pr2_mechanism_controllers/include/pr2_mechanism_controllers/laser_scanner_traj_controller.h 2009-05-15 18:10:16 UTC (rev 15528)
+++ pkg/trunk/controllers/pr2_mechanism_controllers/include/pr2_mechanism_controllers/laser_scanner_traj_controller.h 2009-05-15 18:26:07 UTC (rev 15529)
@@ -48,14 +48,14 @@
#include <pr2_mechanism_controllers/LaserScannerSignal.h>
#include <pr2_msgs/PeriodicCmd.h>
#include <pr2_mechanism_controllers/TrackLinkCmd.h>
-#include <pr2_mechanism_controllers/LaserTrajCmd.h>
+#include <pr2_msgs/LaserTrajCmd.h>
// Services
#include <robot_mechanism_controllers/SetCommand.h>
#include <robot_mechanism_controllers/GetCommand.h>
#include <pr2_mechanism_controllers/SetProfile.h>
#include <pr2_srvs/SetPeriodicCmd.h>
-#include <pr2_mechanism_controllers/SetLaserTrajCmd.h>
+#include <pr2_srvs/SetLaserTrajCmd.h>
#include "boost/thread/mutex.hpp"
#include "trajectory/trajectory.h"
@@ -75,7 +75,7 @@
bool setPeriodicCmd(const pr2_msgs::PeriodicCmd& cmd) ;
- bool setTrajCmd(const pr2_mechanism_controllers::LaserTrajCmd& traj_cmd) ;
+ bool setTrajCmd(const pr2_msgs::LaserTrajCmd& traj_cmd) ;
bool setTrackLinkCmd(const pr2_mechanism_controllers::TrackLinkCmd& track_link_cmd) ;
@@ -139,8 +139,8 @@
void setTrackLinkCmd() ;
bool setPeriodicSrv(pr2_srvs::SetPeriodicCmd::Request &req,
pr2_srvs::SetPeriodicCmd::Response &res);
- bool setTrajSrv(pr2_mechanism_controllers::SetLaserTrajCmd::Request &req,
- pr2_mechanism_controllers::SetLaserTrajCmd::Response &res);
+ bool setTrajSrv(pr2_srvs::SetLaserTrajCmd::Request &req,
+ pr2_srvs::SetLaserTrajCmd::Response &res);
private:
@@ -152,7 +152,7 @@
double prev_profile_time_ ; //!< The time in the current profile when update() was last called
pr2_msgs::PeriodicCmd cmd_ ;
- pr2_mechanism_controllers::LaserTrajCmd traj_cmd_ ;
+ pr2_msgs::LaserTrajCmd traj_cmd_ ;
pr2_mechanism_controllers::TrackLinkCmd track_link_cmd_ ;
pr2_mechanism_controllers::LaserScannerSignal m_scanner_signal_ ; //!< Stores the message that we want to send at the end of each sweep, and halfway through each sweep
Deleted: pkg/trunk/controllers/pr2_mechanism_controllers/msg/LaserTrajCmd.msg
===================================================================
--- pkg/trunk/controllers/pr2_mechanism_controllers/msg/LaserTrajCmd.msg 2009-05-15 18:10:16 UTC (rev 15528)
+++ pkg/trunk/controllers/pr2_mechanism_controllers/msg/LaserTrajCmd.msg 2009-05-15 18:26:07 UTC (rev 15529)
@@ -1,6 +0,0 @@
-Header header
-string profile # options are currently "linear" or "linear_blended"
-float64[] pos # Laser positions
-float64[] time # Times to reach laser positions in seconds
-float64 max_rate # Set to -1 to use default
-float64 max_accel # Set to -1 to use default
\ No newline at end of file
Modified: pkg/trunk/controllers/pr2_mechanism_controllers/src/laser_scanner_traj_controller.cpp
===================================================================
--- pkg/trunk/controllers/pr2_mechanism_controllers/src/laser_scanner_traj_controller.cpp 2009-05-15 18:10:16 UTC (rev 15528)
+++ pkg/trunk/controllers/pr2_mechanism_controllers/src/laser_scanner_traj_controller.cpp 2009-05-15 18:26:07 UTC (rev 15529)
@@ -297,7 +297,7 @@
}
}
-bool LaserScannerTrajController::setTrajCmd(const pr2_mechanism_controllers::LaserTrajCmd& traj_cmd)
+bool LaserScannerTrajController::setTrajCmd(const pr2_msgs::LaserTrajCmd& traj_cmd)
{
if (traj_cmd.profile == "linear" ||
traj_cmd.profile == "blended_linear")
@@ -500,8 +500,8 @@
c_.setPeriodicCmd(cmd_) ;
}
-bool LaserScannerTrajControllerNode::setTrajSrv(pr2_mechanism_controllers::SetLaserTrajCmd::Request &req,
- pr2_mechanism_controllers::SetLaserTrajCmd::Response &res)
+bool LaserScannerTrajControllerNode::setTrajSrv(pr2_srvs::SetLaserTrajCmd::Request &req,
+ pr2_srvs::SetLaserTrajCmd::Response &res)
{
ROS_INFO("LaserScannerTrajControllerNode: set traj command");
Deleted: pkg/trunk/controllers/pr2_mechanism_controllers/srv/SetLaserTrajCmd.srv
===================================================================
--- pkg/trunk/controllers/pr2_mechanism_controllers/srv/SetLaserTrajCmd.srv 2009-05-15 18:10:16 UTC (rev 15528)
+++ pkg/trunk/controllers/pr2_mechanism_controllers/srv/SetLaserTrajCmd.srv 2009-05-15 18:26:07 UTC (rev 15529)
@@ -1,3 +0,0 @@
-LaserTrajCmd command
----
-time start_time
\ No newline at end of file
Modified: pkg/trunk/highlevel/pr2_robot_actions/src/set_laser_tilt.cpp
===================================================================
--- pkg/trunk/highlevel/pr2_robot_actions/src/set_laser_tilt.cpp 2009-05-15 18:10:16 UTC (rev 15528)
+++ pkg/trunk/highlevel/pr2_robot_actions/src/set_laser_tilt.cpp 2009-05-15 18:26:07 UTC (rev 15529)
@@ -36,42 +36,47 @@
*********************************************************************/
#include <robot_actions/action.h>
#include <robot_actions/action_runner.h>
-#include <pr2_srvs/SetPeriodicCmd.h>
-#include <pr2_msgs/PeriodicCmd.h>
+#include <pr2_msgs/LaserTrajCmd.h>
+#include <pr2_srvs/SetLaserTrajCmd.h>
#include <pr2_robot_actions/SetLaserTiltState.h>
+#include <std_msgs/Empty.h>
+#include <robot_actions/NoArgumentsActionState.h>
#include <string>
#include <ros/ros.h>
namespace pr2_robot_actions {
- class SetLaserTilt : public robot_actions::Action<pr2_msgs::PeriodicCmd, pr2_msgs::PeriodicCmd> {
- public:
- SetLaserTilt(std::string laser_controller): robot_actions::Action<pr2_msgs::PeriodicCmd, pr2_msgs::PeriodicCmd>("set_laser_tilt"),
- laser_controller_(laser_controller){}
+ class SetLaserTilt : public robot_actions::Action<std_msgs::Empty, std_msgs::Empty> {
+ public:
+ SetLaserTilt(std::string laser_controller): robot_actions::Action<std_msgs::Empty, std_msgs::Empty>("set_laser_tilt"),
+ laser_controller_(laser_controller){}
- robot_actions::ResultStatus execute(const pr2_msgs::PeriodicCmd& goal, pr2_msgs::PeriodicCmd& feedback){
- pr2_srvs::SetPeriodicCmd::Request req_laser;
- pr2_srvs::SetPeriodicCmd::Response res_laser;
- req_laser.command = goal;
-
- if(!ros::service::call(laser_controller_ + "/set_periodic_cmd", req_laser, res_laser)){
- ROS_ERROR("Failed to start laser.");
- return robot_actions::ABORTED;
- }
-
- return robot_actions::SUCCESS;
-
+ robot_actions::ResultStatus execute(const std_msgs::Empty& empty, std_msgs::Empty& feedback){
+ pr2_srvs::SetLaserTrajCmd::Request req_laser;
+ pr2_srvs::SetLaserTrajCmd::Response res_laser;
+ req_laser.command.profile = "linear";
+ req_laser.command.max_rate = 5;
+ req_laser.command.max_accel = 5;
+ req_laser.command.pos.push_back(1.0); req_laser.command.pos.push_back(-0.7); req_laser.command.pos.push_back(1.0);
+ req_laser.command.time.push_back(0.0); req_laser.command.time.push_back(1.8); req_laser.command.time.push_back(2.025);
+ if(!ros::service::call(laser_controller_ + "/set_periodic_cmd", req_laser, res_laser)){
+ ROS_ERROR("Failed to start laser.");
+ return robot_actions::ABORTED;
}
-
- private:
- std::string laser_controller_;
+
+ return robot_actions::SUCCESS;
+
+ }
+
+ private:
+ std::string laser_controller_;
};
-
+
};
int main(int argc, char** argv){
ros::init(argc, argv, "set_laser_tilt");
pr2_robot_actions::SetLaserTilt setter("laser_tilt_controller");
robot_actions::ActionRunner runner(20.0);
- runner.connect<pr2_msgs::PeriodicCmd, pr2_robot_actions::SetLaserTiltState, pr2_msgs::PeriodicCmd>(setter);
+ runner.connect<std_msgs::Empty, robot_actions::NoArgumentsActionState, std_msgs::Empty>(setter);
runner.run();
ros::spin();
Copied: pkg/trunk/pr2_msgs/msg/LaserTrajCmd.msg (from rev 15517, pkg/trunk/controllers/pr2_mechanism_controllers/msg/LaserTrajCmd.msg)
===================================================================
--- pkg/trunk/pr2_msgs/msg/LaserTrajCmd.msg (rev 0)
+++ pkg/trunk/pr2_msgs/msg/LaserTrajCmd.msg 2009-05-15 18:26:07 UTC (rev 15529)
@@ -0,0 +1,6 @@
+Header header
+string profile # options are currently "linear" or "linear_blended"
+float64[] pos # Laser positions
+float64[] time # Times to reach laser positions in seconds
+float64 max_rate # Set to -1 to use default
+float64 max_accel # Set to -1 to use default
\ No newline at end of file
Copied: pkg/trunk/pr2_srvs/srv/SetLaserTrajCmd.srv (from rev 15517, pkg/trunk/controllers/pr2_mechanism_controllers/srv/SetLaserTrajCmd.srv)
===================================================================
--- pkg/trunk/pr2_srvs/srv/SetLaserTrajCmd.srv (rev 0)
+++ pkg/trunk/pr2_srvs/srv/SetLaserTrajCmd.srv 2009-05-15 18:26:07 UTC (rev 15529)
@@ -0,0 +1,3 @@
+pr2_msgs/LaserTrajCmd command
+---
+time start_time
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <stu...@us...> - 2009-05-15 18:50:09
|
Revision: 15533
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15533&view=rev
Author: stuglaser
Date: 2009-05-15 18:49:59 +0000 (Fri, 15 May 2009)
Log Message:
-----------
Very slow, but accurate, plugging in, commanding velocities by leading the position command.
Modified Paths:
--------------
pkg/trunk/controllers/robot_mechanism_controllers/include/robot_mechanism_controllers/cartesian_hybrid_controller.h
pkg/trunk/controllers/robot_mechanism_controllers/src/cartesian_hybrid_controller.cpp
pkg/trunk/highlevel/plugs/plugs_core/include/plugs_core/action_plug_in.h
pkg/trunk/highlevel/plugs/plugs_core/src/action_plug_in.cpp
pkg/trunk/robot_descriptions/pr2/pr2_default_controllers/gains/arm_pose.yaml
pkg/trunk/robot_descriptions/pr2/pr2_default_controllers/gains/arm_twist.yaml
Modified: pkg/trunk/controllers/robot_mechanism_controllers/include/robot_mechanism_controllers/cartesian_hybrid_controller.h
===================================================================
--- pkg/trunk/controllers/robot_mechanism_controllers/include/robot_mechanism_controllers/cartesian_hybrid_controller.h 2009-05-15 18:46:26 UTC (rev 15532)
+++ pkg/trunk/controllers/robot_mechanism_controllers/include/robot_mechanism_controllers/cartesian_hybrid_controller.h 2009-05-15 18:49:59 UTC (rev 15533)
@@ -41,6 +41,7 @@
#include <tf/message_notifier.h>
#include "realtime_tools/realtime_publisher.h"
#include "filters/filter_chain.h"
+#include "control_toolbox/pid_gains_setter.h"
#include "robot_srvs/SetPoseStamped.h"
#include "manipulation_msgs/TaskFrameFormalism.h"
@@ -119,6 +120,10 @@
unsigned int loop_count_;
boost::scoped_ptr<realtime_tools::RealtimePublisher<robot_mechanism_controllers::CartesianHybridState> > pub_state_;
boost::scoped_ptr<realtime_tools::RealtimePublisher<tf::tfMessage> > pub_tf_;
+ control_toolbox::PidGainsSetter pose_pid_tuner_;
+ control_toolbox::PidGainsSetter pose_rot_pid_tuner_;
+ control_toolbox::PidGainsSetter twist_pid_tuner_;
+ control_toolbox::PidGainsSetter twist_rot_pid_tuner_;
};
}
Modified: pkg/trunk/controllers/robot_mechanism_controllers/src/cartesian_hybrid_controller.cpp
===================================================================
--- pkg/trunk/controllers/robot_mechanism_controllers/src/cartesian_hybrid_controller.cpp 2009-05-15 18:46:26 UTC (rev 15532)
+++ pkg/trunk/controllers/robot_mechanism_controllers/src/cartesian_hybrid_controller.cpp 2009-05-15 18:49:59 UTC (rev 15533)
@@ -243,8 +243,14 @@
{
if (mode_[i] == manipulation_msgs::TaskFrameFormalism::POSITION)
pose_desi_[i] = setpoint_[i];
+ else// if (mode_[i] == manipulation_msgs::TaskFrameFormalism::VELOCITY)
+ {
+ pose_desi_[i] += setpoint_[i] * dt;
+ }
+ /*
else
pose_desi_[i] = 0.0;
+ */
}
// Computes the pose error
@@ -265,7 +271,8 @@
twist_desi_[i] = pose_pids_[i].updatePid(pose_error_[i], twist_meas_filtered_[i], dt);
break;
case manipulation_msgs::TaskFrameFormalism::VELOCITY:
- twist_desi_[i] = setpoint_[i];
+ //twist_desi_[i] = setpoint_[i];
+ twist_desi_[i] = pose_pids_[i].updatePid(pose_error_[i], twist_meas_filtered_[i] - setpoint_[i], dt);
break;
}
}
@@ -297,8 +304,17 @@
switch (mode_[i])
{
case manipulation_msgs::TaskFrameFormalism::POSITION:
+ /*
+ if (i >= 3) {
+ wrench_desi_[i] = twist_desi_[i];
+ break;
+ }
+ */
+ wrench_desi_[i] = twist_desi_[i];
+ break;
case manipulation_msgs::TaskFrameFormalism::VELOCITY:
- wrench_desi_[i] = twist_pids_[i].updatePid(twist_error_[i], dt);
+ //wrench_desi_[i] = twist_pids_[i].updatePid(twist_error_[i], dt);
+ wrench_desi_[i] = twist_desi_[i];
break;
case manipulation_msgs::TaskFrameFormalism::FORCE:
wrench_desi_[i] = setpoint_[i];
@@ -416,6 +432,19 @@
node->advertiseService(name_ + "/set_tool_frame", &CartesianHybridControllerNode::setToolFrame, this);
+ for (int i = 0; i < 3; ++i)
+ pose_pid_tuner_.add(c_.pose_pids_ + i);
+ pose_pid_tuner_.advertise(name_ + "/pose");
+ for (int i = 3; i < 6; ++i)
+ pose_rot_pid_tuner_.add(c_.pose_pids_ + i);
+ pose_rot_pid_tuner_.advertise(name_ + "/pose_rot");
+ for (int i = 0; i < 3; ++i)
+ twist_pid_tuner_.add(c_.twist_pids_ + i);
+ twist_pid_tuner_.advertise(name_ + "/twist");
+ for (int i = 3; i < 6; ++i)
+ twist_rot_pid_tuner_.add(c_.twist_pids_ + i);
+ twist_rot_pid_tuner_.advertise(name_ + "/twist_rot");
+
return true;
}
Modified: pkg/trunk/highlevel/plugs/plugs_core/include/plugs_core/action_plug_in.h
===================================================================
--- pkg/trunk/highlevel/plugs/plugs_core/include/plugs_core/action_plug_in.h 2009-05-15 18:46:26 UTC (rev 15532)
+++ pkg/trunk/highlevel/plugs/plugs_core/include/plugs_core/action_plug_in.h 2009-05-15 18:49:59 UTC (rev 15533)
@@ -53,9 +53,6 @@
#include <tf/message_notifier.h>
#include "boost/scoped_ptr.hpp"
-//detecton
-#include "outlet_detection/plug_tracker.h"
-
// Robot Action Stuff
#include <robot_actions/action.h>
@@ -87,12 +84,20 @@
std::string arm_controller_;
- PlugTracker::PlugTracker* detector_;
std_msgs::Empty empty_;
boost::scoped_ptr<tf::MessageNotifier<robot_msgs::PoseStamped> > notifier_;
boost::scoped_ptr<tf::TransformListener> TF_;
+
+ // TODO: mutex
+ ros::Time vision_estimate_time_;
+ tf::Pose outlet_pose_mech_; // Outlet pose in the mechanism "frame"
+
+
+
+
+
double last_standoff_;
ros::Time g_started_inserting_, g_started_forcing_, g_stopped_forcing_;
int g_state_;
Modified: pkg/trunk/highlevel/plugs/plugs_core/src/action_plug_in.cpp
===================================================================
--- pkg/trunk/highlevel/plugs/plugs_core/src/action_plug_in.cpp 2009-05-15 18:46:26 UTC (rev 15532)
+++ pkg/trunk/highlevel/plugs/plugs_core/src/action_plug_in.cpp 2009-05-15 18:49:59 UTC (rev 15533)
@@ -46,8 +46,7 @@
robot_actions::Action<std_msgs::Empty, std_msgs::Empty>("plug_in"),
action_name_("plug_in"),
node_(node),
- arm_controller_("r_arm_hybrid_controller"),
- detector_(NULL)
+ arm_controller_("r_arm_hybrid_controller")
{
node_.setParam("~roi_policy", "LastImageLocation");
node_.setParam("~display", 0);
@@ -66,9 +65,6 @@
node_.advertise<manipulation_msgs::TaskFrameFormalism>(arm_controller_ + "/command", 2);
- //detector_ = new PlugTracker::PlugTracker(node);
- //detector_->deactivate();
-
TF_.reset(new tf::TransformListener(node));
notifier_.reset(new tf::MessageNotifier<robot_msgs::PoseStamped>(
TF_.get(), &node,
@@ -82,14 +78,11 @@
PlugInAction::~PlugInAction()
{
- if(detector_) delete detector_;
};
robot_actions::ResultStatus PlugInAction::execute(const std_msgs::Empty& empty, std_msgs::Empty& feedback)
{
reset();
- if (detector_)
- detector_->activate();
return waitForDeactivation(feedback);
}
@@ -122,8 +115,6 @@
if (isPreemptRequested()){
deactivate(robot_actions::PREEMPTED, empty_);
- if (detector_)
- detector_->deactivate();
return;
}
tff_msg_.header.stamp = msg->header.stamp;
@@ -202,7 +193,7 @@
{
tf::Vector3 offset = viz_offset.getOrigin() - viz_offset_desi.getOrigin();
ROS_DEBUG("%s: Offset: (% 0.3lf, % 0.3lf, % 0.3lf)", action_name_.c_str(), offset.x(), offset.y(), offset.z());
- if (g_started_inserting_ + ros::Duration(5.0) < ros::Time::now())
+ if (g_started_inserting_ + ros::Duration(30.0) < ros::Time::now())
{
if (offset.x() > SUCCESS_THRESHOLD) // if (in_outlet)
{
@@ -265,8 +256,6 @@
ROS_DEBUG("HOLDING");
hold();
deactivate(robot_actions::SUCCESS, empty_);
- if (detector_)
- detector_->deactivate();
break;
}
}
@@ -332,7 +321,7 @@
tff_msg_.mode.rot.x = 3;
tff_msg_.mode.rot.y = 3;
tff_msg_.mode.rot.z = 3;
- tff_msg_.value.vel.x = 0.3;
+ tff_msg_.value.vel.x = 0.001;
tff_msg_.value.vel.y = mech_offset_desi_.getOrigin().y();
tff_msg_.value.vel.z = mech_offset_desi_.getOrigin().z();
mech_offset_desi_.getBasis().getEulerZYX(tff_msg_.value.rot.z, tff_msg_.value.rot.y, tff_msg_.value.rot.x);
Modified: pkg/trunk/robot_descriptions/pr2/pr2_default_controllers/gains/arm_pose.yaml
===================================================================
--- pkg/trunk/robot_descriptions/pr2/pr2_default_controllers/gains/arm_pose.yaml 2009-05-15 18:46:26 UTC (rev 15532)
+++ pkg/trunk/robot_descriptions/pr2/pr2_default_controllers/gains/arm_pose.yaml 2009-05-15 18:49:59 UTC (rev 15533)
@@ -1,12 +1,12 @@
fb_trans:
- p: 60
- i: 80
- d: 0
- i_clamp: 0.2
+ p: 200
+ i: 100
+ d: 0.15
+ i_clamp: 10
fb_rot:
- p: 10
+ p: 15
i: 0
- d: 0
- i_clamp: 0.4
+ d: 0.15
+ i_clamp: 0.0
ff_trans: 0.0
ff_rot: 0.0
Modified: pkg/trunk/robot_descriptions/pr2/pr2_default_controllers/gains/arm_twist.yaml
===================================================================
--- pkg/trunk/robot_descriptions/pr2/pr2_default_controllers/gains/arm_twist.yaml 2009-05-15 18:46:26 UTC (rev 15532)
+++ pkg/trunk/robot_descriptions/pr2/pr2_default_controllers/gains/arm_twist.yaml 2009-05-15 18:49:59 UTC (rev 15533)
@@ -4,7 +4,8 @@
d: 0.0
i_clamp: 1.0
fb_rot:
- p: 1.5
+ p: 9999999991.5
+ _p: 1.5
i: 0.0
d: 0.0
i_clamp: 0.2
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rob...@us...> - 2009-05-18 16:44:33
|
Revision: 15595
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15595&view=rev
Author: rob_wheeler
Date: 2009-05-18 16:42:53 +0000 (Mon, 18 May 2009)
Log Message:
-----------
- use boost accumulators to gather max and mean stats.
- format diagnostic messages
- report pre-update, update, and post-update times in mechanism_control diags
Modified Paths:
--------------
pkg/trunk/drivers/motor/ethercat_hardware/CMakeLists.txt
pkg/trunk/drivers/motor/ethercat_hardware/include/ethercat_hardware/ethercat_hardware.h
pkg/trunk/drivers/motor/ethercat_hardware/src/ethercat_hardware.cpp
pkg/trunk/mechanism/mechanism_control/include/mechanism_control/mechanism_control.h
pkg/trunk/mechanism/mechanism_control/src/mechanism_control.cpp
Modified: pkg/trunk/drivers/motor/ethercat_hardware/CMakeLists.txt
===================================================================
--- pkg/trunk/drivers/motor/ethercat_hardware/CMakeLists.txt 2009-05-18 16:32:29 UTC (rev 15594)
+++ pkg/trunk/drivers/motor/ethercat_hardware/CMakeLists.txt 2009-05-18 16:42:53 UTC (rev 15595)
@@ -8,5 +8,8 @@
add_definitions(-Wall)
rospack_add_library(ethercat_hardware src/ethercat_hardware.cpp src/wg0x.cpp src/ek1122.cpp src/wg014.cpp)
+rospack_remove_compile_flags(ethercat_hardware -W)
+
rospack_add_executable(motorconf src/motorconf.cpp src/ethercat_hardware.cpp src/wg0x.cpp src/ek1122.cpp src/wg014.cpp)
target_link_libraries(motorconf loki)
+rospack_remove_compile_flags(motorconf -W)
Modified: pkg/trunk/drivers/motor/ethercat_hardware/include/ethercat_hardware/ethercat_hardware.h
===================================================================
--- pkg/trunk/drivers/motor/ethercat_hardware/include/ethercat_hardware/ethercat_hardware.h 2009-05-18 16:32:29 UTC (rev 15594)
+++ pkg/trunk/drivers/motor/ethercat_hardware/include/ethercat_hardware/ethercat_hardware.h 2009-05-18 16:42:53 UTC (rev 15595)
@@ -47,6 +47,12 @@
#include <realtime_tools/realtime_publisher.h>
+#include <boost/accumulators/accumulators.hpp>
+#include <boost/accumulators/statistics/stats.hpp>
+#include <boost/accumulators/statistics/max.hpp>
+#include <boost/accumulators/statistics/mean.hpp>
+using namespace boost::accumulators;
+
class EthercatHardware
{
public:
@@ -103,12 +109,11 @@
realtime_tools::RealtimePublisher<robot_msgs::DiagnosticMessage> publisher_;
struct {
- struct {
- double roundtrip_;
- } iteration_[1000];
+ accumulator_set<double, stats<tag::max, tag::mean> > acc_;
double max_roundtrip_;
int txandrx_errors_;
} diagnostics_;
+ double last_published_;
vector<robot_msgs::DiagnosticStatus> statuses_;
vector<robot_msgs::DiagnosticValue> values_;
Modified: pkg/trunk/drivers/motor/ethercat_hardware/src/ethercat_hardware.cpp
===================================================================
--- pkg/trunk/drivers/motor/ethercat_hardware/src/ethercat_hardware.cpp 2009-05-18 16:32:29 UTC (rev 15594)
+++ pkg/trunk/drivers/motor/ethercat_hardware/src/ethercat_hardware.cpp 2009-05-18 16:42:53 UTC (rev 15595)
@@ -40,10 +40,6 @@
EthercatHardware::EthercatHardware() :
hw_(0), ni_(0), current_buffer_(0), last_buffer_(0), buffer_size_(0), halt_motors_(true), reset_state_(0), publisher_("/diagnostics", 1)
{
- for (uint32_t i = 0; i < sizeof(diagnostics_.iteration_)/sizeof(diagnostics_.iteration_[0]); ++i)
- {
- diagnostics_.iteration_[i].roundtrip_ = 0;
- }
diagnostics_.max_roundtrip_ = 0;
diagnostics_.txandrx_errors_ = 0;
}
@@ -168,6 +164,7 @@
// Create HardwareInterface
hw_ = new HardwareInterface(num_actuators);
hw_->current_time_ = realtime_gettime();
+ last_published_ = hw_->current_time_;
// Initialize slaves
set<string> actuator_names;
@@ -238,6 +235,18 @@
publishDiagnostics();
}
+#define ADD_STRING_FMT(lab, fmt, ...) \
+ s.label = (lab); \
+ { char buf[1024]; \
+ snprintf(buf, sizeof(buf), fmt, ##__VA_ARGS__); \
+ s.value = buf; \
+ } \
+ strings_.push_back(s)
+#define ADD_STRING(lab, val) \
+ s.label = (lab); \
+ s.value = (val); \
+ strings_.push_back(s)
+
void EthercatHardware::publishDiagnostics()
{
// Publish status of EtherCAT master
@@ -259,44 +268,21 @@
status.message = "OK";
}
- // Motors halted?
- s.value = halt_motors_ ? "true" : "false";
- s.label = "Motors halted";
- strings_.push_back(s);
+ ADD_STRING("Motors halted", halt_motors_ ? "true" : "false");
+ ADD_STRING_FMT("EtherCAT devices", "%d", num_slaves_);
+ ADD_STRING("Interface", interface_);
+ ADD_STRING_FMT("Reset state", "%d", reset_state_);
- // Num devices
- v.value = num_slaves_;
- v.label = "EtherCAT devices";
- values_.push_back(v);
-
- // Interface
- s.value = interface_;
- s.label = "Interface";
- strings_.push_back(s);
-
- // Interface
- v.value = reset_state_;
- v.label = "Reset state";
- values_.push_back(v);
-
// Roundtrip
- double total = 0;
- for (int i = 0; i < 1000; ++i)
- {
- total += diagnostics_.iteration_[i].roundtrip_;
- diagnostics_.max_roundtrip_ = max(diagnostics_.max_roundtrip_, diagnostics_.iteration_[i].roundtrip_);
- }
- v.value = total / 1000.0 * 1e6;
- v.label = "Average roundtrip time";
- values_.push_back(v);
+ diagnostics_.max_roundtrip_ = std::max(diagnostics_.max_roundtrip_,
+ extract_result<tag::max>(diagnostics_.acc_));
+ ADD_STRING_FMT("Average roundtrip time (us)", "%.4f", extract_result<tag::mean>(diagnostics_.acc_) * 1e6);
- v.value = diagnostics_.max_roundtrip_ * 1e6;
- v.label = "Maximum roundtrip time";
- values_.push_back(v);
+ accumulator_set<double, stats<tag::max, tag::mean> > blank;
+ diagnostics_.acc_ = blank;
- v.value = diagnostics_.txandrx_errors_;
- v.label = "EtherCAT txandrx errors";
- values_.push_back(v);
+ ADD_STRING_FMT("Maximum roundtrip time (us)", "%.4f", diagnostics_.max_roundtrip_ * 1e6);
+ ADD_STRING_FMT("EtherCAT txandrx errors", "%d", diagnostics_.txandrx_errors_);
status.set_values_vec(values_);
status.set_strings_vec(strings_);
@@ -322,8 +308,6 @@
{
unsigned char *current, *last;
- static int count = 0;
-
// Convert HW Interface commands to MCB-specific buffers
current = current_buffer_;
@@ -367,7 +351,7 @@
if (!em_->txandrx_PD(buffer_size_, current_buffer_)) {
++diagnostics_.txandrx_errors_;
}
- diagnostics_.iteration_[count].roundtrip_ = realtime_gettime() - start;
+ diagnostics_.acc_(realtime_gettime() - start);
// Convert status back to HW Interface
current = current_buffer_;
@@ -397,10 +381,10 @@
current_buffer_ = last_buffer_;
last_buffer_ = tmp;
- if (++count == 1000)
+ if ((hw_->current_time_ - last_published_) > 1.0)
{
+ last_published_ = hw_->current_time_;
publishDiagnostics();
- count = 0;
}
}
Modified: pkg/trunk/mechanism/mechanism_control/include/mechanism_control/mechanism_control.h
===================================================================
--- pkg/trunk/mechanism/mechanism_control/include/mechanism_control/mechanism_control.h 2009-05-18 16:32:29 UTC (rev 15594)
+++ pkg/trunk/mechanism/mechanism_control/include/mechanism_control/mechanism_control.h 2009-05-18 16:42:53 UTC (rev 15595)
@@ -130,13 +130,11 @@
double, boost::accumulators::stats<boost::accumulators::tag::max,
boost::accumulators::tag::mean,
boost::accumulators::tag::variance> > TimeStatistics;
- struct Diagnostics {
+ struct Statistics {
TimeStatistics acc;
double max;
boost::circular_buffer<double> max1;
-
-
- Diagnostics() : max(0), max1(60) {}
+ Statistics() : max(0), max1(60) {}
};
enum {EMPTY, INITIALIZED = 1, RUNNING};
@@ -144,24 +142,26 @@
std::string name;
boost::shared_ptr<controller::Controller> c;
int state;
- boost::shared_ptr<Diagnostics> diagnostics;
+ boost::shared_ptr<Statistics> stats;
- ControllerSpec() : state(EMPTY), diagnostics(new Diagnostics) {}
+ ControllerSpec() : state(EMPTY), stats(new Statistics) {}
ControllerSpec(const ControllerSpec &spec)
- : name(spec.name), c(spec.c), state(spec.state), diagnostics(spec.diagnostics) {}
+ : name(spec.name), c(spec.c), state(spec.state), stats(spec.stats) {}
};
boost::mutex controllers_lock_;
std::vector<ControllerSpec> controllers_lists_[2];
int current_controllers_list_, used_by_realtime_;
- Diagnostics diagnostics_;
+ Statistics pre_update_stats_;
+ Statistics update_stats_;
+ Statistics post_update_stats_;
realtime_tools::RealtimePublisher<robot_msgs::DiagnosticMessage> publisher_;
void publishDiagnostics();
std::vector<controller::Controller*> start_request_, stop_request_;
bool please_switch_;
- int loop_count_;
+ double last_published_;
};
/*
Modified: pkg/trunk/mechanism/mechanism_control/src/mechanism_control.cpp
===================================================================
--- pkg/trunk/mechanism/mechanism_control/src/mechanism_control.cpp 2009-05-18 16:32:29 UTC (rev 15594)
+++ pkg/trunk/mechanism/mechanism_control/src/mechanism_control.cpp 2009-05-18 16:42:53 UTC (rev 15595)
@@ -47,7 +47,7 @@
start_request_(0),
stop_request_(0),
please_switch_(false),
- loop_count_(0)
+ last_published_(realtime_gettime())
{
model_.hw_ = hw;
mechanism_control_ = this;
@@ -108,9 +108,9 @@
if (controllers[i].state != EMPTY)
{
++active;
- double m = extract_result<tag::max>(controllers[i].diagnostics->acc);
- controllers[i].diagnostics->max1.push_back(m);
- controllers[i].diagnostics->max = std::max(m, controllers[i].diagnostics->max);
+ double m = extract_result<tag::max>(controllers[i].stats->acc);
+ controllers[i].stats->max1.push_back(m);
+ controllers[i].stats->max = std::max(m, controllers[i].stats->max);
std::string state;
if (controllers[i].c->state_ == RUNNING)
state = "Running";
@@ -120,26 +120,35 @@
state = "Unknown";
ADD_STRING_FMT(controllers[i].name,
"%.4f (avg) %.4f (stdev) %.4f (max) %.4f (1-min max) %.4f (life max) %s (state)",
- mean(controllers[i].diagnostics->acc)*1e6,
- sqrt(variance(controllers[i].diagnostics->acc))*1e6,
+ mean(controllers[i].stats->acc)*1e6,
+ sqrt(variance(controllers[i].stats->acc))*1e6,
m*1e6,
- *std::max_element(controllers[i].diagnostics->max1.begin(), controllers[i].diagnostics->max1.end())*1e6,
- controllers[i].diagnostics->max*1e6,
+ *std::max_element(controllers[i].stats->max1.begin(), controllers[i].stats->max1.end())*1e6,
+ controllers[i].stats->max*1e6,
state.c_str());
- controllers[i].diagnostics->acc = blank_statistics; // clear
+ controllers[i].stats->acc = blank_statistics; // clear
}
}
- double m = extract_result<tag::max>(diagnostics_.acc);
- diagnostics_.max1.push_back(m);
- diagnostics_.max = std::max(m, diagnostics_.max);
- ADD_STRING_FMT("Overall", "%.4f (avg) %.4f (stdev) %.4f (max) %.4f (1-min max) %.4f (life max)",
- mean(diagnostics_.acc)*1e6,
- sqrt(variance(diagnostics_.acc))*1e6,
- m*1e6,
- *std::max_element(diagnostics_.max1.begin(), diagnostics_.max1.end())*1e6,
- diagnostics_.max*1e6);
+#define REPORT_STATS(stats_, label) \
+ { \
+ double m = extract_result<tag::max>(stats_.acc); \
+ stats_.max1.push_back(m); \
+ stats_.max = std::max(m, stats_.max); \
+ ADD_STRING_FMT(label, "%.4f (avg) %.4f (stdev) %.4f (max) %.4f (1-min max) %.4f (life max)", \
+ mean(stats_.acc)*1e6, \
+ sqrt(variance(stats_.acc))*1e6, \
+ m*1e6, \
+ *std::max_element(stats_.max1.begin(), stats_.max1.end())*1e6, \
+ stats_.max*1e6); \
+ stats_.acc = blank_statistics; \
+ }
+
+ REPORT_STATS(pre_update_stats_, "Before Update");
+ REPORT_STATS(update_stats_, "Update");
+ REPORT_STATS(post_update_stats_, "After Update");
+
ADD_STRING_FMT("Active controllers", "%d", active);
status.set_values_vec(values);
@@ -148,7 +157,6 @@
publisher_.msg_.set_status_vec(statuses);
publisher_.unlockAndPublish();
- diagnostics_.acc = blank_statistics; // clear
}
}
@@ -158,12 +166,14 @@
used_by_realtime_ = current_controllers_list_;
std::vector<ControllerSpec> &controllers = controllers_lists_[used_by_realtime_];
+ double start = realtime_gettime();
state_->propagateState();
state_->zeroCommands();
+ double start_update = realtime_gettime();
+ pre_update_stats_.acc(start_update - start);
// Update all controllers
// Start with controller that was last added
- double start_update = realtime_gettime();
for (int i=controllers.size()-1; i>=0; i--)
{
if (controllers[i].state != EMPTY)
@@ -176,19 +186,21 @@
double start = realtime_gettime();
controllers[i].c->updateRequest();
double end = realtime_gettime();
- controllers[i].diagnostics->acc(end - start);
+ controllers[i].stats->acc(end - start);
}
}
double end_update = realtime_gettime();
- diagnostics_.acc(end_update - start_update);
+ update_stats_.acc(end_update - start_update);
state_->enforceSafety();
state_->propagateEffort();
+ double end = realtime_gettime();
+ post_update_stats_.acc(end - end_update);
- if (++loop_count_ >= 1000)
+ if ((end - last_published_) > 1.0)
{
- loop_count_ = 0;
publishDiagnostics();
+ last_published_ = end;
}
// there are controllers to start/stop
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <stu...@us...> - 2009-05-20 07:38:20
|
Revision: 15769
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15769&view=rev
Author: stuglaser
Date: 2009-05-20 07:38:12 +0000 (Wed, 20 May 2009)
Log Message:
-----------
More controller tuning
Modified Paths:
--------------
pkg/trunk/controllers/robot_mechanism_controllers/src/cartesian_hybrid_controller.cpp
pkg/trunk/demos/milestone2/milestone2_actions/config/controllers.xml
Modified: pkg/trunk/controllers/robot_mechanism_controllers/src/cartesian_hybrid_controller.cpp
===================================================================
--- pkg/trunk/controllers/robot_mechanism_controllers/src/cartesian_hybrid_controller.cpp 2009-05-20 06:50:34 UTC (rev 15768)
+++ pkg/trunk/controllers/robot_mechanism_controllers/src/cartesian_hybrid_controller.cpp 2009-05-20 07:38:12 UTC (rev 15769)
@@ -542,6 +542,7 @@
tf::Transform tool_in_tip;
TF.transformPose(c_.chain_.getLinkName(-1), req.p, tool_in_tip_msg);
tf::PoseMsgToTF(tool_in_tip_msg.pose, tool_in_tip);
+ tool_in_tip.setOrigin(tf::Vector3(0,0,0));
tf::TransformTFToKDL(tool_in_tip, c_.tool_frame_offset_);
double rpy[3]; c_.tool_frame_offset_.M.GetRPY(rpy[0], rpy[1], rpy[2]);
ROS_INFO("(%.3lf, %.3lf, %.3lf)@(%.2lf, %.2lf, %.2lf)",
Modified: pkg/trunk/demos/milestone2/milestone2_actions/config/controllers.xml
===================================================================
--- pkg/trunk/demos/milestone2/milestone2_actions/config/controllers.xml 2009-05-20 06:50:34 UTC (rev 15768)
+++ pkg/trunk/demos/milestone2/milestone2_actions/config/controllers.xml 2009-05-20 07:38:12 UTC (rev 15769)
@@ -148,15 +148,15 @@
<param name="initial_mode" value="3" />
<group ns="pose">
<group ns="fb_trans">
- <param name="p" value="200" />
- <param name="i" value="100" />
- <param name="d" value="0.15" />
- <param name="i_clamp" value="10" />
+ <param name="p" value="400" />
+ <param name="i" value="400" />
+ <param name="d" value="15" />
+ <param name="i_clamp" value="4" />
</group>
<group ns="fb_rot">
<param name="p" value="15" />
<param name="i" value="0" />
- <param name="d" value="0.15" />
+ <param name="d" value="1.2" />
<param name="i_clamp" value="0" />
</group>
</group>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vij...@us...> - 2009-05-21 02:22:49
|
Revision: 15860
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=15860&view=rev
Author: vijaypradeep
Date: 2009-05-21 01:31:52 +0000 (Thu, 21 May 2009)
Log Message:
-----------
Now publish joint pos for beginning and end of scans. Resized viz markers
Modified Paths:
--------------
pkg/trunk/drivers/robot/pr2/dense_laser_assembler/scripts/assembler_node.py
pkg/trunk/drivers/robot/pr2/dense_laser_assembler/src/dense_laser_assembler/dense_laser_cache.py
pkg/trunk/vision/stereo_checkerboard_detector/src/stereo_checkerboard_node.cpp
Modified: pkg/trunk/drivers/robot/pr2/dense_laser_assembler/scripts/assembler_node.py
===================================================================
--- pkg/trunk/drivers/robot/pr2/dense_laser_assembler/scripts/assembler_node.py 2009-05-21 01:31:32 UTC (rev 15859)
+++ pkg/trunk/drivers/robot/pr2/dense_laser_assembler/scripts/assembler_node.py 2009-05-21 01:31:52 UTC (rev 15860)
@@ -37,6 +37,7 @@
import roslib; roslib.load_manifest('dense_laser_assembler')
import sys
import rospy
+import threading
from time import sleep
from laser_scan.msg import *
from robot_msgs.msg import *
@@ -52,17 +53,23 @@
image_pub = [ ]
test_pub = [ ]
+
def scan_callback(msg) :
+ req_lock.acquire()
laser_cache.add_scan(msg)
laser_cache.process_scans()
laser_cache.process_interval_reqs()
+ req_lock.release()
def mech_callback(msg) :
+ req_lock.acquire()
laser_cache.add_mech_state(msg)
laser_cache.process_scans()
laser_cache.process_interval_reqs()
+ req_lock.release()
def signal_callback(msg) :
+ req_lock.acquire()
global first_signal
global prev_signal
laser_cache.process_scans()
@@ -74,6 +81,7 @@
prev_signal = msg
print 'Got signal message!'
print ' Signal=%i' % msg.signal
+ req_lock.release()
def interval_req_callback(scans) :
@@ -92,7 +100,7 @@
print 'About to process cloud with %u scans' % len(scans)
# Sort by tilting joint angle
- sorted_scans = sorted(scans, lambda x,y:cmp(x.pos,y.pos))
+ sorted_scans = sorted(scans, lambda x,y:cmp(x.pos[0],y.pos[0]))
msg_header = roslib.msg.Header()
@@ -114,9 +122,10 @@
intensity_msg.data.layout = layout
range_msg.data.layout = layout
- joint_msg.data.layout = MultiArrayLayout([ MultiArrayDimension('rows', rows, rows),
- MultiArrayDimension('cols', 1, 1),
+ joint_msg.data.layout = MultiArrayLayout([ MultiArrayDimension('rows', rows, rows*2),
+ MultiArrayDimension('cols', 2, 2),
MultiArrayDimension('elem', 1, 1) ], 0 )
+ joint_msg.data.layout = layout
# Clear out data from the info message. (Keep everything except intensity and range data)
#info_msg.ranges = [ ]
@@ -128,32 +137,36 @@
for x in sorted_scans :
intensity_msg.data.data.extend(x.scan.intensities)
range_msg.data.data.extend(x.scan.ranges)
- joint_msg.data.data.append(x.pos)
+ joint_msg.data.data.extend(x.pos)
intensity_pub.publish(intensity_msg)
range_pub.publish(range_msg)
info_pub.publish(info_msg)
joint_pos_pub.publish(joint_msg)
- image = image_msgs.msg.Image()
+ #image = image_msgs.msg.Image()
- image.header = msg_header
- image.label = 'intensity'
- image.encoding = 'mono'
- image.depth = 'uint8'
- max_val = max(intensity_msg.data.data)
- image.uint8_data.data = "".join([chr(int(255*x/max_val)) for x in intensity_msg.data.data])
+ #image.header = msg_header
+ #image.label = 'intensity'
+ #image.encoding = 'mono'
+ #image.depth = 'uint8'
+ #max_val = max(joint_msg.data.data)
+ #min_val = min(joint_msg.data.data)
+ #image.uint8_data.data = "".join([chr(int(255*x/max_val)) for x in intensity_msg.data.data])
+ #image.uint8_data.data = "".join([chr(int(255*(x-min_val)/(max_val-min_val))) for x in joint_msg.data.data])
#image.uint8_data.data = ''
- image.uint8_data.layout = intensity_msg.data.layout
- image_pub.publish(image)
+ #image.uint8_data.layout = intensity_msg.data.layout
+ #image_pub.publish(image)
print ' Processed cloud with %u rays' % len(intensity_msg.data.data)
if __name__ == '__main__':
+ req_lock = threading.Lock()
+
print 'Initializing DenseLaserCache'
- laser_cache = DenseLaserCache(interval_req_callback, 50, 1000, 100) ;
+ laser_cache = DenseLaserCache(interval_req_callback, 200, 1000, 100) ;
print 'Done initializing'
rospy.init_node('dense_assembler', anonymous=False)
@@ -164,7 +177,7 @@
range_pub = rospy.Publisher("dense_tilt_scan/range", Float32MultiArrayStamped)
info_pub = rospy.Publisher("dense_tilt_scan/scan_info", LaserScan)
joint_pos_pub = rospy.Publisher("dense_tilt_scan/joint_info",Float32MultiArrayStamped)
- image_pub = rospy.Publisher("test_image", Image)
+ #image_pub = rospy.Publisher("test_image", Image)
scan_sub = rospy.Subscriber("tilt_scan", LaserScan, scan_callback)
Modified: pkg/trunk/drivers/robot/pr2/dense_laser_assembler/src/dense_laser_assembler/dense_laser_cache.py
===================================================================
--- pkg/trunk/drivers/robot/pr2/dense_laser_assembler/src/dense_laser_assembler/dense_laser_cache.py 2009-05-21 01:31:32 UTC (rev 15859)
+++ pkg/trunk/drivers/robot/pr2/dense_laser_assembler/src/dense_laser_assembler/dense_laser_cache.py 2009-05-21 01:31:52 UTC (rev 15860)
@@ -90,26 +90,32 @@
# then added to the laser_done queue
def process_scans(self) :
self._mech_lock.acquire()
- local_mech_q = self._mech_q
- self._mech_lock.release()
- if len(local_mech_q) > 0 :
- oldest_mech = local_mech_q[0]
- newest_mech = local_mech_q[-1]
+ if len(self._mech_q) > 0 :
+ oldest_mech_time = self._mech_q[0].header.stamp
+ newest_mech_time = self._mech_q[-1].header.stamp
else :
+ self._mech_lock.release()
return
-
+
self._laser_wait_lock.acquire()
- laser_pending_q = [x for x in self._laser_wait_q
- if x.header.stamp < newest_mech.header.stamp and
- x.header.stamp > oldest_mech.header.stamp]
+
+ scan_interval = [ (x.header.stamp,
+# x.header.stamp + rostime.Duration().from_seconds(0.0) )
+ x.header.stamp+rostime.Duration().from_seconds(len(x.ranges)*x.time_increment))
+ for x in self._laser_wait_q ]
+
+ laser_pending_q = [x for i,x in enumerate(self._laser_wait_q)
+ if scan_interval[i][1] < newest_mech_time and
+ scan_interval[i][0] > oldest_mech_time]
# Purge entire queue, except scans in the future
- self._laser_wait_q = [x for x in self._laser_wait_q
- if x.header.stamp >= newest_mech.header.stamp]
+ self._laser_wait_q = [x for i,x in enumerate(self._laser_wait_q)
+ if scan_interval[i][1] >= newest_mech_time]
+
self._laser_wait_lock.release()
# Now process the pending queue
- processed = [self._process_pending(x,local_mech_q) for x in laser_pending_q]
+ processed = [self._process_pending(x,self._mech_q) for x in laser_pending_q]
#if len(processed) > 0 :
# print 'processed %i scans' % len(processed)
@@ -119,26 +125,41 @@
while len(self._laser_done_q) > self._max_laser_done_len :
self._laser_done_q.pop(0)
self._laser_done_lock.release()
-
+ self._mech_lock.release()
# Process a scan, assuming that we have MechansimState data available before and after the scan
# \param scan_msg The message that we want to process
# \param the time-order queue of mechanism_state data
# \param The processed scan element
def _process_pending(self, scan_msg, mech_q):
+ scan_end = scan_msg.header.stamp + rostime.Duration().from_seconds(len(scan_msg.ranges)*scan_msg.time_increment)
mech_before = [x for x in mech_q if x.header.stamp < scan_msg.header.stamp][-1]
- mech_after = [x for x in mech_q if x.header.stamp > scan_msg.header.stamp][0]
+ mech_after = [x for x in mech_q if x.header.stamp > scan_end][0]
+ # Get the joint position and time associated with the MechanismState before the scan
ind = [x.name for x in mech_before.joint_states].index('laser_tilt_mount_joint')
pos_before = mech_before.joint_states[ind].position
- elapsed_before = (scan_msg.header.stamp - mech_before.header.stamp).to_seconds()
+ time_before= mech_before.header.stamp
+ # Get the joint position and time associated with the MechanismState before the scan
ind = [x.name for x in mech_after.joint_states].index('laser_tilt_mount_joint')
pos_after = mech_after.joint_states[ind].position
- elapsed_after = (mech_after.header.stamp - scan_msg.header.stamp).to_seconds()
+ time_after= mech_after.header.stamp
- elapsed_total = elapsed_before + elapsed_after
+ elapsed = (time_after - time_before).to_seconds()
+
# Linear interp
- pos_during = elapsed_after/elapsed_total*pos_before + elapsed_before/elapsed_total*pos_after
+ #pos_during = elapsed_after/elapsed_total*pos_before + elapsed_before/elapsed_total*pos_after
+
+ #key_rays = range(0, len(scan_msg.ranges))
+ key_rays = [0, len(scan_msg.ranges)-1]
+ time_during = [ scan_msg.header.stamp
+ + rostime.Duration().from_seconds(scan_msg.time_increment*x)
+ for x in key_rays]
+ time_normalized = [ (x - time_before).to_seconds()/elapsed for x in time_during]
+ if any( [x > 1 for x in time_normalized]) or any( [x < 0 for x in time_normalized] ) :
+ print 'Error computing normalized time'
+ pos_during = [ pos_before * (1-x) + pos_after * x for x in time_normalized ]
+
elem = LaserCacheElem()
elem.pos = pos_during
elem.scan = scan_msg
Modified: pkg/trunk/vision/stereo_checkerboard_detector/src/stereo_checkerboard_node.cpp
===================================================================
--- pkg/trunk/vision/stereo_checkerboard_detector/src/stereo_checkerboard_node.cpp 2009-05-21 01:31:32 UTC (rev 15859)
+++ pkg/trunk/vision/stereo_checkerboard_detector/src/stereo_checkerboard_node.cpp 2009-05-21 01:31:52 UTC (rev 15860)
@@ -156,8 +156,8 @@
marker.action = visualization_msgs::Marker::ADD ;
tf::PoseTFToMsg(pose, marker.pose) ;
marker.scale.x = .2 ;
- marker.scale.y = .03 ;
- marker.scale.z = .03 ;
+ marker.scale.y = .2 ;
+ marker.scale.z = .2 ;
marker.color.r = 1.0 ;
marker.color.g = 0.0 ;
marker.color.b = 0.0 ;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vij...@us...> - 2009-05-26 21:15:19
|
Revision: 16084
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=16084&view=rev
Author: vijaypradeep
Date: 2009-05-26 21:15:07 +0000 (Tue, 26 May 2009)
Log Message:
-----------
Minor changes to the laser imaging pipeline
Modified Paths:
--------------
pkg/trunk/drivers/robot/pr2/dense_laser_assembler/scripts/laser_image_node.py
pkg/trunk/vision/stereo_checkerboard_detector/src/checkerboard_corners_node.cpp
Modified: pkg/trunk/drivers/robot/pr2/dense_laser_assembler/scripts/laser_image_node.py
===================================================================
--- pkg/trunk/drivers/robot/pr2/dense_laser_assembler/scripts/laser_image_node.py 2009-05-26 21:14:48 UTC (rev 16083)
+++ pkg/trunk/drivers/robot/pr2/dense_laser_assembler/scripts/laser_image_node.py 2009-05-26 21:15:07 UTC (rev 16084)
@@ -53,6 +53,8 @@
def rescale(x, max_val) :
lower_lim = max_val*0.0
upper_lim = max_val*1.0
+ #lower_lim = 2000
+ #upper_lim = 3000
a = x - lower_lim
if a <= 0 :
return chr(0)
Modified: pkg/trunk/vision/stereo_checkerboard_detector/src/checkerboard_corners_node.cpp
===================================================================
--- pkg/trunk/vision/stereo_checkerboard_detector/src/checkerboard_corners_node.cpp 2009-05-26 21:14:48 UTC (rev 16083)
+++ pkg/trunk/vision/stereo_checkerboard_detector/src/checkerboard_corners_node.cpp 2009-05-26 21:15:07 UTC (rev 16084)
@@ -84,7 +84,7 @@
//bool found = helper_.getCorners(cv_image, cv_corners) ;
int num_corners ;
int found = cvFindChessboardCorners( cv_image, board_size_, &cv_corners[0], &num_corners,
- CV_CALIB_CB_ADAPTIVE_THRESH ) ;
+ CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_NORMALIZE_IMAGE) ;
if(found)
{
@@ -125,6 +125,13 @@
{
for (unsigned int i=0; i<cv_corners.size(); i++)
{
+ cvCircle(cv_debug, cvPoint(cv_corners[i].x, cv_corners[i].y), 2, cvScalar(0,255,0), 1) ;
+ }
+ }
+ else
+ {
+ for (unsigned int i=0; i<cv_corners.size(); i++)
+ {
cvCircle(cv_debug, cvPoint(cv_corners[i].x, cv_corners[i].y), 2, cvScalar(255,0,0), 1) ;
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mar...@us...> - 2009-05-27 01:01:51
|
Revision: 16117
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=16117&view=rev
Author: mariusmuja
Date: 2009-05-27 00:23:28 +0000 (Wed, 27 May 2009)
Log Message:
-----------
Changes to door_handle_detection
Modified Paths:
--------------
pkg/trunk/mapping/door_handle_detector/CMakeLists.txt
pkg/trunk/mapping/door_handle_detector/launch/door_handle_detector_bag.xml
pkg/trunk/mapping/door_handle_detector/src/handle_detector_vision.cpp
pkg/trunk/mapping/door_handle_detector/test/detect_handle_from_bag.py
pkg/trunk/mapping/door_handle_detector/test/test_setup.xml
pkg/trunk/robot_descriptions/pr2/pr2_configurations/pr2_alpha/prf.launch
pkg/trunk/robot_descriptions/pr2/pr2_configurations/pr2_alpha/prg.launch
pkg/trunk/vision/stereo_view/stereo_bag.launch
Modified: pkg/trunk/mapping/door_handle_detector/CMakeLists.txt
===================================================================
--- pkg/trunk/mapping/door_handle_detector/CMakeLists.txt 2009-05-27 00:12:25 UTC (rev 16116)
+++ pkg/trunk/mapping/door_handle_detector/CMakeLists.txt 2009-05-27 00:23:28 UTC (rev 16117)
@@ -46,21 +46,21 @@
rostest_door_handle(door_closed_conference_1)
rostest_door_handle(door_closed_josh)
rostest_door_handle(door_closed_kurt)
-rostest_door_handle(door_closed_sachin)
+#rostest_door_handle(door_closed_sachin)
rostest_door_handle(door_closed_tully)
# Currently failing tests below
#rostest_door_handle(door_closed_melonee)
#rostest_door_handle(door_closed_40)
-#rostest_door_handle(door_closed_alex)
+rostest_door_handle(door_closed_alex)
#rostest_door_handle(door_closed_blaise)
#rostest_door_handle(door_closed_conor)
#rostest_door_handle(door_closed_curt)
#rostest_door_handle(door_closed_daniel)
-#rostest_door_handle(door_closed_ethan)
-#rostest_door_handle(door_closed_john)
+rostest_door_handle(door_closed_ethan)
+rostest_door_handle(door_closed_john)
#rostest_door_handle(door_closed_melonee_2)
-#rostest_door_handle(door_closed_melonee_3)
+rostest_door_handle(door_closed_melonee_3)
#rostest_door_handle(door_closed_patrick)
-#rostest_door_handle(door_closed_victoria)
-#rostest_door_handle(door_closed_vijay)
+rostest_door_handle(door_closed_victoria)
+rostest_door_handle(door_closed_vijay)
Modified: pkg/trunk/mapping/door_handle_detector/launch/door_handle_detector_bag.xml
===================================================================
--- pkg/trunk/mapping/door_handle_detector/launch/door_handle_detector_bag.xml 2009-05-27 00:12:25 UTC (rev 16116)
+++ pkg/trunk/mapping/door_handle_detector/launch/door_handle_detector_bag.xml 2009-05-27 00:23:28 UTC (rev 16117)
@@ -5,6 +5,7 @@
<!-- Handle detector Camera -->
<node pkg="door_handle_detector" name="handle_detector_vision" type="handle_detector_vision" respawn="true" output="screen">
+ <param name="display" value="True" />
</node>
<!-- Handle detector Laser -->
Modified: pkg/trunk/mapping/door_handle_detector/src/handle_detector_vision.cpp
===================================================================
--- pkg/trunk/mapping/door_handle_detector/src/handle_detector_vision.cpp 2009-05-27 00:12:25 UTC (rev 16116)
+++ pkg/trunk/mapping/door_handle_detector/src/handle_detector_vision.cpp 2009-05-27 00:23:28 UTC (rev 16117)
@@ -75,6 +75,9 @@
using namespace std;
+#define ROSCONSOLE_MIN_SEVERITY ROSCONSOLE_SEVERITY_DEBUG
+
+
template <typename T>
class IndexedIplImage
{
@@ -521,84 +524,84 @@
bool handlePossibleHere(CvRect &r)
{
- tryShrinkROI(r);
+ tryShrinkROI(r);
- if (r.width<10 || r.height<10) {
- return false;
- }
+ if (r.width<10 || r.height<10) {
+ return false;
+ }
- cvSetImageROI(disp, r);
- cvSetImageCOI(disp, 1);
- int cnt;
- const float nz_fraction = 0.1;
- cnt = cvCountNonZero(disp);
- if (cnt < nz_fraction * r.width * r.height){
- cvResetImageROI(disp);
- cvSetImageCOI(disp, 0);
- return false;
- }
- cvResetImageROI(disp);
- cvSetImageCOI(disp, 0);
+ cvSetImageROI(disp, r);
+ cvSetImageCOI(disp, 1);
+ int cnt;
+ const float nz_fraction = 0.1;
+ cnt = cvCountNonZero(disp);
+ if (cnt < nz_fraction * r.width * r.height){
+ cvResetImageROI(disp);
+ cvSetImageCOI(disp, 0);
+ return false;
+ }
+ cvResetImageROI(disp);
+ cvSetImageCOI(disp, 0);
- // compute least-squares handle plane
- robot_msgs::PointCloud pc = filterPointCloud(r);
- CvScalar plane = estimatePlaneLS(pc);
+ // compute least-squares handle plane
+ robot_msgs::PointCloud pc = filterPointCloud(r);
+ CvScalar plane = estimatePlaneLS(pc);
- cnt = 0;
- double sum = 0;
- double max_dist = 0;
- for(size_t i = 0;i < pc.pts.size();++i){
- robot_msgs::Point32 p = pc.pts[i];
- double dist = fabs(plane.val[0] * p.x + plane.val[1] * p.y + plane.val[2] * p.z + plane.val[3]);
- max_dist = max(max_dist, dist);
- sum += dist;
- cnt++;
- }
- sum /= cnt;
- if(max_dist > 0.1 || sum < 0.002){
- ROS_DEBUG("Not enough depth variation for handle candidate: %f, %f\n", max_dist, sum);
- return false;
- }
+ cnt = 0;
+ double avg = 0;
+ double max_dist = 0;
+ for(size_t i = 0;i < pc.pts.size();++i){
+ robot_msgs::Point32 p = pc.pts[i];
+ double dist = fabs(plane.val[0] * p.x + plane.val[1] * p.y + plane.val[2] * p.z + plane.val[3]);
+ max_dist = max(max_dist, dist);
+ avg += dist;
+ cnt++;
+ }
+ avg /= cnt;
+ if(max_dist > 0.1 || avg < 0.001){
+ ROS_DEBUG("Not enough depth variation for handle candidate: %f, %f\n", max_dist, avg);
+ return false;
+ }
- double dx, dy;
- robot_msgs::Point p;
- getROIDimensions(r, dx, dy, p);
- if(dx > 0.25 || dy > 0.15){
- ROS_DEBUG("Too big, discarding");
- return false;
- }
+ double dx, dy;
+ robot_msgs::Point p;
+ getROIDimensions(r, dx, dy, p);
+ if(dx > 0.25 || dy > 0.15){
+ ROS_DEBUG("Too big, discarding");
+ return false;
+ }
- robot_msgs::PointStamped pin, pout;
- pin.header.frame_id = cloud.header.frame_id;
- pin.header.stamp = cloud.header.stamp;
- pin.point.x = p.x;
- pin.point.y = p.y;
- pin.point.z = p.z;
- try {
- tf_->transformPoint("base_footprint", pin, pout);
- }
- catch(tf::LookupException & ex){
- ROS_ERROR("Lookup exception: %s\n", ex.what());
- }
- catch(tf::ExtrapolationException & ex){
- ROS_DEBUG("Extrapolation exception: %s\n", ex.what());
- }
- catch(tf::ConnectivityException & ex){
- ROS_ERROR("Connectivity exception: %s\n", ex.what());
- }
+ robot_msgs::PointStamped pin, pout;
+ pin.header.frame_id = cloud.header.frame_id;
+ pin.header.stamp = cloud.header.stamp;
+ pin.point.x = p.x;
+ pin.point.y = p.y;
+ pin.point.z = p.z;
+ try {
+ tf_->transformPoint("base_footprint", pin, pout);
+ }
+ catch(tf::LookupException & ex){
+ ROS_ERROR("Lookup exception: %s\n", ex.what());
+ }
+ catch(tf::ExtrapolationException & ex){
+ ROS_DEBUG("Extrapolation exception: %s\n", ex.what());
+ }
+ catch(tf::ConnectivityException & ex){
+ ROS_ERROR("Connectivity exception: %s\n", ex.what());
+ }
- if(pout.point.z > max_height || pout.point.z < min_height){
- printf("Height not within admissable range: %f\n", pout.point.z);
- return false;
- }
+ if(pout.point.z > max_height || pout.point.z < min_height){
+ printf("Height not within admissable range: %f\n", pout.point.z);
+ return false;
+ }
- ROS_DEBUG("Handle at: (%d,%d,%d,%d)", r.x,r.y,r.width, r.height);
+ ROS_DEBUG("Handle at: (%d,%d,%d,%d)", r.x,r.y,r.width, r.height);
- return true;
+ return true;
}
/**
@@ -623,7 +626,7 @@
if(handlePossibleHere(*r)){
handle_rect.push_back(*r);
if(display){
- cvRectangle(left, cvPoint(r->x, r->y), cvPoint(r->x + r->width, r->y + r->height), CV_RGB(0, 255, 0));
+ cvRectangle(left, cvPoint(r->x, r->y), cvPoint(r->x + r->width, r->y + r->height), CV_RGB(255, 255, 0));
cvRectangle(disp, cvPoint(r->x, r->y), cvPoint(r->x + r->width, r->y + r->height), CV_RGB(255, 255, 255));
}
}
Modified: pkg/trunk/mapping/door_handle_detector/test/detect_handle_from_bag.py
===================================================================
--- pkg/trunk/mapping/door_handle_detector/test/detect_handle_from_bag.py 2009-05-27 00:12:25 UTC (rev 16116)
+++ pkg/trunk/mapping/door_handle_detector/test/detect_handle_from_bag.py 2009-05-27 00:23:28 UTC (rev 16117)
@@ -60,6 +60,14 @@
# Threshold for agreement between laser and camera detection
self.epsilon = 0.1
+
+ def handle_dist(self, handle_laser, handle_camera):
+ dx = handle_laser.doors[0].handle.x - handle_camera.doors[0].handle.x
+ dy = handle_laser.doors[0].handle.y - handle_camera.doors[0].handle.y
+ dz = handle_laser.doors[0].handle.z - handle_camera.doors[0].handle.z
+ return math.sqrt(dx*dx + dy*dy + dz*dz)
+
+
def test_door_handle_detector(self):
rospy.sleep(2.0)
d = Door()
@@ -74,14 +82,17 @@
print "time ",d.header.stamp
door = self.detect_door_laser(d)
- handle_laser = self.detect_handle_laser(door.doors[0])
- handle_camera = self.detect_handle_camera(door.doors[0])
+ handle_camera = self.detect_handle_camera(door.doors[0])
+ cnt = 0
+
+ dist = self.epsilon + 1
+
+ while cnt<5 and dist>self.epsilon:
+ handle_laser = self.detect_handle_laser(door.doors[0])
+ dist = self.handle_dist(handle_laser,handle_camera)
+ cnt += 1
# Check handle positions against each other
- dx = handle_laser.doors[0].handle.x - handle_camera.doors[0].handle.x
- dy = handle_laser.doors[0].handle.y - handle_camera.doors[0].handle.y
- dz = handle_laser.doors[0].handle.z - handle_camera.doors[0].handle.z
- dist = math.sqrt(dx*dx + dy*dy + dz*dz)
print 'Difference between camera and laser: %9.6f'%(dist)
@@ -107,16 +118,21 @@
print "Waiting for service...", rospy.resolve_name('handle_detector')
rospy.wait_for_service('doors_detector')
print "Service is available"
- try:
- print "Getting service proxy"
- find_handle_laser = rospy.ServiceProxy('handle_detector', DoorsDetector)
- print "Calling service"
- door_reply = find_handle_laser(door_request)
- print "Request finished"
- print "Handle detected by laser at (%f, %f, %f)"%(door_reply.doors[0].handle.x, door_reply.doors[0].handle.y, door_reply.doors[0].handle.z)
- print "Laser frame", door_reply.doors[0].header.frame_id
- return door_reply
- except:
+ detected = True
+ for tries in xrange(2):
+ print "Laser detection try: %d"%(tries+1)
+ try:
+ print "Getting service proxy"
+ find_handle_laser = rospy.ServiceProxy('handle_detector', DoorsDetector)
+ print "Calling service"
+ door_reply = find_handle_laser(door_request)
+ print "Request finished"
+ print "Handle detected by laser at (%f, %f, %f)"%(door_reply.doors[0].handle.x, door_reply.doors[0].handle.y, door_reply.doors[0].handle.z)
+ print "Laser frame", door_reply.doors[0].header.frame_id
+ return door_reply
+ except:
+ detected = False
+ if not detected:
self.fail("handle_detector service call failed")
def detect_handle_camera(self, door_request):
Modified: pkg/trunk/mapping/door_handle_detector/test/test_setup.xml
===================================================================
--- pkg/trunk/mapping/door_handle_detector/test/test_setup.xml 2009-05-27 00:12:25 UTC (rev 16116)
+++ pkg/trunk/mapping/door_handle_detector/test/test_setup.xml 2009-05-27 00:23:28 UTC (rev 16117)
@@ -12,6 +12,7 @@
<param name="do_stereo" type="bool" value="True"/>
<param name="do_calc_points" type="bool" value="True"/>
<param name="do_keep_coords" type="bool" value="True"/>
+ <param name="num_disp" value="128"/>
</group>
<node pkg="stereo_image_proc" type="stereoproc" respawn="false" />
Modified: pkg/trunk/robot_descriptions/pr2/pr2_configurations/pr2_alpha/prf.launch
===================================================================
--- pkg/trunk/robot_descriptions/pr2/pr2_configurations/pr2_alpha/prf.launch 2009-05-27 00:12:25 UTC (rev 16116)
+++ pkg/trunk/robot_descriptions/pr2/pr2_configurations/pr2_alpha/prf.launch 2009-05-27 00:23:28 UTC (rev 16117)
@@ -53,6 +53,7 @@
<param name="exposure_auto" type="bool" value="true"/>
<param name="brightness_auto" type="bool" value="true"/>
<param name="gain_auto" type="bool" value="true"/>
+ <param name="num_disp" value="128"/>
</group>
<node machine="three" pkg="dcam" type="stereodcam" respawn="false"/>
Modified: pkg/trunk/robot_descriptions/pr2/pr2_configurations/pr2_alpha/prg.launch
===================================================================
--- pkg/trunk/robot_descriptions/pr2/pr2_configurations/pr2_alpha/prg.launch 2009-05-27 00:12:25 UTC (rev 16116)
+++ pkg/trunk/robot_descriptions/pr2/pr2_configurations/pr2_alpha/prg.launch 2009-05-27 00:23:28 UTC (rev 16117)
@@ -65,6 +65,7 @@
<param name="brightness_auto" type="bool" value="True" />
<param name="fps" type="double" value="15.0"/>
<param name="frame_id" type="string" value="stereo_optical_frame"/>
+ <param name="num_disp" value="128"/>
</group>
<node machine="four" pkg="dcam" type="stereodcam" respawn="false"/>
Modified: pkg/trunk/vision/stereo_view/stereo_bag.launch
===================================================================
--- pkg/trunk/vision/stereo_view/stereo_bag.launch 2009-05-27 00:12:25 UTC (rev 16116)
+++ pkg/trunk/vision/stereo_view/stereo_bag.launch 2009-05-27 00:23:28 UTC (rev 16117)
@@ -9,5 +9,6 @@
<node name="stereoproc" pkg="stereo_image_proc" type="stereoproc" respawn="false" />
<node name="stereo_view" pkg="stereo_view" type="stereo_view_pixel_info" respawn="false" output="screen"/>
+ <node name="stereodcam_params" pkg="dcam" type="stereodcam_params.py" respawn="false" output="screen"/>
</launch>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tf...@us...> - 2009-05-27 05:02:09
|
Revision: 16147
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=16147&view=rev
Author: tfoote
Date: 2009-05-27 05:02:04 +0000 (Wed, 27 May 2009)
Log Message:
-----------
adding stack.xml s
Modified Paths:
--------------
pkg/trunk/common/stack.xml
Added Paths:
-----------
pkg/trunk/nav/stack.xml
pkg/trunk/simulators/stack.xml
pkg/trunk/visualization_core/stack.xml
Modified: pkg/trunk/common/stack.xml
===================================================================
--- pkg/trunk/common/stack.xml 2009-05-27 05:00:09 UTC (rev 16146)
+++ pkg/trunk/common/stack.xml 2009-05-27 05:02:04 UTC (rev 16147)
@@ -1,10 +1,10 @@
-<stack name="common" version="0.0">
+<stack name="ros-pkg_common" version="0.1">
<description brief="common code for personal robots">
A set of code and messages that are widely useful to all robots. Things
like generic robot messages (i.e., kinematics, transforms), a generic
transform library (tf), laser-scan utilities, etc.
</description>
- <author>Maintained by Tully Foote</author>
+ <author>Maintained by Tully Foote tf...@wi...</author>
<license>BSD</license>
<review status="unreviewed" notes=""/>
<url>http://pr.willowgarage.com/wiki/ROS</url>
Added: pkg/trunk/nav/stack.xml
===================================================================
--- pkg/trunk/nav/stack.xml (rev 0)
+++ pkg/trunk/nav/stack.xml 2009-05-27 05:02:04 UTC (rev 16147)
@@ -0,0 +1,15 @@
+<stack name="ros-pkg_nav" version="0.1">
+ <description brief="nav stack">
+ The 2D navigation stack
+ </description>
+ <version>0.1</version>
+ <author>Eitan ei...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/nav</url>
+
+ <depend stack="ros" version="0.5"/>
+ <depend stack="ros-pkg_common" version="0.1"/>
+ <depend stack="ros-pkg_visualization_core" version="0.1"/>
+</stack>
+
Added: pkg/trunk/simulators/stack.xml
===================================================================
--- pkg/trunk/simulators/stack.xml (rev 0)
+++ pkg/trunk/simulators/stack.xml 2009-05-27 05:02:04 UTC (rev 16147)
@@ -0,0 +1,15 @@
+<stack name="ros-pkg_simulators" version="0.1">
+ <description brief="Stage and Gazebo Simulators">
+ Simulators for ROS both Stage and Gazebo
+ </description>
+ <version>0.1</version>
+ <author>John Hsu jo...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/simulators</url>
+
+ <depend stack="ros" version="0.5"/>
+ <depend stack="ros-pkg_common" version="0.1"/>
+ <depend stack="ros-pkg_visualization_core" version="0.1"/>
+</stack>
+
Added: pkg/trunk/visualization_core/stack.xml
===================================================================
--- pkg/trunk/visualization_core/stack.xml (rev 0)
+++ pkg/trunk/visualization_core/stack.xml 2009-05-27 05:02:04 UTC (rev 16147)
@@ -0,0 +1,14 @@
+<stack name="ros-pkg_visualization_core" version="0.1">
+ <description brief="Visualization Core">
+ Tools used for visualization
+ </description>
+ <version>0.1</version>
+ <author>Josh Faust jf...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/visualization_core</url>
+
+ <depend stack="ros" version="0.5"/>
+ <depend stack="ros-pkg_common" version="0.1"/>
+</stack>
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ge...@us...> - 2009-05-29 00:48:23
|
Revision: 16323
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=16323&view=rev
Author: gerkey
Date: 2009-05-29 00:48:16 +0000 (Fri, 29 May 2009)
Log Message:
-----------
Reorganized into a first cut at stacks.
Added Paths:
-----------
pkg/trunk/audio/stack.xml
pkg/trunk/calibration/stack.xml
pkg/trunk/controllers/stack.xml
pkg/trunk/drivers/stack.xml
pkg/trunk/estimation/bfl/
pkg/trunk/estimation/stack.xml
pkg/trunk/hardware_test/stack.xml
pkg/trunk/highlevel/stack.xml
pkg/trunk/mapping/stack.xml
pkg/trunk/mechanism/stack.xml
pkg/trunk/motion_planning/stack.xml
pkg/trunk/openrave_planning/openrave/
pkg/trunk/openrave_planning/soqt/
pkg/trunk/openrave_planning/stack.xml
pkg/trunk/pr2/
pkg/trunk/pr2/cb_characterization/
pkg/trunk/pr2/dynamic_verification/
pkg/trunk/pr2/hot_box_test/
pkg/trunk/pr2/invent_client/
pkg/trunk/pr2/life_test/
pkg/trunk/pr2/motorconf_gui/
pkg/trunk/pr2/pr2_etherCAT/
pkg/trunk/pr2/pr2_msgs/
pkg/trunk/pr2/pr2_srvs/
pkg/trunk/pr2/qualification/
pkg/trunk/pr2/stack.xml
pkg/trunk/pr2/teleop/
pkg/trunk/pr2/teleop/spacenav_node/
pkg/trunk/pr2/teleop/teleop_arm_keyboard/
pkg/trunk/pr2/teleop/teleop_joint_effort/
pkg/trunk/pr2/teleop/teleop_spacenav/
pkg/trunk/pr2/thrash_joint/
pkg/trunk/pr2/tune_joints/
pkg/trunk/util/stack.xml
pkg/trunk/vision/stack.xml
pkg/trunk/visualization/stack.xml
pkg/trunk/world_models/stack.xml
Removed Paths:
-------------
pkg/trunk/3rdparty/bfl/
pkg/trunk/3rdparty/openrave/
pkg/trunk/3rdparty/soqt/
pkg/trunk/hardware_test/cb_characterization/
pkg/trunk/hardware_test/dynamic_verification/
pkg/trunk/hardware_test/hot_box_test/
pkg/trunk/hardware_test/invent_client/
pkg/trunk/hardware_test/life_test/
pkg/trunk/hardware_test/motorconf_gui/
pkg/trunk/hardware_test/qualification/
pkg/trunk/hardware_test/thrash_joint/
pkg/trunk/hardware_test/tune_joints/
pkg/trunk/highlevel/readme
pkg/trunk/manip/spacenav_node/
pkg/trunk/manip/teleop_arm_keyboard/
pkg/trunk/manip/teleop_joint_effort/
pkg/trunk/manip/teleop_spacenav/
pkg/trunk/pr2_msgs/
pkg/trunk/pr2_srvs/
pkg/trunk/robot_control_loops/
Added: pkg/trunk/audio/stack.xml
===================================================================
--- pkg/trunk/audio/stack.xml (rev 0)
+++ pkg/trunk/audio/stack.xml 2009-05-29 00:48:16 UTC (rev 16323)
@@ -0,0 +1,13 @@
+<stack name="audio" version="0.1">
+ <description brief="audio packages from ros-pkg">
+ These are audio-related packages.
+ </description>
+ <version>0.1</version>
+ <author>Blaise Gassend bl...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/audio</url>
+
+ <depend stack="ros" version="0.5"/>
+</stack>
+
Added: pkg/trunk/calibration/stack.xml
===================================================================
--- pkg/trunk/calibration/stack.xml (rev 0)
+++ pkg/trunk/calibration/stack.xml 2009-05-29 00:48:16 UTC (rev 16323)
@@ -0,0 +1,13 @@
+<stack name="calibration" version="0.1">
+ <description brief="calibration packages from ros-pkg">
+ These are calibration-related packages.
+ </description>
+ <version>0.1</version>
+ <author>Vijay Pradeep vpr...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/calibration</url>
+
+ <depend stack="ros" version="0.5"/>
+</stack>
+
Added: pkg/trunk/controllers/stack.xml
===================================================================
--- pkg/trunk/controllers/stack.xml (rev 0)
+++ pkg/trunk/controllers/stack.xml 2009-05-29 00:48:16 UTC (rev 16323)
@@ -0,0 +1,13 @@
+<stack name="controllers" version="0.1">
+ <description brief="controller packages from ros-pkg">
+ These are robot controllers.
+ </description>
+ <version>0.1</version>
+ <author>Melonee Wise mw...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/controllers</url>
+
+ <depend stack="ros" version="0.5"/>
+</stack>
+
Added: pkg/trunk/drivers/stack.xml
===================================================================
--- pkg/trunk/drivers/stack.xml (rev 0)
+++ pkg/trunk/drivers/stack.xml 2009-05-29 00:48:16 UTC (rev 16323)
@@ -0,0 +1,14 @@
+<stack name="drivers" version="0.1">
+ <description brief="driver packages from ros-pkg">
+ These are hardware drivers.
+ </description>
+ <version>0.1</version>
+ <author>Blaise Gassend bl...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/drivers</url>
+
+ <depend stack="ros" version="0.5"/>
+ <depend stack="common" version="0.1"/>
+</stack>
+
Property changes on: pkg/trunk/estimation/bfl
___________________________________________________________________
Added: svn:ignore
+ bfl-boost
installed
patched
rospack_nosubdirs
Added: svn:mergeinfo
+
Added: pkg/trunk/estimation/stack.xml
===================================================================
--- pkg/trunk/estimation/stack.xml (rev 0)
+++ pkg/trunk/estimation/stack.xml 2009-05-29 00:48:16 UTC (rev 16323)
@@ -0,0 +1,13 @@
+<stack name="estimation" version="0.1">
+ <description brief="estimation packages from ros-pkg">
+ These are packages that help with estimating uncertain quantities.
+ </description>
+ <version>0.1</version>
+ <author>Wim Meeussen mee...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/estimation</url>
+
+ <depend stack="ros" version="0.5"/>
+</stack>
+
Added: pkg/trunk/hardware_test/stack.xml
===================================================================
--- pkg/trunk/hardware_test/stack.xml (rev 0)
+++ pkg/trunk/hardware_test/stack.xml 2009-05-29 00:48:16 UTC (rev 16323)
@@ -0,0 +1,15 @@
+<stack name="diagnostics" version="0.1">
+ <description brief="diagnostics packages from ros-pkg">
+ Packages related to gathering, viewing, and analyzing diagnostics data
+ from robots.
+ </description>
+ <version>0.1</version>
+ <author>Tully Foote tf...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/diagnostics</url>
+
+ <depend stack="ros" version="0.5"/>
+ <depend stack="common" version="0.1"/>
+</stack>
+
Deleted: pkg/trunk/highlevel/readme
===================================================================
--- pkg/trunk/highlevel/readme 2009-05-29 00:30:27 UTC (rev 16322)
+++ pkg/trunk/highlevel/readme 2009-05-29 00:48:16 UTC (rev 16323)
@@ -1,3 +0,0 @@
-this directory is meant to contain high-level stuff, i.e. software that views
-the robot in very abstract terms, like "drive to XY on a map" or
-"open the door in front of you" or "pick up the stapler in front of you"
Added: pkg/trunk/highlevel/stack.xml
===================================================================
--- pkg/trunk/highlevel/stack.xml (rev 0)
+++ pkg/trunk/highlevel/stack.xml 2009-05-29 00:48:16 UTC (rev 16323)
@@ -0,0 +1,17 @@
+<stack name="highlevel" version="0.1">
+ <description brief="high-level packages from ros-pkg">
+ This stack is meant to contain high-level stuff, i.e., software
+ that views the robot in very abstract terms, like "drive to XY on a
+ map" or "open the door in front of you" or "pick up the stapler in
+ front of you."
+ </description>
+ <version>0.1</version>
+ <author>Conor McGann mc...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/highlevel</url>
+
+ <depend stack="ros" version="0.5"/>
+</stack>
+
+
Added: pkg/trunk/mapping/stack.xml
===================================================================
--- pkg/trunk/mapping/stack.xml (rev 0)
+++ pkg/trunk/mapping/stack.xml 2009-05-29 00:48:16 UTC (rev 16323)
@@ -0,0 +1,15 @@
+<stack name="mapping" version="0.1">
+ <description brief="laser-based sensing packages from ros-pkg">
+ These are packages that primarily process laser / range data.
+ </description>
+ <version>0.1</version>
+ <author>Radu Rusu ru...@wi...,
+ Marius Muja ma...@wi...
+ </author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/mapping</url>
+
+ <depend stack="ros" version="0.5"/>
+</stack>
+
Added: pkg/trunk/mechanism/stack.xml
===================================================================
--- pkg/trunk/mechanism/stack.xml (rev 0)
+++ pkg/trunk/mechanism/stack.xml 2009-05-29 00:48:16 UTC (rev 16323)
@@ -0,0 +1,13 @@
+<stack name="mechanism" version="0.1">
+ <description brief="mechanism packages from ros-pkg">
+ These are mechanism-related packages.
+ </description>
+ <version>0.1</version>
+ <author>Stu Glaser sg...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/mechanism</url>
+
+ <depend stack="ros" version="0.5"/>
+</stack>
+
Added: pkg/trunk/motion_planning/stack.xml
===================================================================
--- pkg/trunk/motion_planning/stack.xml (rev 0)
+++ pkg/trunk/motion_planning/stack.xml 2009-05-29 00:48:16 UTC (rev 16323)
@@ -0,0 +1,14 @@
+<stack name="motion_planning" version="0.1">
+ <description brief="motion plannig packages from ros-pkg">
+ This stack contains motion planners and supporting infrastructure.
+ </description>
+ <version>0.1</version>
+ <author>Sachin Chitta sa...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/motion_planning</url>
+
+ <depend stack="ros" version="0.5"/>
+</stack>
+
+
Property changes on: pkg/trunk/openrave_planning/openrave
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/openrave_planning/soqt
___________________________________________________________________
Added: svn:ignore
+ installed
share
include
wiped
bin
Added: svn:mergeinfo
+
Added: pkg/trunk/openrave_planning/stack.xml
===================================================================
--- pkg/trunk/openrave_planning/stack.xml (rev 0)
+++ pkg/trunk/openrave_planning/stack.xml 2009-05-29 00:48:16 UTC (rev 16323)
@@ -0,0 +1,15 @@
+<stack name="openrave_planning" version="0.1">
+ <description brief="openrave packages from cmu-ros-pkg">
+ These are OpenRAVE-related packages.
+ </description>
+ <version>0.1</version>
+ <author>Rosen Diankov rdi...@cs...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/openrave</url>
+
+ <depend stack="ros" version="0.5"/>
+ <depend stack="common" version="0.1"/>
+ <depend stack="simulators" version="0.1"/>
+</stack>
+
Property changes on: pkg/trunk/pr2/cb_characterization
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/pr2/dynamic_verification
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/pr2/hot_box_test
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/pr2/invent_client
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/pr2/life_test
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/pr2/motorconf_gui
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/pr2/pr2_etherCAT
___________________________________________________________________
Added: svn:ignore
+ pr2_etherCAT
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/pr2/pr2_msgs
___________________________________________________________________
Added: svn:ignore
+ src
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/pr2/pr2_srvs
___________________________________________________________________
Added: svn:ignore
+ src
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/pr2/qualification
___________________________________________________________________
Added: svn:mergeinfo
+
Added: pkg/trunk/pr2/stack.xml
===================================================================
--- pkg/trunk/pr2/stack.xml (rev 0)
+++ pkg/trunk/pr2/stack.xml 2009-05-29 00:48:16 UTC (rev 16323)
@@ -0,0 +1,14 @@
+<stack name="pr2" version="0.1">
+ <description brief="pr2 packages from ros-pkg">
+ PR2-specific packages.
+ </description>
+ <version>0.1</version>
+ <author>Eric Berger be...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/pr2</url>
+
+ <depend stack="ros" version="0.5"/>
+ <depend stack="common" version="0.1"/>
+</stack>
+
Property changes on: pkg/trunk/pr2/teleop/spacenav_node
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/pr2/teleop/teleop_arm_keyboard
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/pr2/teleop/teleop_joint_effort
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/pr2/teleop/teleop_spacenav
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/pr2/thrash_joint
___________________________________________________________________
Added: svn:mergeinfo
+
Property changes on: pkg/trunk/pr2/tune_joints
___________________________________________________________________
Added: svn:mergeinfo
+
Added: pkg/trunk/util/stack.xml
===================================================================
--- pkg/trunk/util/stack.xml (rev 0)
+++ pkg/trunk/util/stack.xml 2009-05-29 00:48:16 UTC (rev 16323)
@@ -0,0 +1,13 @@
+<stack name="util" version="0.1">
+ <description brief="utility packages from ros-pkg">
+ These are utility package.
+ </description>
+ <version>0.1</version>
+ <author>Morgan Quigley mqu...@cs...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/util</url>
+
+ <depend stack="ros" version="0.5"/>
+</stack>
+
Added: pkg/trunk/vision/stack.xml
===================================================================
--- pkg/trunk/vision/stack.xml (rev 0)
+++ pkg/trunk/vision/stack.xml 2009-05-29 00:48:16 UTC (rev 16323)
@@ -0,0 +1,13 @@
+<stack name="vision" version="0.1">
+ <description brief="vision packages from ros-pkg">
+ These are vision-related packages.
+ </description>
+ <version>0.1</version>
+ <author>James Bowman ja...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/vision</url>
+
+ <depend stack="ros" version="0.5"/>
+</stack>
+
Added: pkg/trunk/visualization/stack.xml
===================================================================
--- pkg/trunk/visualization/stack.xml (rev 0)
+++ pkg/trunk/visualization/stack.xml 2009-05-29 00:48:16 UTC (rev 16323)
@@ -0,0 +1,15 @@
+<stack name="visualization" version="0.1">
+ <description brief="Visualization tools">
+ Tools used for visualization.
+ </description>
+ <version>0.1</version>
+ <author>Josh Faust jf...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/visualization</url>
+
+ <depend stack="ros" version="0.5"/>
+ <depend stack="common" version="0.1"/>
+ <depend stack="visualization_core" version="0.1"/>
+</stack>
+
Added: pkg/trunk/world_models/stack.xml
===================================================================
--- pkg/trunk/world_models/stack.xml (rev 0)
+++ pkg/trunk/world_models/stack.xml 2009-05-29 00:48:16 UTC (rev 16323)
@@ -0,0 +1,15 @@
+<stack name="world_models" version="0.1">
+ <description brief="world models">
+ Packages for modeling states of the world.
+ </description>
+ <version>0.1</version>
+ <author>Eitan ei...@wi...</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/world_models</url>
+
+ <depend stack="ros" version="0.5"/>
+ <depend stack="ros-pkg_common" version="0.1"/>
+ <depend stack="ros-pkg_visualization_core" version="0.1"/>
+</stack>
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hsu...@us...> - 2009-05-29 19:20:58
|
Revision: 16379
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=16379&view=rev
Author: hsujohnhsu
Date: 2009-05-29 19:20:46 +0000 (Fri, 29 May 2009)
Log Message:
-----------
Merging from branch:
svn merge -r 15738:15794 https://personalrobots.svn.sf.net/svnroot/personalrobots/pkg/branches/gazebo-branch-merge .
Modified Paths:
--------------
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-empty-amcl.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-empty-fake_localization-no_x.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-empty-fake_localization.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-prototype1-simple-amcl.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-prototype1-simple-fake_localization.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-prototype1-wg-amcl-no_x.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-prototype1-wg-amcl.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-prototype1-wg-fake_localization-no_x.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-prototype1-wg-fake_localization.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-simple-amcl.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-simple-fake_localization-no_x.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-simple-fake_localization.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-wg-amcl-no_x.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-wg-amcl.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-wg-fake_localization-no_x.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-wg-fake_localization.launch
pkg/trunk/demos/2dnav_gazebo/doc.dox
pkg/trunk/demos/arm_gazebo/arm_grav.launch
pkg/trunk/demos/arm_gazebo/l_arm.launch
pkg/trunk/demos/arm_gazebo/l_arm_no_x.launch
pkg/trunk/demos/arm_gazebo/l_gripper.launch
pkg/trunk/demos/arm_gazebo/r_arm.launch
pkg/trunk/demos/arm_gazebo/r_arm_constraint.launch
pkg/trunk/demos/arm_gazebo/r_arm_grasping_demo.launch
pkg/trunk/demos/arm_gazebo/r_arm_no_x.launch
pkg/trunk/demos/arm_gazebo/r_arm_spacenav.launch
pkg/trunk/demos/arm_gazebo/r_gripper.launch
pkg/trunk/demos/door_demos_gazebo/launch/door_only_test.launch
pkg/trunk/demos/door_demos_gazebo/launch/pr2_and_door.launch
pkg/trunk/demos/erratic_gazebo/2dnav-gazebo-simple-fake_localization.xml
pkg/trunk/demos/erratic_gazebo/erratic.launch
pkg/trunk/demos/examples_gazebo/dual_link.launch
pkg/trunk/demos/examples_gazebo/dual_link_defs/Makefile
pkg/trunk/demos/examples_gazebo/dual_link_no_x.launch
pkg/trunk/demos/examples_gazebo/multi_link.launch
pkg/trunk/demos/examples_gazebo/multi_link_defs/Makefile
pkg/trunk/demos/examples_gazebo/single_link.launch
pkg/trunk/demos/examples_gazebo/single_link_defs/Makefile
pkg/trunk/demos/examples_gazebo/table.launch
pkg/trunk/demos/examples_gazebo/table_defs/Makefile
pkg/trunk/demos/plug_in_gazebo/launch/plug_outlet.launch
pkg/trunk/demos/plug_in_gazebo/launch/pr2_plug_outlet.launch
pkg/trunk/demos/pr2_gazebo/pr2_empty.launch
pkg/trunk/demos/pr2_gazebo/pr2_empty_no_x.launch
pkg/trunk/demos/pr2_gazebo/pr2_floorobj.launch
pkg/trunk/demos/pr2_gazebo/pr2_obs.launch
pkg/trunk/demos/pr2_gazebo/pr2_obs_trajectory.launch
pkg/trunk/demos/pr2_gazebo/pr2_simple.launch
pkg/trunk/demos/pr2_gazebo/pr2_simple_no_x.launch
pkg/trunk/demos/pr2_gazebo/pr2_wg.launch
pkg/trunk/demos/pr2_gazebo/pr2_wg_no_x.launch
pkg/trunk/demos/pr2_prototype1_gazebo/pr2_prototype1_empty.launch
pkg/trunk/demos/pr2_prototype1_gazebo/pr2_prototype1_empty_no_x.launch
pkg/trunk/demos/pr2_prototype1_gazebo/pr2_prototype1_obs.launch
pkg/trunk/demos/pr2_prototype1_gazebo/pr2_prototype1_simple.launch
pkg/trunk/demos/pr2_prototype1_gazebo/pr2_prototype1_tables.launch
pkg/trunk/demos/pr2_prototype1_gazebo/pr2_prototype1_tables_no_x.launch
pkg/trunk/demos/pr2_prototype1_gazebo/pr2_prototype1_wg.launch
pkg/trunk/demos/pr2_prototype1_gazebo/pr2_prototype1_wg_no_x.launch
pkg/trunk/demos/tabletop_manipulation/launch/gazebo.launch
pkg/trunk/demos/test_2dnav_gazebo/test_2dnav_empty_amcl_axis.xml
pkg/trunk/demos/test_2dnav_gazebo/test_2dnav_empty_axis.xml
pkg/trunk/demos/test_2dnav_gazebo/test_2dnav_empty_diagonal.xml
pkg/trunk/demos/test_2dnav_gazebo/test_2dnav_empty_odom.xml
pkg/trunk/demos/test_2dnav_gazebo/test_2dnav_empty_rotation.xml
pkg/trunk/demos/test_2dnav_gazebo/test_2dnav_wg.xml
pkg/trunk/robot_descriptions/gazebo_robot_description/CMakeLists.txt
pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/simple.world
pkg/trunk/simulators/gazebo/setup.bash
pkg/trunk/simulators/gazebo/setup.tcsh
pkg/trunk/visualization/rviz/src/rviz/visualization_frame.cpp
pkg/trunk/visualization/rviz/src/rviz/visualization_panel.cpp
pkg/trunk/visualization_core/ogre_tools/src/ogre_tools/wx_ogre_render_window.cpp
Added Paths:
-----------
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/Gazebo.fontdef
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/arial.ttf
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/console.ttf
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/font_arial.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/font_matisse_itc.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/maiden.ttf
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/sample.fontdef
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/solo5.ttf
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/programs/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/scripts/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/scripts/pr2.material
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/map.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/map2.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/map2.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/map3.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/map_blank.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/map_texture.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/plug_texture.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/pr2_wheel_left.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/pr2_wheel_right.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/willowMap.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/willowMap25mm.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/willowMap25mm_wider_door.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/willow_texture.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/willow_texture_black.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/WoodPallet.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/column.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/cup.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/geosphere4500.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/geosphere8000.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/razor.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/robot.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/robot.skeleton
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/sicklms200.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/sphere.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/unitpyramid.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/wheel.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/wheel.mesh.xml
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/RZR-002/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/RZR-002/RZR-002/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/RZR-002/RZR-002/RZR-002.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/RZR-002/RZR-002/RZR-002.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/RZR-002/rzr-002.material
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/fish/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/fish/Fish/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/fish/Fish/fish.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/fish/Fish/steelhead.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/fish/fish.material
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/generalstoreshop/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/generalstoreshop/GeneralStoreShop/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/generalstoreshop/GeneralStoreShop/shop.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/generalstoreshop/GeneralStoreShop/shop.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/generalstoreshop/shop.material
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/generalstoreshop/sources/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/generalstoreshop/sources/shop.3ds
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/healthshop/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/healthshop/HealthShop/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/healthshop/HealthShop/hosshop.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/healthshop/HealthShop/hosshop.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/healthshop/healthshop.material
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/healthshop/sources/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/healthshop/sources/hosshop.3ds
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/ninja/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/ninja/Ninja/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/ninja/Ninja/ninja.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/ninja/Ninja/ninja.model
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/ninja/Ninja/nskingr.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/ninja/ninja.material
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/Cylinder.012.mesh.xml
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/OgreXMLConverter.log
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/Scene.material
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/chassis.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/chassis_top.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/hub.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/sonar.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/sonarbank.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/tire.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/wheel.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/sources/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/sources/pioneer3at.blend
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/Scene.material
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/chassis.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/chassis_top.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/hub.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/sonar.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/sonarbank.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/tire.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/wheel.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/sources/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/sources/pioneer3dx.blend
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/weapshop/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/weapshop/WeaponShop/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/weapshop/WeaponShop/weapshop.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/weapshop/WeaponShop/weapshop.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/weapshop/sources/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/weapshop/sources/weapshop.3ds
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/weapshop/weapshop.material
Removed Paths:
-------------
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/Gazebo.fontdef
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/arial.ttf
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/console.ttf
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/font_arial.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/font_matisse_itc.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/maiden.ttf
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/sample.fontdef
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/fonts/solo5.ttf
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/programs/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/scripts/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/scripts/pr2.material
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/map.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/map2.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/map2.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/map3.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/map_blank.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/map_texture.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/plug_texture.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/pr2_wheel_left.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/pr2_wheel_right.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/willowMap.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/willowMap25mm.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/willowMap25mm_wider_door.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/willow_texture.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/textures/willow_texture_black.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/WoodPallet.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/column.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/cup.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/geosphere4500.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/geosphere8000.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/razor.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/robot.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/robot.skeleton
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/sicklms200.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/sphere.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/unitpyramid.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/wheel.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/models/wheel.mesh.xml
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/RZR-002/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/RZR-002/RZR-002/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/RZR-002/RZR-002/RZR-002.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/RZR-002/RZR-002/RZR-002.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/RZR-002/rzr-002.material
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/fish/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/fish/Fish/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/fish/Fish/fish.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/fish/Fish/steelhead.png
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/fish/fish.material
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/generalstoreshop/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/generalstoreshop/GeneralStoreShop/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/generalstoreshop/GeneralStoreShop/shop.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/generalstoreshop/GeneralStoreShop/shop.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/generalstoreshop/shop.material
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/generalstoreshop/sources/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/generalstoreshop/sources/shop.3ds
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/healthshop/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/healthshop/HealthShop/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/healthshop/HealthShop/hosshop.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/healthshop/HealthShop/hosshop.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/healthshop/healthshop.material
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/healthshop/sources/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/healthshop/sources/hosshop.3ds
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/ninja/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/ninja/Ninja/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/ninja/Ninja/ninja.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/ninja/Ninja/ninja.model
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/ninja/Ninja/nskingr.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/ninja/ninja.material
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/Cylinder.012.mesh.xml
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/OgreXMLConverter.log
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/Scene.material
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/chassis.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/chassis_top.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/hub.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/sonar.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/sonarbank.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/tire.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/Pioneer2at/wheel.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/sources/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2at/sources/pioneer3at.blend
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/Scene.material
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/chassis.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/chassis_top.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/hub.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/sonar.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/sonarbank.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/tire.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/Pioneer2dx/wheel.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/sources/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/pioneer2dx/sources/pioneer3dx.blend
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/weapshop/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/weapshop/WeaponShop/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/weapshop/WeaponShop/weapshop.jpg
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/weapshop/WeaponShop/weapshop.mesh
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/weapshop/sources/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/weapshop/sources/weapshop.3ds
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/sets/weapshop/weapshop.material
pkg/trunk/robot_descriptions/gazebo_robot_description/world/Media/
pkg/trunk/robot_descriptions/gazebo_robot_description/world/map3.png
pkg/trunk/robot_descriptions/gazebo_robot_description/world/tests/
Property Changed:
----------------
pkg/trunk/
pkg/trunk/3rdparty/FLANN/
pkg/trunk/audio/backup_safetysound/
pkg/trunk/audio/sound_play/scripts/play.py
pkg/trunk/audio/sound_play/scripts/say.py
pkg/trunk/audio/sound_play/scripts/shutup.py
pkg/trunk/audio/sound_play/scripts/soundplay_node.py
pkg/trunk/audio/sound_play/scripts/test.py
pkg/trunk/audio/sound_play/sounds/BACKINGUP.ogg
pkg/trunk/common/image_msgs/
pkg/trunk/common/laser_scan/
pkg/trunk/common/robot_actions/
pkg/trunk/common/sensor_msgs/msg/CompressedImage.msg
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-empty-amcl.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-empty-fake_localization-no_x.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-empty-fake_localization.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-prototype1-simple-amcl.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-prototype1-simple-fake_localization.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-prototype1-wg-amcl-no_x.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-prototype1-wg-amcl.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-prototype1-wg-fake_localization-no_x.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-prototype1-wg-fake_localization.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-simple-amcl.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-simple-fake_localization-no_x.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-simple-fake_localization.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-wg-amcl-no_x.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-wg-amcl.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-wg-fake_localization-no_x.launch
pkg/trunk/demos/2dnav_gazebo/2dnav-gazebo-wg-fake_localization.launch
pkg/trunk/demos/2dnav_pr2/rviz/rviz_move_base.launch
pkg/trunk/demos/2dnav_pr2/rviz/rviz_move_base_local.launch
pkg/trunk/demos/2dnav_stage/2dnav_stage_wavefront_5cm.launch
pkg/trunk/demos/arm_gazebo/r_arm_dynamic_controller.xml
pkg/trunk/demos/door_demos_gazebo/door_defs/
pkg/trunk/demos/door_demos_gazebo/door_defs/door_controllers.xml
pkg/trunk/demos/door_demos_gazebo/launch/door_only_test.launch
pkg/trunk/demos/door_demos_gazebo/launch/open_door_test.launch
pkg/trunk/demos/door_demos_gazebo/launch/pr2_and_door.launch
pkg/trunk/demos/door_demos_gazebo/robots/door_only.xacro.xml
pkg/trunk/demos/door_demos_gazebo/robots/pr2_and_door.xacro.xml
pkg/trunk/demos/door_demos_gazebo/scripts/set_door.py
pkg/trunk/demos/examples_gazebo/dual_link.launch
pkg/trunk/demos/examples_gazebo/dual_link_no_x.launch
pkg/trunk/demos/examples_gazebo/multi_link.launch
pkg/trunk/demos/examples_gazebo/single_link.launch
pkg/trunk/demos/plug_in/integration/r_arm_hybrid_controller.xml
pkg/trunk/demos/plug_in_gazebo/launch/plug_outlet.launch
pkg/trunk/demos/plug_in_gazebo/launch/pr2_plug_outlet.launch
pkg/trunk/demos/plug_in_gazebo/robots/pr2_and_outlet.xacro.xml
pkg/trunk/demos/plug_in_gazebo/scripts/set_plug.py
pkg/trunk/deprecated/amcl_player/
pkg/trunk/deprecated/newmat10/
pkg/trunk/deprecated/robot_kinematics/
pkg/trunk/drivers/cam/forearm_cam/src/utilities/fcam_sim.cc
pkg/trunk/drivers/cam/forearm_cam/test/test_with_sim.xml
pkg/trunk/drivers/laser/hokuyo_node/hokuyo_04LX_test.launch
pkg/trunk/drivers/laser/hokuyo_node/include/hokuyo.h
pkg/trunk/drivers/laser/hokuyo_node/src/libhokuyo/hokuyo.cpp
pkg/trunk/drivers/laser/hokuyo_node/src/node/hokuyo_node.cpp
pkg/trunk/drivers/robot/pr2/fingertip_pressure/docsrc/doc.dox
pkg/trunk/drivers/robot/pr2/fingertip_pressure/scripts/rectangle_viz.py
pkg/trunk/drivers/robot/pr2/fingertip_pressure/scripts/sensor_info.py
pkg/trunk/drivers/robot/pr2/fingertip_pressure/scripts/sim_sensor.py
pkg/trunk/drivers/robot/pr2/fingertip_pressure/scripts/sphere_viz.py
pkg/trunk/drivers/robot/pr2/fingertip_pressure/scripts/view_fingertip_pressure
pkg/trunk/drivers/robot/pr2/fingertip_pressure/test/test_marker_rectangle.xml
pkg/trunk/estimation/bfl/
pkg/trunk/highlevel/executive_trex/executive_trex_pr2/test/doors/sim.nddl
pkg/trunk/highlevel/executive_trex/executive_trex_pr2/test/master/master.0/pr2.master.nddl
pkg/trunk/highlevel/executive_trex/executive_trex_pr2/test/plugs/pr2.rcs.sim.nddl
pkg/trunk/highlevel/safety/safety_core/include/safety_core/action_detect_plug_on_base.h
pkg/trunk/highlevel/safety/safety_core/src/action_detect_plug_on_base.cpp
pkg/trunk/mapping/door_handle_detector/launch/controllers.xml
pkg/trunk/mapping/door_handle_detector/launch/door_handle_detector.xml
pkg/trunk/mapping/door_handle_detector/launch/navigation.xml
pkg/trunk/mapping/door_handle_detector/launch/perception.xml
pkg/trunk/mapping/door_handle_detector/launch/setup_for_recording.launch
pkg/trunk/mapping/door_handle_detector/scripts/kill_record.sh
pkg/trunk/mapping/door_handle_detector/test/detect_handle_from_bag.py
pkg/trunk/mapping/door_handle_detector/test/door_checkerboard_detector.cpp
pkg/trunk/mapping/door_handle_detector/test/test_setup.xml
pkg/trunk/mapping/point_cloud_mapping/include/point_cloud_mapping/cloud_io.h
pkg/trunk/mapping/point_cloud_mapping/include/point_cloud_mapping/cloud_oc...
[truncated message content] |
|
From: <hsu...@us...> - 2009-05-29 19:34:31
|
Revision: 16384
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=16384&view=rev
Author: hsujohnhsu
Date: 2009-05-29 19:34:22 +0000 (Fri, 29 May 2009)
Log Message:
-----------
Merging from branch:
svn merge -r 15796:15820 https://personalrobots.svn.sf.net/svnroot/personalrobots/pkg/branches/gazebo-branch-merge .
Modified Paths:
--------------
pkg/trunk/visualization/rviz/src/rviz/robot/robot_link.cpp
Property Changed:
----------------
pkg/trunk/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/
pkg/trunk/visualization/
pkg/trunk/visualization/rviz/src/rviz/generated/rviz_generated.i
pkg/trunk/visualization/rviz/src/rviz/properties/forwards.h
pkg/trunk/visualization/rviz/src/rviz/robot/robot.cpp
pkg/trunk/visualization/rviz/src/rviz/robot/robot.h
pkg/trunk/visualization_core/ogre_tools/
pkg/trunk/visualization_core/ogre_tools/media/
pkg/trunk/visualization_core/ogre_tools/src/stl_to_mesh/
pkg/trunk/visualization_core/ogre_tools/test/
Property changes on: pkg/trunk
___________________________________________________________________
Modified: svn:mergeinfo
- /pkg/branches/gazebo-branch-merge:15739-15794
+ /pkg/branches/gazebo-branch-merge:15739-15794,15797-15820
Property changes on: pkg/trunk/robot_descriptions/gazebo_robot_description/Media
___________________________________________________________________
Modified: svn:mergeinfo
-
+ /pkg/branches/gazebo-branch-merge/robot_descriptions/gazebo_robot_description/Media:15797-15820
Property changes on: pkg/trunk/visualization
___________________________________________________________________
Modified: svn:mergeinfo
- /pkg/branches/gazebo-branch-merge/visualization:15739-15794
/pkg/branches/josh/rviz_selection:12152-13640
/pkg/branches/josh/visualization_scratch:14041-14428
+ /pkg/branches/gazebo-branch-merge/visualization:15739-15794,15797-15820
/pkg/branches/josh/rviz_selection:12152-13640
/pkg/branches/josh/visualization_scratch:14041-14428
Property changes on: pkg/trunk/visualization/rviz/src/rviz/generated/rviz_generated.i
___________________________________________________________________
Modified: svn:mergeinfo
- /pkg/branches/gazebo-branch-merge/visualization/rviz/src/rviz/generated/rviz_generated.i:15739-15794
/pkg/branches/josh/visualization_scratch/rviz/src/rviz/generated/rviz_generated.i:14041-14428
/pkg/trunk/visualization/rviz/src/rviz/generated/visualization_panel_generated.i:12189
+ /pkg/branches/gazebo-branch-merge/visualization/rviz/src/rviz/generated/rviz_generated.i:15739-15794,15797-15820
/pkg/branches/josh/visualization_scratch/rviz/src/rviz/generated/rviz_generated.i:14041-14428
/pkg/trunk/visualization/rviz/src/rviz/generated/visualization_panel_generated.i:12189
Property changes on: pkg/trunk/visualization/rviz/src/rviz/properties/forwards.h
___________________________________________________________________
Modified: svn:mergeinfo
- /pkg/branches/gazebo-branch-merge/visualization/rviz/src/rviz/properties/forwards.h:15739-15794
/pkg/branches/josh/visualization_scratch/rviz/src/rviz/properties/forwards.h:14041-14428
/pkg/trunk/visualization/rviz/src/rviz/properties/property_forwards.h:12189,12408-12643,12667
+ /pkg/branches/gazebo-branch-merge/visualization/rviz/src/rviz/properties/forwards.h:15739-15794,15797-15820
/pkg/branches/josh/visualization_scratch/rviz/src/rviz/properties/forwards.h:14041-14428
/pkg/trunk/visualization/rviz/src/rviz/properties/property_forwards.h:12189,12408-12643,12667
Property changes on: pkg/trunk/visualization/rviz/src/rviz/robot/robot.cpp
___________________________________________________________________
Modified: svn:mergeinfo
- /pkg/branches/gazebo-branch-merge/visualization/rviz/src/rviz/robot/robot.cpp:15739-15794
/pkg/branches/josh/visualization_scratch/rviz/src/rviz/robot/robot.cpp:14041-14428
/pkg/trunk/visualization/rviz/src/rviz/robot/robot.cpp:497-13654
+ /pkg/branches/gazebo-branch-merge/visualization/rviz/src/rviz/robot/robot.cpp:15739-15794,15797-15820
/pkg/branches/josh/visualization_scratch/rviz/src/rviz/robot/robot.cpp:14041-14428
/pkg/trunk/visualization/rviz/src/rviz/robot/robot.cpp:497-13654
Property changes on: pkg/trunk/visualization/rviz/src/rviz/robot/robot.h
___________________________________________________________________
Modified: svn:mergeinfo
- /pkg/branches/gazebo-branch-merge/visualization/rviz/src/rviz/robot/robot.h:15739-15794
/pkg/branches/josh/visualization_scratch/rviz/src/rviz/robot/robot.h:14041-14428
/pkg/trunk/visualization/rviz/src/rviz/robot/robot.h:497-13654
+ /pkg/branches/gazebo-branch-merge/visualization/rviz/src/rviz/robot/robot.h:15739-15794,15797-15820
/pkg/branches/josh/visualization_scratch/rviz/src/rviz/robot/robot.h:14041-14428
/pkg/trunk/visualization/rviz/src/rviz/robot/robot.h:497-13654
Modified: pkg/trunk/visualization/rviz/src/rviz/robot/robot_link.cpp
===================================================================
--- pkg/trunk/visualization/rviz/src/rviz/robot/robot_link.cpp 2009-05-29 19:25:37 UTC (rev 16383)
+++ pkg/trunk/visualization/rviz/src/rviz/robot/robot_link.cpp 2009-05-29 19:34:22 UTC (rev 16384)
@@ -293,7 +293,7 @@
Ogre::MaterialPtr material = Ogre::MaterialManager::getSingleton().getByName(material_name);
if (material.isNull())
{
- material = Ogre::MaterialManager::getSingleton().getByName("Gazebo/Red");
+ material = Ogre::MaterialManager::getSingleton().getByName("RVIZ/Red");
}
material->clone(cloned_name);
Property changes on: pkg/trunk/visualization_core/ogre_tools
___________________________________________________________________
Modified: svn:mergeinfo
- /pkg/branches/gazebo-branch-merge/visualization_core/ogre_tools:15739-15794
/pkg/branches/josh/visualization_scratch/ogre_tools:14041-14418
+ /pkg/branches/gazebo-branch-merge/visualization_core/ogre_tools:15739-15794,15797-15820
/pkg/branches/josh/visualization_scratch/ogre_tools:14041-14418
Property changes on: pkg/trunk/visualization_core/ogre_tools/media
___________________________________________________________________
Modified: svn:mergeinfo
- /pkg/branches/gazebo-branch-merge/visualization_core/ogre_tools/media:15739-15794
/pkg/branches/josh/visualization_scratch/ogre_tools/media:14041-14418
/pkg/trunk/visualization/ogre_tools/media:2217-8463
+ /pkg/branches/gazebo-branch-merge/visualization_core/ogre_tools/media:15739-15794,15797-15820
/pkg/branches/josh/visualization_scratch/ogre_tools/media:14041-14418
/pkg/trunk/visualization/ogre_tools/media:2217-8463
Property changes on: pkg/trunk/visualization_core/ogre_tools/src/stl_to_mesh
___________________________________________________________________
Modified: svn:mergeinfo
- /pkg/branches/gazebo-branch-merge/visualization_core/ogre_tools/src/stl_to_mesh:15739-15794
/pkg/branches/josh/visualization_scratch/ogre_tools/src/stl_to_mesh:14041-14418
/pkg/trunk/visualization/ogre_tools/src/stl_to_mesh:2217-2818
+ /pkg/branches/gazebo-branch-merge/visualization_core/ogre_tools/src/stl_to_mesh:15739-15794,15797-15820
/pkg/branches/josh/visualization_scratch/ogre_tools/src/stl_to_mesh:14041-14418
/pkg/trunk/visualization/ogre_tools/src/stl_to_mesh:2217-2818
Property changes on: pkg/trunk/visualization_core/ogre_tools/test
___________________________________________________________________
Modified: svn:mergeinfo
- /pkg/branches/gazebo-branch-merge/visualization_core/ogre_tools/test:15739-15794
/pkg/branches/josh/visualization_scratch/ogre_tools/test:14041-14418
/pkg/trunk/visualization/ogre_tools/test:2217-3599
+ /pkg/branches/gazebo-branch-merge/visualization_core/ogre_tools/test:15739-15794,15797-15820
/pkg/branches/josh/visualization_scratch/ogre_tools/test:14041-14418
/pkg/trunk/visualization/ogre_tools/test:2217-3599
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hsu...@us...> - 2009-05-29 19:39:42
|
Revision: 16385
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=16385&view=rev
Author: hsujohnhsu
Date: 2009-05-29 19:39:10 +0000 (Fri, 29 May 2009)
Log Message:
-----------
Merging from branch:
svn merge -r 15821:15839 https://personalrobots.svn.sf.net/svnroot/personalrobots/pkg/branches/gazebo-branch-merge .
Modified Paths:
--------------
pkg/trunk/demos/door_demos_gazebo/door_defs/door_defs.xml
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/scripts/pr2.material
pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/empty.world
pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/simple.world
pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/wg.world
pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/arm_defs.xml
pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/arm_grav_defs.xml
pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/base_defs.xml
pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/body_defs.xml
pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/gripper_defs.xml
pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/head_defs.xml
pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/mono_cam_defs.xml
pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/prosilica_defs.xml
pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/ptz_defs.xml
pkg/trunk/robot_descriptions/pr2/pr2_defs/robots/l_arm.xacro.xml
pkg/trunk/robot_descriptions/pr2/pr2_defs/robots/l_gripper.xacro.xml
pkg/trunk/robot_descriptions/pr2/pr2_defs/robots/r_arm.xacro.xml
pkg/trunk/robot_descriptions/pr2/pr2_defs/robots/r_forearm_gripper.xacro.xml
pkg/trunk/robot_descriptions/pr2/pr2_defs/robots/r_gripper.xacro.xml
pkg/trunk/visualization_core/ogre_tools/CMakeLists.txt
Property Changed:
----------------
pkg/trunk/
pkg/trunk/robot_descriptions/gazebo_robot_description/Media/
pkg/trunk/visualization/
pkg/trunk/visualization/rviz/src/rviz/generated/rviz_generated.i
pkg/trunk/visualization/rviz/src/rviz/properties/forwards.h
pkg/trunk/visualization/rviz/src/rviz/robot/robot.cpp
pkg/trunk/visualization/rviz/src/rviz/robot/robot.h
pkg/trunk/visualization_core/ogre_tools/
pkg/trunk/visualization_core/ogre_tools/media/
pkg/trunk/visualization_core/ogre_tools/src/stl_to_mesh/
pkg/trunk/visualization_core/ogre_tools/test/
Property changes on: pkg/trunk
___________________________________________________________________
Modified: svn:mergeinfo
- /pkg/branches/gazebo-branch-merge:15739-15794,15797-15820
+ /pkg/branches/gazebo-branch-merge:15739-15794,15797-15820,15822-15839
Modified: pkg/trunk/demos/door_demos_gazebo/door_defs/door_defs.xml
===================================================================
--- pkg/trunk/demos/door_demos_gazebo/door_defs/door_defs.xml 2009-05-29 19:34:22 UTC (rev 16384)
+++ pkg/trunk/demos/door_demos_gazebo/door_defs/door_defs.xml 2009-05-29 19:39:10 UTC (rev 16385)
@@ -101,7 +101,7 @@
<visual>
<origin xyz="0 5 1" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/GrassFloor" />
+ <elem key="material" value="PR2/White" />
</map>
<geometry name="wall1_visual_geom">
<mesh scale="0.4 10 2" />
@@ -135,7 +135,7 @@
<visual>
<origin xyz="0 -5 1" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/GrassFloor" />
+ <elem key="material" value="PR2/White" />
</map>
<geometry name="wall2_visual_geom">
<mesh scale="0.4 10 2" />
Property changes on: pkg/trunk/robot_descriptions/gazebo_robot_description/Media
___________________________________________________________________
Modified: svn:mergeinfo
- /pkg/branches/gazebo-branch-merge/robot_descriptions/gazebo_robot_description/Media:15797-15820
+ /pkg/branches/gazebo-branch-merge/robot_descriptions/gazebo_robot_description/Media:15797-15820,15822-15839
Modified: pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/scripts/pr2.material
===================================================================
--- pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/scripts/pr2.material 2009-05-29 19:34:22 UTC (rev 16384)
+++ pkg/trunk/robot_descriptions/gazebo_robot_description/Media/materials/scripts/pr2.material 2009-05-29 19:39:10 UTC (rev 16385)
@@ -172,47 +172,149 @@
material PR2/Shiny
{
- technique
- {
- pass
- {
- ambient 0.75 0.75 0.75
- texture_unit
- {
- texture Chrome.jpg
- env_map spherical
- }
- }
- }
+ technique
+ {
+ pass
+ {
+ ambient 0.75 0.75 0.75
+ texture_unit
+ {
+ texture plug_texture.jpg
+ env_map spherical
+ }
+ }
+ }
}
material PR2/Plug
{
- technique
- {
- pass
- {
- texture_unit
- {
- texture plug_texture.jpg
- }
- }
- }
+ technique
+ {
+ pass
+ {
+ texture_unit
+ {
+ texture plug_texture.jpg
+ }
+ }
+ }
}
material PR2/White
{
- technique
- {
- pass Ambient
- {
- ambient 1.000000 1.000000 1.000000 1.000000
- }
- pass PointLight
- {
- ambient 1.000000 1.000000 1.000000 1.000000
- }
+ technique
+ {
+ pass
+ {
+ ambient 0.8 0.8 0.8 1.0
+ diffuse 1.0 1.0 1.0 1.0
+ shading gouraud
+ lighting on
+ }
+ }
+}
- }
+
+
+material PR2/Blue
+{
+ receive_shadows on
+
+ technique
+ {
+ pass
+ {
+ ambient 0.000000 0.000000 0.200000 1.000000
+ diffuse 0.000000 0.000000 0.800000 1.000000
+ specular 0.000000 0.000000 0.200000 1.000000
+ emissive 0.000000 0.000000 0.000000 1.000000
+ shading gouraud
+ }
+ }
}
+
+material PR2/Grey2
+{
+ receive_shadows on
+
+ technique
+ {
+ pass
+ {
+ ambient 0.1 0.1 0.1 1.0
+ diffuse 0.9 0.9 0.9 1.0
+ specular 0.9 0.9 0.9 1
+ lighting on
+ }
+ }
+}
+
+material PR2/Grey
+{
+ receive_shadows on
+ lighting on
+
+ technique
+ {
+ pass
+ {
+ ambient 0.1 0.1 0.1 1.0
+ diffuse 0.7 0.7 0.7 1.0
+ specular 0.8 0.8 0.8 1
+ }
+ }
+}
+
+material PR2/Yellow
+{
+ receive_shadows on
+
+ technique
+ {
+ pass
+ {
+ ambient 0.200000 0.200000 0.000000 1.000000
+ diffuse 0.800000 0.800000 0.000000 1.000000
+ specular 0.200000 0.200000 0.000000 1.000000
+ emissive 0.000000 0.000000 0.000000 1.000000
+ lighting on
+ }
+ }
+}
+
+material PR2/Red
+{
+ receive_shadows on
+ technique
+ {
+ pass
+ {
+ ambient 0.200000 0.000000 0.000000 1.000000
+ diffuse 0.800000 0.000000 0.000000 1.000000
+ specular 0.200000 0.000000 0.000000 1.000000
+ emissive 0.000000 0.000000 0.000000 1.000000
+ lighting on
+ shading phong
+ }
+ }
+}
+
+material PR2/Green
+{
+ receive_shadows on
+
+ technique
+ {
+ pass
+ {
+ ambient 0.000000 0.200000 0.000000 1.000000
+ diffuse 0.000000 0.800000 0.000000 1.000000
+ specular 0.000000 0.200000 0.000000 1.000000
+ emissive 0.000000 0.000000 0.000000 0.000000
+ lighting on
+ shading phong
+ }
+ }
+}
+
Modified: pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/empty.world
===================================================================
--- pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/empty.world 2009-05-29 19:34:22 UTC (rev 16384)
+++ pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/empty.world 2009-05-29 19:39:10 UTC (rev 16385)
@@ -115,7 +115,6 @@
<!-- White Directional light -->
- <!--
<model:renderable name="directional_white">
<light>
<type>directional</type>
@@ -125,6 +124,7 @@
<attenuation>1 0.0 1.0 0.4</attenuation>
</light>
</model:renderable>
+ <!--
-->
Modified: pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/simple.world
===================================================================
--- pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/simple.world 2009-05-29 19:34:22 UTC (rev 16384)
+++ pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/simple.world 2009-05-29 19:39:10 UTC (rev 16385)
@@ -248,7 +248,6 @@
</model:empty>
<!-- White Directional light -->
- <!--
<model:renderable name="directional_white">
<light>
<type>directional</type>
@@ -258,6 +257,7 @@
<attenuation>1 0.0 1.0 0.4</attenuation>
</light>
</model:renderable>
+ <!--
-->
Modified: pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/wg.world
===================================================================
--- pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/wg.world 2009-05-29 19:34:22 UTC (rev 16384)
+++ pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/wg.world 2009-05-29 19:39:10 UTC (rev 16385)
@@ -139,7 +139,6 @@
</model:empty>
<!-- White Directional light -->
- <!--
<model:renderable name="directional_white">
<light>
<type>directional</type>
@@ -149,6 +148,7 @@
<attenuation>1 0.0 1.0 0.4</attenuation>
</light>
</model:renderable>
+ <!--
-->
Modified: pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/arm_defs.xml
===================================================================
--- pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/arm_defs.xml 2009-05-29 19:34:22 UTC (rev 16384)
+++ pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/arm_defs.xml 2009-05-29 19:39:10 UTC (rev 16385)
@@ -64,7 +64,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Blue" />
+ <elem key="material" value="PR2/Blue" />
</map>
<geometry name="${side}_shoulder_pan_visual">
<mesh filename="shoulder_yaw" />
@@ -134,7 +134,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Grey" />
+ <elem key="material" value="PR2/Grey" />
</map>
<geometry name="${side}_shoulder_lift_visual">
<mesh filename="shoulder_lift" />
@@ -205,7 +205,7 @@
<visual> <!-- TODO: This component doesn't actually have a mesh -->
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Fish" />
+ <elem key="material" value="PR2/Yellow" />
</map>
<geometry name="${side}_upper_arm_roll_visual">
<mesh filename="upper_arm_roll" scale="1 1 1" />
@@ -259,7 +259,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Green" />
+ <elem key="material" value="PR2/Green" />
</map>
<geometry name="${side}_upper_arm_visual">
<mesh filename="upper_arm" />
@@ -326,7 +326,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Grey" />
+ <elem key="material" value="PR2/Grey" />
</map>
<geometry name="${side}_elbow_flex_visual">
<mesh filename="elbow_flex" />
@@ -436,7 +436,7 @@
<visual><!-- TODO: need a mesh for this -->
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Fish" />
+ <elem key="material" value="PR2/Yellow" />
</map>
<geometry name="${side}_forearm_roll_visual">
<mesh filename="forearm_roll" scale="1 1 1" />
@@ -481,7 +481,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Blue" />
+ <elem key="material" value="PR2/Blue" />
</map>
<geometry name="${side}_forearm_visual">
<mesh filename="forearm" />
@@ -544,7 +544,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Grey" />
+ <elem key="material" value="PR2/Grey" />
</map>
<geometry name="${side}_wrist_flex_visual">
<mesh filename="wrist_flex" />
@@ -604,7 +604,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Fish" />
+ <elem key="material" value="PR2/Yellow" />
</map>
<geometry name="${side}_wrist_roll_visual">
<mesh filename="wrist_roll" />
Modified: pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/arm_grav_defs.xml
===================================================================
--- pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/arm_grav_defs.xml 2009-05-29 19:34:22 UTC (rev 16384)
+++ pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/arm_grav_defs.xml 2009-05-29 19:39:10 UTC (rev 16385)
@@ -46,7 +46,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material">Gazebo/Blue</elem>
+ <elem key="material">PR2/Blue</elem>
</map>
<geometry name="${side}_shoulder_pan_visual">
<mesh filename="shoulder_yaw" />
@@ -110,7 +110,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material">Gazebo/Grey</elem>
+ <elem key="material">PR2/Grey</elem>
</map>
<geometry name="${side}_shoulder_lift_visual">
<mesh filename="shoulder_lift" />
@@ -177,7 +177,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material">Gazebo/Green</elem>
+ <elem key="material">PR2/Green</elem>
</map>
<geometry name="${side}_upper_arm_roll_visual">
<mesh filename="upper_arm" />
@@ -245,7 +245,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material">Gazebo/Grey</elem>
+ <elem key="material">PR2/Grey</elem>
</map>
<geometry name="${side}_elbow_flex_visual">
<mesh filename="elbow_flex" />
@@ -358,7 +358,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material">Gazebo/Blue</elem>
+ <elem key="material">PR2/Blue</elem>
</map>
<geometry name="${side}_forearm_roll_visual">
<mesh filename="forearm" />
@@ -423,7 +423,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material">Gazebo/Grey</elem>
+ <elem key="material">PR2/Grey</elem>
</map>
<geometry name="${side}_wrist_flex_visual">
<mesh filename="wrist_flex" />
@@ -479,7 +479,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material">Gazebo/Red</elem>
+ <elem key="material">PR2/Red</elem>
</map>
<geometry name="${side}_wrist_roll_visual">
<mesh filename="wrist_roll" />
Modified: pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/base_defs.xml
===================================================================
--- pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/base_defs.xml 2009-05-29 19:34:22 UTC (rev 16384)
+++ pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/base_defs.xml 2009-05-29 19:39:10 UTC (rev 16385)
@@ -99,7 +99,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Green" />
+ <elem key="material" value="PR2/Green" />
</map>
<geometry name="${suffix}_caster_rotation_visual">
<mesh filename="caster" scale="1 1 1"/>
@@ -216,7 +216,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Green" />
+ <elem key="material" value="PR2/Green" />
</map>
<geometry name="${suffix}_caster_rotation_visual">
<mesh filename="caster" scale="1 1 1"/>
@@ -262,7 +262,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Green" />
+ <elem key="material" value="PR2/Green" />
</map>
<geometry name="${name}_visual">
<mesh filename="base" />
@@ -311,7 +311,7 @@
<visual>
<origin xyz="0 0 0.0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/PioneerBody" />
+ <elem key="material" value="PR2/Red" />
</map>
<geometry name="base_laser_visual">
<mesh scale="0.001 0.001 0.001"/>
@@ -413,7 +413,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Green" />
+ <elem key="material" value="PR2/Green" />
</map>
<geometry name="${name}_visual">
<mesh filename="base" />
@@ -462,7 +462,7 @@
<visual>
<origin xyz="0 0 0.0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/PioneerBody" />
+ <elem key="material" value="PR2/Red" />
</map>
<geometry name="base_laser_visual">
<mesh scale="0.001 0.001 0.001"/>
Modified: pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/body_defs.xml
===================================================================
--- pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/body_defs.xml 2009-05-29 19:34:22 UTC (rev 16384)
+++ pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/body_defs.xml 2009-05-29 19:39:10 UTC (rev 16385)
@@ -35,8 +35,8 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
- <map name="foo" flag="gazebo">
- <elem key="material" value="Gazebo/Red" />
+ <map name="gazebo_material" flag="gazebo">
+ <elem key="material" value="PR2/Grey2" />
</map>
<geometry name="${name}_visual">
<mesh filename="torso" />
Modified: pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/gripper_defs.xml
===================================================================
--- pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/gripper_defs.xml 2009-05-29 19:34:22 UTC (rev 16384)
+++ pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/gripper_defs.xml 2009-05-29 19:39:10 UTC (rev 16385)
@@ -75,7 +75,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Shell" />
+ <elem key="material" value="PR2/Grey" />
</map>
<geometry name="${prefix}_l_finger_visual">
<mesh filename="upper_finger_l" />
@@ -157,7 +157,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Shell" />
+ <elem key="material" value="PR2/Grey" />
</map>
<geometry name="${prefix}_r_finger_visual">
<mesh filename="upper_finger_r" />
@@ -236,7 +236,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Green" />
+ <elem key="material" value="PR2/Green" />
</map>
<geometry name="${prefix}_l_finger_tip_visual">
<mesh filename="finger_tip_l" />
@@ -316,7 +316,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Green" />
+ <elem key="material" value="PR2/Green" />
</map>
<geometry name="${prefix}_r_finger_tip_visual">
<mesh filename="finger_tip_r" />
@@ -464,7 +464,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Red" />
+ <elem key="material" value="PR2/Red" />
</map>
<geometry name="${side}_gripper_palm_visual">
<mesh filename="gripper_palm" />
@@ -532,7 +532,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Shell" />
+ <elem key="material" value="PR2/Grey" />
</map>
<geometry name="${side}_gripper_tool_visual">
<mesh scale="0.0 0.0 0.0" />
@@ -633,7 +633,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Red" />
+ <elem key="material" value="PR2/Red" />
</map>
<geometry name="${side}_gripper_palm_visual">
<mesh filename="gripper_palm" />
@@ -701,7 +701,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Shell" />
+ <elem key="material" value="PR2/Grey" />
</map>
<geometry name="${side}_gripper_tool_visual">
<mesh scale="0.0 0.0 0.0" />
Modified: pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/head_defs.xml
===================================================================
--- pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/head_defs.xml 2009-05-29 19:34:22 UTC (rev 16384)
+++ pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/head_defs.xml 2009-05-29 19:39:10 UTC (rev 16385)
@@ -33,7 +33,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/PioneerBody" />
+ <elem key="material" value="PR2/Red" />
</map>
<geometry name="${name}_mount_visual">
<mesh filename="hok_tilt" />
@@ -146,7 +146,7 @@
<visual>
<origin xyz="${stereo_center_box_center_offset_x} 0 ${stereo_center_box_center_offset_z}" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Blue" />
+ <elem key="material" value="PR2/Blue" />
</map>
<geometry name="${name}_visual">
<mesh scale="${stereo_size_x} ${stereo_size_y} ${stereo_size_z}" />
@@ -181,7 +181,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Blue" />
+ <elem key="material" value="PR2/Blue" />
</map>
<geometry name="${name}_optical_fixed_visual">
<mesh scale="0.01 0.01 0.01" />
@@ -214,7 +214,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Blue" />
+ <elem key="material" value="PR2/Blue" />
</map>
<geometry name="${name}_r_stereo_camera_visual">
<mesh scale="0.01 0.01 0.01" />
@@ -267,7 +267,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Blue" />
+ <elem key="material" value="PR2/Blue" />
</map>
<geometry name="${name}_r_stereo_camera_visual">
<mesh scale="0.01 0.01 0.01" />
@@ -365,7 +365,7 @@
<visual>
<origin xyz="0 0 0.0" rpy="0 0 0 " />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Blue" />
+ <elem key="material" value="PR2/Blue" />
</map>
<geometry name="${name}_visual">
<mesh filename="head_pan" />
@@ -415,7 +415,7 @@
<visual>
<origin xyz="0 0 0" rpy="0.0 0.0 0.0 " />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Green" />
+ <elem key="material" value="PR2/Green" />
</map>
<geometry name="${name}_visual">
<mesh filename="head_tilt" />
@@ -460,7 +460,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Blue" />
+ <elem key="material" value="PR2/Blue" />
</map>
<geometry name="${name}_plate_frame_visual">
<mesh scale="0.01 0.01 0.01" />
@@ -507,7 +507,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/PioneerBody" />
+ <elem key="material" value="PR2/Red" />
</map>
<geometry name="${name}_mount_visual">
<mesh filename="hok_tilt" />
@@ -624,7 +624,7 @@
<visual>
<origin xyz="0 0 0.0" rpy="0 0 0 " />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Blue" />
+ <elem key="material" value="PR2/Blue" />
</map>
<geometry name="${name}_visual">
<mesh filename="head_pan" />
@@ -673,7 +673,7 @@
<visual>
<origin xyz="0 0 0" rpy="0.0 0.0 0.0 " />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Green" />
+ <elem key="material" value="PR2/Green" />
</map>
<geometry name="${name}_visual">
<mesh filename="head_tilt" />
@@ -721,7 +721,7 @@
<visual>
<origin xyz="0 0 0" rpy="0.0 0.0 0.0 " />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Green" />
+ <elem key="material" value="PR2/Green" />
</map>
<geometry name="${name}_visual">
<mesh filename="head_tilt" />
@@ -768,7 +768,7 @@
<visual>
<origin xyz="0 0 0" rpy="0.0 0.0 0.0 " />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Green" />
+ <elem key="material" value="PR2/Green" />
</map>
<geometry name="${name}_visual">
<mesh filename="head_tilt" />
@@ -812,7 +812,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Blue" />
+ <elem key="material" value="PR2/Blue" />
</map>
<geometry name="${name}_plate_frame_visual">
<mesh scale="0.01 0.01 0.01" />
@@ -859,7 +859,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Blue" />
+ <elem key="material" value="PR2/Blue" />
</map>
<geometry name="${name}_plate_frame_visual">
<mesh scale="0.01 0.01 0.01" />
@@ -904,7 +904,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Blue" />
+ <elem key="material" value="PR2/Blue" />
</map>
<geometry name="${name}_plate_frame_visual">
<mesh scale="0.01 0.01 0.01" />
Modified: pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/mono_cam_defs.xml
===================================================================
--- pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/mono_cam_defs.xml 2009-05-29 19:34:22 UTC (rev 16384)
+++ pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/mono_cam_defs.xml 2009-05-29 19:39:10 UTC (rev 16385)
@@ -20,7 +20,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Blue" />
+ <elem key="material" value="PR2/Blue" />
</map>
<geometry name="${name}_visual">
<mesh scale="0.01 0.01 0.01" />
@@ -53,7 +53,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Blue" />
+ <elem key="material" value="PR2/Blue" />
</map>
<geometry name="${name}_optical_visual">
<mesh scale="0.01 0.01 0.01" />
Modified: pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/prosilica_defs.xml
===================================================================
--- pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/prosilica_defs.xml 2009-05-29 19:34:22 UTC (rev 16384)
+++ pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/prosilica_defs.xml 2009-05-29 19:39:10 UTC (rev 16385)
@@ -21,7 +21,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Blue" />
+ <elem key="material" value="PR2/Blue" />
</map>
<geometry name="${name}_visual">
<mesh scale="0.01 0.01 0.01" />
@@ -78,7 +78,7 @@
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<map name="gazebo_material" flag="gazebo">
- <elem key="material" value="Gazebo/Blue" />
+ <elem key="material" value="PR2/Blue" />
</map>
<geometry name="${name}_optical_visual">
<mesh scale="0.01 0.01 0.01" />
Modified: pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/ptz_defs.xml
===================================================================
--- pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/ptz_defs.xml 2009-05-29 19:34:22 UTC (rev 16384)
+++ pkg/trunk/robot_descriptions/pr2/pr2_defs/defs/ptz_defs.xml 2009-05-29...
[truncated message content] |