[Documentation] [TitleIndex] [WordIndex

carl_bot: carl_bringup | carl_description | carl_dynamixel | carl_interactive_manipulation | carl_phidgets | carl_teleop | carl_tools

Package Summary

Control the Movement Devices on CARL

About

The carl_teleop package provides various methods for human control of the CARL robot, such as teleoperation of the base, arm, and sensors via keyboard teleoperation and joystick/gamepad teleoperation.

Nodes

carl_joy_teleop

'carl_joy_teleop' allows for control of the Segway base, simultaneous 6-DoF control of the JACO arm, individual finger control, and sensor position control using a joystick or gamepad.

Actions Called

carl_moveit_wrapper/common_actions/ready_arm (wpi_jaco_msgs/HomeArmGoal)

Subscribed Topics

joy (sensor_msgs/Joy)

Published Topics

cmd_vel (geometry_msgs/Twist) jaco_arm/angular_cmd (wpi_jaco_msgs/AngularCommand) jaco_arm/cartesian_cmd (wpi_jaco_msgs/CartesianCommand) asus_controller/tilt (std_msgs/Float64) creative_controller/pan (std_msgs/Float64) carl_moveit_wrapper/cartesian_control (geometry_msgs/Twist)

Services Called

rail_segmentation/segment (rail_segmentation/Segment) jaco_arm/software_estop (wpi_jaco_msgs/EStop)

Parameters

linear_throttle_factor_base (double, default: 1.0) angular_throttle_factor_base (double, default: 1.0) linear_throttle_factor_arm (double, default: 1.0) angular_throttle_factor_arm (double, default: 1.0) finger_throttle_factor (double, default: 1.0) controller_type (string, default: "digital") use_teleop_safety (bool, default: false)

carl_key_teleop

'carl_key_teleop' allows for keyboard teleop of the base, arm, and finger joints.

Published Topics

cmd_vel (geometry_msgs/Twist) jaco_arm/angular_cmd (wpi_jaco_msgs/AngularCommand) jaco_arm/cartesian_cmd (wpi_jaco_msgs/CartesianCommand)

Parameters

linear_throttle_factor_base (double, default: 1.0) angular_throttle_factor_base (double, default: 1.0) linear_throttle_factor_arm (double, default: 1.0) angular_throttle_factor_arm (double, default: 1.0) finger_throttle_factor (double, default: 1.0)

Controls

Controls for the joystick and keyboard teleop nodes are listed below.

Joystick Teleop

The joystick teleop node currently supports both gamepads with analog triggers and gamepads with digital triggers. The gamepad type can be set on launch with the controller_type parameter. Currently, the node has been tested with the Logitech Dual Action wired controller (digital triggers) and the Logitech Wireless Gamepad (analog triggers). If your gamepad does not work with this node, you can remap the axes and buttons using joystick_remapper package, or open an issue in the code repository and support for the new controller may be added.

The arm has four control modes, Finger Control, Arm Control, Base Control, and Sensor Control, which can be switched to by pressing buttons 1(X), 2(A), 3(B), and 4(Y) respectively.

Arm Control Mode:

Finger Control Mode:

Base Control Mode:

Sensor Control Mode:

Keyboard Teleop

The keyboard teleop operates by reading input from the command line, and as such it can only recognize one key press at a time.

The arm has three control modes, Arm Control, Finger Control, and Base Control which can be switched to by pressing the 1, 2, and 3 keys, respectively.

Arm Control Mode:

Finger Control Mode:

Base Control Mode:

Installation

To install the carl_bot package, you can install from source with the following commands:

Startup

Joystick or keyboard teleop can be started with the launch files carl_joy_teleop.launch and carl_key_teleop.launch, respectively. Both files have parameters for velocity limits, which can be set on launch to limit the velocities of the arm's translation, rotation, finger movement, and base movement. Furthermore, carl_joy_teleop.launch includes a parameter for the controller type, which can currently be set to either "analog" or "digital", representing controllers with analog triggers and digital triggers, respectively. Example launch syntax is given below.

With default parameters:

Example with parameters:


2019-06-15 12:32