Troubleshooting
This section provides an example workflow using PiPER (AgileX Robotics).
System Calibration
Currently, there is an unresolved issue with the PiPER hardware. If the robot remains disconnected for an extended period, it may accumulate a small positional drift (~millimeters). This can cause inaccuracies in experiments that require high-precision manipulation.
To recalibrate the RoboChemist system (e.g., AUTOHIAM), follow the steps below.
Starting the Robot
To start the robot:
Enable the Bash environment
Open a new terminal and source the PiPER workspace:
cd ~/piper_ros_ws && source install/setup.bash
Activate the CAN interface
Run the following script to bring up the CAN bus:
cd ~/piper_ros_ws/src/piper_ros && bash can_activate.sh can0 1000000
Launch the enable node
Run the node to power on and enable the robot:
ros2 launch piper start_single_piper.launch.py gripper_val_mutiple:=2
Start the ROS 2 system
In a separate terminal, launch the ROS 2 stack for the robot:
cd ~/piper_ros_ws && source install/setup.bash && ros2 launch piper_with_gripper_moveit demo.launch.py
Start the curobo collision-free motion planner
In a new terminal, source the python virtual environment and run the cumotion service:
source ~/directory_env/curobo_env/bin/activate && cd ~/autohiam_ws && source install/setup.bash && ros2 run hiam_gen2 cumotion
Starting the Camera
To start the camera, first run the node to power on the camera ROS 2 stack:
ros2 run realsense2_camera realsense2_camera_node --ros-args -p enable_color:=true -p rgb_camera.color_profile:=1920x1080x30
Then in a seperate terminal, launch the ROS 2 node for marker detection:
source ~/directory_env/handeye_env/bin/activate && cd ~/autohiam_ws && source install/setup.bash && ros2 run marker_detection gripper_estimate_marker_pose
Calibrating the Robot Goal Positions
To calibrate the goal positions (e.g., for precipitation, washing, and drying), manually control the robot to pick up the sample container. Move it to each goal position and adjust the X and Y parameters. The goal is to center the container within the beaker and ensure it can move straight up and down without colliding with the beaker walls.
Position the camera to verify the container
In a new terminal,
cd ~/autohiam_ws && source install/setup.bash && ros2 run hiam_gen2 start_pose
Open the gripper
In a new terminal,
cd ~/autohiam_ws && source install/setup.bash && ros2 run hiam_gen2 open_gripper
Pick up the container
In a new terminal,
source ~/directory_env/curobo_env/bin/activate && cd ~/autohiam_ws && source install/setup.bash && ros2 run hiam_gen2 pickup
Move up the container
In a new terminal,
source ~/directory_env/curobo_env/bin/activate && cd ~/autohiam_ws && source install/setup.bash && ros2 run hiam_gen2 cartesian_control_moveit --ros-args -p z_offset:=0.15
Calibrate the precipitation position
In a new terminal, run the following command and adjust the parameters
-p x:=0.375 -p y:=0.180:source ~/directory_env/curobo_env/bin/activate && cd ~/autohiam_ws && source install/setup.bash && ros2 run hiam_gen2 moveto --ros-args -p x:=0.375 -p y:=0.180
Calibrate the washing position
In a new terminal, run the following command and adjust the parameters
-p x:=0.375 -p y:=0.075:source ~/directory_env/curobo_env/bin/activate && cd ~/autohiam_ws && source install/setup.bash && ros2 run hiam_gen2 moveto --ros-args -p x:=0.375 -p y:=0.075
Calibrate the drying position
In a new terminal, run the following command and adjust the parameters
-p x:=0.488 -p y:=0.080:source ~/directory_env/curobo_env/bin/activate && cd ~/autohiam_ws && source install/setup.bash && ros2 run hiam_gen2 moveto --ros-args -p x:=0.488 -p y:=0.080
Calibrate the drying infusion position
In a new terminal, run the following command and adjust the parameters
-p x:=0.253 -p y:=-0.143 -p z:=0.280:source ~/directory_env/curobo_env/bin/activate && cd ~/autohiam_ws && source install/setup.bash && ros2 run hiam_gen2 moveto --ros-args -p x:=0.253 -p y:=-0.143 -p z:=0.280