Openai_ros WAM arm learning example not working in ROS Neotic

Hi,

I am trying to run the start_training_v2.launch but getting the error ImportError: cannot import name 'JointLimits' from 'moveit_msgs.msg' (unknown location). I have installed MoveIt using the command sudo apt install ros-noetic-moveit and installation process finished cleanly. I am using Ubuntu 20.04. Can you please help me out resolving the problem? Thank you in advance. The complete error message is given below for your reference,

roslaunch iriwam_openai_ros_example start_training_v2.launch 
... logging to /home/i2r/.ros/log/59c99942-811f-11eb-9c9d-fdbc231597b5/roslaunch-i2r-ai-21285.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://i2r-ai:46149/

SUMMARY
========

PARAMETERS
 * /iriwam/alpha: 0.1
 * /iriwam/epsilon: 0.9
 * /iriwam/epsilon_discount: 0.999
 * /iriwam/gamma: 0.7
 * /iriwam/nepisodes: 500
 * /iriwam/nsteps: 10000
 * /iriwam/ros_ws_abspath: /home/user/simula...
 * /iriwam/task_and_robot_environment_name: IriWamTcpToBowl-v0
 * /rosdistro: noetic
 * /rosversion: 1.15.9

NODES
  /
    iriwam_tcp_to_bowl_qlearn (iriwam_openai_ros_example/start_qlearning_v2.py)

auto-starting new master
process[master]: started with pid [21293]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 59c99942-811f-11eb-9c9d-fdbc231597b5
process[rosout-1]: started with pid [21303]
started core service [/rosout]
process[iriwam_tcp_to_bowl_qlearn-2]: started with pid [21310]
[DEBUG] [1615325722.559839]: init_node, name[/iriwam_tcp_to_bowl_qlearn], pid[21310]
[DEBUG] [1615325722.560875]: binding to 0.0.0.0 0
[DEBUG] [1615325722.561654]: bound to 0.0.0.0 44647
[DEBUG] [1615325722.562550]: ... service URL is rosrpc://i2r-ai:44647
[DEBUG] [1615325722.563308]: [/iriwam_tcp_to_bowl_qlearn/get_loggers]: new Service instance
[DEBUG] [1615325722.564623]: ... service URL is rosrpc://i2r-ai:44647
[DEBUG] [1615325722.565335]: [/iriwam_tcp_to_bowl_qlearn/set_logger_level]: new Service instance
[WARN] [1615325722.567105]: Env: IriWamTcpToBowl-v0 will be imported
Traceback (most recent call last):
  File "/home/i2r/simulation_ws/src/openai_examples_projects/iriwam_openai_ros_example/scripts/start_qlearning_v2.py", line 22, in <module>
    env = StartOpenAI_ROS_Environment(
  File "/home/i2r/simulation_ws/src/openai_ros/openai_ros/src/openai_ros/openai_ros_common.py", line 26, in StartOpenAI_ROS_Environment
    result = RegisterOpenAI_Ros_Env(task_env=task_and_robot_environment_name,
  File "/home/i2r/simulation_ws/src/openai_ros/openai_ros/src/openai_ros/task_envs/task_envs_list.py", line 119, in RegisterOpenAI_Ros_Env
    from openai_ros.task_envs.iriwam import tcp_to_bowl
  File "/home/i2r/simulation_ws/src/openai_ros/openai_ros/src/openai_ros/task_envs/iriwam/tcp_to_bowl.py", line 4, in <module>
    from openai_ros.robot_envs import iriwam_env
  File "/home/i2r/simulation_ws/src/openai_ros/openai_ros/src/openai_ros/robot_envs/iriwam_env.py", line 14, in <module>
    from moveit_msgs.msg import JointLimits
ImportError: cannot import name 'JointLimits' from 'moveit_msgs.msg' (unknown location)
[iriwam_tcp_to_bowl_qlearn-2] process has died [pid 21310, exit code 1, cmd /home/i2r/simulation_ws/src/openai_examples_projects/iriwam_openai_ros_example/scripts/start_qlearning_v2.py __name:=iriwam_tcp_to_bowl_qlearn __log:=/home/i2r/.ros/log/59c99942-811f-11eb-9c9d-fdbc231597b5/iriwam_tcp_to_bowl_qlearn-2.log].
log file: /home/i2r/.ros/log/59c99942-811f-11eb-9c9d-fdbc231597b5/iriwam_tcp_to_bowl_qlearn-2*.log

Hi,

I supose yu are exeuting it locally. For that at least ( it could be more, I dont know your currentsetup how it is ) you should install this:

sudo apt update
sudo apt install -y ros-noetic-moveit
sudo apt install -y ros-noetic-moveit-*
sudo apt install -y ros-noetic-moveit-core
sudo apt install -y ros-noetic-moveit-kinematics
sudo apt install -y ros-noetic-moveit-plugins
sudo apt install -y ros-noetic-dynamixel-sdk
sudo apt install -y ros-noetic-moveit-ros-planning-interface
sudo apt install -y ros-noetic-tf2-tools
sudo apt install -y python3-osrf-pycommon

cd ~/catkin_ws/src
git clone --depth 1 https://bitbucket.org/theconstructcore/hokuyo_model.git
ls hokuyo_model
git clone --depth 1 -b noetic https://bitbucket.org/theconstructcore/iri_wam.git
source /opt/ros/noetic/setup.bash
cd ~/catkin_ws
sudo rm -rf build devel
catkin_make
source devel/setup.bash

You can aslo use a ROSject, which will have most of the dependencies already solved, and you will only have to download the iriwam simulation git and not much more.

Is up to you ;).

Also the iriwam openai wasn’t tested in Noetic so itcould have bugs for sure.
To get a better idea , have a look at the fetch openai that it IS used in OpenAI ROS course using noetic ;).