-
Notifications
You must be signed in to change notification settings - Fork 6
end_effector_teleoperation_control_en
EN | 中文
#Demo 4 - End_effector Teleoperation Control
#####Navigation
end_effector_teleoperation_control is a package to teleoperate the end_point of baxter using keyboard and marker.
So far this node has been tested on ROS Indigo powered by Ubuntu 14.04 only. If you got any problem with the code, please contact us.
#####Files Location:
- ./demos/end_effector_teleoperation_control/src/end_effector_marker_control.cpp
- ./demos/end_effector_teleoperation_control/scripts/control_command_subscriber.py
- ./demos/end_effector_teleoperation_control/scripts/end_effector_command_solver.py
- ./demos/end_effector_teleoperation_control/scripts/end_effector_trajectory_client.py
- ./demos/end_effector_teleoperation_control/scripts/keyboard_control.py
- ./demos/end_effector_teleoperation_control/launch/end_effector_marker_control.launch
#####Subscriptions:
######In keyboard mode:
######node:end_effector_trajectory_client.py
- /robot/limb/right/endpoint_state
- /robot/limb/left/endpoint_state
- /robot/state
- /robot/joint_states
- /end_effector_command_solution
######node:contorl_command_subscriber.py
- /end_effector_command
######In marker mode:
######mode:end_effector_trajectory_client.py
- /robot/limb/right/endpoint_state
- /robot/limb/left/endpoint_state
- /robot/state
- /robot/joint_states
- /end_effector_command_solution
######mode:end_effecor_command_solver.py
- /end_effector_command_position
- /robot/joint_states
- /robot/limb/right(left)/endpoint_state
#####Publications:
######In keyboard mode:
######node:end_effector_trajectory_client.py
- /robot/limb/right(left)/joint_command
- /robot/set_super_enable
######node:contorl_command_subscriber.py
- /end_effector_command_solution
######node:keyboard_control.py
- /end_effector_command
######In marker mode:
######node:end_effector_trajectory_client.py
- /robot/set_super_enable
- /robot/limb/left/joint_command
- /robot/limb/right/joint_command
######node:end_effector_marker_control.cpp
- /end_effector_command_position
######node:end_effecor_command_solver.py
- /robot/limb/right(left)/joint_command
- /end_effector_command_solution
Beofore you run this package, please make sure your computer have been connected to the baxter. And launch:
(keyboard control mode)
$ roslaunch end_effector_teleoperation_control end_effector_marker_control.launch keyboard:=true
or
(marker control mode)
$ roslaunch end_effector_teleoperation_control end_effector_marker_control.launch keyboard:=true
To read more detail or find the solutions to some problems, please refer to FAQ part below.
The following keys are used to move a limb:
- keyboard_binding["w"] = "up"
- keyboard_binding["s"] = "down"
- keyboard_binding["a"] = "left"
- keyboard_binding["d"] = "right"
- keyboard_binding["q"] = "backward"
- keyboard_binding["e"] = "forward"
- keyboard_binding["f"] = "switch limb to "
- keyboard_binding["z"] = "orientation_x"
- keyboard_binding[" "] = "keep"
- keyboard_binding["k"] = "further"
- keyboard_binding["l"] = "closer"
- If you choose keboard control, then when you fire up the launch file above, it will start running the following three nodes.
node 1:end_effector_trajectory_client.py
node 2:contorl_command_subscriber.py
node 3:keyboard_control.py
- If you choose marker control, then when you fire up the launch file above, it will start running the following four nodes.
node 1:end_effector_trajectory_client.py
node 2:end_effector_marker_control.cpp
node 3:end_effecor_command_solver.py
node 4:rviz
Q1. Why baxter is motionless after pressing the button in the way of keyboard control sometimes?
A1. Because the arm of baxter is limited at this time, and you can continue to control by moving the arm into proper position.
Q2. Why the position of end_point is improper or the arm is stucked in the way of marker control?
A2. Because the calculated result isn't suitable in reality and the arm can't move into the desired pose. And at this time, you just need to give a proper command then the baxter can be controled again.
Q3. Why I got "RobotEnable: Failed to retrieve robot version from rosparam: rethink/software_version" and process abort?
A3. Ensure you can connect to the baxter and you type:
$ ./baxter.sh
And be ensure the current directory is /baxter_ws.