- Python 3.10+
- Tested on Ubuntu 20.04
- Install ROS and rospy.
- Install pyaudio.
- Recommended: create and source a virtualenv or a conda environment
pip install -e ".[robot, develop]"for full install orpip install -e .for only preference learning setup
- Run the arm controller server on the NUC:
- ssh to the NUC:
sshnucwith lab password - [only for inside-mouth bite transfer] zero the arm torque offsets:
- Alias
set_zeroson NUC - Otherwise, run the following commands:
conda activate controllercd ~/feeding-deployment/src/feeding_deployment/robot_controllerpython kinova.py
- Alias
- run the controller server:
- Alias
run_serveron NUC - Otherwise, run the following commands:
conda activate controllercd feeding-deployment/src/feeding_deployment/robot_controllerpython arm_server.py
- Alias
- ssh to the NUC:
- Run bulldog on the NUC:
- ssh to the NUC:
sshnucwith lab password - run bulldog with alias
run_bulldog
- ssh to the NUC:
- Run a roscore on the compute system:
roscore - Launch all the sensors on the compute system using
launch_sensors - Launch the roslaunch on compute system for visualization / publish tfs:
- Alias
launch_roboton compute system - Otherwise,run the following commands from the root of your ROS workspace:
conda activate feedsource devel/setup.bashcd src/feeding-deployment/launchroslaunch robot.launch
- Alias
- Start feeding utensil:
- Alias
launch_utensilon compute system - Otherwise, run the following commands from the root of your ROS workspace:
conda activate feedsource devel/setup.bashrosrun wrist_driver_ros wrist_driver
- Important Note: To shutdown this node, press Ctrl + / (Signal handling is setup to shutdown cleanly)
- Alias
- Start the web application:
- Make sure that the feeding laptop's WiFi is off (so that the webapp only launches on the router IP)
- Alias
launch_appon compute system - Otherwise, run the following commands from the root of your ROS workspace:
conda activate feedsource devel/setup.bashcd ~/deployment_ws/src/feedingpage/vue-ros-demonpm run serve
- On a browser connected to FeedingDeployment-5G (on the laptop or the iPad), open the following webpage:
http://192.168.1.2:8080/#/task_selection
- Run the feeding demo:
- Make sure that the feeding laptop's WiFi is on and connected to the internet so that ChatGPT API works (use KortexWiFi if available)
- Alias
run_demoon compute system - Otherwise,run the following commands from the root of your ROS workspace:
conda activate feedsource devel/setup.bashcd src/feeding-deployment/src/feeding_deployment/integrationpython run.py --user tests --run_on_robot --use_interface --no_waits
- Important Note 1: If you want to resume from some state (state names: after_utensil_pickup, after_bite_pickup, last_state), use:
python run.py --user tests --run_on_robot --use_interface --no_waits --resume_from_state after_utensil_pickup(replace after_utensil_pickup with appropriate state name). - Important Note 2: The preset food item for
testsuser is bananas. If you want to try some other food item, just change the user name to a new one. For example,python run.py --user tests_new --run_on_robot --use_interface --no_waits
You can move the robot to preset configurations by running:
- Alias
cd_actionson compute system python retract.py(you can also send it to transfer.py and acquisition.py)
- Grasp the tool and move to before bite transfer position.
- Calibrate tool:
- Alias
cd_demoon compute system - Otherwise, run the following commands from the root of your ROS workspace:
conda activate feedsource devel/setup.bashcd src/feeding-deployment/src/feeding_deployment/integration
python transfer_calibration.py --tool <tool_name>where <tool_name> is one of "fork", "drink" and "wipe"
- Alias
- Manually (using buttons on the robot) move the robot to the intended inside-mouth transfer config, and press [ENTER] in the script above to record it.
- To test the tool calibration:
- Alias
cd_demoon compute system - Otherwise, run the following commands from the root of your ROS workspace:
conda activate feedsource devel/setup.bashcd src/feeding-deployment/src/feeding_deployment/integration
python transfer_calibration.py --tool <tool_name> --testwhere <tool_name> is one of "fork", "drink" and "wipe"
- Alias
- Launch the roslaunch for visualization / publish tfs:
- Navigate to the launch files:
cd launch - Launch:
roslaunch sim.launch
- Navigate to the launch files:
- Run the feeding demo:
- Navigate to integration scripts:
cd src/feeding_deployment/integration - Run demo:
python demo.py
- Navigate to integration scripts:
- To check FT readings:
rostopic echo /forque/forqueSensor - IP for robot: 192.168..10
- IP for webapp:
http://192.168.1.2:8080/#/task_selection
Run ./run_ci_checks.sh. It should complete with all green successes in 5-10 seconds.