|
From: <mor...@us...> - 2008-03-27 23:52:27
|
Revision: 50
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=50&view=rev
Author: morgan_quigley
Date: 2008-03-27 16:52:34 -0700 (Thu, 27 Mar 2008)
Log Message:
-----------
range flows package. copying over from my personal svn. this will need to eventually get absorbed into the common_flows package and a range_utils package (for tests, visualization, etc.)
Added Paths:
-----------
pkg/trunk/range_flows/
pkg/trunk/range_flows/build.yaml
pkg/trunk/range_flows/flows/
pkg/trunk/range_flows/flows/RangeScan.flow
pkg/trunk/range_flows/manifest.xml
pkg/trunk/range_flows/nodes/
pkg/trunk/range_flows/nodes/test_send_recv
pkg/trunk/range_flows/rosbuild
pkg/trunk/range_flows/src/
pkg/trunk/range_flows/src/test/
pkg/trunk/range_flows/src/test/range_receiver/
pkg/trunk/range_flows/src/test/range_receiver/Makefile
pkg/trunk/range_flows/src/test/range_receiver/range_receiver.cpp
pkg/trunk/range_flows/src/test/range_sender/
pkg/trunk/range_flows/src/test/range_sender/Makefile
pkg/trunk/range_flows/src/test/range_sender/range_sender.cpp
Added: pkg/trunk/range_flows/build.yaml
===================================================================
--- pkg/trunk/range_flows/build.yaml (rev 0)
+++ pkg/trunk/range_flows/build.yaml 2008-03-27 23:52:34 UTC (rev 50)
@@ -0,0 +1,4 @@
+cpp:
+ make:
+ - src/test/range_sender
+ - src/test/range_receiver
Added: pkg/trunk/range_flows/flows/RangeScan.flow
===================================================================
--- pkg/trunk/range_flows/flows/RangeScan.flow (rev 0)
+++ pkg/trunk/range_flows/flows/RangeScan.flow 2008-03-27 23:52:34 UTC (rev 50)
@@ -0,0 +1,5 @@
+int32 frame_id
+float32 start_angle
+float32 angle_increment
+float32[] scan
+
Added: pkg/trunk/range_flows/manifest.xml
===================================================================
--- pkg/trunk/range_flows/manifest.xml (rev 0)
+++ pkg/trunk/range_flows/manifest.xml 2008-03-27 23:52:34 UTC (rev 50)
@@ -0,0 +1,10 @@
+<package>
+ <description brief="Flows carrying ranges">
+ This package contains serialization/deserialization for range scans.
+ </description>
+ <author>Morgan Quigley (email: mqu...@cs...)</author>
+ <license>BSD</license>
+ <url>http://stair.stanford.edu</url>
+ <depend package="roscpp"/>
+</package>
+
Added: pkg/trunk/range_flows/nodes/test_send_recv
===================================================================
--- pkg/trunk/range_flows/nodes/test_send_recv (rev 0)
+++ pkg/trunk/range_flows/nodes/test_send_recv 2008-03-27 23:52:34 UTC (rev 50)
@@ -0,0 +1,12 @@
+#!/usr/bin/env ruby
+(puts "aaaaaa no ROS_ROOT"; exit) if !ENV['ROS_ROOT']
+require "#{`#{ENV['ROS_ROOT']}/rospack latest yamlgraph`}/lib/yamlgraph/ygl.rb"
+g = YAMLGraph.new
+g.param 'range_sender.freq', '1000.0'
+
+g.param 'ros_launch_args', ["/usr/bin/xterm", "-T", "%(node_name)s", "-e", "bash", "-c", "valgrind %(rospack)s run %(pkg)s %(node_type)s; bash"]
+
+g.node 'range_flows/range_sender'
+g.node 'range_flows/range_receiver'
+g.flow 'range_sender.scan', 'range_receiver.scan'
+YAMLGraphLauncher.new.launch g
Property changes on: pkg/trunk/range_flows/nodes/test_send_recv
___________________________________________________________________
Name: svn:executable
+ *
Added: pkg/trunk/range_flows/rosbuild
===================================================================
--- pkg/trunk/range_flows/rosbuild (rev 0)
+++ pkg/trunk/range_flows/rosbuild 2008-03-27 23:52:34 UTC (rev 50)
@@ -0,0 +1,2 @@
+#!/usr/bin/env ruby
+exec("#{`#{ENV['ROS_ROOT']}/rospack find rostools`}/scripts/yamlbuild", 'build.yaml', *ARGV)
Property changes on: pkg/trunk/range_flows/rosbuild
___________________________________________________________________
Name: svn:executable
+ *
Added: pkg/trunk/range_flows/src/test/range_receiver/Makefile
===================================================================
--- pkg/trunk/range_flows/src/test/range_receiver/Makefile (rev 0)
+++ pkg/trunk/range_flows/src/test/range_receiver/Makefile 2008-03-27 23:52:34 UTC (rev 50)
@@ -0,0 +1,4 @@
+SRC = range_receiver.cpp
+OUT = ../../../nodes/range_receiver
+PKG = range_flows
+include $(shell $(ROS_ROOT)/rospack find roscpp)/make_include/node.mk
Added: pkg/trunk/range_flows/src/test/range_receiver/range_receiver.cpp
===================================================================
--- pkg/trunk/range_flows/src/test/range_receiver/range_receiver.cpp (rev 0)
+++ pkg/trunk/range_flows/src/test/range_receiver/range_receiver.cpp 2008-03-27 23:52:34 UTC (rev 50)
@@ -0,0 +1,37 @@
+#include <sstream>
+#include "ros/ros_slave.h"
+#include "range_flows/FlowRangeScan.h"
+
+class RangeReceiver : public ROS_Slave
+{
+public:
+ FlowRangeScan *my_scan;
+ double freq;
+
+ RangeReceiver() : ROS_Slave(), freq(1)
+ {
+ register_sink(my_scan = new FlowRangeScan("scan"), ROS_CALLBACK(RangeReceiver, range_cb));
+ printf("params:\n");
+ print_param_names();
+ printf("EO talker params\n");
+ bool b = get_double_param("freq", &freq);
+ printf("b = %d freq = %f\n", b, freq);
+ }
+ virtual ~RangeReceiver() { }
+ void range_cb()
+ {
+ printf("count = %d secs = %d nsecs = %d\n", my_scan->publish_count, my_scan->get_stamp_secs(), my_scan->get_stamp_nsecs());
+ /*
+ for (int i = 0; i < my_scan->get_scan_size(); i++)
+ printf("range %d = %f\n", i, my_scan->scan[i]);
+ */
+ }
+};
+
+int main(int argc, char **argv)
+{
+ RangeReceiver rr;
+ printf("entering receiver spin loop\n");
+ rr.spin();
+ return 0;
+}
Added: pkg/trunk/range_flows/src/test/range_sender/Makefile
===================================================================
--- pkg/trunk/range_flows/src/test/range_sender/Makefile (rev 0)
+++ pkg/trunk/range_flows/src/test/range_sender/Makefile 2008-03-27 23:52:34 UTC (rev 50)
@@ -0,0 +1,4 @@
+SRC = range_sender.cpp
+OUT = ../../../nodes/range_sender
+PKG = range_flows
+include $(shell $(ROS_ROOT)/rospack find roscpp)/make_include/node.mk
Added: pkg/trunk/range_flows/src/test/range_sender/range_sender.cpp
===================================================================
--- pkg/trunk/range_flows/src/test/range_sender/range_sender.cpp (rev 0)
+++ pkg/trunk/range_flows/src/test/range_sender/range_sender.cpp 2008-03-27 23:52:34 UTC (rev 50)
@@ -0,0 +1,43 @@
+#include <sstream>
+#include "ros/ros_slave.h"
+#include "range_flows/FlowRangeScan.h"
+
+class RangeSender : public ROS_Slave
+{
+public:
+ FlowRangeScan *my_scan;
+ double freq;
+
+ RangeSender() : ROS_Slave(), freq(1)
+ {
+ register_source(my_scan = new FlowRangeScan("scan"));
+ my_scan->set_scan_size(10);
+ printf("TALKER params:\n");
+ print_param_names();
+ printf("EO talker params\n");
+ bool b = get_double_param(".freq", &freq);
+ printf("b = %d freq = %f\n", b, freq);
+ }
+ virtual ~RangeSender() { }
+ void send_scan()
+ {
+ for (int i = 0; i < my_scan->get_scan_size(); i++)
+ my_scan->scan[i] = rand() % 100;
+ my_scan->publish();
+ }
+};
+
+int main(int argc, char **argv)
+{
+ RangeSender rs;
+ printf("entering talker spin loop\n");
+ int sleep_usecs = (int)(1000000.0 / rs.freq);
+ printf("sleep usecs = %d\n", sleep_usecs);
+ while (rs.happy())
+ {
+ usleep(sleep_usecs);
+ rs.send_scan();
+ }
+ printf("rangesender says GOODNIGHT\n");
+ return 0;
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|