Repository for a specific pose request to a generic robot.
The package allows to perform a specific pose using this Pose_Task file in yaml format. A ROS Service Server it's responsable to read the file and send the information to the ROS client that will generate a trajectory in the joint space to the robot using XBotCore.
Clone and build the pose project: there are several options to do it, but probably the easiest is using the catkin build tool from ROS.
mkdir -p ~/src/catkin_pose_ws/src
cd ~/src/catkin_pose_ws/src
catkin_init_workspace
git clone https://github.com/ADVRHumanoids/Pose-Task.git
cd ..
catkin_make
The selected robot was Centauro, whose basic config file can be set in this way:
set_xbot_config /opt/xbot/build/install/share/xbot/configs/CentauroConfig/centauro_basic.yaml
Note: It's possible to choose any robot, it's important to select the right joints with the specific movements writing them into the pose yaml file:
Pose Name:
Movements: [Move_1, Move_2,...]
Move_1:
JointNameMov: ["joint_name1","joint_name2",...]
PositionNameMov: [pos_joint_name1,pos_joint_name2,...]
TimeMov: [Time_to_Exe the Trajectory]
As first thing you should run roscore:
roscore
Later on you can start the XBotCore in "dummy" mode in another terminal (more information here) in this way:
XBotCore -D
In another terminal you can use the RViZ tool to visualize the kinematic simulation of the robot by running:
rviz
and adding a "RobotModel" with the following Robot Description: xbotcore/robot_description Remind to select "world" for "Fixed Frame" in "Global Options".
This should be the visualization:
Start XBot Communication Plugin:
rosservice call /xbotcore/XBotCommunicationPlugin_switch 1
In another two terminals launch:
. ~/src/catkin_pose_ws/devel/setup.bash
Terminal 1:
rosrun pose pose_targetSrv
Terminal 2:
rosrun pose pose_talker Centauro_Hello_Pose
This should be the visualization: