Merged with remote
Organized arm_control and electrode packages into a stack called arm_project
Modified arm package so that it no longer relies on std_msgs. Also, completely disabled arm_monitor for the time being as it doesn't work right. About to implement neuron activity generating movement commands for the ARM
CAT messages can now control the ARM, very primitively
Changed sending commands to the ARM from a message to a service. Keyboard teleop has been converted. Dish teleop is next.
ARM movement from dish signals is working. Need to better implement the request/response nature of the command service
Starting to re-implement cartesian positional movement.
1: Commands to the ARM are again sent via MESSAGES, not services. I need to stop changing this. 2: Cartesian commands have been implemented (for instructions from dish node) alongside constant commands (keyboard input). Getting them to play nicely together has been an ordeal. 3: Cartesian movement is only enabled for X/Y/Z movement. Controlling the claw HAS to be done via keyboard. The cartesian calculations for the claw are buggy.
Dish movement has been converted from a message to a service. The service topic is no longer needed and has been deleted. Dish movement has been completely reworked to move based on position instead of time.
ARM can now move in a complete square without going out of bounds. Also, all nodes now will start up and shut down cleanly based on the status of their subscriber and publisher dependencies. Created a roslaunch file because the number of nodes needing to be individually launched was getting to be unwieldy.
Moved the CSV receiver into its own package neuro_rcv to be more inline with Abe's work. Also added Abe's dish_viz package and got it working. Next up: get the dish visualizer and the ARM working in sync.
Altered starting and ending positions for the ARM
Renamed electrode package to burst_calc.
Implemented BurstMerger class. Probably lots of logic bugs to fix
After a few tweaks, it LOOKS like the BurstMerger class is working well. Will need to keep an eye on it. But now we can move on to making the ARM sync with the dish viz.
Added a vector of ints representing bursting channels to the burst message. Revised how CatCreator prints to files.
In the midst of creating true interruptible movement for the ARM
SEGFAULTS IN ARM CONTROL ARE FINALLY GONE
Finally figured out how to make the motion interruptible. Now to change all my code.... again
Changed cartesian_move message back to a single position from a queue of positions. That way the dish control node can interrupt the ARM's current target position with a brand new one at any time