python3 -m pip install torch torchvision
set udev rules for pHsensor
sudo cp config/82-ph-sensor.rules /etc/udev/rules.d/.
sudo udevadm control --reload
Launch and initialize robot
roslaunch lite6_labauto lite6_labauto.launch
rosrun lite6_labauto robot_init.py
rosrun lite6_labauto robot_move.py
Launch devices
roslaunch auto_pipetty auto_pipetty.launch
Experiment nodes First launch the solution_stack.launch file to prepare all the nodes.
roslaunch solution_prep solution_stack.launch
Start experiment
- Robot motion start by the command
- Prepare emergency button before execution
rosrun solution_prep IPC.py
roslaunch solution_prep all_serial_nodes.launch
-
Use srv to conduct steps of experiments.
-
Or use orchestrator node to conduct the whole experiment of solution preparation at a target pH.
rosrun solution_prep orchestrator.py
Avaiable parameters:
self.V0_ml = float(rospy.get_param("~current_water_volume_ml", 20)) # Initial volume of pure water(mL) in target beaker
self.target_ph = float(rospy.get_param("~target_ph", 4.00)) # target pH
self.c_HCl = float(rospy.get_param("~c_HCl", 0.01585)) # source HCl mol/L
self.ph_tol = float(rospy.get_param("~ph_tolerance", 0.02)) # permitted pH error
self.max_loops = int(rospy.get_param("~max_loops", 6)) # maximum loops
BeakerMani.srv
# input
bool shake
---
# output
bool success
string message
pHMeasure.srv
# input
float32 timeout_s
---
# output
bool success
float32 ph
string message
PipetteDo.srv
# input
string liquid # "HCl" or "water"
float32 volume_ul # Volume to aspirate
int32 tip_id
---
# output
bool success
string message
TweezersDraw.srv
# input
bool draw
---
# output
bool success
string message