ROS2 Hardware Interface and Description for the ADA Robot
See the ada_feeding
top-level README for setup instructions.
ros2 launch ada_moveit demo.launch.py sim:=mock
command from your ROS2 workspace.ros2 launch ada_moveit demo.launch.py
command from your ROS2 workspace. If running for feeding specifically (i.e., where the watchdog dying kills the controllers) run ros2 launch ada_moveit demo_feeding.launch.py
. Make sure the watchdog is running before you launch this node.MoveIt Servo allows real-time arm servoing in cartesian space by sending twist commands to the end effector.
To use Servo with keyboard teleop:
ros2 run ada_feeding dummy_ft_sensor.py
ros2 run forque_sensor_hardware forque_sensor_hardware
ros2 launch ada_moveit demo.launch.py sim:=mock
ros2 launch ada_moveit demo.launch.py
ros2 service call /wireless_ft/set_bias std_srvs/srv/SetBool "{data: true}"
ros2 service call /controller_manager/switch_controller controller_manager_msgs/srv/SwitchController "{activate_controllers: [\"jaco_arm_servo_controller\"], deactivate_controllers: [\"jaco_arm_controller\"], start_controllers: [], stop_controllers: [], strictness: 0, start_asap: false, activate_asap: false, timeout: {sec: 0, nanosec: 0}}"
ros2 service call /servo_node/start_servo std_srvs/srv/Trigger "{}"
ros2 run ada_moveit ada_keyboard_teleop.py
ros2 service call /servo_node/stop_servo std_srvs/srv/Trigger "{}"
To create your own Servo client:
/servo_node/delta_twist_cmds
. Note the following:
lovelace
, ensure the angular velocity is <= 0.3 rad/s in magnitude. Greater angular velocities might change the end effector's position in addition to its orientation. We believe this is because of latencies with MoveIt Servo getting the robot's joint states via the joint state publisher.See the README for the default
calibration for details about our extrinsics calibration methdology.