DCM stack integrating tools to control Pepper robot
- install dependencies
sudo apt-get install ros-indigo-pepper-robot ros-indigo-pepper-meshes ros-indigo-pepper-control ros-indigo-naoqi-dcm-driver
- then, install pepper_dcm_bringup or compile it from source
sudo apt-get install ros-indigo-pepper-dcm-bringup
- optionally, install pepper_moveit_config
sudo apt-get install ros-indigo-pepper-moveit-config
Trajectory control
To command your robot remotely with ROS control:
- start the DCM bringup proving your robot's IP (be aware that the package will stop Autonomous Life on your robot)
roslaunch pepper_dcm_bringup pepper_bringup.launch robot_ip:=<ROBOT_IP>
- start Naoqi Driver (to get the odom frame) proving your robot's IP
roslaunch naoqi_driver naoqi_driver.launch nao_ip:=<ROBOT_IP>
Control via MoveIt
- start Moveit! to control the robot via GUI
roslaunch pepper_moveit_config moveit_planner.launch
- check "Allow approximate IK solutions"
- control a planning_group via an interactive marker
Control via Actionlib
- you can send a trajectory to the desired controller (actionlib)
rosrun actionlib axclient.py <name of the goal topic of the action server>
example:
rosrun actionlib axclient.py /pepper_dcm/LeftArm_controller/follow_joint_trajectory/goal
To choose the controllers you want to load, modify pepper_control/launch/pepper_control_trajectory.launch. The list of implemented controllers, you can find in pepper_control/config/pepper_trajectory_control.yaml. You can start and stop the ros-controllers using the rqt plugin ControllerManager.
Position control
To command joints positions via ROS:
- start the DCM bringup proving your robot's IP (be aware that the package will stop Autonomous Life on your robot):
roslaunch pepper_dcm_bringup pepper_dcm_bringup_position.launch robot_ip:=<ROBOT_IP>
- send a position to the desired controller, for example
rostopic pub /pepper_dcm/HeadYaw_position_controller/command std_msgs/Float64 "data: 1"