Skip to content
Yanhao Yang edited this page Oct 8, 2021 · 24 revisions

Frequently Asked Questions

What is the convention for joint and leg numbering in the RobotState message?

The joint arrays in spirit_msgs::RobotState are defined such that indices 0 = abad0, 1 = hip0, 2 = knee1, 3 = abad1, 4 = hip1, 5 = knee12, 6 = abad2, 7 = hip2, 8 = knee2, 9 = abad3, 10 = hip3, 11 = knee3. Legs are numbered such that 0 = front left, 1 = back left, 2 = front right, and 3 = back right. So calling state_msg.joints.positions[4] would give you the joint position of the back left hip motor.

Confusingly, Ghost Robotics does NOT use this definition, and instead has their urdf and /mcu/state/jointURDF use the following ordering: 0 = hip0, 1 = knee0, 2 = hip1, 3 = knee1, 4 = hip2, 5 = knee2, 6 = hip3, 7 = knee3, 8 = abd0, 9 = abd1, 10 = abd2, 11 = abd3. To correct this, our ground_truth_publisher.cpp reads their message and maps from their ordering to ours, see the joints_order_ vector in the source code . Likewise our estimator_plugin.cpp maps from the alphabetical order in Gazebo to our order.

Common errors

ERROR: Unable to communicate with master!

No ROS master detected - if on the remote computer make sure to source launch_robot_env.sh (which sources the appropriate setup.bash). Otherwise you probably haven't issues and roslaunch commands yet.

Can't SSH into Jetson TX2

Power cycle the USB ethernet adapter by turn on&off the USB hub port.