This repository is for EECS C206A Group 15 course project. Please follow the instructions. You must have a mini-cheetah robot to successfully run this code. This repository includes the pre-trained models to run the codes. Please contact us if you prefer to train the models by yourself.
The code should be copied to two servers, one with GPUs and the other with ROS. Please install roslibpy
to connect the two servers with rosbridge.
-
On the ROS server:
You should install
ROS
on this server. The code to connect with Cheetah is not included in this repository. We directly use the NUC server in Prof. Sreenath' laboratory.Firstly, you should connect with the mini-cheetah robot.
- Please open the M/C on the robot in the order of on-off-on.
- Please open the RC transmitter, and ensure that the left-most and right-most controllers are on top.
- Check the connection of the Ethernet to the cheetah robot.
-
Terminal 1:
Connect to the Cheetah robot.
ssh user@10.0.0.44 cd robot-software/build ./run_mc_2.sh ./mit_ctrl
-
Terminal 2:
cd CheetahSoftware-FSM-RL/scripts python network_config.py cd ../mc-build ./sim/sim
Change the right-most controllers on the transmitter from top to middle, then to the bottom, and change the left-most controller on the transmitter from top to middle (the robot would stand up).
-
Terminal 3:
Run the rosbridge to connect the two servers. This command should be run before running the ball detection, pose estimation, latent encoding, ball position transform, planner, and controller.
roslaunch rosbridge_server rosbridge_websocket.launch
-
Terminal 4:
Run the ball position transform node to transform the ball position from the camera frame to the world frame.
roslaunch ball_pipeline tf_publisher.launch
-
Terminal 5:
Run the planner.
cd src\rl_planning_pose python rl_planner_ros.py
-
Terminal 6:
Run the controller.
cd src\rl_control python rl_udp_control.py
-
On the GPU server:
We use Python 3.8 with PyTorch 1.9.1, Torchvision 1.10.1. You should also install HybrIK following their instruction.
-
Terminal 1:
Run the ball detection node. The checkpoint can be downloaded here.
cd src\ball_detect\src\ball_detect_script python ball_detect_node.py
-
Terminal 2:
Run the pose estimation node. The checkpoint can be downloaded here.
cd src\pose_estimate\src python pose_detect_node.py
-
Terminal 3:
Run the human latent encoder.
cd src\human_latent\src python human_latent_node.py
-