/learning_moveit

This ros metapackage contains some packages that I wrote it myself according to the tutorials provided by the MoveIt! official website. The MoveIt! Tutorials website is: http://docs.ros.org/kinetic/api/moveit_tutorials/html/index.html.

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

learning_moveit

1. Introduction

This ros metapackage contains some packages that I wrote it myself according to the tutorials provided by the MoveIt! official website. The MoveIt! Tutorials website is: http://docs.ros.org/kinetic/api/moveit_tutorials/html/index.html. Before you begin to learn, you must first glance at the following Notes!

1.1 Basic Components

  • panda_bringup: The panda_bringup package provides roslaunch for starting panda_arm_hand motion planning and simulation test.
  • panda_description: The panda_description package provides a complete 3D model of the panda_arm_hand for simulation and visualization.

1.2 Motion Simulation

  • panda_gazebo: The panda_gazebo package can launch panda_arm_hand in gazebo simulator.
  • panda_gazebo_controller_config: The panda_gazebo_controller_config package provides controller configuration files for simulating panda_arm_hand in gazebo.

1.3 Motion Control

  • panda_teleop: The panda_teleop package can control panda_arm_hand by using keyboard.

1.4 Motion Planning

  • panda_moveit_config: The panda_moveit_config package provides configuration and launch files for using the panda_arm_hand with the MoveIt! Motion Planning Framework.
  • panda_moveit_control: The panda_moveit_control package provides motion planning and control for panda_arm_hand by using kinematics.

2. Installation

  • Installing ROS packages.
$> roscd
$> cd ../src
$> git clone https://github.com/myyerrol/learning_moveit.git
$> cd ..
$> rosdep install -y --from-paths src --ignore-src --rosdistro kinetic
$> cd src/learning_moveit
$> ./setup.sh
  • Building ROS packages.
$> roscd
$> cd ..
$> catkin_make

3. Usage

3.1 Motion control

$> roslaunch panda_bringup panda_bringup_gazebo.launch
$> rosrun panda_teleop panda_teleop_arm_hand_keyboard

panda_control_rviz panda_control_gazebo

3.2 Motion Planning

$> roslaunch panda_moveit_config demo.launch

panda_planning_demo


$> roslaunch panda_bringup panda_bringup_gazebo_and_moveit.launch

panda_planning_rviz panda_planning_gazebo

4. Notes

4.1 Controller Warning

When you run panda_bringup_gazebo.launch or panda_bringup_gazebo_and_moveit.launch, you will notice that the terminal will output following some warning messages:

[ WARN] [1534040926.378110292, 0.132000000]: The default_robot_hw_sim plugin is using the Joint::SetPosition method without preserving the link velocity.
[ WARN] [1534040926.378135775, 0.132000000]: As a result, gravity will not be simulated correctly for your model.
[ WARN] [1534040926.378288871, 0.132000000]: Please set gazebo_pid parameters, switch to the VelocityJointInterface or EffortJointInterface, or upgrade to Gazebo 9.
[ WARN] [1534040926.378348094, 0.132000000]: For details, see https://github.com/ros-simulation/gazebo_ros_pkgs/issues/612

As mentioned above, the PositionJointInterface can't simulate gravity in Gazebo. It must use the VelocityJointInterface or EffortJointInterface. But because setting the PID parameters of the panda manipulator is very complicated and time-consuming, I chose the PositionJointInterface to reduce the workload. The result is that when the velocity and amplitude of the panda manipulator exceeds a certain value, the entire panda manipulator will fly in Gazebo! I hope that someone will be able to solve this problem thoroughly.

4.2 MoveIt Sensor Error

When you run panda_moveit_config/launch/demo.launch or other moveit launch files, you will notice that the terminal will output following some error messages:

[ERROR] [1534042979.682769522]: XmlRpc Exception: type error
[ERROR] [1534042979.682802441]: Failed to configure updater of type PointCloudUpdater

I haven't found a solution to this problem for a long time on Google, and I'm sure there's no problem with the panda_moveit_config/config/sensors_xtion.yaml file. If someone has encountered similar problem, I hope he can provide a solution, thanks.

4.3 Gazebo Pick Error

Whenever I remotely control panda manipulator to grasp ojbects on the cabinet in Gazebo, objects will always be flown at the moment the end effector is clamped. About this problem, I analyzed the possible reason is that the parameters of the Gazebo simulation are not set correctly. Of course, there may be other reasons. I wrote it down first, and if I have a chance and enough time latter I'll fix it.