Baxter DMP RL Demo en - Dennis-BIRL-GDUT/baxter_dmp_rl GitHub Wiki
EN | 中文
Baxter DMP RL Demo is a package that makes the baxter arm genarate DMP trajectory and uses reinforcement learning to learn which trajectory is the optimal one .
So far this package has been tested on ROS indigo powered by Ubuntu 14.04 only. If you got any problem with the code, please contact us.
- ./baxter_DMP_RL/scripts/...
- ./baxter_DMP_RL/src/...
- ./robotiq/robotiq_force_torque_sensor/nodes/rq_sensor.cpp
- geometry_msgs.msg.WrenchStamped massage
-
In this demo I publish 5 topics which are :
action1_reward, type is std_msgs.Float32
action2_reward, type is std_msgs.Float32
action3_reward, type is std_msgs.Float32
action4_reward, type is std_msgs.Float32
action5_reward, type is std_msgs.Float32This topic which used to plot reward curve.
Beofore you run this demo, please read the README file carefully, and then make sure your computer have been connected to the baxter. And run:
$ rosrun dmp dmp_joint_trajectory_action_server.py
$ rosrun dmp Baxter_DMP_RL_joint_trajectory_learn_client.py
To read more detail or find the solutions to some problems, please refer to FAQ part below.
When you run the dmp_joint_trajectory_action_server.py python node above, it creat a trajectory server.
If you want to read more details please move this website: Joint Trajectory Playback Example.
When you run Baxter_DMP_RL_joint_trajectory_learn_client.py python node, it will creat a DMP instance and reinforcement learning agent, DMP instance will running a DMP trajectory point, but the trajectory is randomly generated by reinforcement learning agent, and the RL agent will give a reward to each trajectory and learn an optimal trajectory.
If you want to learn more about the ROS DMP package please go to this website ROS DMP package, move to this RL off-policy wiki to learn more about RL Q-learning.
Q1 Can I generating the DMP trajectory by myself ?
A1 Of course you can!
- Before you generate a DMP trajectory, you should learn this example:
Joint Trajectory Playback Example.
This example will tell you how to generate a joint trajectory, which is input data of DMP.
- And then run:
rosrun dmp dmp_server
rosrun dmp baxter_r_arm_dmp.py
[Tip]: please make sure your joint trajectory are input to the dmp baxter_r_arm_dmp.py file.
Q2. I don't have the Robotiq force torque sensor, What shoule I do?
A2. If you don't have Robotiq force torque sensor, which means you can't run this demo on the real Baxter robot, but I still have a solution, you can run this node in your gazebo simulator:
- I will update this solution next time.
If you hit the Emergency button, please remember to kill the dmp_server node first, and then release the Emergency button. Otherwise, the robot arm will move super fast.