|
From: <mor...@us...> - 2008-04-23 21:30:35
|
Revision: 167
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=167&view=rev
Author: morgan_quigley
Date: 2008-04-23 14:30:43 -0700 (Wed, 23 Apr 2008)
Log Message:
-----------
nav view GUI coming over from ros core, because it doesn't belong on the ROS core svn
Added Paths:
-----------
pkg/branches/rosbus/nav/
pkg/branches/rosbus/nav/Makefile
pkg/branches/rosbus/nav/nav_view/
pkg/branches/rosbus/nav/nav_view/Makefile
pkg/branches/rosbus/nav/nav_view/launch_in_namespace
pkg/branches/rosbus/nav/nav_view/manifest.xml
pkg/branches/rosbus/nav/nav_view/nav_view.cpp
pkg/branches/rosbus/nav/nav_view/ns_demo
Added: pkg/branches/rosbus/nav/Makefile
===================================================================
--- pkg/branches/rosbus/nav/Makefile (rev 0)
+++ pkg/branches/rosbus/nav/Makefile 2008-04-23 21:30:43 UTC (rev 167)
@@ -0,0 +1,3 @@
+SUBDIRS = nav_view
+include $(shell rospack find mk)/recurse_subdirs.mk
+
Added: pkg/branches/rosbus/nav/nav_view/Makefile
===================================================================
--- pkg/branches/rosbus/nav/nav_view/Makefile (rev 0)
+++ pkg/branches/rosbus/nav/nav_view/Makefile 2008-04-23 21:30:43 UTC (rev 167)
@@ -0,0 +1,4 @@
+SRC = nav_view.cpp
+OUT = nav_view
+PKG = nav_view
+include $(shell rospack find mk)/node.mk
Added: pkg/branches/rosbus/nav/nav_view/launch_in_namespace
===================================================================
--- pkg/branches/rosbus/nav/nav_view/launch_in_namespace (rev 0)
+++ pkg/branches/rosbus/nav/nav_view/launch_in_namespace 2008-04-23 21:30:43 UTC (rev 167)
@@ -0,0 +1,9 @@
+#!/bin/bash
+export ROS_NAMESPACE=$ROS_NAMESPACE/nav
+ODOM=`rosmap odom $*`
+echo $ODOM
+if [ "$ODOM" = "" ]; then
+ echo "woah! i need an odometry map"
+ exit
+fi
+xterm -e `rospack find nav_view`/nav_view odom:=$ODOM &
Property changes on: pkg/branches/rosbus/nav/nav_view/launch_in_namespace
___________________________________________________________________
Name: svn:executable
+ *
Added: pkg/branches/rosbus/nav/nav_view/manifest.xml
===================================================================
--- pkg/branches/rosbus/nav/nav_view/manifest.xml (rev 0)
+++ pkg/branches/rosbus/nav/nav_view/manifest.xml 2008-04-23 21:30:43 UTC (rev 167)
@@ -0,0 +1,5 @@
+<package>
+ <depend package="roscpp"/>
+ <depend package="std_msgs"/>
+ <depend package="sdlgl"/>
+</package>
Added: pkg/branches/rosbus/nav/nav_view/nav_view.cpp
===================================================================
--- pkg/branches/rosbus/nav/nav_view/nav_view.cpp (rev 0)
+++ pkg/branches/rosbus/nav/nav_view/nav_view.cpp 2008-04-23 21:30:43 UTC (rev 167)
@@ -0,0 +1,81 @@
+#include <unistd.h>
+#include <math.h>
+#include <GL/gl.h>
+#include "ros/node.h"
+#include "std_msgs/MsgPose2DFloat32.h"
+#include "sdlgl/sdlgl.h"
+
+class NavView : public ros::node, public ros::SDLGL
+{
+public:
+ MsgPose2DFloat32 odom;
+ float view_scale, view_x, view_y;
+
+ NavView() : ros::node("nav_view"),
+ view_scale(50), view_x(0), view_y(0)
+ {
+ subscribe("odom", odom, &NavView::odom_cb);
+ init_gui(640, 480, "nav view");
+ }
+ void odom_cb()
+ {
+ request_render();
+ }
+ void render()
+ {
+ glClearColor(0.2,0.2,0.2,0);
+ glClear(GL_COLOR_BUFFER_BIT);
+ glLoadIdentity();
+ glScalef(view_scale, view_scale, view_scale);
+ glTranslatef(view_x, view_y, 0);
+
+ glPushMatrix();
+ odom.lock();
+ glTranslatef(odom.x, odom.y, 0);
+ glRotatef(odom.th * 180 / M_PI, 0, 0, 1);
+ odom.unlock();
+ glColor3f(0.2, 1.0, 0.4);
+ glBegin(GL_LINE_LOOP);
+ const float robot_rad = 0.3;
+ for (float f = 0; f < (float)(2*M_PI); f += 0.5f)
+ glVertex2f(robot_rad * cos(f), robot_rad * sin(f));
+ glEnd();
+ glBegin(GL_LINES);
+ glVertex2f(0,0);
+ glVertex2f(robot_rad,0);
+ glEnd();
+ glPopMatrix();
+
+ SDL_GL_SwapBuffers();
+ }
+ void set_view_params(int width, int height)
+ {
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho(-width/2, width/2, -height/2, height/2, -1, 1);
+ glMatrixMode(GL_MODELVIEW);
+ }
+ virtual void mouse_motion(int x, int y, int dx, int dy, int buttons)
+ {
+ if (buttons & SDL_BUTTON(1)) // left button: translate view
+ {
+ view_x += dx / view_scale;
+ view_y -= dy / view_scale;
+ request_render();
+ }
+ else if (buttons & SDL_BUTTON(3)) // right button: scale view
+ {
+ view_scale *= 1.0 - dy * 0.01;
+ request_render();
+ }
+ }
+};
+
+int main(int argc, char **argv)
+{
+ ros::init(argc, argv);
+ NavView view;
+ view.main_loop();
+ return 0;
+}
+
Added: pkg/branches/rosbus/nav/nav_view/ns_demo
===================================================================
--- pkg/branches/rosbus/nav/nav_view/ns_demo (rev 0)
+++ pkg/branches/rosbus/nav/nav_view/ns_demo 2008-04-23 21:30:43 UTC (rev 167)
@@ -0,0 +1,4 @@
+#!/bin/bash
+xterm -e `rospack find nav_view`/nav_view odom:=/robot/odom &
+export ROS_NAMESPACE=$ROS_NAMESPACE/robot
+xterm -e `rospack find flatland`/flatland &
Property changes on: pkg/branches/rosbus/nav/nav_view/ns_demo
___________________________________________________________________
Name: svn:executable
+ *
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|