RX1 Humanoid is an opensource robot project hosted on https://www.redrabbitrobotics.cc. This repo is a ROS1 meta package containing basic functioning packages of the RX1 humanoid including the following:
- rx1_description: URDF file
- rx1_motor: Feetech servo motor control
- rx1_ik: Inverse Kinematics demo
- rx1_bringup: Launch everything
- rx1_gazebo: Gazebo simulation
Assuming you have already had ROS 1 Noetic or Melodic installed in your Ubuntu computer.
Dependencies:
- feetech_lib
- ik_solver_lib
- other packages listed in the package.xml files you can install through:
rosdep install --from-paths src --ignore-src -r -y
-
Test the URDF
roslaunch rx1_description urdf_test.launch
You should be able control the joint angles through sliders.
-
Test the inverse kinematics
roslaunch rx1_description urdf.launch
roslaunch rx1_ik rx1_ik_marker.launch
You should be able click and drag the end effector poses to play with the ik.
-
Test with the actual robots
Go to rx1_motor.launch file and modify the USB port value to the corresponding one of your Feetech servo controller board.
Then, after doing either 1 or 2 above, type:
roslaunch rx1_motor rx1_motor.launch
You should be able to see the actual robot move based on your commands. -
Gazebo simulation
Install dependencies:
pip install tk
Run simulation:
roslaunch rx1_gazebo rx1_gazebo.launch
roscd rx1_gazebo/scripts/
python3 controller_gui_example.py
You should be able click and drag the sliders and command joints angles through the GUI.
- Note that some of the mesh files don't match exactly the latest CAD file of the RX1 Humanoid robot due to development overtime. The overall shape stays the same though.
- The inertia values in the
rx1.urdf.xacro
file are placeholders, while therx1.urdf
has the proper inertia values and it's created by using therx1_description/scripts/calc_inertia.py
script. (acknowledgement: this script is modified from https://github.com/gstavrinos/calc-inertia/blob/master/calc_inertia_for_urdf.py) - To launch everything by
roslaunch rx1_bringup bringup.launch
, you need to have the depth camera's ROS package OrbbecSDK_ROS1 installed as well.