|
From: <sf...@us...> - 2009-08-25 20:04:48
|
Revision: 22884
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22884&view=rev
Author: sfkwc
Date: 2009-08-25 20:04:38 +0000 (Tue, 25 Aug 2009)
Log Message:
-----------
creating laser_pipeline stack
Added Paths:
-----------
pkg/trunk/stacks/laser_pipeline/
pkg/trunk/stacks/laser_pipeline/stack.xml
Added: pkg/trunk/stacks/laser_pipeline/stack.xml
===================================================================
--- pkg/trunk/stacks/laser_pipeline/stack.xml (rev 0)
+++ pkg/trunk/stacks/laser_pipeline/stack.xml 2009-08-25 20:04:38 UTC (rev 22884)
@@ -0,0 +1,12 @@
+<stack name="laser_pipeline" version="0.1.0">
+ <description brief="laser_pipeline">
+
+ Libraries from processing laser data, including converting laser data into 3D representations.
+
+ </description>
+ <author>Maintained by Jeremy Leibs</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://ros.org/wiki/laser_pipeline</url>
+
+</stack>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-08-25 20:05:41
|
Revision: 22885
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22885&view=rev
Author: sfkwc
Date: 2009-08-25 20:05:33 +0000 (Tue, 25 Aug 2009)
Log Message:
-----------
moving laser_scan to laser_pipeline stack
Added Paths:
-----------
pkg/trunk/stacks/laser_pipeline/laser_scan/
Removed Paths:
-------------
pkg/trunk/stacks/laser_drivers/laser_scan/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-08-25 22:02:35
|
Revision: 22899
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22899&view=rev
Author: sfkwc
Date: 2009-08-25 22:02:25 +0000 (Tue, 25 Aug 2009)
Log Message:
-----------
moving point_cloud_assembler to laser_pipeline stack
Added Paths:
-----------
pkg/trunk/stacks/laser_pipeline/point_cloud_assembler/
Removed Paths:
-------------
pkg/trunk/stacks/laser_drivers/point_cloud_assembler/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jl...@us...> - 2009-08-26 06:43:41
|
Revision: 22957
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22957&view=rev
Author: jleibs
Date: 2009-08-26 06:43:34 +0000 (Wed, 26 Aug 2009)
Log Message:
-----------
Both test_stereo_msgs and pr2_msgs will pass their tests as soon as 0.8 is released.
Modified Paths:
--------------
pkg/trunk/stacks/pr2_common/pr2_msgs/CMakeLists.txt
pkg/trunk/stacks/stereo/test_stereo_msgs/CMakeLists.txt
Modified: pkg/trunk/stacks/pr2_common/pr2_msgs/CMakeLists.txt
===================================================================
--- pkg/trunk/stacks/pr2_common/pr2_msgs/CMakeLists.txt 2009-08-26 06:24:50 UTC (rev 22956)
+++ pkg/trunk/stacks/pr2_common/pr2_msgs/CMakeLists.txt 2009-08-26 06:43:34 UTC (rev 22957)
@@ -5,4 +5,4 @@
gensrv()
-rospack_add_pyunit(test/test_pr2_msgs_migration.py)
+rospack_add_pyunit_future(test/test_pr2_msgs_migration.py)
Modified: pkg/trunk/stacks/stereo/test_stereo_msgs/CMakeLists.txt
===================================================================
--- pkg/trunk/stacks/stereo/test_stereo_msgs/CMakeLists.txt 2009-08-26 06:24:50 UTC (rev 22956)
+++ pkg/trunk/stacks/stereo/test_stereo_msgs/CMakeLists.txt 2009-08-26 06:43:34 UTC (rev 22957)
@@ -29,4 +29,4 @@
#rospack_add_executable(example examples/example.cpp)
#target_link_libraries(example ${PROJECT_NAME})
-rospack_add_pyunit(test/test_stereo_msgs_migration.py)
+rospack_add_pyunit_future(test/test_stereo_msgs_migration.py)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jl...@us...> - 2009-08-26 16:39:38
|
Revision: 22972
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22972&view=rev
Author: jleibs
Date: 2009-08-26 16:39:27 +0000 (Wed, 26 Aug 2009)
Log Message:
-----------
Moving test for BatteryState from test_common_msgs to pr2_msgs.
Modified Paths:
--------------
pkg/trunk/stacks/common_msgs/test_common_msgs/test/test_common_msgs_migration.py
pkg/trunk/stacks/pr2_common/pr2_msgs/test/test_pr2_msgs_migration.py
Added Paths:
-----------
pkg/trunk/stacks/pr2_common/pr2_msgs/test/saved/BatteryState.saved
Removed Paths:
-------------
pkg/trunk/stacks/common_msgs/test_common_msgs/test/saved/BatteryState.saved
Deleted: pkg/trunk/stacks/common_msgs/test_common_msgs/test/saved/BatteryState.saved
===================================================================
--- pkg/trunk/stacks/common_msgs/test_common_msgs/test/saved/BatteryState.saved 2009-08-26 16:36:30 UTC (rev 22971)
+++ pkg/trunk/stacks/common_msgs/test_common_msgs/test/saved/BatteryState.saved 2009-08-26 16:39:27 UTC (rev 22972)
@@ -1,22 +0,0 @@
-[robot_msgs/BatteryState]:
-Header header
-float64 energy_remaining ## Joules
-float64 energy_capacity ## Joules
-float64 power_consumption ## Watts
-
-================================================================================
-MSG: roslib/Header
-#Standard metadata for higher-level flow data types
-#sequence ID: consecutively increasing ID
-uint32 seq
-#Two-integer timestamp that is expressed as:
-# * stamp.secs: seconds (stamp_secs) since epoch
-# * stamp.nsecs: nanoseconds since stamp_secs
-# time-handling sugar is provided by the client library
-time stamp
-#Frame this data is associated with
-# 0: no frame
-# 1: global frame
-string frame_id
-
-
Modified: pkg/trunk/stacks/common_msgs/test_common_msgs/test/test_common_msgs_migration.py
===================================================================
--- pkg/trunk/stacks/common_msgs/test_common_msgs/test/test_common_msgs_migration.py 2009-08-26 16:36:30 UTC (rev 22971)
+++ pkg/trunk/stacks/common_msgs/test_common_msgs/test/test_common_msgs_migration.py 2009-08-26 16:39:27 UTC (rev 22972)
@@ -449,24 +449,6 @@
self.do_test('angular_acceleration', self.get_old_angular_acceleration, self.get_new_angular_acceleration)
-########### BatteryState ###############
-
-# def get_old_battery_state(self):
-# battery_state_classes = self.load_saved_classes('BatteryState.saved')
-#
-# battery_state = battery_state_classes['robot_msgs/BatteryState']
-#
-# return battery_state(None, 1.23, 4.56, 7.89)
-#
-# def get_new_battery_state(self):
-# from pr2_msgs.msg import BatteryState
-#
-# return BatteryState(None, 1.23, 4.56, 7.89)
-#
-# def test_battery_state(self):
-# self.do_test('battery_state', self.get_old_battery_state, self.get_new_battery_state)
-
-
########### DiagnosticValue ###############
def get_old_diagnostic_value(self):
Copied: pkg/trunk/stacks/pr2_common/pr2_msgs/test/saved/BatteryState.saved (from rev 22956, pkg/trunk/stacks/common_msgs/test_common_msgs/test/saved/BatteryState.saved)
===================================================================
--- pkg/trunk/stacks/pr2_common/pr2_msgs/test/saved/BatteryState.saved (rev 0)
+++ pkg/trunk/stacks/pr2_common/pr2_msgs/test/saved/BatteryState.saved 2009-08-26 16:39:27 UTC (rev 22972)
@@ -0,0 +1,22 @@
+[robot_msgs/BatteryState]:
+Header header
+float64 energy_remaining ## Joules
+float64 energy_capacity ## Joules
+float64 power_consumption ## Watts
+
+================================================================================
+MSG: roslib/Header
+#Standard metadata for higher-level flow data types
+#sequence ID: consecutively increasing ID
+uint32 seq
+#Two-integer timestamp that is expressed as:
+# * stamp.secs: seconds (stamp_secs) since epoch
+# * stamp.nsecs: nanoseconds since stamp_secs
+# time-handling sugar is provided by the client library
+time stamp
+#Frame this data is associated with
+# 0: no frame
+# 1: global frame
+string frame_id
+
+
Modified: pkg/trunk/stacks/pr2_common/pr2_msgs/test/test_pr2_msgs_migration.py
===================================================================
--- pkg/trunk/stacks/pr2_common/pr2_msgs/test/test_pr2_msgs_migration.py 2009-08-26 16:36:30 UTC (rev 22971)
+++ pkg/trunk/stacks/pr2_common/pr2_msgs/test/test_pr2_msgs_migration.py 2009-08-26 16:39:27 UTC (rev 22972)
@@ -78,6 +78,24 @@
self.do_test('laser_scanner_signal', self.get_old_laser_scanner_signal, self.get_new_laser_scanner_signal)
+########### BatteryState ###############
+
+ def get_old_battery_state(self):
+ battery_state_classes = self.load_saved_classes('BatteryState.saved')
+
+ battery_state = battery_state_classes['robot_msgs/BatteryState']
+
+ return battery_state(None, 1.23, 4.56, 7.89)
+
+ def get_new_battery_state(self):
+ from pr2_msgs.msg import BatteryState
+
+ return BatteryState(None, 1.23, 4.56, 7.89)
+
+ def test_battery_state(self):
+ self.do_test('battery_state', self.get_old_battery_state, self.get_new_battery_state)
+
+
########### Helper functions ###########
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-08-26 17:41:08
|
Revision: 22979
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22979&view=rev
Author: sfkwc
Date: 2009-08-26 17:40:57 +0000 (Wed, 26 Aug 2009)
Log Message:
-----------
renaming map_building to slam_gmapping
Added Paths:
-----------
pkg/trunk/stacks/slam_gmapping/
Removed Paths:
-------------
pkg/trunk/stacks/map_building/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-08-26 18:45:28
|
Revision: 22995
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22995&view=rev
Author: sfkwc
Date: 2009-08-26 18:45:18 +0000 (Wed, 26 Aug 2009)
Log Message:
-----------
updated stack.xml properties
Modified Paths:
--------------
pkg/trunk/stacks/common_msgs/stack.xml
pkg/trunk/stacks/geometry/stack.xml
pkg/trunk/stacks/laser_pipeline/stack.xml
pkg/trunk/stacks/simulator_gazebo/stack.xml
pkg/trunk/stacks/simulator_stage/stack.xml
pkg/trunk/stacks/visualization_common/stack.xml
Modified: pkg/trunk/stacks/common_msgs/stack.xml
===================================================================
--- pkg/trunk/stacks/common_msgs/stack.xml 2009-08-26 18:42:22 UTC (rev 22994)
+++ pkg/trunk/stacks/common_msgs/stack.xml 2009-08-26 18:45:18 UTC (rev 22995)
@@ -11,7 +11,7 @@
<author>Maintained by Tully Foote tf...@wi...</author>
<license>BSD</license>
<review status="unreviewed" notes=""/>
- <url>http://pr.willowgarage.com/wiki/common_msgs</url>
+ <url>http://ros.org/wiki/common_msgs</url>
<depend stack="ros"/> <!-- rospy, rosrecord, rostest, rosbagmigration, std_msgs -->
</stack>
Modified: pkg/trunk/stacks/geometry/stack.xml
===================================================================
--- pkg/trunk/stacks/geometry/stack.xml 2009-08-26 18:42:22 UTC (rev 22994)
+++ pkg/trunk/stacks/geometry/stack.xml 2009-08-26 18:45:18 UTC (rev 22995)
@@ -5,7 +5,7 @@
<author>Maintained by Tully Foote tf...@wi...</author>
<license>BSD</license>
<review status="unreviewed" notes=""/>
- <url>http://pr.willowgarage.com/wiki/ROS</url>
+ <url>http://ros.org/wiki/geometry</url>
<depend stack="ros"/> <!-- rostest, roscpp, rosconsole, rospy, rostest, roswtf, message_filters -->
<depend stack="common_msgs"/> <!-- geometry_msgs, sensor_msgs -->
Modified: pkg/trunk/stacks/laser_pipeline/stack.xml
===================================================================
--- pkg/trunk/stacks/laser_pipeline/stack.xml 2009-08-26 18:42:22 UTC (rev 22994)
+++ pkg/trunk/stacks/laser_pipeline/stack.xml 2009-08-26 18:45:18 UTC (rev 22995)
@@ -8,5 +8,9 @@
<license>BSD</license>
<review status="unreviewed" notes=""/>
<url>http://ros.org/wiki/laser_pipeline</url>
+ <depend stack="geometry"/> <!-- tf, angles -->
+ <depend stack="ros"/> <!-- roscpp -->
+ <depend stack="common"/> <!-- filters -->
+ <depend stack="common_msgs"/> <!-- sensor_msgs -->
</stack>
Modified: pkg/trunk/stacks/simulator_gazebo/stack.xml
===================================================================
--- pkg/trunk/stacks/simulator_gazebo/stack.xml 2009-08-26 18:42:22 UTC (rev 22994)
+++ pkg/trunk/stacks/simulator_gazebo/stack.xml 2009-08-26 18:45:18 UTC (rev 22995)
@@ -2,10 +2,10 @@
<description brief="Gazebo Simulators">
Simulator for using ROS with Gazebo
</description>
- <author>John Hsu jo...@wi...</author>
+ <author>Maintained by John Hsu jo...@wi...</author>
<license>BSD</license>
<review status="unreviewed" notes=""/>
- <url>http://pr.willowgarage.com/wiki/simulators</url>
+ <url>http://ros.org/wiki/simulator_gazebo</url>
<depend stack="geometry"/> <!-- bullet, tf -->
Modified: pkg/trunk/stacks/simulator_stage/stack.xml
===================================================================
--- pkg/trunk/stacks/simulator_stage/stack.xml 2009-08-26 18:42:22 UTC (rev 22994)
+++ pkg/trunk/stacks/simulator_stage/stack.xml 2009-08-26 18:45:18 UTC (rev 22995)
@@ -7,7 +7,7 @@
<author>Maintained by Brian Gerkey</author>
<license>GPL</license>
<review status="unreviewed" notes=""/>
- <url>http://pr.willowgarage.com/wiki/simulator_stage</url>
+ <url>http://ros.org/wiki/simulator_stage</url>
<depend stack="geometry"/> <!-- tf -->
<depend stack="ros"/> <!-- std_msgs, roscpp -->
<depend stack="common_msgs"/> <!-- nav_msgs, geometry_msgs, sensor_msgs -->
Modified: pkg/trunk/stacks/visualization_common/stack.xml
===================================================================
--- pkg/trunk/stacks/visualization_common/stack.xml 2009-08-26 18:42:22 UTC (rev 22994)
+++ pkg/trunk/stacks/visualization_common/stack.xml 2009-08-26 18:45:18 UTC (rev 22995)
@@ -5,7 +5,7 @@
<author>Josh Faust jf...@wi...</author>
<license>BSD</license>
<review status="unreviewed" notes=""/>
- <url>http://pr.willowgarage.com/wiki/visualization_core</url>
+ <url>http://ros.org/wiki/visualization_core</url>
<depend stack="ros"/> <!-- wxswig, rosconsole, roslib, std_msgs -->
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-08-26 18:47:17
|
Revision: 22997
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22997&view=rev
Author: sfkwc
Date: 2009-08-26 18:47:07 +0000 (Wed, 26 Aug 2009)
Log Message:
-----------
removing release-properties.yaml, superceded by rosdistro
Removed Paths:
-------------
pkg/trunk/stacks/release-properties.yaml
pkg/trunk/stacks/simulator_stage/release-properties.yaml
Deleted: pkg/trunk/stacks/release-properties.yaml
===================================================================
--- pkg/trunk/stacks/release-properties.yaml 2009-08-26 18:45:51 UTC (rev 22996)
+++ pkg/trunk/stacks/release-properties.yaml 2009-08-26 18:47:07 UTC (rev 22997)
@@ -1,8 +0,0 @@
-# url where the releasable code is being developed
-# you may use the %(name)s key to substitute in the name of your stack/app
-svn-dev: https://personalrobots.svn.sourceforge.net/svnroot/personalrobots/pkg/trunk/stacks/%(name)s/
-# url where the released code should be tagged, e.g. your_stack-1.2.3
-# you may use the %(name)s key to substitute in the name of your stack/app
-# you may use the %(version)s key to substitute in the version number
-svn-tags: https://personalrobots.svn.sourceforge.net/svnroot/personalrobots/stacks/%(name)s/tags/%(name)s-%(version)s
-tarball-url: https://personalrobots.sourceforge.net/files/%(name)s/%(version)s/%(file)s
Deleted: pkg/trunk/stacks/simulator_stage/release-properties.yaml
===================================================================
--- pkg/trunk/stacks/simulator_stage/release-properties.yaml 2009-08-26 18:45:51 UTC (rev 22996)
+++ pkg/trunk/stacks/simulator_stage/release-properties.yaml 2009-08-26 18:47:07 UTC (rev 22997)
@@ -1,8 +0,0 @@
-# url where the releasable code is being developed
-# you may use the %(name)s key to substitute in the name of your stack/app
-svn-dev: https://personalrobots.svn.sourceforge.net/svnroot/personalrobots/pkg/trunk/stacks/%(name)s/
-# url where the released code should be tagged, e.g. your_stack-1.2.3
-# you may use the %(name)s key to substitute in the name of your stack/app
-# you may use the %(version)s key to substitute in the version number
-svn-tags: https://personalrobots.svn.sourceforge.net/svnroot/personalrobots/stacks/%(name)s/tags/%(name)s-%(version)s
-tarball-url: https://personalrobots.sourceforge.net/files/%(name)s/%(version)s/%(file)s
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ehb...@us...> - 2009-08-26 19:07:25
|
Revision: 23003
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23003&view=rev
Author: ehberger
Date: 2009-08-26 19:07:07 +0000 (Wed, 26 Aug 2009)
Log Message:
-----------
Creating pr2_gui stack
Added Paths:
-----------
pkg/trunk/stacks/pr2_gui/
pkg/trunk/stacks/pr2_gui/pr2_dashboard/
pkg/trunk/stacks/pr2_gui/pr2_dashboard2/
pkg/trunk/stacks/pr2_gui/stack.xml
Removed Paths:
-------------
pkg/trunk/stacks/pr2/pr2_dashboard/
pkg/trunk/stacks/pr2/pr2_dashboard2/
Added: pkg/trunk/stacks/pr2_gui/stack.xml
===================================================================
--- pkg/trunk/stacks/pr2_gui/stack.xml (rev 0)
+++ pkg/trunk/stacks/pr2_gui/stack.xml 2009-08-26 19:07:07 UTC (rev 23003)
@@ -0,0 +1,14 @@
+<stack name="pr2_gui" version="0.1.0">
+ <description brief="pr2_gui">
+
+ GUIs for the pr2
+
+ </description>
+ <author>Eric Berger</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/pr2</url>
+ <depend stack="ros"/> <!-- std_msgs, roscpp, std_msgs, rxtools, rospy, roslib, std_srvs -->
+ <depend stack="diagnostics"/> <!-- runtime_monitor -->
+ <depend stack="pr2_power_drivers"/>
+</stack>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bla...@us...> - 2009-08-27 00:01:18
|
Revision: 23067
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23067&view=rev
Author: blaisegassend
Date: 2009-08-27 00:01:03 +0000 (Thu, 27 Aug 2009)
Log Message:
-----------
Added covariance data to IMU output, and modified robot launch files
accordingly.
Modified Paths:
--------------
pkg/trunk/stacks/imu_drivers/imu_node/imu_node.cc
pkg/trunk/stacks/pr2/pr2_alpha/pre.launch
pkg/trunk/stacks/pr2/pr2_alpha/prf.launch
pkg/trunk/stacks/pr2/pr2_alpha/prg.launch
Modified: pkg/trunk/stacks/imu_drivers/imu_node/imu_node.cc
===================================================================
--- pkg/trunk/stacks/imu_drivers/imu_node/imu_node.cc 2009-08-27 00:00:51 UTC (rev 23066)
+++ pkg/trunk/stacks/imu_drivers/imu_node/imu_node.cc 2009-08-27 00:01:03 UTC (rev 23067)
@@ -82,6 +82,9 @@
- @b "~frame_id" : @b [string] the frame in which imu readings will be returned (Default: "imu")
- @b "~autostart" : @b [bool] whether the imu starts on its own (this is only useful for bringing up an imu in test mode)
- @b "~autocalibrate" : @b [bool] whether the imu automatically computes its biases at startup (not useful if you intend to calibrate via the calibrate service)
+ - @b "~orientation_stdev" : @b [double] square root of the orientation_covariance diagonal elements in rad (Default: 0.035)
+ - @b "~angular_velocity_stdev" : @b [double] square root of the angular_velocity_covariance diagonal elements in rad/s (Default: 0.012)
+ - @b "~linear_acceleration_stdev" : @b [double] square root of the linear_acceleration_covariance diagonal elements in m/s^2 (Default: 0.098)
**/
@@ -146,6 +149,10 @@
double bias_y_;
double bias_z_;
+ double angular_velocity_stdev_, angular_velocity_covariance_;
+ double linear_acceleration_covariance_, linear_acceleration_stdev_;
+ double orientation_covariance_, orientation_stdev_;
+
double desired_freq_;
diagnostic_updater::FrequencyStatus freq_diag_;
@@ -173,9 +180,30 @@
bias_x_ = bias_y_ = bias_z_ = 0;
node_handle_.param("~frameid", frameid_, string("imu"));
+ reading.header.frame_id = frameid_;
node_handle_.param("~time_offset", offset_, 0.0);
+ node_handle_.param("~linear_acceleration_stdev", linear_acceleration_stdev_, 0.098);
+ node_handle_.param("~orientation_stdev", orientation_stdev_, 0.035);
+ node_handle_.param("~angular_velocity_stdev", angular_velocity_stdev_, 0.012);
+
+ double angular_velocity_covariance = angular_velocity_stdev_ * angular_velocity_stdev_;
+ double orientation_covariance = orientation_stdev_ * orientation_stdev_;
+ double linear_acceleration_covariance = linear_acceleration_stdev_ * linear_acceleration_stdev_;
+
+ reading.linear_acceleration_covariance[0] = linear_acceleration_covariance;
+ reading.linear_acceleration_covariance[4] = linear_acceleration_covariance;
+ reading.linear_acceleration_covariance[8] = linear_acceleration_covariance;
+
+ reading.angular_velocity_covariance[0] = angular_velocity_covariance;
+ reading.angular_velocity_covariance[4] = angular_velocity_covariance;
+ reading.angular_velocity_covariance[8] = angular_velocity_covariance;
+
+ reading.orientation_covariance[0] = orientation_covariance;
+ reading.orientation_covariance[4] = orientation_covariance;
+ reading.orientation_covariance[8] = orientation_covariance;
+
self_test_.setPretest(&ImuNode::pretest);
self_test_.addTest(&ImuNode::InterruptionTest);
self_test_.addTest(&ImuNode::ConnectTest);
@@ -299,9 +327,7 @@
tf::quaternionTFToMsg(quat, reading.orientation);
-
reading.header.stamp = ros::Time::now().fromNSec(time);
- reading.header.frame_id = frameid_;
starttime = ros::Time::now().toSec();
imu_data_pub_.publish(reading);
@@ -359,7 +385,7 @@
{
status.name = "Interruption Test";
- if (node_handle_.getNode()->numSubscribers("imu_data") == 0 )
+ if (imu_data_pub_.getNumSubscribers() == 0 )
{
status.level = 0;
status.message = "No operation interrupted.";
Modified: pkg/trunk/stacks/pr2/pr2_alpha/pre.launch
===================================================================
--- pkg/trunk/stacks/pr2/pr2_alpha/pre.launch 2009-08-27 00:00:51 UTC (rev 23066)
+++ pkg/trunk/stacks/pr2/pr2_alpha/pre.launch 2009-08-27 00:01:03 UTC (rev 23067)
@@ -59,6 +59,7 @@
<param name="imu/autostart" type="bool" value="true" />
<param name="imu/frameid" type="string" value="imu" />
<param name="imu/autocalibrate" type="bool" value="true" />
+ <param name="imu/angular_velocity_covariance" type="double" value="0.00017" />
<node machine="realtime" pkg="imu_node" type="imu_node" output="screen"/>
<!-- Forearm Cameras -->
Modified: pkg/trunk/stacks/pr2/pr2_alpha/prf.launch
===================================================================
--- pkg/trunk/stacks/pr2/pr2_alpha/prf.launch 2009-08-27 00:00:51 UTC (rev 23066)
+++ pkg/trunk/stacks/pr2/pr2_alpha/prf.launch 2009-08-27 00:01:03 UTC (rev 23067)
@@ -53,6 +53,7 @@
<param name="imu/port" type="string" value="/dev/ttyUSB0" />
<param name="imu/autostart" type="bool" value="true" />
<param name="imu/frameid" type="string" value="imu" />
+ <param name="imu/angular_velocity_covariance" type="double" value="0.00017" />
<param name="imu/autocalibrate" type="bool" value="true" />
<node machine="four" pkg="imu_node" type="imu_node" output="screen"/>
Modified: pkg/trunk/stacks/pr2/pr2_alpha/prg.launch
===================================================================
--- pkg/trunk/stacks/pr2/pr2_alpha/prg.launch 2009-08-27 00:00:51 UTC (rev 23066)
+++ pkg/trunk/stacks/pr2/pr2_alpha/prg.launch 2009-08-27 00:01:03 UTC (rev 23067)
@@ -55,6 +55,7 @@
<param name="imu/port" type="string" value="/dev/ttyUSB0" />
<param name="imu/autostart" type="bool" value="true" />
<param name="imu/frameid" type="string" value="imu" />
+ <param name="imu/angular_velocity_covariance" type="double" value="0.00017" />
<param name="imu/autocalibrate" type="bool" value="true" />
<node machine="four" pkg="imu_node" type="imu_node" output="screen"/>
@@ -95,7 +96,7 @@
<!-- Forearm Camera -->
- <node machine="three" name="forearm_cam_r" pkg="forearm_cam" type="forearm_node" respawn="false" output="screen">
+ <node machine="three" name="forearm_cam_r" pkg="forearm_cam" type="forearm_node" respawn="true" output="screen">
<param name="camera_url" type="str" value="name://forearm_r"/>
<param name="video_mode" type="str" value="640x480x30" />
<param name="auto_exposure" type="bool" value="True" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mee...@us...> - 2009-08-28 00:51:04
|
Revision: 23210
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23210&view=rev
Author: meeussen
Date: 2009-08-28 00:50:56 +0000 (Fri, 28 Aug 2009)
Log Message:
-----------
move kdl_parser and robot_state_publisher to the robot_model stack
Added Paths:
-----------
pkg/trunk/stacks/robot_model/kdl_parser/
pkg/trunk/stacks/robot_model/robot_state_publisher/
Removed Paths:
-------------
pkg/trunk/stacks/mechanism/kdl_parser/
pkg/trunk/stacks/mechanism/robot_state_publisher/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mee...@us...> - 2009-08-28 01:03:16
|
Revision: 23213
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23213&view=rev
Author: meeussen
Date: 2009-08-28 01:03:05 +0000 (Fri, 28 Aug 2009)
Log Message:
-----------
rename mechanism stack to pr2_mechanism
Modified Paths:
--------------
pkg/trunk/stacks/calibration/stack.xml
pkg/trunk/stacks/pr2/stack.xml
pkg/trunk/stacks/pr2_common/stack.xml
pkg/trunk/stacks/pr2_ethercat_drivers/stack.xml
pkg/trunk/stacks/pr2_mechanism/stack.xml
pkg/trunk/stacks/pr2_simulator/stack.xml
Added Paths:
-----------
pkg/trunk/stacks/pr2_mechanism/
Removed Paths:
-------------
pkg/trunk/stacks/mechanism/
pkg/trunk/stacks/pr2_mechanism/kdl_parser/
pkg/trunk/stacks/pr2_mechanism/robot_state_publisher/
Modified: pkg/trunk/stacks/calibration/stack.xml
===================================================================
--- pkg/trunk/stacks/calibration/stack.xml 2009-08-28 01:02:08 UTC (rev 23212)
+++ pkg/trunk/stacks/calibration/stack.xml 2009-08-28 01:03:05 UTC (rev 23213)
@@ -10,7 +10,7 @@
<depend stack="ros"/>
<depend stack="common_msgs"/> <!-- actionlib_msgs, geometry_msgs, sensor_msgs -->
<depend stack="common"/> <!-- actionlib -->
- <depend stack="mechanism"/> <!-- mechanism_msgs -->
+ <depend stack="pr2_mechanism"/> <!-- mechanism_msgs -->
<depend stack="geometry"/> <!-- tf -->
<depend stack="stereo" /> <!-- stereo_msgs -->
Modified: pkg/trunk/stacks/pr2/stack.xml
===================================================================
--- pkg/trunk/stacks/pr2/stack.xml 2009-08-28 01:02:08 UTC (rev 23212)
+++ pkg/trunk/stacks/pr2/stack.xml 2009-08-28 01:03:05 UTC (rev 23213)
@@ -15,7 +15,7 @@
<depend stack="navigation"/> <!-- robot_pose_ekf -->
- <depend stack="mechanism"/> <!-- mechanism_control, hardware_interface, mechanism_control, mechanism_model, convex_decomposition, ivcon, robot_state_publisher, mechanism_bringup, convex_decomposition, ivcon -->
+ <depend stack="pr2_mechanism"/> <!-- mechanism_control, hardware_interface, mechanism_control, mechanism_model, convex_decomposition, ivcon, robot_state_publisher, mechanism_bringup, convex_decomposition, ivcon -->
<depend stack="controllers"/> <!-- robot_mechanism_controllers, pr2_mechanism_controllers, joint_qualification_controllers, dynamic_verification_controllers, pr2_mechanism_controllers -->
<!--depend stack="calibration"/--> <!--Causing circular dependencies-->
Modified: pkg/trunk/stacks/pr2_common/stack.xml
===================================================================
--- pkg/trunk/stacks/pr2_common/stack.xml 2009-08-28 01:02:08 UTC (rev 23212)
+++ pkg/trunk/stacks/pr2_common/stack.xml 2009-08-28 01:03:05 UTC (rev 23213)
@@ -9,6 +9,6 @@
<depend stack="ros"/> <!-- std_msgs, rosbagmigration -->
<depend stack="robot_model"/> <!-- convex_decomposition, ivcon -->
<depend stack="common"/> <!-- xacro -->
- <depend stack="mechanism"/> <!-- mechanism_msgs -->
+ <depend stack="pr2_mechanism"/> <!-- mechanism_msgs -->
<depend stack="common_msgs"/> <!-- geometry_msgs -->
</stack>
Modified: pkg/trunk/stacks/pr2_ethercat_drivers/stack.xml
===================================================================
--- pkg/trunk/stacks/pr2_ethercat_drivers/stack.xml 2009-08-28 01:02:08 UTC (rev 23212)
+++ pkg/trunk/stacks/pr2_ethercat_drivers/stack.xml 2009-08-28 01:03:05 UTC (rev 23213)
@@ -9,7 +9,7 @@
<review status="unreviewed" notes=""/>
<url>http://pr.willowgarage.com/wiki/pr2_ethercat_drivers</url>
<depend stack="visualization_common"/> <!-- visualization_msgs -->
- <depend stack="mechanism"/> <!-- hardware_interface, realtime_tools -->
+ <depend stack="pr2_mechanism"/> <!-- hardware_interface, realtime_tools -->
<depend stack="common"/> <!-- tinyxml -->
<depend stack="diagnostics"/> <!-- diagnostic_updater -->
<depend stack="pr2_common"/> <!-- pr2_msgs -->
Modified: pkg/trunk/stacks/pr2_mechanism/stack.xml
===================================================================
--- pkg/trunk/stacks/mechanism/stack.xml 2009-08-28 00:26:19 UTC (rev 23208)
+++ pkg/trunk/stacks/pr2_mechanism/stack.xml 2009-08-28 01:03:05 UTC (rev 23213)
@@ -1,11 +1,11 @@
-<stack name="mechanism" version="0.1">
- <description brief="mechanism packages from ros-pkg">
+<stack name="pr2_mechanism" version="0.1">
+ <description brief="mechanism packages to control the pr2 robot">
These are mechanism-related packages.
</description>
- <author>Stu Glaser sg...@wi...</author>
+ <author>Stu Glaser, Wim Meeussen</author>
<license>BSD</license>
<review status="unreviewed" notes=""/>
- <url>http://pr.willowgarage.com/wiki/mechanism</url>
+ <url>http://pr.willowgarage.com/wiki/pr2_mechanism</url>
<!--depend stack="util"/--> <!-- realtime_tools -->
@@ -14,5 +14,5 @@
<depend stack="ros"/> <!-- gtest, roscpp, rospy, rosconsole, std_msgs -->
<depend stack="common_msgs"/> <!-- diagnostic_msgs, robot_srvs -->
<depend stack="diagnostics"/> <!-- diagnostic_updater -->
- <depend stack="robot_model"/> <!-- urdf -->
+ <depend stack="robot_model"/> <!-- urdf, kdl_parser -->
</stack>
Modified: pkg/trunk/stacks/pr2_simulator/stack.xml
===================================================================
--- pkg/trunk/stacks/pr2_simulator/stack.xml 2009-08-28 01:02:08 UTC (rev 23212)
+++ pkg/trunk/stacks/pr2_simulator/stack.xml 2009-08-28 01:03:05 UTC (rev 23213)
@@ -9,7 +9,7 @@
<depend stack="geometry" /> <!-- angles, bullet -->
<depend stack="common_msgs" /> <!-- diagnostic_msgs, geometry_msgs, nav_msgs, sensor_msgs -->
<depend stack="simulator_gazebo" /> <!-- gazebo, opende -->
- <depend stack="mechanism" /> <!-- mechanism_control, mechanism_model, mechanism_msgs -->
+ <depend stack="pr2_mechanism" /> <!-- mechanism_control, mechanism_model, mechanism_msgs -->
<depend stack="opencv" /> <!-- opencv_latest -->
<depend stack="pr2_common" /> <!-- pr2_msgs -->
<depend stack="camera_drivers" /> <!-- prosilica_cam -->
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ge...@us...> - 2009-08-31 19:10:15
|
Revision: 23397
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23397&view=rev
Author: gerkey
Date: 2009-08-31 19:10:05 +0000 (Mon, 31 Aug 2009)
Log Message:
-----------
Renamed imaging_pipeline to image_pipeline
Added Paths:
-----------
pkg/trunk/stacks/image_pipeline/
pkg/trunk/stacks/image_pipeline/CMakeLists.txt
pkg/trunk/stacks/image_pipeline/Makefile
pkg/trunk/stacks/image_pipeline/stack.xml
Removed Paths:
-------------
pkg/trunk/stacks/image_pipeline/compressed_image_transport/
pkg/trunk/stacks/image_pipeline/stack.xml
pkg/trunk/stacks/image_pipeline/theora_image_transport/
pkg/trunk/stacks/imaging_pipeline/
Property changes on: pkg/trunk/stacks/image_pipeline
___________________________________________________________________
Added: svn:mergeinfo
+ /pkg/branches/gazebo-branch-merge/stacks/imaging_pipeline:15683-15684,15739-15794,15797-15820,15822-15839,15852-15870,15983-16008,16010-16016,16129-16141,16145-16169,16245-16262,16274-16334
Copied: pkg/trunk/stacks/image_pipeline/CMakeLists.txt (from rev 23396, pkg/trunk/stacks/imaging_pipeline/CMakeLists.txt)
===================================================================
--- pkg/trunk/stacks/image_pipeline/CMakeLists.txt (rev 0)
+++ pkg/trunk/stacks/image_pipeline/CMakeLists.txt 2009-08-31 19:10:05 UTC (rev 23397)
@@ -0,0 +1,19 @@
+cmake_minimum_required(VERSION 2.4.6)
+include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+
+set(ROSPACK_MAKEDIST true)
+
+# Append to CPACK_SOURCE_IGNORE_FILES a semicolon-separated list of
+# directories (or patterns, but directories should suffice) that should
+# be excluded from the distro. This is not the place to put things that
+# should be ignored everywhere, like "build" directories; that happens in
+# rosbuild/rosbuild.cmake. Here should be listed packages that aren't
+# ready for inclusion in a distro.
+#
+# This list is combined with the list in rosbuild/rosbuild.cmake. Note
+# that CMake 2.6 may be required to ensure that the two lists are combined
+# properly. CMake 2.4 seems to have unpredictable scoping rules for such
+# variables.
+#list(APPEND CPACK_SOURCE_IGNORE_FILES /core/experimental)
+
+rosbuild_make_distribution(0.1.0)
Copied: pkg/trunk/stacks/image_pipeline/Makefile (from rev 23396, pkg/trunk/stacks/imaging_pipeline/Makefile)
===================================================================
--- pkg/trunk/stacks/image_pipeline/Makefile (rev 0)
+++ pkg/trunk/stacks/image_pipeline/Makefile 2009-08-31 19:10:05 UTC (rev 23397)
@@ -0,0 +1 @@
+include $(shell rospack find mk)/cmake_stack.mk
\ No newline at end of file
Deleted: pkg/trunk/stacks/image_pipeline/stack.xml
===================================================================
--- pkg/trunk/stacks/imaging_pipeline/stack.xml 2009-08-31 18:05:58 UTC (rev 23391)
+++ pkg/trunk/stacks/image_pipeline/stack.xml 2009-08-31 19:10:05 UTC (rev 23397)
@@ -1,18 +0,0 @@
-<stack name="imaging_pipeline" version="0.1.0">
- <description brief="pipeline for processing monocular and stereo images">
- pipeline for processing monocular and stereo images
- </description>
- <author>Kurt Konolige</author>
- <license>BSD</license>
- <review status="unreviewed" notes=""/>
- <url>http://pr.willowgarage.com/wiki/imaging_pipeline</url>
- <depend stack="opencv"/> <!-- opencvpython, opencv_latest, opencv_latest -->
- <depend stack="diagnostics"/> <!-- diagnostic_updater -->
- <depend stack="ros"/> <!-- roscpp, rostest, rosrecord, roscpp -->
- <depend stack="common_msgs"/> <!-- sensor_msgs -->
- <depend stack="image_transport"/>
- <depend package="message_filters" />
- <depend package="rosbagmigration"/>
- <depend package="pluginlib"/>
-
-</stack>
Copied: pkg/trunk/stacks/image_pipeline/stack.xml (from rev 23396, pkg/trunk/stacks/imaging_pipeline/stack.xml)
===================================================================
--- pkg/trunk/stacks/image_pipeline/stack.xml (rev 0)
+++ pkg/trunk/stacks/image_pipeline/stack.xml 2009-08-31 19:10:05 UTC (rev 23397)
@@ -0,0 +1,17 @@
+<stack name="imaging_pipeline" version="0.1.0">
+ <description brief="pipeline for processing monocular and stereo images">
+
+ pipeline for processing monocular and stereo images
+
+ </description>
+ <author>Kurt Konolige</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://ros.org/wiki/imaging_pipeline</url>
+ <depend stack="opencv"/> <!-- opencv_latest -->
+ <depend stack="diagnostics"/> <!-- diagnostic_updater -->
+ <depend stack="ros"/> <!-- rosbagmigration, message_filters, roscpp -->
+ <depend stack="common"/> <!-- image_transport -->
+ <depend stack="common_msgs"/> <!-- sensor_msgs -->
+
+</stack>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pmi...@us...> - 2009-09-01 01:17:29
|
Revision: 23434
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23434&view=rev
Author: pmihelich
Date: 2009-09-01 00:17:11 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
image_transport_plugins: Initial stack check-in. Includes theora_image_transport, compressed_image_transport and libtheora. Currently depends on opencv, but may excise this in the future.
Added Paths:
-----------
pkg/trunk/stacks/image_transport_plugins/
pkg/trunk/stacks/image_transport_plugins/compressed_image_transport/
pkg/trunk/stacks/image_transport_plugins/libtheora/
pkg/trunk/stacks/image_transport_plugins/stack.xml
pkg/trunk/stacks/image_transport_plugins/theora_image_transport/
Property changes on: pkg/trunk/stacks/image_transport_plugins/libtheora
___________________________________________________________________
Added: svn:mergeinfo
+ /pkg/branches/gazebo-branch-merge/3rdparty/libtheora:15683-15684,15739-15794,15797-15820,15822-15839,15852-15870,15983-16008,16010-16016,16129-16141,16145-16169,16245-16262,16274-16334
Added: pkg/trunk/stacks/image_transport_plugins/stack.xml
===================================================================
--- pkg/trunk/stacks/image_transport_plugins/stack.xml (rev 0)
+++ pkg/trunk/stacks/image_transport_plugins/stack.xml 2009-09-01 00:17:11 UTC (rev 23434)
@@ -0,0 +1,13 @@
+<stack name="image_transport_plugins" version="0.1">
+ <description brief="Plugins for specialized network image transport">
+ A set of plugins for publishing and subscribing to sensor_msgs/Image topics in representations other than raw pixel data. For example, for viewing a stream of images off-robot, a video codec will give much lower bandwidth and latency. For low frame rate tranport of high-definition images, you might prefer sending them as JPEG or PNG-compressed form.
+ </description>
+ <author>Maintained by Patrick Mihelich</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://pr.willowgarage.com/wiki/image_transport_plugins</url>
+ <depend stack="ros"/>
+ <depend stack="common_msgs"/>
+ <depend stack="common"/>
+ <depend stack="opencv"/>
+</stack>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pmi...@us...> - 2009-09-01 03:09:21
|
Revision: 23465
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23465&view=rev
Author: pmihelich
Date: 2009-09-01 03:09:11 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
image_common: Initial stack check-in. Contains image_transport. Updated other stack manifests.
Modified Paths:
--------------
pkg/trunk/stacks/image_pipeline/image_view/image_view.cpp
pkg/trunk/stacks/image_pipeline/stack.xml
Added Paths:
-----------
pkg/trunk/stacks/image_common/image_transport/
pkg/trunk/stacks/image_common/stack.xml
Removed Paths:
-------------
pkg/trunk/stacks/common/image_transport/
Property changes on: pkg/trunk/stacks/image_common/image_transport
___________________________________________________________________
Added: svn:mergeinfo
+ /pkg/branches/gazebo-branch-merge/common/image_transport:15683-15684,15739-15794,15797-15820,15822-15839,15852-15870,15983-16008,16010-16016,16129-16141,16145-16169,16245-16262,16274-16334
Added: pkg/trunk/stacks/image_common/stack.xml
===================================================================
--- pkg/trunk/stacks/image_common/stack.xml (rev 0)
+++ pkg/trunk/stacks/image_common/stack.xml 2009-09-01 03:09:11 UTC (rev 23465)
@@ -0,0 +1,12 @@
+<stack name="image_common" version="0.1">
+ <description brief="Common code for working with images">
+ Common code for working with images in ROS.
+ </description>
+ <author>Maintained by Patrick Mihelich</author>
+ <license>BSD</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://www.ros.org/wiki/image_common</url>
+ <depend stack="ros"/>
+ <depend stack="common_msgs"/>
+ <depend stack="common"/>
+</stack>
Modified: pkg/trunk/stacks/image_pipeline/image_view/image_view.cpp
===================================================================
--- pkg/trunk/stacks/image_pipeline/image_view/image_view.cpp 2009-09-01 03:05:42 UTC (rev 23464)
+++ pkg/trunk/stacks/image_pipeline/image_view/image_view.cpp 2009-09-01 03:09:11 UTC (rev 23465)
@@ -75,7 +75,6 @@
cvStartWindowThread();
sub_.subscribe(node_handle_, "image", 1, &ImageView::image_cb, this);
- //subs_.push_back( node_handle_.subscribe("image", 1, &ImageView::image_cb, this) );
}
~ImageView()
Modified: pkg/trunk/stacks/image_pipeline/stack.xml
===================================================================
--- pkg/trunk/stacks/image_pipeline/stack.xml 2009-09-01 03:05:42 UTC (rev 23464)
+++ pkg/trunk/stacks/image_pipeline/stack.xml 2009-09-01 03:09:11 UTC (rev 23465)
@@ -11,7 +11,7 @@
<depend stack="opencv"/> <!-- opencv_latest -->
<depend stack="diagnostics"/> <!-- diagnostic_updater -->
<depend stack="ros"/> <!-- rosbagmigration, message_filters, roscpp -->
- <depend stack="common"/> <!-- image_transport -->
+ <depend stack="image_common"/> <!-- image_transport -->
<depend stack="common_msgs"/> <!-- sensor_msgs -->
</stack>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hsu...@us...> - 2009-09-01 18:17:45
|
Revision: 23569
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23569&view=rev
Author: hsujohnhsu
Date: 2009-09-01 18:17:38 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving pr2_ogre into simulator_gazebo stack since rviz no longer needs it. turn back on mesh generation at build-time.
Modified Paths:
--------------
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/CMakeLists.txt
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/manifest.xml
pkg/trunk/stacks/simulator_gazebo/stack.xml
Added Paths:
-----------
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/
Removed Paths:
-------------
pkg/trunk/stacks/pr2_common/pr2_ogre/
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/base.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/caster.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/convex/
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/elbow_flex.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/finger_tip_l.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/finger_tip_r.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/forearm.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/forearm_roll.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/gripper_palm.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/head_pan.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/head_tilt.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/hok_tilt.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/pr2_wheel.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/ptz_base_l.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/ptz_base_r.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/ptz_l.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/ptz_r.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/ptz_top_l.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/ptz_top_r.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/shoulder_lift.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/shoulder_yaw.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/torso.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/upper_arm.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/upper_arm_roll.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/upper_finger_l.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/upper_finger_r.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/wrist_flex.mesh
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/wrist_roll.mesh
Modified: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/CMakeLists.txt
===================================================================
--- pkg/trunk/stacks/pr2_common/pr2_ogre/CMakeLists.txt 2009-08-31 16:38:51 UTC (rev 23388)
+++ pkg/trunk/stacks/simulator_gazebo/pr2_ogre/CMakeLists.txt 2009-09-01 18:17:38 UTC (rev 23569)
@@ -2,6 +2,54 @@
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
rospack(pr2_ogre)
+# find needed paths
+find_ros_package(pr2_defs)
+find_ros_package(pr2_ogre)
+find_ros_package(ogre)
+# build the ogre mesh files from *.stl (and *.stlb from convex decomposition)
+file(GLOB pr2_stl_files ${pr2_defs_PACKAGE_PATH}/meshes/*.stl)
+set(pr2_gen_files "")
+set(pr2_out_path ${CMAKE_CURRENT_SOURCE_DIR}/Media/models)
+MAKE_DIRECTORY(${pr2_out_path})
+
+foreach(it ${pr2_stl_files})
+ get_filename_component(basename ${it} NAME_WE)
+
+ # convert to ogre files
+ add_custom_command(
+ OUTPUT ${pr2_out_path}/${basename}.mesh
+ COMMAND rosrun
+ ARGS ogre_tools stl_to_mesh ${it} ${pr2_out_path}/${basename}.mesh
+ DEPENDS ${it})
+
+ set(pr2_gen_files ${pr2_gen_files} ${pr2_out_path}/${basename}.mesh)
+endforeach(it)
+
+# process convexified mesh files
+file(GLOB pr2_convex_stl_files ${pr2_defs_PACKAGE_PATH}/meshes/convex/*.stlb)
+
+set(pr2_convex_out_path ${CMAKE_CURRENT_SOURCE_DIR}/Media/models/convex)
+
+MAKE_DIRECTORY(${pr2_convex_out_path})
+
+foreach(it ${pr2_convex_stl_files})
+ get_filename_component(basename ${it} NAME_WE)
+
+ # convert to ogre files
+ add_custom_command(
+ OUTPUT ${pr2_convex_out_path}/${basename}.mesh
+ COMMAND rosrun
+ ARGS ogre_tools stl_to_mesh ${it} ${pr2_convex_out_path}/${basename}.mesh
+ DEPENDS ${it})
+
+ set(pr2_gen_files ${pr2_gen_files} ${pr2_convex_out_path}/${basename}.mesh)
+endforeach(it)
+
+add_custom_target(media_files ALL DEPENDS ${pr2_gen_files})
+
+
+
+
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/base.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/caster.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/elbow_flex.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/finger_tip_l.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/finger_tip_r.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/forearm.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/forearm_roll.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/gripper_palm.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/head_pan.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/head_tilt.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/hok_tilt.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/pr2_wheel.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/ptz_base_l.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/ptz_base_r.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/ptz_l.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/ptz_r.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/ptz_top_l.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/ptz_top_r.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/shoulder_lift.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/shoulder_yaw.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/torso.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/upper_arm.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/upper_arm_roll.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/upper_finger_l.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/upper_finger_r.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/wrist_flex.mesh
===================================================================
(Binary files differ)
Deleted: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/Media/models/wrist_roll.mesh
===================================================================
(Binary files differ)
Modified: pkg/trunk/stacks/simulator_gazebo/pr2_ogre/manifest.xml
===================================================================
--- pkg/trunk/stacks/pr2_common/pr2_ogre/manifest.xml 2009-08-31 16:38:51 UTC (rev 23388)
+++ pkg/trunk/stacks/simulator_gazebo/pr2_ogre/manifest.xml 2009-09-01 18:17:38 UTC (rev 23569)
@@ -10,7 +10,10 @@
<license>BSD</license>
<review status="unreviewed" notes=""/>
- <depend package="pr2_defs" />
+ <depend package="convex_decomposition"/>
+ <depend package="ivcon"/>
+ <depend package="ogre_tools"/>
+
<url>http://pr.willowgarage.com/wiki/RobotDescriptionFormat</url>
</package>
Modified: pkg/trunk/stacks/simulator_gazebo/stack.xml
===================================================================
--- pkg/trunk/stacks/simulator_gazebo/stack.xml 2009-09-01 18:14:26 UTC (rev 23568)
+++ pkg/trunk/stacks/simulator_gazebo/stack.xml 2009-09-01 18:17:38 UTC (rev 23569)
@@ -10,9 +10,9 @@
<depend stack="geometry"/> <!-- bullet, tf -->
<depend stack="ros"/> <!-- roscpp, std_msgs -->
- <depend stack="visualization_common"/> <!-- ogre -->
+ <depend stack="visualization_common"/> <!-- ogre, ogre_tools -->
<depend stack="common_msgs"/> <!-- sensor_msgs -->
<depend stack="common"/> <!-- sensor_msgs -->
- <depend stack="robot_model"/> <!-- sensor_msgs -->
+ <depend stack="robot_model"/> <!-- sensor_msgs, ivcon, convex_decomposition -->
</stack>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vij...@us...> - 2009-09-01 23:37:05
|
Revision: 23612
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23612&view=rev
Author: vijaypradeep
Date: 2009-09-01 23:36:51 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
Fixing botched move
Added Paths:
-----------
pkg/trunk/stacks/calibration/dense_laser_assembler/
pkg/trunk/stacks/calibration/dense_laser_assembler/CMakeLists.txt
pkg/trunk/stacks/calibration/dense_laser_assembler/Makefile
pkg/trunk/stacks/calibration/dense_laser_assembler/ROS_BUILD_BLACKLIST
pkg/trunk/stacks/calibration/dense_laser_assembler/include/
pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/
pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/build_dense_laser_snapshot.h
pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/dense_laser_msg_filter.h
pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/joint_pv_msg_filter.h
pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/laser_scan_tagger.h
pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/tagged_laser_scan.h
pkg/trunk/stacks/calibration/dense_laser_assembler/mainpage.dox
pkg/trunk/stacks/calibration/dense_laser_assembler/manifest.xml
pkg/trunk/stacks/calibration/dense_laser_assembler/msg/
pkg/trunk/stacks/calibration/dense_laser_assembler/msg/Float32MultiArrayStamped.msg
pkg/trunk/stacks/calibration/dense_laser_assembler/msg/JointPVArray.msg
pkg/trunk/stacks/calibration/dense_laser_assembler/scripts/
pkg/trunk/stacks/calibration/dense_laser_assembler/scripts/assembler_node.py
pkg/trunk/stacks/calibration/dense_laser_assembler/scripts/laser_image_node.py
pkg/trunk/stacks/calibration/dense_laser_assembler/src/
pkg/trunk/stacks/calibration/dense_laser_assembler/src/build_dense_laser_snapshot.cpp
pkg/trunk/stacks/calibration/dense_laser_assembler/src/dense_laser_assembler/
pkg/trunk/stacks/calibration/dense_laser_assembler/src/dense_laser_assembler/__init__.py
pkg/trunk/stacks/calibration/dense_laser_assembler/src/dense_laser_assembler/dense_laser_cache.py
pkg/trunk/stacks/calibration/dense_laser_assembler/src/dense_laser_assembler_srv.cpp
pkg/trunk/stacks/calibration/dense_laser_assembler/src/dense_laser_msg_filter.cpp
pkg/trunk/stacks/calibration/dense_laser_assembler/src/dense_laser_snapshotter.cpp
pkg/trunk/stacks/calibration/dense_laser_assembler/src/joint_extractor_display.cpp
pkg/trunk/stacks/calibration/dense_laser_assembler/src/laser_imager.cpp
pkg/trunk/stacks/calibration/dense_laser_assembler/src/tagged_laser_cache_display.cpp
pkg/trunk/stacks/calibration/dense_laser_assembler/srv/
pkg/trunk/stacks/calibration/dense_laser_assembler/srv/BuildLaserSnapshot.srv
Removed Paths:
-------------
pkg/trunk/stacks/dense_laser_assembler/CMakeLists.txt
pkg/trunk/stacks/dense_laser_assembler/Makefile
pkg/trunk/stacks/dense_laser_assembler/ROS_BUILD_BLACKLIST
pkg/trunk/stacks/dense_laser_assembler/include/dense_laser_assembler/build_dense_laser_snapshot.h
pkg/trunk/stacks/dense_laser_assembler/include/dense_laser_assembler/dense_laser_msg_filter.h
pkg/trunk/stacks/dense_laser_assembler/include/dense_laser_assembler/joint_pv_msg_filter.h
pkg/trunk/stacks/dense_laser_assembler/include/dense_laser_assembler/laser_scan_tagger.h
pkg/trunk/stacks/dense_laser_assembler/include/dense_laser_assembler/tagged_laser_scan.h
pkg/trunk/stacks/dense_laser_assembler/mainpage.dox
pkg/trunk/stacks/dense_laser_assembler/manifest.xml
pkg/trunk/stacks/dense_laser_assembler/msg/Float32MultiArrayStamped.msg
pkg/trunk/stacks/dense_laser_assembler/msg/JointPVArray.msg
pkg/trunk/stacks/dense_laser_assembler/scripts/assembler_node.py
pkg/trunk/stacks/dense_laser_assembler/scripts/laser_image_node.py
pkg/trunk/stacks/dense_laser_assembler/src/build_dense_laser_snapshot.cpp
pkg/trunk/stacks/dense_laser_assembler/src/dense_laser_assembler/__init__.py
pkg/trunk/stacks/dense_laser_assembler/src/dense_laser_assembler/dense_laser_cache.py
pkg/trunk/stacks/dense_laser_assembler/src/dense_laser_assembler_srv.cpp
pkg/trunk/stacks/dense_laser_assembler/src/dense_laser_msg_filter.cpp
pkg/trunk/stacks/dense_laser_assembler/src/dense_laser_snapshotter.cpp
pkg/trunk/stacks/dense_laser_assembler/src/joint_extractor_display.cpp
pkg/trunk/stacks/dense_laser_assembler/src/laser_imager.cpp
pkg/trunk/stacks/dense_laser_assembler/src/tagged_laser_cache_display.cpp
pkg/trunk/stacks/dense_laser_assembler/srv/BuildLaserSnapshot.srv
Copied: pkg/trunk/stacks/calibration/dense_laser_assembler/CMakeLists.txt (from rev 23610, pkg/trunk/stacks/dense_laser_assembler/CMakeLists.txt)
===================================================================
--- pkg/trunk/stacks/calibration/dense_laser_assembler/CMakeLists.txt (rev 0)
+++ pkg/trunk/stacks/calibration/dense_laser_assembler/CMakeLists.txt 2009-09-01 23:36:51 UTC (rev 23612)
@@ -0,0 +1,35 @@
+cmake_minimum_required(VERSION 2.4.6)
+include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+
+# Set the build type. Options are:
+# Coverage : w/ debug symbols, w/o optimization, w/ code-coverage
+# Debug : w/ debug symbols, w/o optimization
+# Release : w/o debug symbols, w/ optimization
+# RelWithDebInfo : w/ debug symbols, w/ optimization
+# MinSizeRel : w/o debug symbols, w/ optimization, stripped binaries
+#set(ROS_BUILD_TYPE RelWithDebInfo)
+set(ROS_BUILD_TYPE Debug)
+
+rospack(dense_laser_assembler)
+
+rospack_add_library(dense_laser_assembler src/build_dense_laser_snapshot.cpp
+ src/dense_laser_msg_filter.cpp)
+#rospack_add_executable(dense_laser_assembler_srv src/dense_laser_assembler_srv.cpp)
+#target_link_libraries(dense_laser_assembler_srv dense_laser_assembler)
+
+rospack_add_executable(joint_extractor_display src/joint_extractor_display.cpp)
+#rospack_add_executable(tagged_laser_cache_display src/tagged_laser_cache_display.cpp)
+
+rospack_add_executable(dense_laser_snapshotter src/dense_laser_snapshotter.cpp)
+target_link_libraries(dense_laser_snapshotter dense_laser_assembler)
+
+rospack_add_executable(laser_imager src/laser_imager.cpp)
+
+#rospack_add_executable(talker src/talker.cpp)
+#rospack_add_executable(listener src/listener.cpp)
+
+set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
+set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
+
+genmsg()
+gensrv()
Copied: pkg/trunk/stacks/calibration/dense_laser_assembler/Makefile (from rev 23610, pkg/trunk/stacks/dense_laser_assembler/Makefile)
===================================================================
--- pkg/trunk/stacks/calibration/dense_laser_assembler/Makefile (rev 0)
+++ pkg/trunk/stacks/calibration/dense_laser_assembler/Makefile 2009-09-01 23:36:51 UTC (rev 23612)
@@ -0,0 +1 @@
+include $(shell rospack find mk)/cmake.mk
\ No newline at end of file
Copied: pkg/trunk/stacks/calibration/dense_laser_assembler/ROS_BUILD_BLACKLIST (from rev 23610, pkg/trunk/stacks/dense_laser_assembler/ROS_BUILD_BLACKLIST)
===================================================================
--- pkg/trunk/stacks/calibration/dense_laser_assembler/ROS_BUILD_BLACKLIST (rev 0)
+++ pkg/trunk/stacks/calibration/dense_laser_assembler/ROS_BUILD_BLACKLIST 2009-09-01 23:36:51 UTC (rev 23612)
@@ -0,0 +1 @@
+
Copied: pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/build_dense_laser_snapshot.h (from rev 23610, pkg/trunk/stacks/dense_laser_assembler/include/dense_laser_assembler/build_dense_laser_snapshot.h)
===================================================================
--- pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/build_dense_laser_snapshot.h (rev 0)
+++ pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/build_dense_laser_snapshot.h 2009-09-01 23:36:51 UTC (rev 23612)
@@ -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.
+*********************************************************************/
+
+/*! \mainpage
+ * \htmlinclude manifest.html
+ */
+
+#ifndef DENSE_LASER_ASSEMBLER_BUILD_DENSE_LASER_SNAPSHOT_H_
+#define DENSE_LASER_ASSEMBLER_BUILD_DENSE_LASER_SNAPSHOT_H_
+
+
+#include <vector>
+#include "dense_laser_assembler/laser_scan_tagger.h"
+#include "message_filters/cache.h"
+
+#include "dense_laser_assembler/JointPVArray.h"
+#include "dense_laser_assembler/tagged_laser_scan.h"
+
+#include "calibration_msgs/DenseLaserSnapshot.h"
+
+
+namespace dense_laser_assembler
+{
+
+typedef LaserScanTagger<JointPVArray> LaserJointTagger ;
+typedef TaggedLaserScan<JointPVArray> JointTaggedLaserScan ;
+
+/**
+ * \brief Builds a dense laser snapshot
+ * Grabs all the scans between the start and end time, and composes them into one larger snapshot. This call is non-blocking.
+ * Thus, if there are scans that haven't been cached yet, but occur before the end time, they won't be added to the snapshot.
+ * \param start The earliest scan time to be included in the snapshot
+ * \param end The latest scan time to be included in the snapshot
+ * \param output: A populated snapshot message
+ */
+
+bool buildDenseLaserSnapshot(const std::vector<boost::shared_ptr<const JointTaggedLaserScan> >& scans,
+ const std::vector<std::string>& joint_names,
+ calibration_msgs::DenseLaserSnapshot& snapshot) ;
+
+
+}
+
+
+#endif // DENSE_LASER_ASSEMBLER_BUILD_DENSE_LASER_SNAPSHOT
Copied: pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/dense_laser_msg_filter.h (from rev 23610, pkg/trunk/stacks/dense_laser_assembler/include/dense_laser_assembler/dense_laser_msg_filter.h)
===================================================================
--- pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/dense_laser_msg_filter.h (rev 0)
+++ pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/dense_laser_msg_filter.h 2009-09-01 23:36:51 UTC (rev 23612)
@@ -0,0 +1,201 @@
+/*********************************************************************
+* 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 Vijay Pradeep / vpr...@wi...
+
+
+#ifndef DENSE_LASER_ASSEMBLER_DENSE_LASER_MSG_FILTER_H_
+#define DENSE_LASER_ASSEMBLER_DENSE_LASER_MSG_FILTER_H_
+
+#include "ros/ros.h"
+#include "dense_laser_assembler/joint_pv_msg_filter.h"
+#include "dense_laser_assembler/laser_scan_tagger.h"
+#include "message_filters/cache.h"
+#include "message_filters/connection.h"
+#include "message_filters/simple_filter.h"
+
+
+// Messages
+#include "sensor_msgs/LaserScan.h"
+#include "pr2_mechanism_msgs/MechanismState.h"
+#include "calibration_msgs/DenseLaserSnapshot.h"
+
+#define CONSTRUCT_INT(param, default_val) \
+ int param ;\
+ if (!n_.getParam("~" #param, param) ) \
+ { \
+ ROS_WARN("[~" #param "] not set. Setting to default value of [%u]", default_val) ; \
+ param = default_val ; \
+ } \
+ else \
+ { \
+ ROS_INFO("[~" #param "] set to value of [%u]", param) ; \
+ }
+
+namespace dense_laser_assembler
+{
+
+/**
+ * \brief Listens to LaserScan and MechanismState messages, and builds DenseLaserSnapshots
+ */
+class DenseLaserMsgFilter : public message_filters::SimpleFilter<TaggedLaserScan<JointPVArray> >
+{
+public:
+
+ typedef boost::shared_ptr<const TaggedLaserScan<JointPVArray> > MConstPtr ;
+
+ //! \brief Not yet implemented
+ template<class A, class B>
+ DenseLaserMsgFilter(std::string name, A& a, B&b, unsigned int laser_queue_size,
+ unsigned int laser_cache_size, unsigned int mech_state_cache,
+ std::vector<std::string> joint_names) ;
+
+
+ /**
+ * \brief Construct assembler, and subscribe to the both LaserScan and MechanismState data providers
+ * \param name Namespace for the node. Filter will search for params in ~/[name]/
+ * \param laser_scan_provider MsgFilter that will provide LaserScan messages
+ * \param mech_state_provider MsgFilter that will provide MechanismState message
+ */
+ template<class A, class B>
+ DenseLaserMsgFilter(std::string name, A& laser_scan_provider, B& mech_state_provider)
+ {
+ subscribeLaserScan(laser_scan_provider) ;
+ subscribeMechState(mech_state_provider) ;
+
+ // Get all the different queue size parameters
+ CONSTRUCT_INT(laser_queue_size, 40) ;
+ CONSTRUCT_INT(laser_cache_size, 1000) ;
+ CONSTRUCT_INT(mech_state_cache_size, 100) ;
+
+ // Get the list of joints that we care about
+ joint_names_.clear() ;
+ bool found_joint = true ;
+ int joint_count = 0 ;
+
+ char param_buf[1024] ;
+ while(found_joint)
+ {
+ sprintf(param_buf, "~joint_name_%02u", joint_count) ;
+ std::string param_name = param_buf ;
+ std::string cur_joint_name ;
+ found_joint = n_.getParam(param_name, cur_joint_name) ;
+ if (found_joint)
+ {
+ ROS_INFO("[%s] -> %s", param_name.c_str(), cur_joint_name.c_str()) ;
+ joint_names_.push_back(cur_joint_name) ;
+ }
+ else
+ ROS_DEBUG("Did not find param [%s]", param_name.c_str()) ;
+ joint_count++ ;
+ }
+
+ // Configure the joint_pv_filter and associated cache
+ joint_pv_filter_.setJointNames(joint_names_) ;
+ joint_cache_.setCacheSize(mech_state_cache_size) ;
+ joint_cache_.connectInput(joint_pv_filter_) ;
+
+ // Set up the laser tagger and associated cache
+ laser_tagger_.setMaxQueueSize(laser_queue_size) ;
+ laser_tagger_.subscribeTagCache(joint_cache_) ;
+ tagged_laser_cache_.setCacheSize(laser_cache_size) ;
+ tagged_laser_cache_.connectInput(laser_tagger_) ;
+ }
+
+ //! \brief Not yet implemented
+ void processLaserScan(const sensor_msgs::LaserScanConstPtr& msg) ;
+
+ //! \brief Not yet implemented
+ void processMechState(const pr2_mechanism_msgs::MechanismState& msg) ;
+
+ //! \brief Get what the oldest time processed scan is
+ ros::Time getOldestScanTime() ;
+ //! \brief Get what the new time processed scan is
+ ros::Time getNewstScanTime() ;
+
+ /**
+ * \brief Builds a dense laser snapshot
+ * Grabs all the scans between the start and end time, and composes them into one larger snapshot. This call is non-blocking.
+ * Thus, if there are scans that haven't been cached yet, but occur before the end time, they won't be added to the snapshot.
+ * \param start The earliest scan time to be included in the snapshot
+ * \param end The latest scan time to be included in the snapshot
+ * \param output: A populated snapshot message
+ * \return True if successful. False if unsuccessful
+ */
+ bool buildSnapshotFromInterval(const ros::Time& start, const ros::Time& end, calibration_msgs::DenseLaserSnapshot& snapshot) ;
+private:
+ ros::NodeHandle n_ ;
+
+ /**
+ * \brief Subscribe to a message filter that outputs LaserScans.
+ * This is only useful if we're not subscribing to laser scans in the constructor.
+ * Thus, this will stay private until we have more flexible constructors
+ */
+ template<class A>
+ void subscribeLaserScan(A& a)
+ {
+ laser_tagger_.subscribeLaserScan(a) ;
+ }
+
+ /**
+ * \brief Subscribe to a message filter that outputs MechanismState.
+ * This is only useful if we're not subscribing to MechanismState in the constructor.
+ * Thus, this will stay private until we have more flexible constructors
+ */
+ template<class B>
+ void subscribeMechState(B& b)
+ {
+ joint_pv_filter_.connectInput(b) ;
+ }
+
+ //! Extracts positions data for a subset of joints in MechanismState
+ JointPVMsgFilter joint_pv_filter_ ;
+
+ //! Stores a time history of position data for a subset of joints in MechanismState
+ message_filters::Cache<JointPVArray> joint_cache_ ;
+
+ //! Combines a laser scan with the set of pertinent joint positions
+ LaserScanTagger< JointPVArray > laser_tagger_ ;
+
+ //! Stores a time history of laser scans that are annotated with joint positions.
+ message_filters::Cache< TaggedLaserScan<JointPVArray> > tagged_laser_cache_ ;
+
+ std::vector<std::string> joint_names_ ;
+} ;
+
+}
+
+#undef CONSTRUCT_INT
+
+#endif
Copied: pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/joint_pv_msg_filter.h (from rev 23610, pkg/trunk/stacks/dense_laser_assembler/include/dense_laser_assembler/joint_pv_msg_filter.h)
===================================================================
--- pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/joint_pv_msg_filter.h (rev 0)
+++ pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/joint_pv_msg_filter.h 2009-09-01 23:36:51 UTC (rev 23612)
@@ -0,0 +1,155 @@
+/*********************************************************************
+* 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.
+*********************************************************************/
+
+/*! \mainpage
+ * \htmlinclude manifest.html
+ */
+
+#ifndef DENSE_LASER_ASSEMBLER_JOINT_PV_MSG_FILTER_H_
+#define DENSE_LASER_ASSEMBLER_JOINT_PV_MSG_FILTER_H_
+
+#include <vector>
+
+#include <boost/thread.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/signals.hpp>
+#include <boost/bind.hpp>
+#include <message_filters/connection.h>
+#include <message_filters/simple_filter.h>
+
+// Messages
+#include "dense_laser_assembler/JointPVArray.h"
+#include "pr2_mechanism_msgs/MechanismState.h"
+
+namespace dense_laser_assembler
+{
+
+/**
+ * Streams an array of joint positions and velocities from MechanismState,
+ * given a mapping from joint_names to array indices
+ */
+class JointPVMsgFilter : public message_filters::SimpleFilter<JointPVArray>
+{
+public:
+ /**
+ * \brief Subscribe to another MessageFilter at construction time
+ * \param a The parent message filter
+ * \param joint_names Vector of joint names that we want to output. Must match
+ * joint names in mechanism state
+ */
+ template<class A>
+ JointPVMsgFilter(A& a, std::vector<std::string> joint_names = std::vector<std::string>())
+ {
+ setJointNames(joint_names);
+ subscribe(a);
+ }
+
+ /**
+ * \brief Construct without subcribing to another MsgFilter at construction time
+ * \param joint_names Vector of joint names that we want to output. Must match
+ * joint names in mechanism state
+ */
+ JointPVMsgFilter(std::vector<std::string> joint_names = std::vector<std::string>())
+ {
+ setJointNames(joint_names);
+ }
+
+ /**
+ * \brief Subcribes this MsgFilter to another MsgFilter
+ * \param a The MsgFilter that this MsgFilter should get data from
+ */
+ template<class A>
+ void connectInput(A& a)
+ {
+ incoming_connection_ = a.registerCallback(boost::bind(&JointPVMsgFilter::processMechState, this, _1));
+ }
+
+ /**
+ * \brief Define the mapping from MechanismState to JointPVArray
+ */
+ void setJointNames(std::vector<std::string> joint_names)
+ {
+ boost::mutex::scoped_lock lock(joint_mapping_mutex_);
+ joint_names_ = joint_names;
+ }
+
+ /**
+ * \brief Extracts joint positions from MechState, using the joint_names mapping.
+ * Also calls all the callback functions as set by connect()
+ * \param msg The MechanismState message from which we want to extract positions
+ */
+ void processMechState(const pr2_mechanism_msgs::MechanismStateConstPtr& msg)
+ {
+ // Allocate mem to store out output data
+ boost::shared_ptr<JointPVArray> joint_array_ptr(new JointPVArray) ;
+
+ // Copy MechState data into a JointPVArray
+ {
+ boost::mutex::scoped_lock lock(joint_mapping_mutex_);
+
+ joint_array_ptr->pos.resize(joint_names_.size()) ;
+ joint_array_ptr->vel.resize(joint_names_.size()) ;
+
+ joint_array_ptr->header = msg->header ;
+
+ //! \todo This can seriously be optimized using a map, or some sort of cached lookup
+ for (unsigned int i=0; i<joint_names_.size(); i++)
+ {
+ for (unsigned int j=0; j<msg->joint_states.size(); j++)
+ {
+ if (joint_names_[i] == msg->joint_states[j].name )
+ {
+ joint_array_ptr->pos[i] = msg->joint_states[j].position ;
+ joint_array_ptr->vel[i] = msg->joint_states[j].velocity ;
+ break ;
+ }
+ }
+ }
+ }
+
+ // Call all connected callbacks
+ signalMessage(joint_array_ptr) ;
+ }
+
+protected:
+ boost::mutex joint_mapping_mutex_ ;
+ std::vector<std::string> joint_names_ ;
+
+ // Filter Connection Stuff
+ message_filters::Connection incoming_connection_;
+} ;
+
+}
+
+#endif // DENSE_LASER_ASSEMBLER_JOINT_PV_MSG_FILTER_H_
Copied: pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/laser_scan_tagger.h (from rev 23610, pkg/trunk/stacks/dense_laser_assembler/include/dense_laser_assembler/laser_scan_tagger.h)
===================================================================
--- pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/laser_scan_tagger.h (rev 0)
+++ pkg/trunk/stacks/calibration/dense_laser_assembler/include/dense_laser_assembler/laser_scan_tagger.h 2009-09-01 23:36:51 UTC (rev 23612)
@@ -0,0 +1,217 @@
+/*********************************************************************
+* 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.
+*********************************************************************/
+
+/*! \mainpage
+ * \htmlinclude manifest.html
+ */
+
+#ifndef DENSE_LASER_ASSEMBLER_LASER_SCAN_TAGGER_H_
+#define DENSE_LASER_ASSEMBLER_LASER_SCAN_TAGGER_H_
+
+#include <deque>
+#include "sensor_msgs/LaserScan.h"
+#include "message_filters/cache.h"
+#include "boost/shared_ptr.hpp"
+#include "dense_laser_assembler/tagged_laser_scan.h"
+
+#include <message_filters/simple_filter.h>
+
+namespace dense_laser_assembler
+{
+
+/**
+ * Listens to LaserScans and a cache of 'tag' messages. Outputs a laserScan
+ * whenever there is a tag msg that occurs before and after the scan.
+ */
+template <class T>
+class LaserScanTagger : public message_filters::SimpleFilter<TaggedLaserScan<T> >
+{
+public:
+
+ typedef boost::shared_ptr<const T> TConstPtr ;
+ typedef boost::shared_ptr<const TaggedLaserScan<T> > MConstPtr ;
+
+
+
+ template<class A>
+ /**
+ * \brief Construct object, and also subscribe to relevant data sources
+ */
+ LaserScanTagger(A& a, message_filters::Cache<T>& tag_cache, unsigned int max_queue_size)
+ {
+ subscribeLaserScan(a);
+ subscribeTagCache(tag_cache);
+ setMaxQueueSize(max_queue_size);
+ tag_cache_ = &tag_cache ;
+ max_queue_size_ = max_queue_size ;
+ }
+
+ LaserScanTagger()
+ {
+ tag_cache_ = NULL;
+ setMaxQueueSize(1);
+ }
+
+ ~LaserScanTagger()
+ {
+ incoming_laser_scan_connection_.disconnect() ;
+ incoming_tag_connection_.disconnect() ;
+ }
+
+ template<class A>
+ void subscribeLaserScan(A& a)
+ {
+ incoming_laser_scan_connection_ = a.registerCallback(boost::bind(&LaserScanTagger<T>::processLaserScan, this, _1));
+ }
+
+ void subscribeTagCache(message_filters::Cache<T>& tag_cache)
+ {
+ tag_cache_ = &tag_cache ;
+ incoming_tag_connection_ = tag_cache.registerCallback(boost::bind(&LaserScanTagger<T>::processTag, this, _1));
+ }
+
+ void setMaxQueueSize(unsigned int max_queue_size)
+ {
+ boost::mutex::scoped_lock lock(queue_mutex_);
+ max_queue_size_ = max_queue_size;
+ }
+
+ /**
+ * Adds the laser scan onto the queue of scans that need t...
[truncated message content] |
|
From: <pmi...@us...> - 2009-09-01 23:59:43
|
Revision: 23616
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23616&view=rev
Author: pmihelich
Date: 2009-09-01 23:59:33 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
camera_calibration_parsers: Moved to image_common stack.
Added Paths:
-----------
pkg/trunk/stacks/image_common/camera_calibration_parsers/
Removed Paths:
-------------
pkg/trunk/stacks/camera_drivers/camera_calibration_parsers/
Property changes on: pkg/trunk/stacks/image_common/camera_calibration_parsers
___________________________________________________________________
Added: svn:mergeinfo
+ /pkg/branches/gazebo-branch-merge/stacks/camera_drivers/camera_calibration_parsers:15683-15684,15739-15794,15797-15820,15822-15839,15852-15870,15983-16008,16010-16016,16129-16141,16145-16169,16245-16262,16274-16334
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hsu...@us...> - 2009-09-02 08:35:25
|
Revision: 23683
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23683&view=rev
Author: hsujohnhsu
Date: 2009-09-02 08:35:18 +0000 (Wed, 02 Sep 2009)
Log Message:
-----------
moving gazebo simulation resouces, environment, descriptions from simulator_gazebo stack into pr2_simulator stack.
Modified Paths:
--------------
pkg/trunk/stacks/pr2_simulator/gazebo_plugin/CMakeLists.txt
pkg/trunk/stacks/pr2_simulator/gazebo_worlds/manifest.xml
pkg/trunk/stacks/pr2_simulator/ikea_objects/manifest.xml
pkg/trunk/stacks/pr2_simulator/ikea_ogre/manifest.xml
pkg/trunk/stacks/pr2_simulator/stack.xml
pkg/trunk/stacks/simulator_gazebo/gazebo/manifest.xml
pkg/trunk/stacks/simulator_gazebo/opende/manifest.xml
pkg/trunk/stacks/simulator_gazebo/stack.xml
Added Paths:
-----------
pkg/trunk/stacks/pr2_simulator/gazebo_worlds/
pkg/trunk/stacks/pr2_simulator/ikea_objects/
pkg/trunk/stacks/pr2_simulator/ikea_ogre/
pkg/trunk/stacks/pr2_simulator/pr2_ogre/
Removed Paths:
-------------
pkg/trunk/stacks/simulator_gazebo/gazebo_worlds/
pkg/trunk/stacks/simulator_gazebo/ikea_ogre/
pkg/trunk/stacks/simulator_gazebo/pr2_ogre/
Modified: pkg/trunk/stacks/pr2_simulator/gazebo_plugin/CMakeLists.txt
===================================================================
--- pkg/trunk/stacks/pr2_simulator/gazebo_plugin/CMakeLists.txt 2009-09-02 08:00:11 UTC (rev 23682)
+++ pkg/trunk/stacks/pr2_simulator/gazebo_plugin/CMakeLists.txt 2009-09-02 08:35:18 UTC (rev 23683)
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 2.4.6)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
-set(ROS_BUILD_TYPE Release)
+set(ROS_BUILD_TYPE Debug)
rospack(gazebo_plugin)
genmsg()
include_directories(msg/cpp)
Modified: pkg/trunk/stacks/pr2_simulator/gazebo_worlds/manifest.xml
===================================================================
--- pkg/trunk/stacks/simulator_gazebo/gazebo_worlds/manifest.xml 2009-09-02 03:32:58 UTC (rev 23667)
+++ pkg/trunk/stacks/pr2_simulator/gazebo_worlds/manifest.xml 2009-09-02 08:35:18 UTC (rev 23683)
@@ -3,9 +3,8 @@
<author>John Hsu, Ioan Sucan</author>
<license>BSD</license>
<review status="unreviewed" notes=""/>
- <url>http://pr.willowgarage.com/wiki/FIXME</url>
+ <url>http://ros.org/wiki/FIXME</url>
- <depend package="pr2_defs"/>
<depend package="pr2_ogre"/>
<depend package="ikea_ogre"/>
</package>
Property changes on: pkg/trunk/stacks/pr2_simulator/ikea_objects
___________________________________________________________________
Added: svn:ignore
+ .build_version
.rosgcov_files
bin
Added: svn:mergeinfo
+
Modified: pkg/trunk/stacks/pr2_simulator/ikea_objects/manifest.xml
===================================================================
--- pkg/trunk/robot_descriptions/ikea_objects/manifest.xml 2009-09-02 06:13:19 UTC (rev 23675)
+++ pkg/trunk/stacks/pr2_simulator/ikea_objects/manifest.xml 2009-09-02 08:35:18 UTC (rev 23683)
@@ -2,7 +2,7 @@
<description brief="Ikea Objects Definitions">
- This package contains Ikea object mesh files
+ This package contains some Ikea object mesh files
</description>
<author>John Hsu</author>
@@ -12,6 +12,6 @@
<depend package="xacro"/>
<depend package="convex_decomposition"/>
<depend package="ivcon"/>
- <url>http://pr.willowgarage.com/wiki/RobotDescriptionFormat</url>
+ <url>http://ros.org/wiki/urdf</url>
</package>
Modified: pkg/trunk/stacks/pr2_simulator/ikea_ogre/manifest.xml
===================================================================
--- pkg/trunk/stacks/simulator_gazebo/ikea_ogre/manifest.xml 2009-09-02 03:32:58 UTC (rev 23667)
+++ pkg/trunk/stacks/pr2_simulator/ikea_ogre/manifest.xml 2009-09-02 08:35:18 UTC (rev 23683)
@@ -2,8 +2,7 @@
<description brief="Ikea Objects Ogre Mesh Files">
- This package contains Ikea objects Ogre mesh files used for visualization and collision as
- defined at Willow Garage.
+ This package contains Ikea objects Ogre mesh files used for simulation collision and visualization.
</description>
<author>John Hsu</author>
@@ -14,6 +13,6 @@
<depend package="ivcon"/>
<depend package="ogre_tools"/>
<depend package="ikea_objects"/>
- <url>http://pr.willowgarage.com/wiki/RobotDescriptionFormat</url>
+ <url>http://ros.org/wiki/urdf</url>
</package>
Modified: pkg/trunk/stacks/pr2_simulator/stack.xml
===================================================================
--- pkg/trunk/stacks/pr2_simulator/stack.xml 2009-09-02 08:00:11 UTC (rev 23682)
+++ pkg/trunk/stacks/pr2_simulator/stack.xml 2009-09-02 08:35:18 UTC (rev 23683)
@@ -9,12 +9,13 @@
<depend stack="geometry" /> <!-- angles, bullet -->
<depend stack="common_msgs" /> <!-- diagnostic_msgs, geometry_msgs, nav_msgs, sensor_msgs -->
<depend stack="simulator_gazebo" /> <!-- gazebo, opende -->
- <depend stack="pr2_mechanism" /> <!-- mechanism_control, mechanism_model, mechanism_msgs -->
+ <depend stack="pr2_mechanism" /> <!-- pr2_hardware_interface, pr2_mechanism_control, pr2_mechanism_model -->
<depend stack="opencv" /> <!-- opencv_latest -->
<depend stack="pr2_common" /> <!-- pr2_msgs -->
<depend stack="camera_drivers" /> <!-- prosilica_cam -->
- <depend stack="stereo" /> <!-- stereo_msgs -->
- <depend stack="common" /> <!-- tinyxml -->
- <depend stack="robot_model" /> <!-- urdf -->
+ <depend stack="image_pipeline" /> <!-- stereo_msgs -->
+ <depend stack="common" /> <!-- tinyxml, xacro -->
+ <depend stack="robot_model" /> <!-- urdf, convex_decomposition, ivcon -->
<depend stack="ros" /> <!-- std_msgs, roscpp, rospy -->
+ <depend stack="visualization_common"/> <!-- ogre_tools -->
</stack>
Modified: pkg/trunk/stacks/simulator_gazebo/gazebo/manifest.xml
===================================================================
--- pkg/trunk/stacks/simulator_gazebo/gazebo/manifest.xml 2009-09-02 08:00:11 UTC (rev 23682)
+++ pkg/trunk/stacks/simulator_gazebo/gazebo/manifest.xml 2009-09-02 08:35:18 UTC (rev 23683)
@@ -5,7 +5,7 @@
</description>
<author>Nate Koenig, with contributions from many others. See web page for a full credits llist.</author>
<license>LGPL</license>
- <review status="3rdparty" notes=""/>
+ <review status="simulator_gazebo" notes=""/>
<depend package="opende" />
<depend package="ogre" />
<depend package="bullet" />
Modified: pkg/trunk/stacks/simulator_gazebo/opende/manifest.xml
===================================================================
--- pkg/trunk/stacks/simulator_gazebo/opende/manifest.xml 2009-09-02 08:00:11 UTC (rev 23682)
+++ pkg/trunk/stacks/simulator_gazebo/opende/manifest.xml 2009-09-02 08:35:18 UTC (rev 23683)
@@ -7,7 +7,7 @@
</description>
<author>Russel Smith</author>
<license>LGPL</license>
-<review status="3rdparty" notes=""/>
+<review status="simulator_gazebo" notes=""/>
<url>http://opende.sf.net</url>
<export>
<cpp lflags="-Wl,-rpath,${prefix}/opende/lib `${prefix}/opende/bin/ode-config --libs`" cflags="`${prefix}/opende/bin/ode-config --cflags`"/>
Modified: pkg/trunk/stacks/simulator_gazebo/stack.xml
===================================================================
--- pkg/trunk/stacks/simulator_gazebo/stack.xml 2009-09-02 08:00:11 UTC (rev 23682)
+++ pkg/trunk/stacks/simulator_gazebo/stack.xml 2009-09-02 08:35:18 UTC (rev 23683)
@@ -7,12 +7,10 @@
<review status="unreviewed" notes=""/>
<url>http://ros.org/wiki/simulator_gazebo</url>
-
- <depend stack="geometry"/> <!-- bullet, tf -->
+ <depend stack="geometry"/> <!-- bullet, angles -->
<depend stack="ros"/> <!-- roscpp, std_msgs -->
- <depend stack="visualization_common"/> <!-- ogre, ogre_tools -->
- <depend stack="common_msgs"/> <!-- sensor_msgs -->
- <depend stack="common"/> <!-- sensor_msgs -->
- <depend stack="robot_model"/> <!-- sensor_msgs, ivcon, convex_decomposition -->
+ <depend stack="common"/> <!-- tinyxml -->
+ <depend stack="robot_model"/> <!-- urdf -->
+ <depend stack="visualization_common"/> <!-- ogre -->
</stack>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hsu...@us...> - 2009-09-03 18:43:36
|
Revision: 23772
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23772&view=rev
Author: hsujohnhsu
Date: 2009-09-03 18:43:27 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
moving ode into new physics stack.
Modified Paths:
--------------
pkg/trunk/stacks/pr2_simulator/stack.xml
pkg/trunk/stacks/simulator_gazebo/stack.xml
Added Paths:
-----------
pkg/trunk/stacks/physics/CMakeLists.txt
pkg/trunk/stacks/physics/Makefile
pkg/trunk/stacks/physics/opende/
pkg/trunk/stacks/physics/stack.xml
Removed Paths:
-------------
pkg/trunk/stacks/simulator_gazebo/opende/
Added: pkg/trunk/stacks/physics/CMakeLists.txt
===================================================================
--- pkg/trunk/stacks/physics/CMakeLists.txt (rev 0)
+++ pkg/trunk/stacks/physics/CMakeLists.txt 2009-09-03 18:43:27 UTC (rev 23772)
@@ -0,0 +1,19 @@
+cmake_minimum_required(VERSION 2.4.6)
+include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+
+set(ROSPACK_MAKEDIST true)
+
+# Append to CPACK_SOURCE_IGNORE_FILES a semicolon-separated list of
+# directories (or patterns, but directories should suffice) that should
+# be excluded from the distro. This is not the place to put things that
+# should be ignored everywhere, like "build" directories; that happens in
+# rosbuild/rosbuild.cmake. Here should be listed packages that aren't
+# ready for inclusion in a distro.
+#
+# This list is combined with the list in rosbuild/rosbuild.cmake. Note
+# that CMake 2.6 may be required to ensure that the two lists are combined
+# properly. CMake 2.4 seems to have unpredictable scoping rules for such
+# variables.
+#list(APPEND CPACK_SOURCE_IGNORE_FILES /core/experimental)
+
+rosbuild_make_distribution(0.1.0)
Added: pkg/trunk/stacks/physics/Makefile
===================================================================
--- pkg/trunk/stacks/physics/Makefile (rev 0)
+++ pkg/trunk/stacks/physics/Makefile 2009-09-03 18:43:27 UTC (rev 23772)
@@ -0,0 +1 @@
+include $(shell rospack find mk)/cmake_stack.mk
\ No newline at end of file
Property changes on: pkg/trunk/stacks/physics/opende
___________________________________________________________________
Added: svn:ignore
+ opende
installed
patched
rospack_nosubdirs
Added: svn:mergeinfo
+ /pkg/branches/gazebo-branch-merge/simulators/opende:15683-15684,15739-15794,15797-15820,15822-15839,15852-15870,15983-16008,16010-16016,16129-16141,16145-16169,16245-16262,16274-16334
Added: pkg/trunk/stacks/physics/stack.xml
===================================================================
--- pkg/trunk/stacks/physics/stack.xml (rev 0)
+++ pkg/trunk/stacks/physics/stack.xml 2009-09-03 18:43:27 UTC (rev 23772)
@@ -0,0 +1,15 @@
+<stack name="physics" version="0.1.0">
+ <description brief="physics">
+
+ Physics Engines for Simulation and Manipulation.
+ Currently this contains the Open Dynamics Engine (ODE).
+
+ </description>
+ <author>Maintained by John Hsu</author>
+ <license>LGPL</license>
+ <review status="unreviewed" notes=""/>
+ <url>http://ros.org/wiki/physics</url>
+
+ <depend stack="geometry" /> <!-- bullet -->
+
+</stack>
Modified: pkg/trunk/stacks/pr2_simulator/stack.xml
===================================================================
--- pkg/trunk/stacks/pr2_simulator/stack.xml 2009-09-03 18:36:29 UTC (rev 23771)
+++ pkg/trunk/stacks/pr2_simulator/stack.xml 2009-09-03 18:43:27 UTC (rev 23772)
@@ -13,14 +13,12 @@
<depend stack="opencv" /> <!-- opencv_latest -->
<depend stack="pr2_common" /> <!-- pr2_msgs -->
<depend stack="camera_drivers" /> <!-- prosilica_cam -->
- <depend stack="image_pipeline" /> <!-- stereo_msgs -->
+ <depend stack="image_pipeline" /> <!-- stereo_msgs, stereo_image_proc -->
<depend stack="common" /> <!-- tinyxml, xacro -->
<depend stack="robot_model" /> <!-- urdf, convex_decomposition, ivcon -->
<depend stack="ros" /> <!-- std_msgs, roscpp, rospy -->
<depend stack="visualization_common"/> <!-- ogre_tools -->
<!-- added for tests -->
- <depend stack="semantic_mapping"/> <!-- semantic_point_annotator -->
<depend stack="laser_pipeline"/> <!-- laser_filters -->
- <depend stack="image_pipeline"/> <!-- stereo_image_proc -->
</stack>
Modified: pkg/trunk/stacks/simulator_gazebo/stack.xml
===================================================================
--- pkg/trunk/stacks/simulator_gazebo/stack.xml 2009-09-03 18:36:29 UTC (rev 23771)
+++ pkg/trunk/stacks/simulator_gazebo/stack.xml 2009-09-03 18:43:27 UTC (rev 23772)
@@ -7,6 +7,7 @@
<review status="unreviewed" notes=""/>
<url>http://ros.org/wiki/simulator_gazebo</url>
+ <depend stack="physics"/> <!-- opende -->
<depend stack="geometry"/> <!-- bullet, angles -->
<depend stack="ros"/> <!-- roscpp, std_msgs -->
<depend stack="common"/> <!-- tinyxml -->
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mee...@us...> - 2009-09-04 01:07:09
|
Revision: 23803
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23803&view=rev
Author: meeussen
Date: 2009-09-04 01:06:49 +0000 (Fri, 04 Sep 2009)
Log Message:
-----------
add new stats about joints, add controller state to mechanism state to replace the diagnostics that are not realtime safe. Remove hardware interface as much as possible from components
Modified Paths:
--------------
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_control/include/pr2_mechanism_control/mechanism_control.h
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_control/src/mechanism_control.cpp
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/include/pr2_mechanism_model/joint.h
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/include/pr2_mechanism_model/robot.h
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/src/joint.cpp
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/src/robot.cpp
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/JointState.msg
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/MechanismState.msg
pkg/trunk/stacks/pr2_simulator/pr2_gazebo_plugins/src/gazebo_mechanism_control.cpp
Added Paths:
-----------
pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/ControllerState.msg
Modified: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_control/include/pr2_mechanism_control/mechanism_control.h
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_control/include/pr2_mechanism_control/mechanism_control.h 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_control/include/pr2_mechanism_control/mechanism_control.h 2009-09-04 01:06:49 UTC (rev 23803)
@@ -79,7 +79,6 @@
pr2_mechanism::Robot model_;
pr2_mechanism::RobotState *state_;
- HardwareInterface *hw_;
private:
void getControllerNames(std::vector<std::string> &v);
@@ -106,12 +105,13 @@
// for publishing constroller state/diagnostics
void publishDiagnostics();
- void publishState();
+ void publishJointState();
+ void publishMechanismState();
realtime_tools::RealtimePublisher<diagnostic_msgs::DiagnosticArray> pub_diagnostics_;
realtime_tools::RealtimePublisher<sensor_msgs::JointState> pub_joint_state_;
realtime_tools::RealtimePublisher<pr2_mechanism_msgs::MechanismState> pub_mech_state_;
- double publish_period_state_, last_published_state_;
- double publish_period_diagnostics_, last_published_diagnostics_;
+ ros::Duration publish_period_joint_state_, publish_period_mechanism_state_, publish_period_diagnostics_;
+ ros::Time last_published_joint_state_, last_published_mechanism_state_, last_published_diagnostics_;
// services to work with controllers
bool listControllerTypesSrv(pr2_mechanism_msgs::ListControllerTypes::Request &req,
Modified: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_control/src/mechanism_control.cpp
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_control/src/mechanism_control.cpp 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_control/src/mechanism_control.cpp 2009-09-04 01:06:49 UTC (rev 23803)
@@ -44,7 +44,7 @@
MechanismControl::MechanismControl(HardwareInterface *hw) :
model_(hw),
- state_(NULL), hw_(hw),
+ state_(NULL),
controller_loader_("pr2_controller_interface", "controller::Controller"),
start_request_(0),
stop_request_(0),
@@ -55,8 +55,9 @@
pub_diagnostics_(node_, "/diagnostics", 1),
pub_joint_state_(node_, "joint_states", 1),
pub_mech_state_(node_, "mechanism_state", 1),
- last_published_state_(ros::Time::now().toSec()),
- last_published_diagnostics_(ros::Time::now().toSec())
+ last_published_joint_state_(ros::Time::now()),
+ last_published_mechanism_state_(ros::Time::now()),
+ last_published_diagnostics_(ros::Time::now())
{}
MechanismControl::~MechanismControl()
@@ -69,10 +70,11 @@
bool MechanismControl::initXml(TiXmlElement* config)
{
model_.initXml(config);
- state_ = new RobotState(&model_, hw_);
+ state_ = new RobotState(&model_);
// pre-allocate for realtime publishing
- pub_mech_state_.msg_.set_actuator_states_size(hw_->actuators_.size());
+ pub_mech_state_.msg_.set_controller_states_size(0);
+ pub_mech_state_.msg_.set_actuator_states_size(model_.actuators_.size());
int joints_size = 0;
for (unsigned int i = 0; i < model_.joints_.size(); ++i)
{
@@ -86,6 +88,7 @@
pub_joint_state_.msg_.set_velocity_size(joints_size);
pub_joint_state_.msg_.set_effort_size(joints_size);
+
// Advertise services
srv_list_controllers_ = node_.advertiseService("list_controllers", &MechanismControl::listControllersSrv, this);
srv_list_controller_types_ = node_.advertiseService("list_controller_types", &MechanismControl::listControllerTypesSrv, this);
@@ -94,11 +97,13 @@
srv_switch_controller_ = node_.advertiseService("switch_controller", &MechanismControl::switchControllerSrv, this);
// get the publish rate for mechanism state and diagnostics
- double publish_rate_state, publish_rate_diagnostics;
- node_.param("~publish_rate_mechanism_state", publish_rate_state, 100.0);
+ double publish_rate_joint_state, publish_rate_mechanism_state, publish_rate_diagnostics;
+ node_.param("~publish_rate_mechanism_state", publish_rate_mechanism_state, 1.0);
+ node_.param("~publish_rate_joint_state", publish_rate_joint_state, 100.0);
node_.param("~publish_rate_diagnostics", publish_rate_diagnostics, 1.0);
- publish_period_state_ = 1.0/fmax(0.000001, publish_rate_state);
- publish_period_diagnostics_ = 1.0/fmax(0.000001, publish_rate_diagnostics);
+ publish_period_mechanism_state_ = Duration(1.0/fmax(0.000001, publish_rate_mechanism_state));
+ publish_period_joint_state_ = Duration(1.0/fmax(0.000001, publish_rate_joint_state));
+ publish_period_diagnostics_ = Duration(1.0/fmax(0.000001, publish_rate_diagnostics));
return true;
}
@@ -114,32 +119,33 @@
std::vector<ControllerSpec> &controllers = controllers_lists_[used_by_realtime_];
std::vector<size_t> &scheduling = controllers_scheduling_[used_by_realtime_];
- double start = ros::Time::now().toSec();
+ ros::Time start = ros::Time::now();
state_->propagateState();
state_->zeroCommands();
- double start_update = ros::Time::now().toSec();
- pre_update_stats_.acc(start_update - start);
+ ros::Time start_update = ros::Time::now();
+ pre_update_stats_.acc((start_update - start).toSec());
// Update all controllers in scheduling order
for (size_t i=0; i<controllers.size(); i++){
- double start = ros::Time::now().toSec();
+ ros::Time start = ros::Time::now();
controllers[scheduling[i]].c->updateRequest();
- double end = ros::Time::now().toSec();
- controllers[scheduling[i]].stats->acc(end - start);
+ ros::Time end = ros::Time::now();
+ controllers[scheduling[i]].stats->acc((end - start).toSec());
}
- double end_update = ros::Time::now().toSec();
- update_stats_.acc(end_update - start_update);
+ ros::Time end_update = ros::Time::now();
+ update_stats_.acc((end_update - start_update).toSec());
state_->enforceSafety();
state_->propagateEffort();
- double end = ros::Time::now().toSec();
- post_update_stats_.acc(end - end_update);
+ ros::Time end = ros::Time::now();
+ post_update_stats_.acc((end - end_update).toSec());
// publish diagnostics and state
+ publishMechanismState();
+ publishJointState();
publishDiagnostics();
- publishState();
- // there are controllers to atomically start/stop
+ // there are controllers to start/stop
if (please_switch_)
{
// try to start controllers
@@ -285,6 +291,13 @@
return false;
}
+ // Resize controller state vector
+ pub_mech_state_.lock();
+ pub_mech_state_.msg_.set_controller_states_size(to.size());
+ for (size_t i=0; i<to.size(); i++)
+ pub_mech_state_.msg_.controller_states[i].name = to[i].name;
+ pub_mech_state_.unlock();
+
// Success! Swaps in the new set of controllers.
int former_current_controllers_list_ = current_controllers_list_;
current_controllers_list_ = free_controllers_list;
@@ -370,6 +383,13 @@
usleep(200);
from.clear();
+ // Resize controller state vector
+ pub_mech_state_.lock();
+ pub_mech_state_.msg_.set_controller_states_size(to.size());
+ for (size_t i=0; i<to.size(); i++)
+ pub_mech_state_.msg_.controller_states[i].name = to[i].name;
+ pub_mech_state_.unlock();
+
ROS_DEBUG("Successfully killed controller '%s'", name.c_str());
return true;
}
@@ -436,11 +456,12 @@
void MechanismControl::publishDiagnostics()
{
- if (round ((ros::Time::now().toSec() - last_published_diagnostics_ - publish_period_diagnostics_)/ (0.000001)) >= 0)
+ ros::Time now = ros::Time::now();
+ if (now > last_published_diagnostics_ + publish_period_diagnostics_)
{
- last_published_diagnostics_ = ros::Time::now().toSec();
if (pub_diagnostics_.trylock())
{
+ last_published_diagnostics_ = now;
std::vector<ControllerSpec> &controllers = controllers_lists_[used_by_realtime_];
int active = 0;
TimeStatistics blank_statistics;
@@ -502,13 +523,49 @@
}
-void MechanismControl::publishState()
+void MechanismControl::publishJointState()
{
- if (round ((ros::Time::now().toSec() - last_published_state_ - publish_period_state_)/ (0.000001)) >= 0)
+ ros::Time now = ros::Time::now();
+ if (now > last_published_joint_state_ + publish_period_joint_state_)
{
- last_published_state_ = ros::Time::now().toSec();
+ if (pub_joint_state_.trylock())
+ {
+ last_published_joint_state_ = now;
+ unsigned int j = 0;
+ for (unsigned int i = 0; i < model_.joints_.size(); ++i)
+ {
+ int type = state_->joint_states_[i].joint_->type_;
+ if (type == urdf::Joint::REVOLUTE || type == urdf::Joint::CONTINUOUS || type == urdf::Joint::PRISMATIC)
+ {
+ assert(j < pub_joint_state_.msg_.get_name_size());
+ assert(j < pub_joint_state_.msg_.get_position_size());
+ assert(j < pub_joint_state_.msg_.get_velocity_size());
+ assert(j < pub_joint_state_.msg_.get_effort_size());
+ pr2_mechanism::JointState *in = &state_->joint_states_[i];
+ pub_joint_state_.msg_.name[j] = model_.joints_[i]->name_;
+ pub_joint_state_.msg_.position[j] = in->position_;
+ pub_joint_state_.msg_.velocity[j] = in->velocity_;
+ pub_joint_state_.msg_.effort[j] = in->applied_effort_;
+
+ j++;
+ }
+ }
+ pub_joint_state_.msg_.header.stamp = ros::Time::now();
+ pub_joint_state_.unlockAndPublish();
+ }
+ }
+}
+
+
+void MechanismControl::publishMechanismState()
+{
+ ros::Time now = ros::Time::now();
+ if (now > last_published_mechanism_state_ + publish_period_mechanism_state_)
+ {
if (pub_mech_state_.trylock())
{
+ last_published_mechanism_state_ = now;
+ // joint state
unsigned int j = 0;
for (unsigned int i = 0; i < model_.joints_.size(); ++i)
{
@@ -524,15 +581,23 @@
out->applied_effort = in->applied_effort_;
out->commanded_effort = in->commanded_effort_;
out->is_calibrated = in->calibrated_;
+ out->saturated = in->joint_statistics_.saturated_;
+ out->odometer = in->joint_statistics_.odometer_;
+ out->min_position = in->joint_statistics_.min_position_;
+ out->max_position = in->joint_statistics_.max_position_;
+ out->max_abs_velocity = in->joint_statistics_.max_abs_velocity_;
+ out->max_abs_effort = in->joint_statistics_.max_abs_effort_;
+ in->joint_statistics_.reset();
j++;
}
}
- for (unsigned int i = 0; i < hw_->actuators_.size(); ++i)
+ // actuator state
+ for (unsigned int i = 0; i < model_.actuators_.size(); ++i)
{
pr2_mechanism_msgs::ActuatorState *out = &pub_mech_state_.msg_.actuator_states[i];
- ActuatorState *in = &hw_->actuators_[i]->state_;
- out->name = hw_->actuators_[i]->name_;
+ ActuatorState *in = &model_.actuators_[i]->state_;
+ out->name = model_.actuators_[i]->name_;
out->encoder_count = in->encoder_count_;
out->position = in->position_;
out->timestamp = in->timestamp_;
@@ -555,41 +620,27 @@
out->motor_voltage = in->motor_voltage_;
out->num_encoder_errors = in->num_encoder_errors_;
}
- pub_mech_state_.msg_.header.stamp = ros::Time::now();
- pub_mech_state_.msg_.time = ros::Time::now().toSec();
- pub_mech_state_.unlockAndPublish();
- }
-
- if (pub_joint_state_.trylock())
- {
- unsigned int j = 0;
- for (unsigned int i = 0; i < model_.joints_.size(); ++i)
+ // controller state
+ std::vector<ControllerSpec> &controllers = controllers_lists_[used_by_realtime_];
+ for (unsigned int i = 0; i < controllers.size(); ++i)
{
- int type = state_->joint_states_[i].joint_->type_;
- if (type == urdf::Joint::REVOLUTE || type == urdf::Joint::CONTINUOUS || type == urdf::Joint::PRISMATIC)
- {
- assert(j < pub_joint_state_.msg_.get_name_size());
- assert(j < pub_joint_state_.msg_.get_position_size());
- assert(j < pub_joint_state_.msg_.get_velocity_size());
- assert(j < pub_joint_state_.msg_.get_effort_size());
- pr2_mechanism::JointState *in = &state_->joint_states_[i];
- pub_joint_state_.msg_.name[j] = model_.joints_[i]->name_;
- pub_joint_state_.msg_.position[j] = in->position_;
- pub_joint_state_.msg_.velocity[j] = in->velocity_;
- pub_joint_state_.msg_.effort[j] = in->applied_effort_;
-
- j++;
- }
+ pr2_mechanism_msgs::ControllerState *out = &pub_mech_state_.msg_.controller_states[i];
+ out->running = controllers[i].c->isRunning();
+ out->max_time = max(controllers[i].stats->acc);
+ out->mean_time = mean(controllers[i].stats->acc);
+ out->variance_time = sqrt(variance(controllers[i].stats->acc));
}
- pub_joint_state_.msg_.header.stamp = ros::Time::now();
+ pub_mech_state_.msg_.header.stamp = ros::Time::now();
- pub_joint_state_.unlockAndPublish();
+ pub_mech_state_.unlockAndPublish();
}
}
}
+
+
bool MechanismControl::listControllerTypesSrv(
pr2_mechanism_msgs::ListControllerTypes::Request &req,
pr2_mechanism_msgs::ListControllerTypes::Response &resp)
Modified: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/include/pr2_mechanism_model/joint.h
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/include/pr2_mechanism_model/joint.h 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/include/pr2_mechanism_model/joint.h 2009-09-04 01:06:49 UTC (rev 23803)
@@ -85,6 +85,29 @@
};
+
+class JointStatistics
+{
+ public:
+ JointStatistics():odometer_(0.0), max_abs_velocity_(0.0), max_abs_effort_(0.0),
+ saturated_(false), initialized_(false){}
+
+ void update(JointState* s);
+ void reset();
+
+ double odometer_;
+ double min_position_, max_position_;
+ double max_abs_velocity_;
+ double max_abs_effort_;
+ bool saturated_;
+
+ private:
+ bool initialized_;
+ double old_position_;
+};
+
+
+
class JointState
{
public:
@@ -95,17 +118,16 @@
double velocity_;
double applied_effort_;
+ // joint statistics
+ JointStatistics joint_statistics_;
+
// Command
double commanded_effort_;
bool calibrated_;
JointState() : joint_(NULL), position_(0.0), velocity_(0.0), applied_effort_(0.0),
- commanded_effort_(0), calibrated_(false) {}
- JointState(const JointState &s)
- : joint_(s.joint_), position_(s.position_), velocity_(s.velocity_),
- applied_effort_(s.applied_effort_), commanded_effort_(s.commanded_effort_), calibrated_(s.calibrated_)
- {}
+ commanded_effort_(0.0), calibrated_(false){}
};
enum
@@ -119,6 +141,7 @@
JOINT_TYPES_MAX
};
+
}
#endif /* JOINT_H */
Modified: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/include/pr2_mechanism_model/robot.h
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/include/pr2_mechanism_model/robot.h 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/include/pr2_mechanism_model/robot.h 2009-09-04 01:06:49 UTC (rev 23803)
@@ -71,7 +71,7 @@
{
public:
/// Constructor
- Robot(HardwareInterface *hw): hw_(hw) {}
+ Robot(HardwareInterface *hw);
/// Destructor
~Robot()
@@ -107,8 +107,10 @@
/// get a transmission pointer based on the transmission name. Returns NULL on failure
Transmission* getTransmission(const std::string &name) const;
+ ros::Time getTime() {return hw_->current_time_;};
+
private:
- HardwareInterface *hw_;
+ HardwareInterface* hw_;
};
@@ -125,7 +127,7 @@
class RobotState
{
public:
- RobotState(Robot *model, HardwareInterface *hw);
+ RobotState(Robot *model);
Robot *model_;
@@ -133,7 +135,7 @@
JointState *getJointState(const std::string &name);
const JointState *getJointState(const std::string &name) const;
- ros::Time getTime() {return hw_->current_time_;};
+ ros::Time getTime() {return model_->getTime();};
/**
* Each transmission refers to the actuators and joints it connects by name.
@@ -151,8 +153,6 @@
void propagateStateBackwards();
void propagateEffortBackwards();
-private:
- HardwareInterface *hw_;
};
}
Modified: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/src/joint.cpp
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/src/joint.cpp 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/src/joint.cpp 2009-09-04 01:06:49 UTC (rev 23803)
@@ -150,3 +150,30 @@
return true;
}
+
+void JointStatistics::update(JointState* jnt)
+{
+ if (initialized_){
+ odometer_ += fabs(old_position_ - jnt->position_);
+ if (fabs(jnt->commanded_effort_) > jnt->joint_->effort_limit_)
+ saturated_ = true;
+ min_position_ = fmin(jnt->position_, min_position_);
+ max_position_ = fmax(jnt->position_, max_position_);
+ max_abs_velocity_ = fmax(fabs(jnt->velocity_), max_abs_velocity_);
+ max_abs_effort_ = fmax(fabs(jnt->applied_effort_), max_abs_effort_);
+ }
+ else
+ initialized_ = true;
+ old_position_ = jnt->position_;
+}
+
+
+void JointStatistics::reset()
+{
+ double tmp = min_position_;
+ min_position_ = max_position_;
+ max_position_ = tmp;
+ max_abs_velocity_ = 0.0;
+ max_abs_effort_ = 0.0;
+ saturated_ = false;
+}
Modified: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/src/robot.cpp
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/src/robot.cpp 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_model/src/robot.cpp 2009-09-04 01:06:49 UTC (rev 23803)
@@ -41,14 +41,20 @@
namespace pr2_mechanism {
+
+Robot::Robot(HardwareInterface *hw)
+ :hw_(hw)
+{}
+
+
bool Robot::initXml(TiXmlElement *root)
{
- // Gets the actuator list from the hardware interface
+ // check if current time is valid
if (!hw_){
- ROS_ERROR("Mechanism Model got an invalid pointer to the hardware interface");
+ ROS_ERROR("Mechanism Model received an invalid hardware interface");
return false;
}
- actuators_ = hw_->actuators_;
+ actuators_ = hw_->actuators_;
// Parses the xml into a robot model
urdf::Model robot_description;
@@ -72,7 +78,14 @@
delete jnt;
return false;
}
- joints_.push_back(jnt);
+ // only collect joint types we know about
+ if (jnt->type_ == JOINT_PRISMATIC ||
+ jnt->type_ == JOINT_ROTARY ||
+ jnt->type_ == JOINT_FIXED ||
+ jnt->type_ == JOINT_CONTINUOUS)
+ joints_.push_back(jnt);
+ else
+ delete jnt;
}
// Constructs the transmissions by parsing custom xml.
@@ -100,10 +113,10 @@
transmissions_.push_back(t);
}
-
return true;
}
+
template <class T>
int findIndexByName(const std::vector<T*>& v, const std::string &name)
{
@@ -152,11 +165,10 @@
-RobotState::RobotState(Robot *model, HardwareInterface *hw)
- : model_(model), hw_(hw)
+RobotState::RobotState(Robot *model)
+ : model_(model)
{
assert(model_);
- assert(hw_);
joint_states_.resize(model->joints_.size());
transmissions_in_.resize(model->transmissions_.size());
@@ -180,7 +192,7 @@
{
int index = model_->getActuatorIndex(t->actuator_names_[j]);
assert(index >= 0);
- transmissions_in_[i].push_back(hw_->actuators_[index]);
+ transmissions_in_[i].push_back(model_->actuators_[index]);
}
for (unsigned int j = 0; j < t->joint_names_.size(); ++j)
{
@@ -211,6 +223,11 @@
model_->transmissions_[i]->propagatePosition(transmissions_in_[i],
transmissions_out_[i]);
}
+
+ for (unsigned int i = 0; i < joint_states_.size(); i++)
+ {
+ joint_states_[i].joint_statistics_.update(&(joint_states_[i]));
+ }
}
void RobotState::propagateEffort()
Added: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/ControllerState.msg
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/ControllerState.msg (rev 0)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/ControllerState.msg 2009-09-04 01:06:49 UTC (rev 23803)
@@ -0,0 +1,5 @@
+string name
+byte running
+float64 max_time
+float64 mean_time
+float64 variance_time
Modified: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/JointState.msg
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/JointState.msg 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/JointState.msg 2009-09-04 01:06:49 UTC (rev 23803)
@@ -3,4 +3,10 @@
float64 velocity
float64 applied_effort
float64 commanded_effort
-byte is_calibrated
\ No newline at end of file
+byte is_calibrated
+byte saturated
+float64 odometer
+float64 min_position
+float64 max_position
+float64 max_abs_velocity
+float64 max_abs_effort
Modified: pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/MechanismState.msg
===================================================================
--- pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/MechanismState.msg 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_mechanism/pr2_mechanism_msgs/msg/MechanismState.msg 2009-09-04 01:06:49 UTC (rev 23803)
@@ -1,4 +1,4 @@
Header header
-float64 time # Deprecated. Use the timestamp in the header
ActuatorState[] actuator_states
JointState[] joint_states
+ControllerState[] controller_states
Modified: pkg/trunk/stacks/pr2_simulator/pr2_gazebo_plugins/src/gazebo_mechanism_control.cpp
===================================================================
--- pkg/trunk/stacks/pr2_simulator/pr2_gazebo_plugins/src/gazebo_mechanism_control.cpp 2009-09-04 01:00:00 UTC (rev 23802)
+++ pkg/trunk/stacks/pr2_simulator/pr2_gazebo_plugins/src/gazebo_mechanism_control.cpp 2009-09-04 01:06:49 UTC (rev 23803)
@@ -93,7 +93,7 @@
ReadPr2Xml(node);
// Initializes the fake state (for running the transmissions backwards).
- this->fake_state_ = new pr2_mechanism::RobotState(&this->mc_->model_, &this->hw_);
+ this->fake_state_ = new pr2_mechanism::RobotState(&this->mc_->model_);
// The gazebo joints and mechanism joints should match up.
for (unsigned int i = 0; i < this->mc_->model_.joints_.size(); ++i)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|