These are older RBC client examples that communicate with the RBC server directly using ROS2 actions, services, topics and ROS params.
It is no longer recommended to use these examples since managing ROS2 actions and services directly is quite complicated/unclean and it doesn't scale easily for multiple RBC reachers/extenders.
There are two examples: rbc_joint_init and rbc_keyboard_ctrl
rbc_joint_init: takes one robot arm away from kinematic singularities. Or: starts the robot, using joint position control, on a known well-behaved starting pose. This is necessary for running the second program (or doing cartesian control)
rbc_keyboard_ctrl: the user can use various keyboard keys to control a robot end-effect, using cartesian position control, to a desired position. It is necessary to run rbc_joint_init at least once before starting to use this program.
Run rbc_joint_init at least once:
source ros2_setup.sh
ros2 run rbc_joint_init rbc_joint_init --ros-args -r __ns:=/sim_humanoid_01
The robot should "arc" the arm from up looking down. Wait until the program finishes.
The program should print "Goal reached!!! yei!"
source ros2_setup.sh
ros2 run rbc_keyboard_ctrl rbc_keyboard_ctrl --ros-args -r __ns:=/sim_humanoid_01
Wait until the program stops printing (initialization)