- 16 Feb, 2005 1 commit
-
-
Timothy Stack authored
-
- 15 Feb, 2005 1 commit
-
-
Timothy Stack authored
Robot stuff: * robots/emc/emcd.c: Send an event containing battery levels when a telemetry packet comes in from rmcd. * robots/emc/loclistener.in: Update battery stats. * robots/mtp/mtp.x: Add robot_id field to telemetry structure. * robots/mtp/*.java: Regenerate jrpcgen stubs. * robots/primotion/garcia-pilot.cc: Send telemetry to rmcd every minute. * robots/primotion/pilotClient.cc: Broadcast contact reports to all clients. * robots/rmcd/pilotConnection.c: Resend telemetry packets from pilot to emcd. * tbsetup/tbrsync.in: Wait for the node to come up before doing the rsync. * www/garcia-telemetry.jar: Removed. * www/mtp.jar: Regenerated. * www/telemetry.php3: Make the applet window a little bigger. * www/garcia-telemetry/GNUmakefile.in: Don't put the jar in the source tree. * www/thinlet.jar, www/garcia-telemetry/GarciaTelemetry.java, www/garcia-telemetry/UpdateThread.java, www/garcia-telemetry/main.xml: Switch to the homegrown version of thinlet and add contact report packets to the log. * www/tutorial/mobilewireless.php3: Spell check.
-
- 01 Feb, 2005 1 commit
-
-
Timothy Stack authored
Tweaks for updating the robotmap: * robots/emc/emcd.c: Only send updates to loclistener when the position actually changes. * robots/emc/loclistener.in: Listen for SETDEST events and update the destination position in the nodes table. Also update the orientation column. * robots/emc/test_emcd.config, robots/emc/test_emcd.sh.in: Update for changes elsewhere.
-
- 27 Jan, 2005 1 commit
-
-
Timothy Stack authored
more checking of the config file and its contents.
-
- 26 Jan, 2005 1 commit
-
-
David Johnson authored
vision system bounds).
-
- 22 Jan, 2005 1 commit
-
-
Timothy Stack authored
More robot stuff, start in on path planning and cleanup rmcd a bit. * robots/emc/emcd.c: Update for obstacle-related changes in mtp. * robots/mtp/mtp.x, robots/mtp/mtp.h, robots/mtp/mtp.c, robots/mtp/mtp_send.c: Add messages for requesting/reporting robot sensor contacts, plus some cosmetic changes to the obstacle_config structure. * robots/primotion/garcia-pilot.cc, robots/primotion/pilotClient.hh, robots/primotion/pilotClient.cc: Add support for sending "contact" reports, which contain points where the sensors have detected an object. * robots/rmcd/GNUmakefile.in, robots/rmcd/obstacles.h, robots/rmcd/obstacles.c, robots/rmcd/pilotConnection.h, robots/rmcd/pilotConnection.c, robots/rmcd/rclip.h, robots/rmcd/rclip.c, robots/rmcd/rmcd.c: Cleanup and add in some obstacle avoidance.
-
- 17 Jan, 2005 2 commits
-
-
Timothy Stack authored
More robot tweaks: * event/sched/event-sched.c: Start rmcd, then vmcd. * event/sched/rpc.cc: Add camera dimensions to the config file. * robots/emc/emcd.c: Add camera dimensions to the config file and destroy vmc's position_list when it disconnects. * robots/mtp/mtp.x, robots/mtp/mtp.c: Add dimensions to the camera config and add a command_id field to the update_position packet. * robots/primotion/garcia-pilot.cc: Move the decl of the acpGarcia object below daemon(3) since it doesn't seem to like it when the parent process dies and fix the log file creation. * robots/primotion/pilotClient.cc: Pass the command_id back in any update_position packets. * robots/rmcd/rmcd.c: Use the command-id to distinguish between STOPs for the sake of a GOTO and a wiggle. * robots/vmcd/visionTrack.h, robots/vmcd/visionTrack.c: Only coalesce packets from different cameras (duh) and mess with the tolerances a little more. * xmlrpc/emulabserver.py.in: Add some rough camera dimensions.
-
Timothy Stack authored
Some cleanup to the vision system and make wiggle work, although it is still a bit glitchy. This checkin is enough to identify the robots in their pens and move them to their initial positions. * robots/emc/emcd.h, robots/emc/emcd.c: When rmc connects, send GOTOs with the initial positions given in the config file. If rmc requests a vision update and one isn't available, queue the request and send a reply when an update does come in. * robots/mtp/GNUmakefile.in, robots/mtp/listNode.h, robots/mtp/listNode.c: Add amiga-style linked list node functions, tim always needs these. * robots/mtp/mtp.h, robots/mtp/mtp.c: Add mtp_theta function that produces a sane theta value between -M_PI and M_PI. * robots/mtp/mtp.x: Add MTP_WIGGLE_START type which causes the robots to stop in their tracks waiting for a real wiggle type (e.g. 180 deg turn). * robots/rmcd/rmcd.c: Tweaks, add support for MTP_WIGGLE_START. * robots/vmcd/GNUmakefile.in, robots/vmcd/robotObject.h, robots/vmcd/robotObject.c, robots/vmcd/visionTrack.h, robots/vmcd/visionTrack.c, robots/vmcd.c: Cleanup and make wiggle work. * robots/vmcd/vmc-client.c: If there are no objects detected in a camera send an error packet instead of nothing, so vmcd can keep in sync with the frames.
-
- 15 Jan, 2005 2 commits
-
-
David Johnson authored
more testing.
-
Timothy Stack authored
-
- 14 Jan, 2005 1 commit
-
-
Timothy Stack authored
Pass camera config to vmcd in the config_vmc packet and add support for using unix-domain sockets when talking to emcd instead of unsecured tcp sockets. * robots/emc/emcd.c: Add support for camera configs in the config file and add support for listening on a unix-domain socket. * robots/emc/test_emcd.config, robots/emc/test_emcd.sh.in: Update for changes to emcd. * robots/mtp/mtp.h, robots/mtp/mtp.c, robots/mtp/mtp.x, robots/mtp/mtp_send.c: Add camera config to the config_vmc packet and add support for unix-domain sockets. * robots/primotion/GNUmakefile.in: Add empty install target. * robots/rmcd/rmcd.c, robots/rmcd/test_emcd.config: Add support for unix-domain sockets. * robots/vmcd/vmcd.c: Add support for unix-domain sockets and read the camera config from the config_vmc packet. * robots/vmcd/test_vmc*.sh: Fix tests changed by my last checkin. * robots/vmcd/test_emcd*.config: Update for changes to the emcd config file format.
-
- 10 Jan, 2005 1 commit
-
-
Timothy Stack authored
A bunch of engineering on the robot code. I'm sure I've broken something, but the majority of it is done and I wanted to get a checkpoint in. * GNUmakerules: Add rpcgen rules. * Makeconf.in: Add PATH and host_cpu variables so cross-compilation works properly. Add JAVAC and JAR for java compilation. Add BRAINSTEM_DIR that refers to a brainstem build directory to be used for the robot build. * configure, configure.in: Prepend the arm cross-compile dir to PATH. Detect java for building applets. Add --with-brainstem to specify the brainstem build dir. Add --enable-mezzanine to turn on the mezzanine build. * robots/GNUmakefile.in: Add client target that builds the subdirs. * robots/emc/GNUmakefile.in, robots/emc/emcd.h, robots/emc/emcd.c, test_emcd.sh.in, robots/rmcd/GNUmakefile.in, robots/rmcd/rmcd.c, robots/rmcd/test_rmcd.sh.in, robots/vmcd/test_vmc-client.sh.in, robots/vmcd/test_vmcd.sh.in, robots/vmcd/test_vmcd2.sh, robots/vmcd/test_vmcd3.sh, robots/vmcd/test_vmcd4.sh, robots/vmcd/vmc-client.c, robots/vmcd/vmcd.c: Updates for the mtp switch to using rpcgen. * robots/emc/test_emcd.config: Restore missing config line. * robots/mtp/GNUmakefile.in, robots/mtp/global_bound.java, robots/mtp/mtp.h, robots/mtp/mtp.c, robots/mtp/mtp.java, robots/mtp/mtp.x, robots/mtp/mtp_command_goto.java, robots/mtp/mtp_command_stop.java, robots/mtp/mtp_config_rmc.java, robots/mtp/mtp_config_vmc.java, robots/mtp/mtp_control.java, robots/mtp/mtp_dump.c, robots/mtp/mtp_garcia_telemetry.java, robots/mtp/mtp_opcode_t.java, robots/mtp/mtp_packet.java, robots/mtp/mtp_payload.java, robots/mtp/mtp_recv.c, robots/mtp/mtp_request_id.java, robots/mtp/mtp_request_position.java, robots/mtp/mtp_robot_type_t.java, robots/mtp/mtp_role_t.java, robots/mtp/mtp_send.c, robots/mtp/mtp_status_t.java, robots/mtp/mtp_telemetry.java, robots/mtp/mtp_update_id.java, robots/mtp/mtp_update_position.java, robots/mtp/robot_config.java, robots/mtp/robot_position.java, robots/mtp/test_mtp.sh: Replace hand-generated stubs with xdr stubs for C and java. Java stubs were generated by "remotetea's" jrpcgen. * robots/primotion/GNUmakefile.in, robots/primotion/buttonManager.hh, robots/primotion/buttonManager.cc, robots/primotion/dashboard.hh, robots/primotion/dashboard.cc, robots/primotion/flash-user-led.cc, robots/primotion/garcia-pilot.cc, robots/primotion/garciaUtil.hh, robots/primotion/garciaUtil.cc, robots/primotion/ledManager.hh, robots/primotion/ledManager.cc, robots/primotion/pilotButtonCallback.hh, robots/primotion/pilotButtonCallback.cc, robots/primotion/pilotClient.hh, robots/primotion/pilotClient.cc, robots/primotion/watch-user-button.cc, robots/primotion/wheelManager.hh, robots/primotion/wheelManager.cc: Replace gorobot with garcia-pilot, a beefed up daemon for controlling the robots. Improvements include: making use of the user LED and button to give some feedback and let the wrangler run a test sequence, reboot, and shutdown the robot; Logging of the battery level, how often the robot has moved and for how long, and the distance traveled; telemetry is sent back to emulab clients; movements are now just pivot-move instead of pivot-move-pivot, since the second pivot ends up being extra work most of the time; the robot will move backwards to cut down on the amount of rotation; and just generic cleanups to the code. * robots/primotion/garcia.config: The configuration file currently used on the garcias. * www/GNUmakefile.in: Add garcia-telemetry subdir to the build. * www/dbdefs.php3.in: Add TBNodeClass and TBNodeStatus functions. * www/garcia-telemetry/Base64.java, www/garcia-telemetry/GNUmakefile.in, www/garcia-telemetry/GarciaTelemetry.java, www/garcia-telemetry/UpdateThread.java, www/garcia-telemetry/main.xml: A telemetry applet for the garcia, it displays readouts for the various sensors and other bits of data gathered by the garcia-pilot daemon. Hopefully, it will make a handy debugging tool. * www/garcia-telemetry.jar, www/mtp.jar, www/oncrpc.jar, www/thinlet.jar: Java jars used by the robot telemetry applet. * www/servicepipe.php3: A slightly enhanced version of ledpipe.php3 that can be used for other services, like robot telemetry. * www/shownode.php3: Add "Show Telemetry" menu item to robot nodes. * www/telemetry.php3: Telemetry page for the garcia-telemetry applet.
-
- 15 Dec, 2004 1 commit
-
-
Timothy Stack authored
-
- 14 Dec, 2004 2 commits
-
-
David Johnson authored
- changes so that networking code will compile under linux.
-
Timothy Stack authored
Add more debugging output to the robot daemons and do some more cleanup.
-
- 13 Dec, 2004 6 commits
-
-
Timothy Stack authored
More robot-related tweaks and bug fixes: * robots/emc/emcd.c: Handle "-h" option properly. * robots/emc/loclistener.in: Pickup the pixels_per_meter value from the database and use that to convert event coordinates in meters to pixels for the database. * robots/primotion/gorobot.cc: Comment. * robots/primotion/dgrobot/gcallbacks.h, robots/primotion/dgrobot/gcallbacks.cc, robots/primotion/dgrobot/grobot.h, robots/primotion/dgrobot/grobot.c, robots/primotion/dgrobot/grobot_sim.cc: Small bug fixes to make sure the position estimate is updated when moving in a straight line. * robots/rmcd/rmcd.c: cleanup * robots/vmcd/GNUmakefile.in, robots/vmcd/test_emcd3.config, robots/vmcd/test_vmcd3.pos, robots/vmcd/test_vmcd3.sh, robots/vmcd/test_vmcd4.pos, robots/vmcd/test_vmcd4.sh: Some more test cases, still pretty simple though.
-
Timothy Stack authored
More bug fixes for vmcd and friends: * GNUmakerules: Set SRCDIR as an environment variable so every test doesn't have to be a template. * robots/emc/emcd.c: Correctly handle a vision position that is dead-on the initial position. XXX Turn off orientation matching for now, it is too strict at the moment so that it favors close orientation over close position. * robots/mtp/mtp.c: Fix some broken printfs in mtp_print_packet. * robots/vmcd/GNUmakefile.in: Add another test. * robots/vmcd/test_emcd2.config, robots/vmcd/test_vmcd2.pos, robots/vmcd/etst_vmcd2.sh: A test that matches the initial positions of two robots. * robots/vmcd/test_vmcd.pos: Reduce the distance the robot moved between frames. * robots/vmcd/vmcd.c: Fix a bugfix and some formatting changes.
-
Timothy Stack authored
Some bugfixes and an improved test case for vmcd: * robots/emc/emcd.c: Add a REQUEST_POSITION handler for the emulab_callback. Fix some simple bugs when processing REQUEST_ID packets. * robots/vmcd/test_emcd.config: Use just one robot for simple test. * robots/vmcd/test_vmc-client.pos: A position file for the vmc-client test. * robots/vmcd/test_vmc-client.sh.in: Test with a position file instead of hardcoded numbers. * robots/vmcd/test_vmcd.pos: Position file for the vmcd test. * robots/vmcd/test_vmcd.sh.in: Make the test a little simpler, but add a check to see if vmcd finds the robot initially. * robots/vmcd/vmc-client.c: Add a "-f" option that lets you use a "position" file that contains the object positions for a series of frames. * robots/vmcd/vmcd.c: Some bug fixes.
-
Timothy Stack authored
-
David Johnson authored
- added the final code necessary to fully handle a vmc client.
-
Timothy Stack authored
Rmcd and garcia stuff: * configure, configure.in: Add robot related template files. * robots/GNUmakefile.in: Add primotion directory. * robots/emc/emcd.c: Debugging printfs, check the status for update-position messages from rmc, and add a basic handler for emulab clients. * robots/emc/test_emcd.sh.in: Update for changes in mtp. * robots/mtp/mtp.h, robots/mtp/mtp.c: Changes for the garcia. * robots/mtp/mtp_send.c: Fixes so that it will compile under linux. * robots/primotion/GNUmakefile.in: Makefile for building a fake gorobot in the testbed tree. * robots/primotion/Makefile: tweaks * robots/primotion/gorobot.cc: First draft with sort-of working networking code. * robots/primotion/test_gorobot.sh.in: Test case for the fake gorobot. * robots/primotion/dgrobot/GNUmakefile.in: Makefile for building a fake grobot class in the testbed tree. * robots/primotion/dgrobot/grobot.h: Add #if !defined(GROBOT_SIM) conditionals. * robots/primotion/dgrobot/grobot_sim.cc: Empty impl of grobot class used for testing. * robots/rmcd/GNUmakefile.in: Targets for building rmcd and running its test case. * robots/rmcd/rmcd.c: First draft with sort-of working networking code. * robots/rmcd/test_emcd.config: emcd configuration for the rmcd test case. * robots/rmcd/test_rmcd.sh.in: Test case for rmcd.
-
- 12 Dec, 2004 1 commit
-
-
David Johnson authored
* emcd.c: - minor changes, mostly comments. this is next to fix up. * vmc-client.c: - minor changes to tell vmcd about the last packet in a frame processing cycle (via MTP_POSITION_STATUS_CYCLE_COMPLETE being set in the last update_position packet of a frame processing cycle). - maybe other stuff... * vmcd.c: - massive changes to handle tracking of robots from data passed from vmc-client, and to handle ID association. * mtp.h: - addded MTP_POSITION_STATUS_CYCLE_COMPLETE #define - updated structs request_id and update_id to include a `request_id' field so that we can uniquely track requests (since they're asynchronous). * mtp.c: - revamped code for above mtp.h changes.
-
- 11 Dec, 2004 1 commit
-
-
Timothy Stack authored
Frame out vmcd: * GNUmakerules: Fix "check" target so it runs more than one test. * robots/emc/emcd.c: Send the vmc config packet out when vmcd connects. * robots/vmcd/GNUmakefile.in: Add vmcd-related stuff. * robots/vmcd/test_emcd.config: Emc config for the test case. * robots/vmcd/test_vmcd.sh.in: Simple test case for vmcd. * robots/vmcd/vmcd.c: Initial framing of vmcd, just receives and dumps packets, actual logic still needs to be put in.
-
- 09 Dec, 2004 1 commit
-
-
Timothy Stack authored
Make the dots move on the robot map web page: * configure, configure.in: Add robots/emc/loclistener. * event/lib/event.h, event/lib/event.c: Add some helper functions for sending events and parsing args. * event/lib/tbevent.py.tail, event/lib/tbevent.py: Add support for clients that register using keyfiles. * robots/emc/GNUmakefile.in: Install loclistener on boss. * robots/emc/emcd.h, robots/emc/emcd.c: Send update events every two seconds with the node's location. Fill out a little more of the event callback, not sure what to do with the requested destination though. Add some code to the vmc callback to store position updates. Changed the config file format to also include the vname of the robot. * robots/emc/loclistener.in: Listen for NODE MODIFY events with coordinates and update the database accordingly. Kinda sucks, but it works. * robots/emc/test_emcd.config: Add vnames to the robots to reflect change in the config file format. * tbsetup/ns2ir/node.tcl: Add nodes to the virt_agents table.
-
- 08 Dec, 2004 1 commit
-
-
Timothy Stack authored
Elvinize emc and some bug fixes... * configure, configure.in: Add "robots/emc/test_emcd.sh" script to the list of template files. * robots/GNUmakefile.in: Add a target for install-subdir. * robots/emc/GNUmakefile.in: Compile emcd and install it on ops. Add test_emcd.sh test case. * robots/emc/emcd.h, robots/emc/emcd.c: Elvinize, add support for events, and some minor cleanup. * robots/emc/robot_list.c: Compilation fixes. * robots/emc/test_emcd.config: Robot config for the test case. * robots/emc/test_emcd.sh.in: Test case for emcd, just starts it up and uses mtp_send to send a few messages to it. * robots/mtp/GNUmakefile.in: Install mtp_send and mtp_recv on ops. * robots/mtp/mtp.h, robots/mtp/mtp.c: Marshall floats correctly, doh! Move the packet printing code from mtp_recv to the lib. * robots/mtp/mtp_recv.c: Move the packet printing code to the lib. * robots/mtp/mtp_send.c: Add a "-w" option to wait for a response from the peer and then dump the packet to stdout. Allow multiple packets to be sent from a single invocation, the arguments for each packet must be separated by a double dash (--), see test_emcd.sh.in for an example. * robots/mtp/mtp_test.c: Gah, test with actual floating point values dummy.
-
- 06 Dec, 2004 1 commit
-
-
David Johnson authored
-