├── img
├── rviz.png
├── cr750.jpg
├── rqt_1.png
├── rqt_2.png
├── rqt_3.png
├── rtt_1.png
├── rtt_2.png
├── rtt_3.png
├── rtt_4.png
├── rtt_5.png
├── rtt_6.png
├── rtt_7.png
├── moveit_rv4fl.png
└── moveit_rv7fl.png
├── rv4fl_moveit_config
├── launch
│ ├── rv4fl_moveit_sensor_manager.launch.xml
│ ├── rv4fl_moveit_controller_manager.launch.xml
│ ├── planning_pipeline.launch.xml
│ ├── fake_moveit_controller_manager.launch.xml
│ ├── chomp_planning_pipeline.launch.xml
│ ├── warehouse.launch
│ ├── setup_assistant.launch
│ ├── joystick_control.launch
│ ├── moveit_rviz.launch
│ ├── ros_controllers.launch
│ ├── warehouse_settings.launch.xml
│ ├── default_warehouse_db.launch
│ ├── sensor_manager.launch.xml
│ ├── run_benchmark_ompl.launch
│ ├── ompl_planning_pipeline.launch.xml
│ ├── planning_context.launch
│ ├── trajectory_execution.launch.xml
│ ├── demo.launch
│ ├── move_group.launch
│ └── moveit.rviz
├── config
│ ├── sensors_3d.yaml
│ ├── fake_controllers.yaml
│ ├── kinematics.yaml
│ ├── chomp_planning.yaml
│ ├── ros_controllers.yaml
│ ├── joint_limits.yaml
│ ├── rv4fl.srdf
│ └── ompl_planning.yaml
├── CMakeLists.txt
├── .setup_assistant
├── CHANGELOG.rst
└── package.xml
├── rv7fl_moveit_config
├── launch
│ ├── rv7fl_moveit_sensor_manager.launch.xml
│ ├── rv7fl_moveit_controller_manager.launch.xml
│ ├── planning_pipeline.launch.xml
│ ├── fake_moveit_controller_manager.launch.xml
│ ├── chomp_planning_pipeline.launch.xml
│ ├── warehouse.launch
│ ├── setup_assistant.launch
│ ├── joystick_control.launch
│ ├── sensor_manager.launch.xml
│ ├── moveit_rviz.launch
│ ├── ros_controllers.launch
│ ├── warehouse_settings.launch.xml
│ ├── default_warehouse_db.launch
│ ├── run_benchmark_ompl.launch
│ ├── ompl_planning_pipeline.launch.xml
│ ├── moveit_planning_execution.launch
│ ├── planning_context.launch
│ ├── trajectory_execution.launch.xml
│ ├── demo.launch
│ ├── move_group.launch
│ └── moveit.rviz
├── config
│ ├── sensors_3d.yaml
│ ├── fake_controllers.yaml
│ ├── kinematics.yaml
│ ├── rv7fl_controllers.yaml
│ ├── chomp_planning.yaml
│ ├── ros_controllers.yaml
│ ├── joint_limits.yaml
│ ├── rv7fl.srdf
│ └── ompl_planning.yaml
├── CMakeLists.txt
├── .setup_assistant
├── CHANGELOG.rst
└── package.xml
├── melfa_description
├── mesh
│ ├── rv4fl
│ │ ├── L0.rsdoc
│ │ ├── L0.stl
│ │ ├── L1.rsdoc
│ │ ├── L1.stl
│ │ ├── L2.rsdoc
│ │ ├── L2.stl
│ │ ├── L3.rsdoc
│ │ ├── L3.stl
│ │ ├── L4.rsdoc
│ │ ├── L4.stl
│ │ ├── L5.rsdoc
│ │ ├── L5.stl
│ │ ├── L6.rsdoc
│ │ ├── L6.stl
│ │ ├── test.launch
│ │ └── L6.stp
│ └── rv7fl
│ │ ├── L0.stl
│ │ ├── L1.stl
│ │ ├── L2.stl
│ │ ├── L3.stl
│ │ ├── L4.stl
│ │ ├── L5.stl
│ │ └── L6.stl
├── README.md
├── urdf
│ ├── rv4fl.urdf.xacro
│ ├── rv7fl.urdf.xacro
│ ├── rv4fl.xacro
│ ├── rv7fl.xacro
│ └── rv4fl_yoods.yrdf.xacro
├── CMakeLists.txt
├── launch
│ ├── rviz.launch
│ └── melfa_description.rviz
├── package.xml
└── CHANGELOG.rst
├── melfa_robot
├── CMakeLists.txt
├── CHANGELOG.rst
└── package.xml
├── melfa_driver
├── test
│ ├── joint_trajectory_controller.test
│ └── test_joint_trajectory_controller.py
├── package.xml
├── CMakeLists.txt
├── config
│ └── controller.yaml
├── launch
│ └── melfa_driver.launch
├── include
│ └── melfa_driver
│ │ ├── melfa_hardware_interface.h
│ │ └── strdef.h
├── CHANGELOG.rst
└── src
│ ├── melfa_driver_node.cpp
│ ├── melfa_hardware_interface.cpp
│ └── melfa_loopback_node.cpp
├── .gitignore
├── .travis.yml
├── README.md
└── LICENSE
/img/rviz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/img/rviz.png
--------------------------------------------------------------------------------
/img/cr750.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/img/cr750.jpg
--------------------------------------------------------------------------------
/img/rqt_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/img/rqt_1.png
--------------------------------------------------------------------------------
/img/rqt_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/img/rqt_2.png
--------------------------------------------------------------------------------
/img/rqt_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/img/rqt_3.png
--------------------------------------------------------------------------------
/img/rtt_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/img/rtt_1.png
--------------------------------------------------------------------------------
/img/rtt_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/img/rtt_2.png
--------------------------------------------------------------------------------
/img/rtt_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/img/rtt_3.png
--------------------------------------------------------------------------------
/img/rtt_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/img/rtt_4.png
--------------------------------------------------------------------------------
/img/rtt_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/img/rtt_5.png
--------------------------------------------------------------------------------
/img/rtt_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/img/rtt_6.png
--------------------------------------------------------------------------------
/img/rtt_7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/img/rtt_7.png
--------------------------------------------------------------------------------
/img/moveit_rv4fl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/img/moveit_rv4fl.png
--------------------------------------------------------------------------------
/img/moveit_rv7fl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/img/moveit_rv7fl.png
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/rv4fl_moveit_sensor_manager.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/rv7fl_moveit_sensor_manager.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/rv4fl_moveit_controller_manager.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/melfa_description/mesh/rv4fl/L0.rsdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv4fl/L0.rsdoc
--------------------------------------------------------------------------------
/melfa_description/mesh/rv4fl/L0.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv4fl/L0.stl
--------------------------------------------------------------------------------
/melfa_description/mesh/rv4fl/L1.rsdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv4fl/L1.rsdoc
--------------------------------------------------------------------------------
/melfa_description/mesh/rv4fl/L1.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv4fl/L1.stl
--------------------------------------------------------------------------------
/melfa_description/mesh/rv4fl/L2.rsdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv4fl/L2.rsdoc
--------------------------------------------------------------------------------
/melfa_description/mesh/rv4fl/L2.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv4fl/L2.stl
--------------------------------------------------------------------------------
/melfa_description/mesh/rv4fl/L3.rsdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv4fl/L3.rsdoc
--------------------------------------------------------------------------------
/melfa_description/mesh/rv4fl/L3.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv4fl/L3.stl
--------------------------------------------------------------------------------
/melfa_description/mesh/rv4fl/L4.rsdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv4fl/L4.rsdoc
--------------------------------------------------------------------------------
/melfa_description/mesh/rv4fl/L4.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv4fl/L4.stl
--------------------------------------------------------------------------------
/melfa_description/mesh/rv4fl/L5.rsdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv4fl/L5.rsdoc
--------------------------------------------------------------------------------
/melfa_description/mesh/rv4fl/L5.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv4fl/L5.stl
--------------------------------------------------------------------------------
/melfa_description/mesh/rv4fl/L6.rsdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv4fl/L6.rsdoc
--------------------------------------------------------------------------------
/melfa_description/mesh/rv4fl/L6.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv4fl/L6.stl
--------------------------------------------------------------------------------
/melfa_description/mesh/rv7fl/L0.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv7fl/L0.stl
--------------------------------------------------------------------------------
/melfa_description/mesh/rv7fl/L1.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv7fl/L1.stl
--------------------------------------------------------------------------------
/melfa_description/mesh/rv7fl/L2.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv7fl/L2.stl
--------------------------------------------------------------------------------
/melfa_description/mesh/rv7fl/L3.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv7fl/L3.stl
--------------------------------------------------------------------------------
/melfa_description/mesh/rv7fl/L4.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv7fl/L4.stl
--------------------------------------------------------------------------------
/melfa_description/mesh/rv7fl/L5.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv7fl/L5.stl
--------------------------------------------------------------------------------
/melfa_description/mesh/rv7fl/L6.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tork-a/melfa_robot/HEAD/melfa_description/mesh/rv7fl/L6.stl
--------------------------------------------------------------------------------
/melfa_robot/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 2.8.3)
2 | project(melfa_robot)
3 | find_package(catkin REQUIRED)
4 | catkin_metapackage()
5 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/config/sensors_3d.yaml:
--------------------------------------------------------------------------------
1 | # The name of this file shouldn't be changed, or else the Setup Assistant won't detect it
2 | sensors:
3 | - {}
--------------------------------------------------------------------------------
/rv7fl_moveit_config/config/sensors_3d.yaml:
--------------------------------------------------------------------------------
1 | # The name of this file shouldn't be changed, or else the Setup Assistant won't detect it
2 | sensors:
3 | - {}
--------------------------------------------------------------------------------
/rv7fl_moveit_config/config/fake_controllers.yaml:
--------------------------------------------------------------------------------
1 | controller_list:
2 | - name: fake_arm_controller
3 | joints:
4 | - joint1
5 | - joint2
6 | - joint3
7 | - joint4
8 | - joint5
9 | - joint6
--------------------------------------------------------------------------------
/rv4fl_moveit_config/config/fake_controllers.yaml:
--------------------------------------------------------------------------------
1 | controller_list:
2 | - name: fake_manipulator_controller
3 | joints:
4 | - joint1
5 | - joint2
6 | - joint3
7 | - joint4
8 | - joint5
9 | - joint6
--------------------------------------------------------------------------------
/rv7fl_moveit_config/config/kinematics.yaml:
--------------------------------------------------------------------------------
1 | arm:
2 | kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin
3 | kinematics_solver_search_resolution: 0.005
4 | kinematics_solver_timeout: 0.005
5 | kinematics_solver_attempts: 3
--------------------------------------------------------------------------------
/rv4fl_moveit_config/config/kinematics.yaml:
--------------------------------------------------------------------------------
1 | manipulator:
2 | kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin
3 | kinematics_solver_search_resolution: 0.005
4 | kinematics_solver_timeout: 0.005
5 | kinematics_solver_attempts: 3
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/rv7fl_moveit_controller_manager.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 2.8.3)
2 | project(rv4fl_moveit_config)
3 |
4 | find_package(catkin REQUIRED)
5 |
6 | catkin_package()
7 |
8 | install(DIRECTORY launch DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
9 | PATTERN "setup_assistant.launch" EXCLUDE)
10 | install(DIRECTORY config DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
11 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 2.8.3)
2 | project(rv7fl_moveit_config)
3 |
4 | find_package(catkin REQUIRED)
5 |
6 | catkin_package()
7 |
8 | install(DIRECTORY launch DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
9 | PATTERN "setup_assistant.launch" EXCLUDE)
10 | install(DIRECTORY config DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
11 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/config/rv7fl_controllers.yaml:
--------------------------------------------------------------------------------
1 | controller_manager_ns: controller_manager
2 | controller_list:
3 | - name: joint_trajectory_controller
4 | action_ns: follow_joint_trajectory
5 | type: FollowJointTrajectory
6 | default: true
7 | joints:
8 | - joint1
9 | - joint2
10 | - joint3
11 | - joint4
12 | - joint5
13 | - joint6
14 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/.setup_assistant:
--------------------------------------------------------------------------------
1 | moveit_setup_assistant_config:
2 | URDF:
3 | package: melfa_description
4 | relative_path: urdf/rv7fl.urdf.xacro
5 | SRDF:
6 | relative_path: config/rv7fl.srdf
7 | CONFIG:
8 | author_name: Tokyo Opensource Robotics Kyokai (TORK) Developer Team
9 | author_email: dev@opensource-robotics.tokyo.jp
10 | generated_timestamp: 1523416016
--------------------------------------------------------------------------------
/melfa_description/mesh/rv4fl/test.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/planning_pipeline.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/.setup_assistant:
--------------------------------------------------------------------------------
1 | moveit_setup_assistant_config:
2 | URDF:
3 | package: melfa_description
4 | relative_path: urdf/rv4fl.urdf.xacro
5 | xacro_args: "--inorder "
6 | SRDF:
7 | relative_path: config/rv4fl.srdf
8 | CONFIG:
9 | author_name: Tokyo Opensource Robotics Kyokai(TORK) Developer Team
10 | author_email: dev@opensource-robotics.tokyo.jp
11 | generated_timestamp: 1542689465
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/planning_pipeline.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/melfa_description/README.md:
--------------------------------------------------------------------------------
1 | # Introduction
2 |
3 | This package contains URDF and mesh files for MELFA industrial robot
4 | arms.
5 |
6 | These robots are Supported:
7 |
8 | - RV4FL
9 | - RV7FL
10 |
11 | # How to show the robot model
12 |
13 | Launch as:
14 |
15 | ```
16 | $ roslaunch melfa_description rviz.launch robot:=rv4fl
17 | ```
18 |
19 | or
20 |
21 | ```
22 | $ roslaunch melfa_description rviz.launch robot:=rv7fl
23 | ```
24 |
--------------------------------------------------------------------------------
/melfa_robot/CHANGELOG.rst:
--------------------------------------------------------------------------------
1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 | Changelog for package melfa_robot
3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 |
5 | 0.0.2 (2018-12-16)
6 | ------------------
7 |
8 | 0.0.4 (2019-02-26)
9 | ------------------
10 |
11 | 0.0.1 (2018-12-14)
12 | ------------------
13 | * Switch to industrial-ci(`#16 `_)
14 | * Add melfa_robot metapackage
15 | * Contributors: Ryosuke Tajima
16 |
--------------------------------------------------------------------------------
/melfa_driver/test/joint_trajectory_controller.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/fake_moveit_controller_manager.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/fake_moveit_controller_manager.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/CHANGELOG.rst:
--------------------------------------------------------------------------------
1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 | Changelog for package rv4fl_moveit_config
3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 |
5 | 0.0.2 (2018-12-16)
6 | ------------------
7 |
8 | 0.0.4 (2019-02-26)
9 | ------------------
10 |
11 | 0.0.1 (2018-12-14)
12 | ------------------
13 | * rename melfa_ros to melfa_robot
14 | * Add rv4fl_moveit_config package(`#12 `_)
15 | * Contributors: Ryosuke Tajima
16 |
--------------------------------------------------------------------------------
/melfa_description/urdf/rv4fl.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/melfa_description/urdf/rv7fl.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/config/chomp_planning.yaml:
--------------------------------------------------------------------------------
1 | planning_time_limit: 10.0
2 | max_iterations: 200
3 | max_iterations_after_collision_free: 5
4 | smoothness_cost_weight: 0.1
5 | obstacle_cost_weight: 1.0
6 | learning_rate: 0.01
7 | smoothness_cost_velocity: 0.0
8 | smoothness_cost_acceleration: 1.0
9 | smoothness_cost_jerk: 0.0
10 | ridge_factor: 0.01
11 | use_pseudo_inverse: false
12 | pseudo_inverse_ridge_factor: 1e-4
13 | joint_update_limit: 0.1
14 | collision_clearence: 0.2
15 | collision_threshold: 0.07
16 | use_stochastic_descent: true
17 | enable_failure_recovery: true
18 | max_recovery_attempts: 5
--------------------------------------------------------------------------------
/rv7fl_moveit_config/config/chomp_planning.yaml:
--------------------------------------------------------------------------------
1 | planning_time_limit: 10.0
2 | max_iterations: 200
3 | max_iterations_after_collision_free: 5
4 | smoothness_cost_weight: 0.1
5 | obstacle_cost_weight: 1.0
6 | learning_rate: 0.01
7 | smoothness_cost_velocity: 0.0
8 | smoothness_cost_acceleration: 1.0
9 | smoothness_cost_jerk: 0.0
10 | ridge_factor: 0.01
11 | use_pseudo_inverse: false
12 | pseudo_inverse_ridge_factor: 1e-4
13 | joint_update_limit: 0.1
14 | collision_clearence: 0.2
15 | collision_threshold: 0.07
16 | use_stochastic_descent: true
17 | enable_failure_recovery: true
18 | max_recovery_attempts: 5
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/chomp_planning_pipeline.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/chomp_planning_pipeline.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/warehouse.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/warehouse.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/CHANGELOG.rst:
--------------------------------------------------------------------------------
1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 | Changelog for package rv7fl_moveit_config
3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 |
5 | 0.0.2 (2018-12-16)
6 | ------------------
7 |
8 | 0.0.4 (2019-02-26)
9 | ------------------
10 |
11 | 0.0.1 (2018-12-14)
12 | ------------------
13 | * Add additional joints(`#13 `_)
14 | - Update rv7fl_moveit_config for urdf update
15 | * Add moveit configuration files(`#2 `_)
16 | - Confirmed to work with RT-ToolBox
17 | * Contributors: Ryosuke Tajima
18 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/setup_assistant.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/setup_assistant.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | build/
2 | bin/
3 | lib/
4 | msg_gen/
5 | srv_gen/
6 | msg/*Action.msg
7 | msg/*ActionFeedback.msg
8 | msg/*ActionGoal.msg
9 | msg/*ActionResult.msg
10 | msg/*Feedback.msg
11 | msg/*Goal.msg
12 | msg/*Result.msg
13 | msg/_*.py
14 |
15 | # Generated by dynamic reconfigure
16 | *.cfgc
17 | /cfg/cpp/
18 | /cfg/*.py
19 |
20 | # Ignore generated docs
21 | *.dox
22 | *.wikidoc
23 |
24 | # eclipse stuff
25 | .project
26 | .cproject
27 |
28 | # qcreator stuff
29 | CMakeLists.txt.user
30 |
31 | srv/_*.py
32 | *.pcd
33 | *.pyc
34 | qtcreator-*
35 | *.user
36 |
37 | /planning/cfg
38 | /planning/docs
39 | /planning/src
40 |
41 | *~
42 |
43 | # Emacs
44 | .#*
45 |
46 | # Catkin custom files
47 | CATKIN_IGNORE
48 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/joystick_control.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/joystick_control.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/sensor_manager.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/moveit_rviz.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/moveit_rviz.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/ros_controllers.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/melfa_description/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 2.8.3)
2 | project(melfa_description)
3 |
4 | find_package(catkin REQUIRED COMPONENTS
5 | rviz
6 | xacro
7 | )
8 |
9 | catkin_package()
10 |
11 | #############
12 | ## Install ##
13 | #############
14 |
15 | ## Mark executables and/or libraries for installation
16 | install(DIRECTORY launch mesh urdf
17 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
18 |
19 | #############
20 | ## Testing ##
21 | #############
22 |
23 | if(CATKIN_ENABLE_TESTING)
24 | find_package(roslaunch REQUIRED)
25 | file(GLOB LAUNCH_FILES launch/*.launch)
26 | foreach(LAUNCH_FILE ${LAUNCH_FILES})
27 | message(status "Testing ${LAUNCH_FILE}")
28 | roslaunch_add_file_check(${LAUNCH_FILE})
29 | endforeach()
30 | endif()
31 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/ros_controllers.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/warehouse_settings.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/warehouse_settings.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/default_warehouse_db.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/default_warehouse_db.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/melfa_description/launch/rviz.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
7 |
8 |
9 |
12 |
13 |
14 |
15 |
16 |
18 |
19 |
20 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/sensor_manager.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/melfa_description/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | melfa_description
4 | 0.0.4
5 | The melfa_description package
6 |
7 | Ryosuke Tajima
8 | Tokyo Opensource Robotics Kyokai(TORK) Developer Team
9 | Apache License 2.0
10 | CC-BY-SA
11 |
12 | http://wiki.ros.org/melfa_description
13 |
14 | catkin
15 | rviz
16 | xacro
17 | joint_state_publisher
18 | robot_state_publisher
19 | roslaunch
20 | rostest
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/melfa_robot/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | melfa_robot
4 | 0.0.4
5 | The melfa_robot meta package
6 |
7 | Tokyo Opensource Robotics Kyokai (TORK) Developer Team
8 |
9 | Apache License 2.0
10 | CC-BY-SA
11 |
12 | http://wiki.ros.org/melfa_robot
13 | https://github.com/tork-a/melfa_robot
14 | https://github.com/tork-a/melfa_robot/issues
15 |
16 | catkin
17 | melfa_description
18 | melfa_driver
19 | rv4fl_moveit_config
20 | rv7fl_moveit_config
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/run_benchmark_ompl.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/run_benchmark_ompl.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/ompl_planning_pipeline.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
8 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/ompl_planning_pipeline.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
8 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: required
2 | dist: trusty
3 | language: generic
4 | compiler:
5 | - gcc
6 | notifications:
7 | email:
8 | on_success: always
9 | on_failure: always
10 | env:
11 | matrix:
12 | - USE_DEB=true ROS_DISTRO="kinetic" ROS_REPOSITORY_PATH=http://packages.ros.org/ros/ubuntu
13 | - USE_DEB=true ROS_DISTRO="kinetic" ROS_REPOSITORY_PATH=http://packages.ros.org/ros-shadow-fixed/ubuntu
14 | - USE_DEB=true ROS_DISTRO="melodic" ROS_REPOSITORY_PATH=http://packages.ros.org/ros/ubuntu
15 | - USE_DEB=true ROS_DISTRO="melodic" ROS_REPOSITORY_PATH=http://packages.ros.org/ros-shadow-fixed/ubuntu
16 | matrix:
17 | allow_failures:
18 | - env: USE_DEB=true ROS_DISTRO="kinetic" ROS_REPOSITORY_PATH=http://packages.ros.org/ros-shadow-fixed/ubuntu
19 | - env: USE_DEB=true ROS_DISTRO="melodic" ROS_REPOSITORY_PATH=http://packages.ros.org/ros-shadow-fixed/ubuntu
20 | install:
21 | - git clone https://github.com/ros-industrial/industrial_ci.git .ci_config
22 | script:
23 | - source .ci_config/travis.sh
24 | # - source ./travis.sh # Enable this when you have a package-local script
25 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/moveit_planning_execution.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/config/ros_controllers.yaml:
--------------------------------------------------------------------------------
1 | rv7fl:
2 | # MoveIt-specific simulation settings
3 | moveit_sim_hw_interface:
4 | joint_model_group: controllers_initial_group_
5 | joint_model_group_pose: controllers_initial_pose_
6 | # Settings for ros_control control loop
7 | generic_hw_control_loop:
8 | loop_hz: 300
9 | cycle_time_error_threshold: 0.01
10 | # Settings for ros_control hardware interface
11 | hardware_interface:
12 | joints:
13 | - joint1
14 | - joint2
15 | - joint3
16 | - joint4
17 | - joint5
18 | - joint6
19 | sim_control_mode: 1 # 0: position, 1: velocity
20 | # Publish all joint states
21 | # Creates the /joint_states topic necessary in ROS
22 | joint_state_controller:
23 | type: joint_state_controller/JointStateController
24 | publish_rate: 50
25 | controller_list:
26 | - name: arm_controller
27 | action_ns: follow_joint_trajectory
28 | default: True
29 | type: FollowJointTrajectory
30 | joints:
31 | - joint1
32 | - joint2
33 | - joint3
34 | - joint4
35 | - joint5
36 | - joint6
--------------------------------------------------------------------------------
/rv4fl_moveit_config/config/ros_controllers.yaml:
--------------------------------------------------------------------------------
1 | rv4fl:
2 | # MoveIt-specific simulation settings
3 | moveit_sim_hw_interface:
4 | joint_model_group: controllers_initial_group_
5 | joint_model_group_pose: controllers_initial_pose_
6 | # Settings for ros_control control loop
7 | generic_hw_control_loop:
8 | loop_hz: 300
9 | cycle_time_error_threshold: 0.01
10 | # Settings for ros_control hardware interface
11 | hardware_interface:
12 | joints:
13 | - joint1
14 | - joint2
15 | - joint3
16 | - joint4
17 | - joint5
18 | - joint6
19 | sim_control_mode: 1 # 0: position, 1: velocity
20 | # Publish all joint states
21 | # Creates the /joint_states topic necessary in ROS
22 | joint_state_controller:
23 | type: joint_state_controller/JointStateController
24 | publish_rate: 50
25 | controller_list:
26 | - name: manipulator_controller
27 | action_ns: follow_joint_trajectory
28 | default: True
29 | type: FollowJointTrajectory
30 | joints:
31 | - joint1
32 | - joint2
33 | - joint3
34 | - joint4
35 | - joint5
36 | - joint6
--------------------------------------------------------------------------------
/rv4fl_moveit_config/config/joint_limits.yaml:
--------------------------------------------------------------------------------
1 | # joint_limits.yaml allows the dynamics properties specified in the URDF to be overwritten or augmented as needed
2 | # Specific joint properties can be changed with the keys [max_position, min_position, max_velocity, max_acceleration]
3 | # Joint limits can be turned off with [has_velocity_limits, has_acceleration_limits]
4 | joint_limits:
5 | joint1:
6 | has_velocity_limits: true
7 | max_velocity: 7.33
8 | has_acceleration_limits: false
9 | max_acceleration: 0
10 | joint2:
11 | has_velocity_limits: true
12 | max_velocity: 5.864
13 | has_acceleration_limits: false
14 | max_acceleration: 0
15 | joint3:
16 | has_velocity_limits: true
17 | max_velocity: 4.363
18 | has_acceleration_limits: false
19 | max_acceleration: 0
20 | joint4:
21 | has_velocity_limits: true
22 | max_velocity: 9.425000000000001
23 | has_acceleration_limits: false
24 | max_acceleration: 0
25 | joint5:
26 | has_velocity_limits: true
27 | max_velocity: 10.875
28 | has_acceleration_limits: false
29 | max_acceleration: 0
30 | joint6:
31 | has_velocity_limits: true
32 | max_velocity: 12.566
33 | has_acceleration_limits: false
34 | max_acceleration: 0
--------------------------------------------------------------------------------
/rv7fl_moveit_config/config/joint_limits.yaml:
--------------------------------------------------------------------------------
1 | # joint_limits.yaml allows the dynamics properties specified in the URDF to be overwritten or augmented as needed
2 | # Specific joint properties can be changed with the keys [max_position, min_position, max_velocity, max_acceleration]
3 | # Joint limits can be turned off with [has_velocity_limits, has_acceleration_limits]
4 | joint_limits:
5 | joint1:
6 | has_velocity_limits: true
7 | max_velocity: 5.02654824574
8 | has_acceleration_limits: false
9 | max_acceleration: 0
10 | joint2:
11 | has_velocity_limits: true
12 | max_velocity: 5.6025068989
13 | has_acceleration_limits: false
14 | max_acceleration: 0
15 | joint3:
16 | has_velocity_limits: true
17 | max_velocity: 6.28318530718
18 | has_acceleration_limits: false
19 | max_acceleration: 0
20 | joint4:
21 | has_velocity_limits: true
22 | max_velocity: 5.88175957922
23 | has_acceleration_limits: false
24 | max_acceleration: 0
25 | joint5:
26 | has_velocity_limits: true
27 | max_velocity: 7.85398163397
28 | has_acceleration_limits: false
29 | max_acceleration: 0
30 | joint6:
31 | has_velocity_limits: true
32 | max_velocity: 12.5663706144
33 | has_acceleration_limits: false
34 | max_acceleration: 0
--------------------------------------------------------------------------------
/melfa_driver/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | melfa_driver
4 | 0.0.4
5 | The melfa_driver package
6 | Ryosuke Tajima
7 | Tokyo Opensource Robotics Kyokai (TORK) Developer Team
8 |
9 | Apache License 2.0
10 |
11 | http://wiki.ros.org/melfa_driver
12 | https://github.com/tork-a/melfa_robot
13 | https://github.com/tork-a/melfa_robot/issues
14 |
15 | catkin
16 | controller_manager
17 | diagnostic_updater
18 | hardware_interface
19 | roscpp
20 | joint_state_controller
21 | joint_trajectory_controller
22 | position_controllers
23 | robot_state_publisher
24 | roslaunch
25 | roslint
26 | rostest
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/planning_context.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/planning_context.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/trajectory_execution.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/trajectory_execution.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | rv7fl_moveit_config
4 | 0.0.4
5 |
6 | An automatically generated package with all the configuration and launch files for using the rv7fl with the MoveIt! Motion Planning Framework
7 |
8 | Tokyo Opensource Robotics Kyokai (TORK) Developer Team
9 | Tokyo Opensource Robotics Kyokai (TORK) Developer Team
10 |
11 | BSD
12 |
13 | http://moveit.ros.org/
14 | https://github.com/ros-planning/moveit/issues
15 | https://github.com/ros-planning/moveit
16 |
17 | catkin
18 |
19 | moveit_ros_move_group
20 | moveit_fake_controller_manager
21 | moveit_kinematics
22 | moveit_planners_ompl
23 | moveit_ros_visualization
24 | joint_state_publisher
25 | robot_state_publisher
26 | xacro
27 |
28 |
29 | melfa_description
30 | melfa_description
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | rv4fl_moveit_config
4 | 0.0.4
5 |
6 | An automatically generated package with all the configuration and launch files for using the rv4fl with the MoveIt! Motion Planning Framework
7 |
8 | Tokyo Opensource Robotics Kyokai(TORK) Developer Team
9 | Tokyo Opensource Robotics Kyokai(TORK) Developer Team
10 |
11 | BSD
12 |
13 | http://moveit.ros.org/
14 | https://github.com/ros-planning/moveit/issues
15 | https://github.com/ros-planning/moveit
16 |
17 | catkin
18 |
19 | moveit_ros_move_group
20 | moveit_fake_controller_manager
21 | moveit_kinematics
22 | moveit_planners_ompl
23 | moveit_ros_visualization
24 | moveit_setup_assistant
25 | joint_state_publisher
26 | robot_state_publisher
27 | xacro
28 |
29 |
30 | melfa_description
31 | melfa_description
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/melfa_driver/test/test_joint_trajectory_controller.py:
--------------------------------------------------------------------------------
1 | #! /usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 | import math
4 | import sys
5 | import actionlib
6 | from control_msgs.msg import (
7 | FollowJointTrajectoryAction,
8 | FollowJointTrajectoryActionGoal)
9 | import rospy
10 | import rostest
11 | import rosnode
12 | from sensor_msgs.msg import JointState
13 | from trajectory_msgs.msg import JointTrajectory
14 | import time
15 | import unittest
16 |
17 |
18 | class TestJointTrajectoryController(unittest.TestCase):
19 | @classmethod
20 | def setUpClass(cls):
21 | rospy.init_node('test_joint_trajectory_controller_node')
22 |
23 | def setUp(self):
24 | self.joint_states_list = []
25 |
26 | rospy.Subscriber('joint_states',
27 | JointState, self.cb_joint_states, queue_size=10)
28 |
29 | self.pub = rospy.Publisher(
30 | 'joint_trajectory_controller/command',
31 | JointTrajectory,
32 | queue_size=10)
33 |
34 | self.client = actionlib.SimpleActionClient(
35 | 'joint_trajectory_controller/follow_joint_trajectory',
36 | FollowJointTrajectoryAction)
37 | self.client.wait_for_server()
38 |
39 | def cb_joint_states(self, msg):
40 | self.joint_states_list.append(msg)
41 |
42 | def test_joint_states(self):
43 | # try for 30 s
44 | for i in range(30):
45 | if not self.joint_states_list:
46 | time.sleep(1.0)
47 | self.assertTrue(self.joint_states_list)
48 |
49 | if __name__ == '__main__':
50 | rostest.rosrun('melfa_driver',
51 | 'test_joint_trajectory_controller',
52 | TestJointTrajectoryController)
53 |
--------------------------------------------------------------------------------
/melfa_description/CHANGELOG.rst:
--------------------------------------------------------------------------------
1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 | Changelog for package melfa_description
3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 |
5 | 0.0.2 (2018-12-16)
6 | ------------------
7 | * Add LICENSE and notification on source code(`#18 `_ )
8 | * Contributors: Ryosuke Tajima
9 |
10 | 0.0.4 (2019-02-26)
11 | ------------------
12 |
13 | 0.0.1 (2018-12-14)
14 | ------------------
15 | * Remove catkin_lint error from melfa_description
16 | * Add copyright holder of mesh files in README.md
17 | * Reorganize URDF for RV4FL to be re-usable
18 | * Add additional joints(`#13 `_)
19 | * Organize rv7fl.urdf.xacro using xacro
20 | * Add use_joint7 and use_joint8 parameters
21 | - Remove dummy joints from rv7fl.urdf.xacro
22 | * Add RV4FL mesh data(`#11 `_)
23 | * Add missing dependencies
24 | * Add mesh license and README.md
25 | * Modify the package meta files
26 | * Add mesh files for RV7FL
27 | - They are modified its origin, rotation in mesh
28 | - Scale are modified in URDF
29 | * Modify URDF to adopt the package structure
30 | - Add robot argument to specify target robot
31 | * Add RV4FL mesh data
32 | * Pull request for the first delivery(`#5 `_)
33 | * Remove mesh related files from melfa_description
34 | * Add dummy joint7 and joint8 for actual robot
35 | * Add use_gui argument and default is false
36 | * Add URDF and mesh files (`#1 `_)
37 | * Modify joint limits to fit the spec sheet
38 | * Fix mesh orientation, colors
39 | * Change driver to use melfa_description
40 | * Fix mesh size unit, urdf
41 | * Contributors: KazukiHiraizumi, Ryosuke Tajima
42 |
--------------------------------------------------------------------------------
/melfa_driver/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 2.8.3)
2 | project(melfa_driver)
3 |
4 | add_compile_options(-std=c++11)
5 |
6 | find_package(catkin REQUIRED COMPONENTS
7 | controller_manager
8 | diagnostic_updater
9 | hardware_interface
10 | roscpp)
11 |
12 | find_package(Boost REQUIRED COMPONENTS system thread)
13 |
14 | # catkin_python_setup()
15 |
16 | catkin_package(
17 | CATKIN_DEPENDS roscpp
18 | INCLUDE_DIRS include
19 | )
20 |
21 | include_directories(include ${catkin_INCLUDE_DIRS})
22 |
23 | add_executable(melfa_driver_node
24 | src/melfa_driver_node.cpp src/melfa_hardware_interface.cpp)
25 |
26 | add_executable(melfa_loopback_node src/melfa_loopback_node.cpp)
27 |
28 | target_link_libraries(melfa_driver_node ${catkin_LIBRARIES})
29 |
30 | target_link_libraries(melfa_loopback_node ${catkin_LIBRARIES})
31 |
32 | install(TARGETS melfa_driver_node melfa_loopback_node
33 | RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
34 | )
35 |
36 | install(DIRECTORY config launch
37 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
38 |
39 | install(DIRECTORY test
40 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
41 | USE_SOURCE_PERMISSIONS)
42 |
43 | install(DIRECTORY include/${PROJECT_NAME}/
44 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION})
45 |
46 | if(CATKIN_ENABLE_TESTING)
47 | find_package(roslint REQUIRED)
48 | set(ROSLINT_CPP_OPTS "--filter=-runtime/references,-runtime/int")
49 | # roslint_cpp(src/melfa_hardware_interface.cpp src/melfa_driver_node.cpp src/melfa_loopback_node.cpp)
50 | set(ROSLINT_PYTHON_OPTS "--max-line-length=180")
51 | # roslint_python(test/test_joint_trajectory_controller.py)
52 | # add_dependencies(tests roslint)
53 |
54 | find_package(roslaunch REQUIRED)
55 | find_package(rostest REQUIRED)
56 | file(GLOB LAUNCH_FILES launch/*.launch)
57 | foreach(LAUNCH_FILE ${LAUNCH_FILES})
58 | message(STATUS "Testing ${LAUNCH_FILE}")
59 | roslaunch_add_file_check(${LAUNCH_FILE})
60 | endforeach()
61 |
62 | add_rostest(test/joint_trajectory_controller.test)
63 | endif()
64 |
--------------------------------------------------------------------------------
/melfa_driver/config/controller.yaml:
--------------------------------------------------------------------------------
1 | joint_state_controller:
2 | type: joint_state_controller/JointStateController
3 | publish_rate: 50
4 |
5 | joint1_position_controller:
6 | type: position_controllers/JointPositionController
7 | publish_rate: 50
8 | base_frame_id: base_link
9 | joint : joint1
10 |
11 | joint2_position_controller:
12 | type: position_controllers/JointPositionController
13 | publish_rate: 50
14 | base_frame_id: base_link
15 | joint : joint2
16 |
17 | joint3_position_controller:
18 | type: position_controllers/JointPositionController
19 | publish_rate: 50
20 | base_frame_id: base_link
21 | joint : joint3
22 |
23 | joint4_position_controller:
24 | type: position_controllers/JointPositionController
25 | publish_rate: 50
26 | base_frame_id: base_link
27 | joint : joint4
28 |
29 | joint5_position_controller:
30 | type: position_controllers/JointPositionController
31 | publish_rate: 50
32 | base_frame_id: base_link
33 | joint : joint5
34 |
35 | joint6_position_controller:
36 | type: position_controllers/JointPositionController
37 | publish_rate: 50
38 | base_frame_id: base_link
39 | joint : joint6
40 |
41 | joint_trajectory_controller:
42 | type: position_controllers/JointTrajectoryController
43 | joints:
44 | - joint1
45 | - joint2
46 | - joint3
47 | - joint4
48 | - joint5
49 | - joint6
50 | constraints:
51 | goal_time: 2.0 # Defaults to zero
52 | stopped_velocity_tolerance: 0.1 # Defaults to 0.01
53 | joint1:
54 | trajectory: 0
55 | goal: 0.2
56 | joint2:
57 | trajectory: 0
58 | goal: 0.2
59 | joint3:
60 | trajectory: 0
61 | goal: 0.2
62 | joint4:
63 | trajectory: 0
64 | goal: 0.2
65 | joint5:
66 | trajectory: 0
67 | goal: 0.2
68 | joint6:
69 | trajectory: 0
70 | goal: 0.2
71 |
72 | state_publish_rate: 50 # Defaults to 50
73 | action_monitor_rate: 20 # Defaults to 20
74 | #hold_trajectory_duration: 0 # Defaults to 0.5
75 |
76 |
77 |
--------------------------------------------------------------------------------
/melfa_driver/launch/melfa_driver.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
41 |
42 |
43 |
47 |
48 |
50 |
51 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/melfa_driver/include/melfa_driver/melfa_hardware_interface.h:
--------------------------------------------------------------------------------
1 | // Copyright 2018 Tokyo Opensource Robotics Kyokai Association (TORK)
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | #include
16 | #include
17 | #include
18 | #include
19 | #include
20 | #include
21 | #include
22 | #include
23 | #include
24 | #include
25 | #include "melfa_driver/strdef.h"
26 |
27 | #define JOINT_NUM (8)
28 |
29 |
30 | class MelfaHW:public hardware_interface::RobotHW
31 | {
32 | public:
33 | MelfaHW (double period);
34 | void update (void);
35 | void write (void);
36 | void read (void);
37 | void write_first (void);
38 | void diagnose(diagnostic_updater::DiagnosticStatusWrapper &stat);
39 |
40 | inline ros::Duration getPeriod()
41 | {
42 | return ros::Duration(period_);
43 | }
44 | private:
45 | double period_;
46 | ros::Time time_now_;
47 | ros::Time time_old_;
48 |
49 | std::string robot_ip_;
50 | int socket_;
51 | struct sockaddr_in addr_;
52 |
53 | MXTCMD send_buff_;
54 | MXTCMD recv_buff_;
55 | int counter_;
56 |
57 | // true if use joint7
58 | bool use_joint7_;
59 | // true if use joint8
60 | bool use_joint8_;
61 | // true if joint7 is linear joint
62 | bool joint7_is_linear_;
63 | // true if joint8 is linear joint
64 | bool joint8_is_linear_;
65 |
66 | hardware_interface::JointStateInterface joint_state_interface;
67 | hardware_interface::PositionJointInterface joint_pos_interface;
68 |
69 | double cmd[JOINT_NUM];
70 | double pos[JOINT_NUM];
71 | double vel[JOINT_NUM];
72 | double eff[JOINT_NUM];
73 | };
74 |
--------------------------------------------------------------------------------
/melfa_driver/CHANGELOG.rst:
--------------------------------------------------------------------------------
1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 | Changelog for package melfa_driver
3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 |
5 | 0.0.2 (2018-12-16)
6 | ------------------
7 | * Add LICENSE and notification on source code(`#18 `_)
8 | * Contributors: Ryosuke Tajima
9 |
10 | 0.0.4 (2019-02-26)
11 | ------------------
12 | * Fix wrong install location(`#25 `_)
13 | - Reserve test permissions
14 | * Fix minor typo(`#20 `_)
15 | * Contributors: Ryosuke Tajima, Wolf Vollprecht
16 |
17 | 0.0.1 (2018-12-14)
18 | ------------------
19 | * Remove check.sh for eliminating catkin_lint warning
20 | * Add jointx_is_linear parameter for the linear base(`#17 `_)
21 | * rename melfa_ros to melfa_robot
22 | * Add additional joints(`#13 `_)
23 | * Add use_joint7 and use_joint8 parameters
24 | - Remove dummy joints from rv7fl.urdf.xacro
25 | * Pull request for the first delivery(`#5 `_)
26 | * Change author email
27 | * Expand joint number to 8 only for acutal robot check
28 | * Add realtime feature and docs(`#3 `_)
29 | * Improve driver and loopback node, add diagnostics
30 | - Make loopback node periodic considering the hardware specs
31 | - Add diagnotics to see period over-run
32 | * Disable realtime in tests
33 | * Make loopback node realtime
34 | * Add realtime feature and docs
35 | * Change test to wait topic for 30s
36 | * Add more dependencies
37 | * Check node list before test
38 | * Add package dependencies
39 | * Add .travis.yml for CI
40 | * Add moveit configuration files(`#2 `_)
41 | - Confirmed to work with RT-ToolBox
42 | * Add URDF and mesh files(`#1 `_)
43 | * Change driver to use melfa_description
44 | * Add ROS_INFO for robot_ip
45 | * Improve UDP error handling not to abort
46 | * Add first test
47 | * Fix integer size incompatibility of the packet
48 | * Add melfa_loopback\node for test
49 | * First commit
50 | - Proof of function
51 | - This can control RT-Toolbox3 simulator
52 | - All parameters are hard-coded
53 | * Contributors: Ryosuke Tajima
54 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/demo.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | [move_group/fake_controller_joint_states]
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/demo.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | [/move_group/fake_controller_joint_states]
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/melfa_driver/src/melfa_driver_node.cpp:
--------------------------------------------------------------------------------
1 | // Copyright 2018 Tokyo Opensource Robotics Kyokai Association (TORK)
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | /**
16 | * @file melfa_driver_node.cpp
17 | *
18 | * Driver node for MELFA robot controller
19 | */
20 | #include
21 | #include
22 | #include
23 | #include
24 | #include
25 | #include
26 | #include
27 | #include
28 | #include
29 | #include "melfa_driver/melfa_hardware_interface.h"
30 |
31 | /**
32 | * @brief Main function
33 | */
34 | int main (int argc, char **argv)
35 | {
36 | // init ROS node
37 | ros::init (argc, argv, "melfa_driver");
38 | ros::NodeHandle nh;
39 |
40 | // Parameters
41 | bool realtime;
42 | ros::param::param("~realtime", realtime, false);
43 | double period;
44 | ros::param::param("~period", period, 0.0071);
45 |
46 | // create hardware interface
47 | MelfaHW robot(period);
48 | controller_manager::ControllerManager cm (&robot, nh);
49 |
50 | // diagnostic_updater
51 | diagnostic_updater::Updater updater;
52 | updater.setHardwareID("melfa_driver");
53 | updater.add("diagnose", &robot, &MelfaHW::diagnose);
54 |
55 | // Setup realtime scheduler
56 | if (realtime)
57 | {
58 | struct sched_param param;
59 | memset(¶m, 0, sizeof(param));
60 | int policy = SCHED_FIFO;
61 | param.sched_priority = sched_get_priority_max(policy);
62 |
63 | ROS_WARN("Setting up Realtime scheduler");
64 | if (sched_setscheduler(0, policy, ¶m) < 0) {
65 | ROS_ERROR("sched_setscheduler: %s", strerror(errno));
66 | ROS_ERROR("Please check you are using PREEMPT_RT kernel and set /etc/security/limits.conf");
67 | exit (1);
68 | }
69 | if (mlockall(MCL_CURRENT|MCL_FUTURE) < 0)
70 | {
71 | ROS_ERROR("mlockall: %s", strerror(errno));
72 | exit (1);
73 | }
74 | }
75 | // set spin rate
76 | ros::Rate rate (1.0 / robot.getPeriod().toSec());
77 | ros::AsyncSpinner spinner (1);
78 | spinner.start ();
79 |
80 | // write first setting packet
81 | robot.write_first ();
82 |
83 | while (ros::ok ())
84 | {
85 | // Wait for reciving a packet
86 | robot.read ();
87 | cm.update (ros::Time::now(), robot.getPeriod());
88 | robot.write ();
89 |
90 | // Update diagnostics
91 | updater.update();
92 |
93 | rate.sleep ();
94 | }
95 | spinner.stop ();
96 | return 0;
97 | }
98 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/config/rv7fl.srdf:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/config/rv4fl.srdf:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/move_group.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
56 |
57 |
58 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/move_group.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
32 |
33 |
34 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/melfa_driver/include/melfa_driver/strdef.h:
--------------------------------------------------------------------------------
1 | // Copyright 2018 Tokyo Opensource Robotics Kyokai Association (TORK)
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | //***************************************************************
16 | // リアルタイム制御サンプルプログラム
17 | // 通信パケットデータ構造体定義ヘッダーファイル
18 | //***************************************************************
19 | // strdef.h
20 | #include
21 | #define VER_H7
22 | /********************************************************/
23 | /* 関節座標系 (未使用軸は0にします) */
24 | /* 各成分の詳細は、各ロボット付属の取扱説明書を */
25 | /* 参照してください */
26 | /********************************************************/
27 | typedef struct{
28 | float j1; // J1軸角度 (ラジアン)
29 | float j2; // J2軸角度 (ラジアン)
30 | float j3; // J3軸角度 (ラジアン)
31 | float j4; // J4軸角度 (ラジアン)
32 | float j5; // J5軸角度 (ラジアン)
33 | float j6; // J6軸角度 (ラジアン)
34 | float j7; // 付加軸1(J7軸角度) (ラジアン)
35 | float j8; // 付加軸2(J8軸角度) (ラジアン)
36 | } JOINT;
37 | /********************************************************/
38 | /* 直交座標系 (未使用軸は0にします) */
39 | /* 各成分の詳細は、各ロボット付属の取扱説明書を */
40 | /* 参照してください */
41 | /********************************************************/
42 | typedef struct{
43 | float x; // X軸座標値(mm)
44 | float y; // Y軸座標値(mm)
45 | float z; // Z軸座標値(mm)
46 | float a; // A軸座標値(ラジアン)
47 | float b; // B軸座標値(ラジアン)
48 | float c; // C軸座標値(ラジアン)
49 | float l1; // 付加軸1(mm またはラジアン)
50 | float l2; // 付加軸2(mm またはラジアン)
51 | } WORLD;
52 | typedef struct{
53 | WORLD w;
54 | uint32_t sflg1; // 構造フラグ1
55 | uint32_t sflg2; // 構造フラグ2
56 | } POSE;
57 |
58 | /********************************************************/
59 | /* パルス座標系 (未使用軸は0にします) */
60 | /* 各関節をモータパルス値で表した座標です */
61 | /********************************************************/
62 | typedef struct{
63 | int32_t p1; // モータ1軸
64 | int32_t p2; // モータ2軸
65 | int32_t p3; // モータ3軸
66 | int32_t p4; // モータ4軸
67 | int32_t p5; // モータ5軸
68 | int32_t p6; // モータ6軸
69 | int32_t p7; // 付加軸1(モータ7軸)
70 | int32_t p8; // 付加軸2(モータ8軸)
71 | } PULSE;
72 | /****************************************/
73 | /* リアルタイム機能通信データパケット */
74 | /****************************************/
75 | typedef struct enet_rtcmd_str {
76 | uint16_t Command; // コマンド
77 | #define MXT_CMD_NULL 0 // リアルタイム外部指令なし
78 | #define MXT_CMD_MOVE 1 // リアルタイム外部指令あり
79 | #define MXT_CMD_END 255 // リアルタイム外部指令終了
80 | uint16_t SendType; // 指令データタイプ指定
81 | uint16_t RecvType; // モニタデータタイプ指定
82 |
83 | //////////// 指令またはモニタデータタイプ //
84 |
85 | #define MXT_TYP_NULL 0 // データなし
86 |
87 | // 指令用およびモニタ用 ////////////////////
88 |
89 | #define MXT_TYP_POSE 1 // 直交データ(指令値)
90 | #define MXT_TYP_JOINT 2 // 関節データ(指令値)
91 | #define MXT_TYP_PULSE 3 // パルスデータ(指令値)
92 |
93 | // 位置関連モニタ用 ////////////////////////
94 | #define MXT_TYP_FPOSE 4 // 直交データ(指令値フィルタ処理後)
95 | #define MXT_TYP_FJOINT 5 // 関節データ(指令値フィルタ処理後)
96 | #define MXT_TYP_FPULSE 6 // パルスデータ(指令値フィルタ処理後)
97 | #define MXT_TYP_FB_POSE 7 // 直交データ(エンコーダフィードバック値)
98 | #define MXT_TYP_FB_JOINT 8 // 関節データ(エンコーダフィードバック値)
99 | #define MXT_TYP_FB_PULSE 9 // パルスデータ(エンコーダフィードバック値)
100 | // 電流関連モニタ用 ///////////////////////
101 |
102 | #define MXT_TYP_CMDCUR 10 // 電流指令
103 | #define MXT_TYP_FBKCUR 11 // 電流フィードバック
104 | union rtdata { // 指令データ
105 | POSE pos; // 直交タイプ[mm/rad]
106 | JOINT jnt; // 関節タイプ[rad]
107 | PULSE pls; // パルスタイプ[pls]
108 | int32_t lng[8]; // 整数タイプ[%/無単位など]
109 | } dat;
110 | uint16_t SendIOType; // 送信入出力信号データ指定
111 | uint16_t RecvIOType; // 返信入出力信号データ指定
112 | #define MXT_IO_NULL 0 // データなし
113 | #define MXT_IO_OUT 1 // 出力信号
114 | #define MXT_IO_IN 2 // 入力信号
115 | uint16_t BitTop; // 先頭ビット番号
116 | uint16_t BitMask; // 送信用ビットマスクパターン指定(0x0001-0xffff)
117 | uint16_t IoData; // 入出力信号データ(0x0000-0xffff)
118 | uint16_t TCount; // タイムアウト時間のカウンタ値
119 | uint32_t CCount; // 通信データ用のカウンタ値
120 | uint16_t RecvType1; // 返信データタイプ指定1
121 | union rtdata1 { // モニタデータ1
122 | POSE pos1; // 直交タイプ[mm/rad]
123 | JOINT jnt1; // 関節タイプ[rad]
124 | PULSE pls1; // パルスタイプ[pls]
125 | int32_t lng1[8]; // 整数タイプ[%/無単位など]
126 | } dat1;
127 | uint16_t RecvType2; // 返信データタイプ指定2
128 | union rtdata2 { // モニタデータ2
129 | POSE pos2; // 直交タイプ[mm/rad]
130 | JOINT jnt2; // 関節タイプ[rad]
131 | PULSE pls2; // パルスタイプ[pls]または整数タイプ[%/無単位など]
132 | int32_t lng2[8]; // 整数タイプ[%/無単位など]
133 | } dat2;
134 | uint16_t RecvType3; // 返信データタイプ指定3
135 | union rtdata3 { // モニタデータ3
136 | POSE pos3; // 直交タイプ[mm/rad]
137 | JOINT jnt3; // 関節タイプ[rad]
138 | PULSE pls3; // パルスタイプ[pls]または整数タイプ[%/無単位など]
139 | int32_t lng3[8]; // 整数タイプ[%/無単位など]
140 | } dat3;
141 | } MXTCMD;
142 |
--------------------------------------------------------------------------------
/melfa_description/urdf/rv4fl.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
--------------------------------------------------------------------------------
/melfa_description/urdf/rv7fl.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
--------------------------------------------------------------------------------
/melfa_description/launch/melfa_description.rviz:
--------------------------------------------------------------------------------
1 | Panels:
2 | - Class: rviz/Displays
3 | Help Height: 78
4 | Name: Displays
5 | Property Tree Widget:
6 | Expanded:
7 | - /Global Options1
8 | - /Status1
9 | - /RobotModel1
10 | - /TF1
11 | Splitter Ratio: 0.5
12 | Tree Height: 726
13 | - Class: rviz/Selection
14 | Name: Selection
15 | - Class: rviz/Tool Properties
16 | Expanded:
17 | - /2D Pose Estimate1
18 | - /2D Nav Goal1
19 | - /Publish Point1
20 | Name: Tool Properties
21 | Splitter Ratio: 0.588679016
22 | - Class: rviz/Views
23 | Expanded:
24 | - /Current View1
25 | Name: Views
26 | Splitter Ratio: 0.5
27 | - Class: rviz/Time
28 | Experimental: false
29 | Name: Time
30 | SyncMode: 0
31 | SyncSource: ""
32 | Visualization Manager:
33 | Class: ""
34 | Displays:
35 | - Alpha: 0.5
36 | Cell Size: 1
37 | Class: rviz/Grid
38 | Color: 160; 160; 164
39 | Enabled: true
40 | Line Style:
41 | Line Width: 0.0299999993
42 | Value: Lines
43 | Name: Grid
44 | Normal Cell Count: 0
45 | Offset:
46 | X: 0
47 | Y: 0
48 | Z: 0
49 | Plane: XY
50 | Plane Cell Count: 10
51 | Reference Frame:
52 | Value: true
53 | - Alpha: 1
54 | Class: rviz/RobotModel
55 | Collision Enabled: false
56 | Enabled: true
57 | Links:
58 | All Links Enabled: true
59 | Expand Joint Details: false
60 | Expand Link Details: false
61 | Expand Tree: false
62 | Link Tree Style: Links in Alphabetic Order
63 | base_link:
64 | Alpha: 1
65 | Show Axes: false
66 | Show Trail: false
67 | Value: true
68 | dummy1:
69 | Alpha: 1
70 | Show Axes: false
71 | Show Trail: false
72 | dummy2:
73 | Alpha: 1
74 | Show Axes: false
75 | Show Trail: false
76 | link1:
77 | Alpha: 1
78 | Show Axes: false
79 | Show Trail: false
80 | Value: true
81 | link2:
82 | Alpha: 1
83 | Show Axes: false
84 | Show Trail: false
85 | Value: true
86 | link3:
87 | Alpha: 1
88 | Show Axes: false
89 | Show Trail: false
90 | Value: true
91 | link4:
92 | Alpha: 1
93 | Show Axes: false
94 | Show Trail: false
95 | Value: true
96 | link5:
97 | Alpha: 1
98 | Show Axes: false
99 | Show Trail: false
100 | Value: true
101 | link6:
102 | Alpha: 1
103 | Show Axes: false
104 | Show Trail: false
105 | Value: true
106 | Name: RobotModel
107 | Robot Description: robot_description
108 | TF Prefix: ""
109 | Update Interval: 0
110 | Value: true
111 | Visual Enabled: true
112 | - Class: rviz/TF
113 | Enabled: true
114 | Frame Timeout: 15
115 | Frames:
116 | All Enabled: true
117 | base_link:
118 | Value: true
119 | dummy1:
120 | Value: true
121 | dummy2:
122 | Value: true
123 | link1:
124 | Value: true
125 | link2:
126 | Value: true
127 | link3:
128 | Value: true
129 | link4:
130 | Value: true
131 | link5:
132 | Value: true
133 | link6:
134 | Value: true
135 | Marker Scale: 0.5
136 | Name: TF
137 | Show Arrows: true
138 | Show Axes: true
139 | Show Names: true
140 | Tree:
141 | base_link:
142 | dummy1:
143 | {}
144 | dummy2:
145 | {}
146 | link1:
147 | link2:
148 | link3:
149 | link4:
150 | link5:
151 | link6:
152 | {}
153 | Update Interval: 0
154 | Value: true
155 | Enabled: true
156 | Global Options:
157 | Background Color: 48; 48; 48
158 | Default Light: true
159 | Fixed Frame: base_link
160 | Frame Rate: 30
161 | Name: root
162 | Tools:
163 | - Class: rviz/Interact
164 | Hide Inactive Objects: true
165 | - Class: rviz/MoveCamera
166 | - Class: rviz/Select
167 | - Class: rviz/FocusCamera
168 | - Class: rviz/Measure
169 | - Class: rviz/SetInitialPose
170 | Topic: /initialpose
171 | - Class: rviz/SetGoal
172 | Topic: /move_base_simple/goal
173 | - Class: rviz/PublishPoint
174 | Single click: true
175 | Topic: /clicked_point
176 | Value: true
177 | Views:
178 | Current:
179 | Class: rviz/Orbit
180 | Distance: 2.85199118
181 | Enable Stereo Rendering:
182 | Stereo Eye Separation: 0.0599999987
183 | Stereo Focal Distance: 1
184 | Swap Stereo Eyes: false
185 | Value: false
186 | Focal Point:
187 | X: -0.461950988
188 | Y: -0.62640506
189 | Z: 0.661512554
190 | Focal Shape Fixed Size: true
191 | Focal Shape Size: 0.0500000007
192 | Invert Z Axis: false
193 | Name: Current View
194 | Near Clip Distance: 0.00999999978
195 | Pitch: 0.259797662
196 | Target Frame:
197 | Value: Orbit (rviz)
198 | Yaw: 0.898549199
199 | Saved: ~
200 | Window Geometry:
201 | Displays:
202 | collapsed: false
203 | Height: 1050
204 | Hide Left Dock: false
205 | Hide Right Dock: false
206 | QMainWindow State: 000000ff00000000fd00000004000000000000019f00000374fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006700fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003100000374000000e600fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000012900000374fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003100000374000000c500fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000072f00000048fc0100000002fb0000000800540069006d006501000000000000072f0000040a00fffffffb0000000800540069006d00650100000000000004500000000000000000000004570000037400000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
207 | Selection:
208 | collapsed: false
209 | Time:
210 | collapsed: false
211 | Tool Properties:
212 | collapsed: false
213 | Views:
214 | collapsed: false
215 | Width: 1839
216 | X: 81
217 | Y: 1110
218 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # melfa_robot [](https://travis-ci.com/tork-a/melfa_robot)
2 |
3 | This package is to control the MELFA's robot arms using ROS.
4 |
5 | # Supported hardware
6 |
7 | ## Robot controllers
8 |
9 | Currently `melfa_driver` is checked with the following MELFA robot
10 | controller.
11 |
12 |
CR750-Q
13 |
14 | ## Robot arms
15 |
16 | Currently `melfa_description` contains the models of following MELFA robots.
17 |
18 |
RV4FL
19 |
20 |
RV7FL
21 |
22 | # How to Install
23 |
24 | Use apt to install the packages.
25 |
26 | ```
27 | apt install ros-kinetic-melfa-robot
28 | ```
29 |
30 | # Quick start with the loop back node
31 |
32 | `melfa_driver/melfa_driver_node` is the controller node, providing
33 | `hardware_interface::RobotHW`. This controller communicates with the
34 | actual robot controller, or the simulator named `RT Toolbox3` on
35 | Windows via Ethernet(TCP/IP).
36 |
37 | In case that you don't have both of the controller and simulator, the
38 | package contains the `loop-back(dummy) node` mimicking the robot
39 | controller. It is `melfa_driver/melfa_loopback_node`. This node set
40 | the current joint angle identical to commanded value, and return them
41 | as current state.
42 |
43 | When you want to use the loopback node, launch the system as:
44 |
45 | ```
46 | $ roslaunch melfa_driver melfa_driver.launch loopback:=true
47 | ```
48 |
49 | Go to [the section](#check-the-system-works) to check it works.
50 |
51 | # Quick start with the RT ToolBox3
52 |
53 | If you have `RT ToolBox 3`, the optional software of MELFA robot, you
54 | can use this package with it in the simulation mode.
55 |
56 | - [RT ToolBox3](http://www.mitsubishielectric.com/fa/products/rbt/robot/smerit/rt3/index.html)
57 |
58 | You have to place your ROS PC and RT ToolBox3 (Windows) PC in the same
59 | network.
60 |
61 | ## Run RT ToolBox3
62 |
63 | Bring up the RT Toolbox3 by double clicking. You would see the screen
64 | like this:
65 |
66 | 
67 |
68 | ## Create a new project file (need only once)
69 |
70 | By pressing `New` button to create a new project file. In the
71 | following wizard screen, push `Next`.
72 |
73 | 
74 |
75 | In `2. Robot Model`, choose your robot. In this case, we choose `FD
76 | Series CR750-D` and `RV-7FL-D`. Push `Next` button.
77 |
78 | 
79 |
80 | In `3. Communication`, enter the IP address and gateway address of the
81 | Windows PC. Just using `Copy the setting of this machine` will
82 | work. In this example, `192.168.0.23` is the address of the Windows
83 | PC.
84 |
85 | 
86 |
87 | ## Program for real-time external control
88 |
89 | The ROS package expects the controller is running in `Real time
90 | external control mode`, which receive the continuous TCP/IP packet
91 | from external machine. You have to create a program file in the
92 | Program folder in the Workspace.
93 |
94 | ```
95 | Open "ENET:192.168.0.12" As #1
96 | Mxt 1,1
97 | End
98 | ```
99 |
100 | In this example, `192.168.0.12` is the IP address of ROS PC. Make sure
101 | it is correct, or the controller cannot receive the packet.
102 |
103 | 
104 |
105 | ## Switch to the simulation mode
106 |
107 | Push `Simulation` button under `Home` tab to switch into the
108 | simulation mode. You would see your robot model and the controller
109 | panel on the screen.
110 |
111 | 
112 |
113 | ## Run the program
114 |
115 | Push the `Select` button on the right side of `Program:` to select the
116 | program file name which we formally created.
117 |
118 | 
119 |
120 | Push the `Run` button on the controller panel.
121 |
122 | ## Start ROS Controller
123 |
124 | Now bring up the ROS controller node with the launch file. `robot_ip`
125 | parameter should be the address of the PC on which the simulator is
126 | running.
127 |
128 | ```
129 | $ roslaunch melfa_driver melfa_driver.launch \
130 | robot_ip:=192.168.0.23 --screen
131 | ```
132 |
133 | Go to [the section](#check-the-system-works) to check it works.
134 |
135 | # Quick start with actual robot controller
136 |
137 | The actual robot should work as same as the simulator... but **BE
138 | CAREFUL!!** The robot will move out of your intention. It may collide
139 | with the environment or human beings. Please make sure you can do
140 | experiments safely with your robot.
141 |
142 | You have to place your ROS PC and the controller in the same network.
143 |
144 | ## Program for real time external control
145 |
146 | You need the program for real time external control as same as in the
147 | simulator. Create the following program with the pendant (or just
148 | transfer the file from RT Toolbox3).
149 |
150 | ```
151 | Ovrd 10
152 | Open "ENET:192.168.0.12" As #1
153 | Mxt 1,1
154 | End
155 | ```
156 |
157 | `Ovrd 10` is limiting the joint velocity for safety. In this example,
158 | `192.168.0.12` is the IP address of ROS PC. Make sure it is correct,
159 | or the controller cannot receive the packet.
160 |
161 | Check the IP address of the controller to use it afterwards.
162 |
163 | ## Run the program
164 |
165 | Run the program with the pendant. It will be same as usual usage.
166 |
167 | ## Start ROS Controller
168 |
169 | Now bring up the ROS controller node with the launch file. `robot_ip`
170 | parameter should be the address of the robot controller.
171 |
172 | ```
173 | $ roslaunch melfa_driver melfa_driver.launch \
174 | robot_ip:=192.168.0.23 --screen
175 | ```
176 |
177 | Go to [the section](#check-the-system-works) to check it works.
178 |
179 | # Check the system works
180 |
181 | Once the system is brought up, the way to command the robot is same in
182 | the either way.
183 |
184 | If you don't have the view of the robot model in Rviz and you want it,
185 | launch rviz as:
186 |
187 | ```
188 | $ roslaunch melfa_description rviz.launch use_gui:=false
189 | ```
190 |
191 | ## With rqt plugin
192 |
193 | You can use rqt plug-in `JointTrajctoryController` to control the
194 | robot joint angle using slider GUI.
195 |
196 | ```
197 | $ rqt -s rqt_joint_trajectory_controller/JointTrajectoryController
198 | ```
199 |
200 |
rqt_joint_trajectory_controller
201 |
202 | ## MoveIt!
203 |
204 | You can try MoveIt! Rviz plug-in.
205 |
206 | ```
207 | $ roslaunch rv7fl_moveit_config moveit_planning_execution.launch
208 | ```
209 |
210 | Currently there are moveit_config packages for the following robot.
211 |
212 |
RV4FL
213 |
214 |
RV7FL
215 |
216 | # License
217 |
218 | - [YOODS Inc.](https://www.yoods.co.jp/) holds the copyright of all
219 | mesh files in ``melfa_description/mesh`` directory which are
220 | licensed under a Creative Commons Attribution-ShareAlike 4.0
221 | International License.
222 | - These MoveIt! configuration packages are licensed under BSD License,
223 | which are basically auto generated by MoveIt! setup assistant
224 | package.
225 | - ``rv4fl_moveit_config``
226 | - ``rv7fl_moveit_config``
227 | - Other parts are licensed under Apache License 2.0.
228 |
--------------------------------------------------------------------------------
/melfa_driver/src/melfa_hardware_interface.cpp:
--------------------------------------------------------------------------------
1 | // Copyright 2018 Tokyo Opensource Robotics Kyokai Association (TORK)
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | #include "melfa_driver/melfa_hardware_interface.h"
16 |
17 | MelfaHW::MelfaHW (double period)
18 | : counter_(0), period_(period),
19 | use_joint7_(false), use_joint8_(false),
20 | joint7_is_linear_(false), joint8_is_linear_(false)
21 | {
22 | // initialize UDP socket
23 | socket_ = socket (AF_INET, SOCK_DGRAM, 0);
24 | if (socket_ < 0)
25 | {
26 | ROS_ERROR ("Cannot open socket");
27 | exit(1);
28 | }
29 | // set IP and port
30 | ros::param::param("~robot_ip", robot_ip_, "127.0.0.1");
31 | // Usage of additional joints
32 | ros::param::param("~use_joint7", use_joint7_, false);
33 | ros::param::param("~use_joint8", use_joint8_, false);
34 | ros::param::param("~joint7_is_linear", joint7_is_linear_, false);
35 | ros::param::param("~joint8_is_linear", joint8_is_linear_, false);
36 |
37 | addr_.sin_family = AF_INET;
38 | addr_.sin_port = htons (10000);
39 | addr_.sin_addr.s_addr = inet_addr (robot_ip_.c_str());
40 |
41 | memset (&send_buff_, 0, sizeof (send_buff_));
42 | memset (&recv_buff_, 0, sizeof (recv_buff_));
43 |
44 | std::string joint_names[JOINT_NUM] =
45 | {
46 | "joint1", "joint2", "joint3", "joint4",
47 | "joint5", "joint6", "joint7", "joint8"
48 | };
49 | // connect and register the joint state interface
50 | for (int i = 0; i < JOINT_NUM; i++)
51 | {
52 | // Skip unused joints
53 | if (i==6 and not use_joint7_)
54 | {
55 | continue;
56 | }
57 | if (i==7 and not use_joint8_)
58 | {
59 | continue;
60 | }
61 | hardware_interface::JointStateHandle state_handle (joint_names[i], &pos[i], &vel[i], &eff[i]);
62 | joint_state_interface.registerHandle (state_handle);
63 | }
64 | registerInterface (&joint_state_interface);
65 |
66 | // connect and register the joint position interface
67 | for (int i = 0; i < JOINT_NUM; i++)
68 | {
69 | // Skip unused joints
70 | if (i==6 and not use_joint7_)
71 | {
72 | continue;
73 | }
74 | if (i==7 and not use_joint8_)
75 | {
76 | continue;
77 | }
78 | hardware_interface::JointHandle joint_pos_handle (joint_state_interface.getHandle (joint_names[i]), &cmd[i]);
79 | joint_pos_interface.registerHandle (joint_pos_handle);
80 | }
81 | registerInterface (&joint_pos_interface);
82 | }
83 |
84 | void MelfaHW::write_first (void)
85 | {
86 | memset (&send_buff_, 0, sizeof (send_buff_));
87 | // Get current joint angles in
88 | send_buff_.Command = MXT_CMD_NULL;
89 | send_buff_.SendType = MXT_TYP_NULL;
90 | send_buff_.RecvType = MXT_TYP_JOINT;
91 | send_buff_.SendIOType = MXT_IO_NULL;
92 | send_buff_.RecvIOType = MXT_IO_NULL;
93 | send_buff_.BitTop = 0;
94 | send_buff_.BitMask = 0;
95 | send_buff_.IoData = 0;
96 | send_buff_.CCount = 0;
97 |
98 | int size = sendto (socket_, (char *) &send_buff_, sizeof (send_buff_), 0, (struct sockaddr *) &addr_, sizeof (addr_));
99 | if (size != sizeof (send_buff_))
100 | {
101 | ROS_ERROR ("Connot send packet to MELFA controller. Check the configuration.");
102 | exit (1);
103 | }
104 | }
105 |
106 | void MelfaHW::write (void)
107 | {
108 | // Send MOVE command
109 | memset (&send_buff_, 0, sizeof (send_buff_));
110 | send_buff_.Command = MXT_CMD_MOVE;
111 | send_buff_.SendType = MXT_TYP_JOINT;
112 | send_buff_.RecvType = MXT_TYP_JOINT;
113 | send_buff_.RecvType1 = MXT_TYP_FJOINT;
114 | send_buff_.RecvType2 = MXT_TYP_FB_JOINT;
115 | send_buff_.RecvType3 = MXT_TYP_FBKCUR;
116 |
117 | send_buff_.SendIOType = MXT_IO_NULL;
118 | send_buff_.RecvIOType = MXT_IO_NULL;
119 | send_buff_.BitTop = 0;
120 | send_buff_.BitMask = 0;
121 | send_buff_.IoData = 0;
122 | send_buff_.dat.jnt.j1 = cmd[0];
123 | send_buff_.dat.jnt.j2 = cmd[1];
124 | send_buff_.dat.jnt.j3 = cmd[2];
125 | send_buff_.dat.jnt.j4 = cmd[3];
126 | send_buff_.dat.jnt.j5 = cmd[4];
127 | send_buff_.dat.jnt.j6 = cmd[5];
128 | if (joint7_is_linear_)
129 | {
130 | // Convert unit to mm
131 | send_buff_.dat.jnt.j7 = cmd[6] * 1000.0;
132 | }
133 | else
134 | {
135 | send_buff_.dat.jnt.j7 = cmd[6];
136 | }
137 | if (joint8_is_linear_)
138 | {
139 | // Convert unit to [mm]
140 | send_buff_.dat.jnt.j8 = cmd[7] * 1000.0;
141 | }
142 | else
143 | {
144 | send_buff_.dat.jnt.j8 = cmd[7];
145 | }
146 | send_buff_.CCount = counter_;
147 |
148 | int size = sendto (socket_, (char *) &send_buff_, sizeof (send_buff_), 0, (struct sockaddr *) &addr_, sizeof (addr_));
149 | if (size != sizeof (send_buff_))
150 | {
151 | ROS_ERROR ("Connot send packet to MELFA controller. Check the configuration.");
152 | exit (1);
153 | }
154 | }
155 |
156 | void MelfaHW::read (void)
157 | {
158 | fd_set fds;
159 | timeval time;
160 |
161 | // Record time
162 | time_old_ = time_now_;
163 | time_now_ = ros::Time::now();
164 |
165 | memset (&recv_buff_, 0, sizeof (recv_buff_));
166 |
167 | FD_ZERO (&fds);
168 | FD_SET (socket_, &fds);
169 |
170 | time.tv_sec = 0;
171 | time.tv_usec = 2 * period_ * 1000000;
172 |
173 | int status = select (socket_+1, &fds, (fd_set *) NULL, (fd_set *) NULL, &time);
174 | if (status < 0)
175 | {
176 | ROS_ERROR ("Cannot receive packet");
177 | }
178 | if ((status > 0) && FD_ISSET (socket_, &fds))
179 | {
180 | int size = recvfrom (socket_, &recv_buff_, sizeof (recv_buff_), 0, NULL, NULL);
181 | if (size < 0)
182 | {
183 | ROS_ERROR ("recvfrom failed");
184 | exit (1);
185 | }
186 | JOINT *joint = (JOINT *) & recv_buff_.dat;
187 | pos[0] = joint->j1;
188 | pos[1] = joint->j2;
189 | pos[2] = joint->j3;
190 | pos[3] = joint->j4;
191 | pos[4] = joint->j5;
192 | pos[5] = joint->j6;
193 |
194 | if (joint7_is_linear_)
195 | {
196 | // Convert unit to [m]
197 | pos[6] = joint->j7 / 1000.0;
198 | }
199 | else
200 | {
201 | pos[6] = joint->j7;
202 | }
203 |
204 | if (joint8_is_linear_)
205 | {
206 | // Convert unit to [m]
207 | pos[7] = joint->j8 / 1000.0;
208 | }
209 | else
210 | {
211 | pos[7] = joint->j8;
212 | }
213 | // Set current position when it starts
214 | if (counter_ == 0)
215 | {
216 | for (int i = 0; i < JOINT_NUM; i++)
217 | {
218 | cmd[i] = pos[i];
219 | }
220 | }
221 | counter_++;
222 | }
223 | else
224 | {
225 | ROS_WARN ("Failed to receive packet.");
226 | }
227 | }
228 |
229 | void MelfaHW::diagnose(diagnostic_updater::DiagnosticStatusWrapper &stat)
230 | {
231 | stat.add ("Counter", counter_);
232 |
233 | double diff = (time_now_ - time_old_).toSec();
234 | // Check over-run
235 | if (diff > period_ * 1.2)
236 | {
237 | stat.summary(diagnostic_msgs::DiagnosticStatus::WARN,
238 | "Periodic time exceeds 120%");
239 | }
240 | else
241 | {
242 | stat.summary(diagnostic_msgs::DiagnosticStatus::OK,
243 | "Periodic time is normal");
244 | }
245 | stat.add ("Period", diff);
246 | }
247 |
--------------------------------------------------------------------------------
/melfa_driver/src/melfa_loopback_node.cpp:
--------------------------------------------------------------------------------
1 | // Copyright 2018 Tokyo Opensource Robotics Kyokai Association (TORK)
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | /**
16 | * @file melfa_loopback_node.cpp
17 | *
18 | * Loopback node to test melfa_driver_node
19 | */
20 | #include
21 | #include
22 | #include
23 | #include
24 | #include
25 | #include
26 | #include
27 | #include
28 | #include
29 | #include
30 | #include
31 | #include
32 | #include
33 | #include
34 | #include "melfa_driver/strdef.h"
35 |
36 | ros::Time g_time_now, g_time_old;
37 |
38 | class LoopbackNode
39 | {
40 | private:
41 | /// Packet counter
42 | int counter_;
43 |
44 | /// Periodic time [s]
45 | double period_;
46 |
47 | int socket_;
48 | struct sockaddr_in addr_;
49 |
50 | MXTCMD send_buff_;
51 | MXTCMD recv_buff_;
52 |
53 | ros::Time time_now_;
54 | ros::Time time_old_;
55 |
56 | public:
57 | LoopbackNode(double period)
58 | : counter_(0), period_(period)
59 | {
60 | socket_ = socket(AF_INET, SOCK_DGRAM, 0);
61 | addr_.sin_family = AF_INET;
62 | addr_.sin_port = htons(10000);
63 | addr_.sin_addr.s_addr = inet_addr ("127.0.0.1");
64 |
65 | bind(socket_, (struct sockaddr *)&addr_, sizeof(addr_));
66 | }
67 | ~LoopbackNode()
68 | {
69 | close(socket_);
70 | }
71 | /**
72 | * @param timeout Timeout for reciving a packet [s]
73 | */
74 | bool update(double timeout=0.06)
75 | {
76 | fd_set fds;
77 | timeval time;
78 |
79 | // Record called time
80 | time_old_ = time_now_;
81 | time_now_ = ros::Time::now();
82 |
83 | FD_ZERO (&fds);
84 | FD_SET (socket_, &fds);
85 |
86 | time.tv_sec = 0;
87 | time.tv_usec = timeout * 1000;
88 |
89 | int r = select (socket_ + 1, &fds, NULL, NULL, &time);
90 | if (r < 0)
91 | {
92 | ROS_ERROR ("select error: %s", strerror(errno));
93 | ros::shutdown();
94 | }
95 | if (r > 0 && FD_ISSET (socket_, &fds))
96 | {
97 | struct sockaddr_in recv_addr;
98 | socklen_t len;
99 |
100 | int size = recvfrom (socket_,
101 | &recv_buff_, sizeof (recv_buff_),
102 | 0, (struct sockaddr *)&recv_addr, &len);
103 | ROS_INFO("recv from: %s, size=%d", inet_ntoa(recv_addr.sin_addr), size);
104 | counter_ ++;
105 | // print recv packet
106 | print_mxt_packet(recv_buff_);
107 |
108 | // loopback
109 | send_buff_.Command = MXT_CMD_MOVE;
110 | send_buff_.SendType = MXT_TYP_JOINT;
111 | send_buff_.RecvType = MXT_TYP_JOINT;
112 | send_buff_.RecvType1 = MXT_TYP_FJOINT;
113 | send_buff_.RecvType2 = MXT_TYP_FB_JOINT;
114 | send_buff_.RecvType3 = MXT_TYP_FBKCUR;
115 |
116 | send_buff_.dat.jnt.j1 = recv_buff_.dat.jnt.j1;
117 | send_buff_.dat.jnt.j2 = recv_buff_.dat.jnt.j2;
118 | send_buff_.dat.jnt.j3 = recv_buff_.dat.jnt.j3;
119 | send_buff_.dat.jnt.j4 = recv_buff_.dat.jnt.j4;
120 | send_buff_.dat.jnt.j5 = recv_buff_.dat.jnt.j5;
121 | send_buff_.dat.jnt.j6 = recv_buff_.dat.jnt.j6;
122 | send_buff_.dat.jnt.j7 = recv_buff_.dat.jnt.j7;
123 | send_buff_.dat.jnt.j8 = recv_buff_.dat.jnt.j8;
124 |
125 | size = sendto (socket_,
126 | (char *) &send_buff_, sizeof (send_buff_),
127 | 0, (struct sockaddr *) &recv_addr, sizeof (recv_addr));
128 | if (size != sizeof (send_buff_))
129 | {
130 | ROS_WARN ("Failed to send packet.");
131 | }
132 | }
133 | }
134 | void print_mxt_packet(MXTCMD& mxt)
135 | {
136 | ROS_INFO("mxt.Command: %d", mxt.Command);
137 | ROS_INFO("mxt.SendType: %d", mxt.SendType);
138 | ROS_INFO("mxt.RecvType: %d", mxt.RecvType);
139 | ROS_INFO("mxt.RecvType1: %d", mxt.RecvType1);
140 | ROS_INFO("mxt.RecvType2: %d", mxt.RecvType2);
141 | ROS_INFO("mxt.RecvType3: %d", mxt.RecvType3);
142 | if (mxt.RecvType == MXT_TYP_JOINT)
143 | {
144 | ROS_INFO("mxt.dat.jnt: % 4.3f % 4.3f % 4.3f % 4.3f % 4.3f % 4.3f % 4.3f % 4.3f",
145 | mxt.dat.jnt.j1,
146 | mxt.dat.jnt.j2,
147 | mxt.dat.jnt.j3,
148 | mxt.dat.jnt.j4,
149 | mxt.dat.jnt.j5,
150 | mxt.dat.jnt.j6,
151 | mxt.dat.jnt.j7,
152 | mxt.dat.jnt.j8);
153 | }
154 | else
155 | {
156 | ROS_ERROR("Invalid mxt.RecvType");
157 | }
158 | }
159 | void diagnose(diagnostic_updater::DiagnosticStatusWrapper &stat)
160 | {
161 | stat.add ("Counter", counter_);
162 |
163 | double diff = (time_now_ - time_old_).toSec();
164 | // Check over-run
165 | if (diff > period_ * 1.2)
166 | {
167 | stat.summary(diagnostic_msgs::DiagnosticStatus::WARN,
168 | "Periodic time exceeds 120%");
169 | }
170 | else
171 | {
172 | stat.summary(diagnostic_msgs::DiagnosticStatus::OK,
173 | "Periodic time is normal");
174 | }
175 | stat.add ("Period", diff);
176 | }
177 | };
178 |
179 | void loop_diagnostic(diagnostic_updater::DiagnosticStatusWrapper &stat)
180 | {
181 | double time_dif = (g_time_now - g_time_old).toSec();
182 | stat.summary(diagnostic_msgs::DiagnosticStatus::OK, "Periodic time is normal");
183 | stat.add ("Period", time_dif);
184 | }
185 |
186 | /**
187 | * @brief Main function
188 | */
189 | int main (int argc, char **argv)
190 | {
191 | // init ROS node
192 | ros::init (argc, argv, "melfa_loopback");
193 | ros::NodeHandle nh;
194 | // Parameters
195 | bool realtime;
196 | ros::param::param("~realtime", realtime, false);
197 | double period;
198 | ros::param::param("~period", period, 0.0071);
199 |
200 | // Loopback node
201 | LoopbackNode node(period);
202 |
203 | // Diagnostics
204 | diagnostic_updater::Updater updater;
205 | updater.setHardwareID("melfa_loopback");
206 | updater.add("diagnose", &node, &LoopbackNode::diagnose);
207 |
208 | // Setup realtime scheduler
209 | if (realtime)
210 | {
211 | struct sched_param param;
212 | memset(¶m, 0, sizeof(param));
213 | int policy = SCHED_FIFO;
214 | param.sched_priority = sched_get_priority_max(policy);
215 |
216 | ROS_WARN("Setting up Realtime scheduler");
217 | if (sched_setscheduler(0, policy, ¶m) < 0) {
218 | ROS_ERROR("sched_setscheduler: %s", strerror(errno));
219 | ROS_ERROR("Please check you are using PREEMPT_RT kernel and set /etc/security/limits.conf");
220 | exit (1);
221 | }
222 | if (mlockall(MCL_CURRENT|MCL_FUTURE) < 0)
223 | {
224 | ROS_ERROR("mlockall: %s", strerror(errno));
225 | exit (1);
226 | }
227 | }
228 | // Set spin rate frequency
229 | ros::Rate rate (1.0 / period);
230 | while (ros::ok ())
231 | {
232 | // Recieve and response
233 | node.update();
234 | // Update diagnostics
235 | updater.update();
236 | // Sleep for next cycle
237 | rate.sleep();
238 | }
239 | return 0;
240 | }
241 |
--------------------------------------------------------------------------------
/rv7fl_moveit_config/launch/moveit.rviz:
--------------------------------------------------------------------------------
1 | Panels:
2 | - Class: rviz/Displays
3 | Help Height: 84
4 | Name: Displays
5 | Property Tree Widget:
6 | Expanded:
7 | - /MotionPlanning1
8 | - /MotionPlanning1/Planned Path1
9 | Splitter Ratio: 0.742560029
10 | Tree Height: 478
11 | - Class: rviz/Help
12 | Name: Help
13 | - Class: rviz/Views
14 | Expanded:
15 | - /Current View1
16 | Name: Views
17 | Splitter Ratio: 0.5
18 | Visualization Manager:
19 | Class: ""
20 | Displays:
21 | - Alpha: 0.5
22 | Cell Size: 1
23 | Class: rviz/Grid
24 | Color: 160; 160; 164
25 | Enabled: true
26 | Line Style:
27 | Line Width: 0.0299999993
28 | Value: Lines
29 | Name: Grid
30 | Normal Cell Count: 0
31 | Offset:
32 | X: 0
33 | Y: 0
34 | Z: 0
35 | Plane: XY
36 | Plane Cell Count: 10
37 | Reference Frame:
38 | Value: true
39 | - Class: moveit_rviz_plugin/MotionPlanning
40 | Enabled: true
41 | Move Group Namespace: ""
42 | MoveIt_Goal_Tolerance: 0
43 | MoveIt_Planning_Attempts: 10
44 | MoveIt_Planning_Time: 5
45 | MoveIt_Use_Constraint_Aware_IK: true
46 | MoveIt_Warehouse_Host: 127.0.0.1
47 | MoveIt_Warehouse_Port: 33829
48 | MoveIt_Workspace:
49 | Center:
50 | X: 0
51 | Y: 0
52 | Z: 0
53 | Size:
54 | X: 2
55 | Y: 2
56 | Z: 2
57 | Name: MotionPlanning
58 | Planned Path:
59 | Color Enabled: false
60 | Interrupt Display: false
61 | Links:
62 | All Links Enabled: true
63 | Expand Joint Details: false
64 | Expand Link Details: false
65 | Expand Tree: false
66 | Link Tree Style: Links in Alphabetic Order
67 | base_link:
68 | Alpha: 1
69 | Show Axes: false
70 | Show Trail: false
71 | Value: true
72 | link1:
73 | Alpha: 1
74 | Show Axes: false
75 | Show Trail: false
76 | Value: true
77 | link2:
78 | Alpha: 1
79 | Show Axes: false
80 | Show Trail: false
81 | Value: true
82 | link3:
83 | Alpha: 1
84 | Show Axes: false
85 | Show Trail: false
86 | Value: true
87 | link4:
88 | Alpha: 1
89 | Show Axes: false
90 | Show Trail: false
91 | Value: true
92 | link5:
93 | Alpha: 1
94 | Show Axes: false
95 | Show Trail: false
96 | Value: true
97 | link6:
98 | Alpha: 1
99 | Show Axes: false
100 | Show Trail: false
101 | Loop Animation: false
102 | Robot Alpha: 0.5
103 | Robot Color: 150; 50; 150
104 | Show Robot Collision: false
105 | Show Robot Visual: true
106 | Show Trail: false
107 | State Display Time: 0.05 s
108 | Trail Step Size: 1
109 | Trajectory Topic: move_group/display_planned_path
110 | Planning Metrics:
111 | Payload: 1
112 | Show Joint Torques: false
113 | Show Manipulability: false
114 | Show Manipulability Index: false
115 | Show Weight Limit: false
116 | TextHeight: 0.0799999982
117 | Planning Request:
118 | Colliding Link Color: 255; 0; 0
119 | Goal State Alpha: 1
120 | Goal State Color: 250; 128; 0
121 | Interactive Marker Size: 0
122 | Joint Violation Color: 255; 0; 255
123 | Planning Group: arm
124 | Query Goal State: true
125 | Query Start State: false
126 | Show Workspace: false
127 | Start State Alpha: 1
128 | Start State Color: 0; 255; 0
129 | Planning Scene Topic: move_group/monitored_planning_scene
130 | Robot Description: robot_description
131 | Scene Geometry:
132 | Scene Alpha: 1
133 | Scene Color: 50; 230; 50
134 | Scene Display Time: 0.200000003
135 | Show Scene Geometry: true
136 | Voxel Coloring: Z-Axis
137 | Voxel Rendering: Occupied Voxels
138 | Scene Robot:
139 | Attached Body Color: 150; 50; 150
140 | Links:
141 | All Links Enabled: true
142 | Expand Joint Details: false
143 | Expand Link Details: false
144 | Expand Tree: false
145 | Link Tree Style: Links in Alphabetic Order
146 | base_link:
147 | Alpha: 1
148 | Show Axes: false
149 | Show Trail: false
150 | Value: true
151 | link1:
152 | Alpha: 1
153 | Show Axes: false
154 | Show Trail: false
155 | Value: true
156 | link2:
157 | Alpha: 1
158 | Show Axes: false
159 | Show Trail: false
160 | Value: true
161 | link3:
162 | Alpha: 1
163 | Show Axes: false
164 | Show Trail: false
165 | Value: true
166 | link4:
167 | Alpha: 1
168 | Show Axes: false
169 | Show Trail: false
170 | Value: true
171 | link5:
172 | Alpha: 1
173 | Show Axes: false
174 | Show Trail: false
175 | Value: true
176 | link6:
177 | Alpha: 1
178 | Show Axes: false
179 | Show Trail: false
180 | Robot Alpha: 0.5
181 | Show Robot Collision: false
182 | Show Robot Visual: true
183 | Value: true
184 | Enabled: true
185 | Global Options:
186 | Background Color: 48; 48; 48
187 | Default Light: true
188 | Fixed Frame: base_link
189 | Frame Rate: 30
190 | Name: root
191 | Tools:
192 | - Class: rviz/Interact
193 | Hide Inactive Objects: true
194 | - Class: rviz/MoveCamera
195 | - Class: rviz/Select
196 | Value: true
197 | Views:
198 | Current:
199 | Class: rviz/XYOrbit
200 | Distance: 2.48828292
201 | Enable Stereo Rendering:
202 | Stereo Eye Separation: 0.0599999987
203 | Stereo Focal Distance: 1
204 | Swap Stereo Eyes: false
205 | Value: false
206 | Focal Point:
207 | X: 0.193632841
208 | Y: -0.0525687188
209 | Z: -2.53319172e-07
210 | Focal Shape Fixed Size: true
211 | Focal Shape Size: 0.0500000007
212 | Invert Z Axis: false
213 | Name: Current View
214 | Near Clip Distance: 0.00999999978
215 | Pitch: 0.499796987
216 | Target Frame: base_link
217 | Value: XYOrbit (rviz)
218 | Yaw: 0.21177721
219 | Saved: ~
220 | Window Geometry:
221 | Displays:
222 | collapsed: false
223 | Height: 1337
224 | Help:
225 | collapsed: false
226 | Hide Left Dock: false
227 | Hide Right Dock: false
228 | MotionPlanning:
229 | collapsed: false
230 | MotionPlanning - Slider:
231 | collapsed: false
232 | QMainWindow State: 000000ff00000000fd00000001000000000000037f000004e3fc0200000007fb000000100044006900730070006c006100790073010000003100000282000000e600fffffffb0000000800480065006c00700000000342000000bb0000007f00fffffffb0000000a0056006900650077007300000003b0000000b0000000c500fffffffb0000000c00430061006d00650072006100000002ff000001610000000000000000fb0000001e004d006f00740069006f006e00200050006c0061006e006e0069006e00670100000374000001890000000000000000fb0000002e004d006f00740069006f006e0050006c0061006e006e0069006e00670020002d00200053006c00690064006500720000000000ffffffff0000005600fffffffb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e006701000002bb000002590000024c00ffffff00000537000004e300000001000000020000000100000002fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
233 | Views:
234 | collapsed: false
235 | Width: 2238
236 | X: 1469
237 | Y: 79
238 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/launch/moveit.rviz:
--------------------------------------------------------------------------------
1 | Panels:
2 | - Class: rviz/Displays
3 | Help Height: 84
4 | Name: Displays
5 | Property Tree Widget:
6 | Expanded:
7 | - /Global Options1
8 | - /Status1
9 | - /MotionPlanning1
10 | Splitter Ratio: 0.742560029
11 | Tree Height: 547
12 | - Class: rviz/Help
13 | Name: Help
14 | - Class: rviz/Views
15 | Expanded:
16 | - /Current View1
17 | Name: Views
18 | Splitter Ratio: 0.5
19 | Visualization Manager:
20 | Class: ""
21 | Displays:
22 | - Alpha: 0.5
23 | Cell Size: 1
24 | Class: rviz/Grid
25 | Color: 160; 160; 164
26 | Enabled: true
27 | Line Style:
28 | Line Width: 0.0299999993
29 | Value: Lines
30 | Name: Grid
31 | Normal Cell Count: 0
32 | Offset:
33 | X: 0
34 | Y: 0
35 | Z: 0
36 | Plane: XY
37 | Plane Cell Count: 10
38 | Reference Frame:
39 | Value: true
40 | - Acceleration_Scaling_Factor: 1
41 | Class: moveit_rviz_plugin/MotionPlanning
42 | Enabled: true
43 | Move Group Namespace: ""
44 | MoveIt_Allow_Approximate_IK: false
45 | MoveIt_Allow_External_Program: false
46 | MoveIt_Allow_Replanning: false
47 | MoveIt_Allow_Sensor_Positioning: false
48 | MoveIt_Goal_Tolerance: 0
49 | MoveIt_Planning_Attempts: 10
50 | MoveIt_Planning_Time: 5
51 | MoveIt_Use_Constraint_Aware_IK: true
52 | MoveIt_Warehouse_Host: 127.0.0.1
53 | MoveIt_Warehouse_Port: 33829
54 | MoveIt_Workspace:
55 | Center:
56 | X: 0
57 | Y: 0
58 | Z: 0
59 | Size:
60 | X: 2
61 | Y: 2
62 | Z: 2
63 | Name: MotionPlanning
64 | Planned Path:
65 | Color Enabled: false
66 | Interrupt Display: false
67 | Links:
68 | All Links Enabled: true
69 | Expand Joint Details: false
70 | Expand Link Details: false
71 | Expand Tree: false
72 | Link Tree Style: Links in Alphabetic Order
73 | base_link:
74 | Alpha: 1
75 | Show Axes: false
76 | Show Trail: false
77 | link0:
78 | Alpha: 1
79 | Show Axes: false
80 | Show Trail: false
81 | Value: true
82 | link1:
83 | Alpha: 1
84 | Show Axes: false
85 | Show Trail: false
86 | Value: true
87 | link2:
88 | Alpha: 1
89 | Show Axes: false
90 | Show Trail: false
91 | Value: true
92 | link3:
93 | Alpha: 1
94 | Show Axes: false
95 | Show Trail: false
96 | Value: true
97 | link4:
98 | Alpha: 1
99 | Show Axes: false
100 | Show Trail: false
101 | Value: true
102 | link5:
103 | Alpha: 1
104 | Show Axes: false
105 | Show Trail: false
106 | Value: true
107 | link6:
108 | Alpha: 1
109 | Show Axes: false
110 | Show Trail: false
111 | Value: true
112 | Loop Animation: true
113 | Robot Alpha: 0.5
114 | Robot Color: 150; 50; 150
115 | Show Robot Collision: false
116 | Show Robot Visual: true
117 | Show Trail: false
118 | State Display Time: 0.05 s
119 | Trail Step Size: 1
120 | Trajectory Topic: move_group/display_planned_path
121 | Planning Metrics:
122 | Payload: 1
123 | Show Joint Torques: false
124 | Show Manipulability: false
125 | Show Manipulability Index: false
126 | Show Weight Limit: false
127 | TextHeight: 0.0799999982
128 | Planning Request:
129 | Colliding Link Color: 255; 0; 0
130 | Goal State Alpha: 1
131 | Goal State Color: 250; 128; 0
132 | Interactive Marker Size: 0
133 | Joint Violation Color: 255; 0; 255
134 | Planning Group: manipulator
135 | Query Goal State: true
136 | Query Start State: false
137 | Show Workspace: false
138 | Start State Alpha: 1
139 | Start State Color: 0; 255; 0
140 | Planning Scene Topic: move_group/monitored_planning_scene
141 | Robot Description: robot_description
142 | Scene Geometry:
143 | Scene Alpha: 1
144 | Scene Color: 50; 230; 50
145 | Scene Display Time: 0.200000003
146 | Show Scene Geometry: true
147 | Voxel Coloring: Z-Axis
148 | Voxel Rendering: Occupied Voxels
149 | Scene Robot:
150 | Attached Body Color: 150; 50; 150
151 | Links:
152 | All Links Enabled: true
153 | Expand Joint Details: false
154 | Expand Link Details: false
155 | Expand Tree: false
156 | Link Tree Style: Links in Alphabetic Order
157 | base_link:
158 | Alpha: 1
159 | Show Axes: false
160 | Show Trail: false
161 | link0:
162 | Alpha: 1
163 | Show Axes: false
164 | Show Trail: false
165 | Value: true
166 | link1:
167 | Alpha: 1
168 | Show Axes: false
169 | Show Trail: false
170 | Value: true
171 | link2:
172 | Alpha: 1
173 | Show Axes: false
174 | Show Trail: false
175 | Value: true
176 | link3:
177 | Alpha: 1
178 | Show Axes: false
179 | Show Trail: false
180 | Value: true
181 | link4:
182 | Alpha: 1
183 | Show Axes: false
184 | Show Trail: false
185 | Value: true
186 | link5:
187 | Alpha: 1
188 | Show Axes: false
189 | Show Trail: false
190 | Value: true
191 | link6:
192 | Alpha: 1
193 | Show Axes: false
194 | Show Trail: false
195 | Value: true
196 | Robot Alpha: 0.5
197 | Show Robot Collision: false
198 | Show Robot Visual: true
199 | Value: true
200 | Velocity_Scaling_Factor: 1
201 | Enabled: true
202 | Global Options:
203 | Background Color: 48; 48; 48
204 | Default Light: true
205 | Fixed Frame: base_link
206 | Frame Rate: 30
207 | Name: root
208 | Tools:
209 | - Class: rviz/Interact
210 | Hide Inactive Objects: true
211 | - Class: rviz/MoveCamera
212 | - Class: rviz/Select
213 | Value: true
214 | Views:
215 | Current:
216 | Class: rviz/XYOrbit
217 | Distance: 2.99650002
218 | Enable Stereo Rendering:
219 | Stereo Eye Separation: 0.0599999987
220 | Stereo Focal Distance: 1
221 | Swap Stereo Eyes: false
222 | Value: false
223 | Focal Point:
224 | X: 0.113567002
225 | Y: 0.105920002
226 | Z: 2.23518001e-07
227 | Focal Shape Fixed Size: true
228 | Focal Shape Size: 0.0500000007
229 | Invert Z Axis: false
230 | Name: Current View
231 | Near Clip Distance: 0.00999999978
232 | Pitch: 0.424797058
233 | Target Frame: world
234 | Value: XYOrbit (rviz)
235 | Yaw: 0.711778104
236 | Saved: ~
237 | Window Geometry:
238 | Displays:
239 | collapsed: false
240 | Height: 1337
241 | Help:
242 | collapsed: false
243 | Hide Left Dock: false
244 | Hide Right Dock: false
245 | MotionPlanning:
246 | collapsed: false
247 | MotionPlanning - Trajectory Slider:
248 | collapsed: false
249 | QMainWindow State: 000000ff00000000fd000000010000000000000363000004c5fc0200000007fb000000100044006900730070006c0061007900730100000050000002c5000000e400fffffffb0000000800480065006c00700000000342000000bb0000007e00fffffffb0000000a0056006900650077007300000003b0000000b0000000c200fffffffb0000000c00430061006d00650072006100000002ff000001610000000000000000fb0000001e004d006f00740069006f006e00200050006c0061006e006e0069006e00670100000374000001890000000000000000fb00000044004d006f00740069006f006e0050006c0061006e006e0069006e00670020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000005500fffffffb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e0067010000031d000001f8000001d900ffffff000003b9000004c500000001000000020000000100000002fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
250 | Views:
251 | collapsed: false
252 | Width: 1828
253 | X: 459
254 | Y: 33
255 |
--------------------------------------------------------------------------------
/rv4fl_moveit_config/config/ompl_planning.yaml:
--------------------------------------------------------------------------------
1 | planner_configs:
2 | SBL:
3 | type: geometric::SBL
4 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
5 | EST:
6 | type: geometric::EST
7 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0 setup()
8 | goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05
9 | LBKPIECE:
10 | type: geometric::LBKPIECE
11 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
12 | border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9
13 | min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5
14 | BKPIECE:
15 | type: geometric::BKPIECE
16 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
17 | border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9
18 | failed_expansion_score_factor: 0.5 # When extending motion fails, scale score by factor. default: 0.5
19 | min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5
20 | KPIECE:
21 | type: geometric::KPIECE
22 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
23 | goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05
24 | border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 (0.0,1.]
25 | failed_expansion_score_factor: 0.5 # When extending motion fails, scale score by factor. default: 0.5
26 | min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5
27 | RRT:
28 | type: geometric::RRT
29 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
30 | goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05
31 | RRTConnect:
32 | type: geometric::RRTConnect
33 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
34 | RRTstar:
35 | type: geometric::RRTstar
36 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
37 | goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05
38 | delay_collision_checking: 1 # Stop collision checking as soon as C-free parent found. default 1
39 | TRRT:
40 | type: geometric::TRRT
41 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
42 | goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05
43 | max_states_failed: 10 # when to start increasing temp. default: 10
44 | temp_change_factor: 2.0 # how much to increase or decrease temp. default: 2.0
45 | min_temperature: 10e-10 # lower limit of temp change. default: 10e-10
46 | init_temperature: 10e-6 # initial temperature. default: 10e-6
47 | frountier_threshold: 0.0 # dist new state to nearest neighbor to disqualify as frontier. default: 0.0 set in setup()
48 | frountierNodeRatio: 0.1 # 1/10, or 1 nonfrontier for every 10 frontier. default: 0.1
49 | k_constant: 0.0 # value used to normalize expresssion. default: 0.0 set in setup()
50 | PRM:
51 | type: geometric::PRM
52 | max_nearest_neighbors: 10 # use k nearest neighbors. default: 10
53 | PRMstar:
54 | type: geometric::PRMstar
55 | FMT:
56 | type: geometric::FMT
57 | num_samples: 1000 # number of states that the planner should sample. default: 1000
58 | radius_multiplier: 1.1 # multiplier used for the nearest neighbors search radius. default: 1.1
59 | nearest_k: 1 # use Knearest strategy. default: 1
60 | cache_cc: 1 # use collision checking cache. default: 1
61 | heuristics: 0 # activate cost to go heuristics. default: 0
62 | extended_fmt: 1 # activate the extended FMT*: adding new samples if planner does not finish successfully. default: 1
63 | BFMT:
64 | type: geometric::BFMT
65 | num_samples: 1000 # number of states that the planner should sample. default: 1000
66 | radius_multiplier: 1.0 # multiplier used for the nearest neighbors search radius. default: 1.0
67 | nearest_k: 1 # use the Knearest strategy. default: 1
68 | balanced: 0 # exploration strategy: balanced true expands one tree every iteration. False will select the tree with lowest maximum cost to go. default: 1
69 | optimality: 1 # termination strategy: optimality true finishes when the best possible path is found. Otherwise, the algorithm will finish when the first feasible path is found. default: 1
70 | heuristics: 1 # activates cost to go heuristics. default: 1
71 | cache_cc: 1 # use the collision checking cache. default: 1
72 | extended_fmt: 1 # Activates the extended FMT*: adding new samples if planner does not finish successfully. default: 1
73 | PDST:
74 | type: geometric::PDST
75 | STRIDE:
76 | type: geometric::STRIDE
77 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
78 | goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05
79 | use_projected_distance: 0 # whether nearest neighbors are computed based on distances in a projection of the state rather distances in the state space itself. default: 0
80 | degree: 16 # desired degree of a node in the Geometric Near-neightbor Access Tree (GNAT). default: 16
81 | max_degree: 18 # max degree of a node in the GNAT. default: 12
82 | min_degree: 12 # min degree of a node in the GNAT. default: 12
83 | max_pts_per_leaf: 6 # max points per leaf in the GNAT. default: 6
84 | estimated_dimension: 0.0 # estimated dimension of the free space. default: 0.0
85 | min_valid_path_fraction: 0.2 # Accept partially valid moves above fraction. default: 0.2
86 | BiTRRT:
87 | type: geometric::BiTRRT
88 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
89 | temp_change_factor: 0.1 # how much to increase or decrease temp. default: 0.1
90 | init_temperature: 100 # initial temperature. default: 100
91 | frountier_threshold: 0.0 # dist new state to nearest neighbor to disqualify as frontier. default: 0.0 set in setup()
92 | frountier_node_ratio: 0.1 # 1/10, or 1 nonfrontier for every 10 frontier. default: 0.1
93 | cost_threshold: 1e300 # the cost threshold. Any motion cost that is not better will not be expanded. default: inf
94 | LBTRRT:
95 | type: geometric::LBTRRT
96 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
97 | goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05
98 | epsilon: 0.4 # optimality approximation factor. default: 0.4
99 | BiEST:
100 | type: geometric::BiEST
101 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
102 | ProjEST:
103 | type: geometric::ProjEST
104 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
105 | goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05
106 | LazyPRM:
107 | type: geometric::LazyPRM
108 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
109 | LazyPRMstar:
110 | type: geometric::LazyPRMstar
111 | SPARS:
112 | type: geometric::SPARS
113 | stretch_factor: 3.0 # roadmap spanner stretch factor. multiplicative upper bound on path quality. It does not make sense to make this parameter more than 3. default: 3.0
114 | sparse_delta_fraction: 0.25 # delta fraction for connection distance. This value represents the visibility range of sparse samples. default: 0.25
115 | dense_delta_fraction: 0.001 # delta fraction for interface detection. default: 0.001
116 | max_failures: 1000 # maximum consecutive failure limit. default: 1000
117 | SPARStwo:
118 | type: geometric::SPARStwo
119 | stretch_factor: 3.0 # roadmap spanner stretch factor. multiplicative upper bound on path quality. It does not make sense to make this parameter more than 3. default: 3.0
120 | sparse_delta_fraction: 0.25 # delta fraction for connection distance. This value represents the visibility range of sparse samples. default: 0.25
121 | dense_delta_fraction: 0.001 # delta fraction for interface detection. default: 0.001
122 | max_failures: 5000 # maximum consecutive failure limit. default: 5000
123 | manipulator:
124 | default_planner_config: RRTConnect
125 | planner_configs:
126 | - SBL
127 | - EST
128 | - LBKPIECE
129 | - BKPIECE
130 | - KPIECE
131 | - RRT
132 | - RRTConnect
133 | - RRTstar
134 | - TRRT
135 | - PRM
136 | - PRMstar
137 | - FMT
138 | - BFMT
139 | - PDST
140 | - STRIDE
141 | - BiTRRT
142 | - LBTRRT
143 | - BiEST
144 | - ProjEST
145 | - LazyPRM
146 | - LazyPRMstar
147 | - SPARS
148 | - SPARStwo
149 | projection_evaluator: joints(joint1,joint2)
150 | longest_valid_segment_fraction: 0.005
--------------------------------------------------------------------------------
/rv7fl_moveit_config/config/ompl_planning.yaml:
--------------------------------------------------------------------------------
1 | planner_configs:
2 | SBLkConfigDefault:
3 | type: geometric::SBL
4 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
5 | ESTkConfigDefault:
6 | type: geometric::EST
7 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0 setup()
8 | goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05
9 | LBKPIECEkConfigDefault:
10 | type: geometric::LBKPIECE
11 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
12 | border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9
13 | min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5
14 | BKPIECEkConfigDefault:
15 | type: geometric::BKPIECE
16 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
17 | border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9
18 | failed_expansion_score_factor: 0.5 # When extending motion fails, scale score by factor. default: 0.5
19 | min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5
20 | KPIECEkConfigDefault:
21 | type: geometric::KPIECE
22 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
23 | goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05
24 | border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 (0.0,1.]
25 | failed_expansion_score_factor: 0.5 # When extending motion fails, scale score by factor. default: 0.5
26 | min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5
27 | RRTkConfigDefault:
28 | type: geometric::RRT
29 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
30 | goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05
31 | RRTConnectkConfigDefault:
32 | type: geometric::RRTConnect
33 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
34 | RRTstarkConfigDefault:
35 | type: geometric::RRTstar
36 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
37 | goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05
38 | delay_collision_checking: 1 # Stop collision checking as soon as C-free parent found. default 1
39 | TRRTkConfigDefault:
40 | type: geometric::TRRT
41 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
42 | goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05
43 | max_states_failed: 10 # when to start increasing temp. default: 10
44 | temp_change_factor: 2.0 # how much to increase or decrease temp. default: 2.0
45 | min_temperature: 10e-10 # lower limit of temp change. default: 10e-10
46 | init_temperature: 10e-6 # initial temperature. default: 10e-6
47 | frountier_threshold: 0.0 # dist new state to nearest neighbor to disqualify as frontier. default: 0.0 set in setup()
48 | frountierNodeRatio: 0.1 # 1/10, or 1 nonfrontier for every 10 frontier. default: 0.1
49 | k_constant: 0.0 # value used to normalize expresssion. default: 0.0 set in setup()
50 | PRMkConfigDefault:
51 | type: geometric::PRM
52 | max_nearest_neighbors: 10 # use k nearest neighbors. default: 10
53 | PRMstarkConfigDefault:
54 | type: geometric::PRMstar
55 | FMTkConfigDefault:
56 | type: geometric::FMT
57 | num_samples: 1000 # number of states that the planner should sample. default: 1000
58 | radius_multiplier: 1.1 # multiplier used for the nearest neighbors search radius. default: 1.1
59 | nearest_k: 1 # use Knearest strategy. default: 1
60 | cache_cc: 1 # use collision checking cache. default: 1
61 | heuristics: 0 # activate cost to go heuristics. default: 0
62 | extended_fmt: 1 # activate the extended FMT*: adding new samples if planner does not finish successfully. default: 1
63 | BFMTkConfigDefault:
64 | type: geometric::BFMT
65 | num_samples: 1000 # number of states that the planner should sample. default: 1000
66 | radius_multiplier: 1.0 # multiplier used for the nearest neighbors search radius. default: 1.0
67 | nearest_k: 1 # use the Knearest strategy. default: 1
68 | balanced: 0 # exploration strategy: balanced true expands one tree every iteration. False will select the tree with lowest maximum cost to go. default: 1
69 | optimality: 1 # termination strategy: optimality true finishes when the best possible path is found. Otherwise, the algorithm will finish when the first feasible path is found. default: 1
70 | heuristics: 1 # activates cost to go heuristics. default: 1
71 | cache_cc: 1 # use the collision checking cache. default: 1
72 | extended_fmt: 1 # Activates the extended FMT*: adding new samples if planner does not finish successfully. default: 1
73 | PDSTkConfigDefault:
74 | type: geometric::PDST
75 | STRIDEkConfigDefault:
76 | type: geometric::STRIDE
77 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
78 | goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05
79 | use_projected_distance: 0 # whether nearest neighbors are computed based on distances in a projection of the state rather distances in the state space itself. default: 0
80 | degree: 16 # desired degree of a node in the Geometric Near-neightbor Access Tree (GNAT). default: 16
81 | max_degree: 18 # max degree of a node in the GNAT. default: 12
82 | min_degree: 12 # min degree of a node in the GNAT. default: 12
83 | max_pts_per_leaf: 6 # max points per leaf in the GNAT. default: 6
84 | estimated_dimension: 0.0 # estimated dimension of the free space. default: 0.0
85 | min_valid_path_fraction: 0.2 # Accept partially valid moves above fraction. default: 0.2
86 | BiTRRTkConfigDefault:
87 | type: geometric::BiTRRT
88 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
89 | temp_change_factor: 0.1 # how much to increase or decrease temp. default: 0.1
90 | init_temperature: 100 # initial temperature. default: 100
91 | frountier_threshold: 0.0 # dist new state to nearest neighbor to disqualify as frontier. default: 0.0 set in setup()
92 | frountier_node_ratio: 0.1 # 1/10, or 1 nonfrontier for every 10 frontier. default: 0.1
93 | cost_threshold: 1e300 # the cost threshold. Any motion cost that is not better will not be expanded. default: inf
94 | LBTRRTkConfigDefault:
95 | type: geometric::LBTRRT
96 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
97 | goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05
98 | epsilon: 0.4 # optimality approximation factor. default: 0.4
99 | BiESTkConfigDefault:
100 | type: geometric::BiEST
101 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
102 | ProjESTkConfigDefault:
103 | type: geometric::ProjEST
104 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
105 | goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05
106 | LazyPRMkConfigDefault:
107 | type: geometric::LazyPRM
108 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup()
109 | LazyPRMstarkConfigDefault:
110 | type: geometric::LazyPRMstar
111 | SPARSkConfigDefault:
112 | type: geometric::SPARS
113 | stretch_factor: 3.0 # roadmap spanner stretch factor. multiplicative upper bound on path quality. It does not make sense to make this parameter more than 3. default: 3.0
114 | sparse_delta_fraction: 0.25 # delta fraction for connection distance. This value represents the visibility range of sparse samples. default: 0.25
115 | dense_delta_fraction: 0.001 # delta fraction for interface detection. default: 0.001
116 | max_failures: 1000 # maximum consecutive failure limit. default: 1000
117 | SPARStwokConfigDefault:
118 | type: geometric::SPARStwo
119 | stretch_factor: 3.0 # roadmap spanner stretch factor. multiplicative upper bound on path quality. It does not make sense to make this parameter more than 3. default: 3.0
120 | sparse_delta_fraction: 0.25 # delta fraction for connection distance. This value represents the visibility range of sparse samples. default: 0.25
121 | dense_delta_fraction: 0.001 # delta fraction for interface detection. default: 0.001
122 | max_failures: 5000 # maximum consecutive failure limit. default: 5000
123 | arm:
124 | planner_configs:
125 | - SBLkConfigDefault
126 | - ESTkConfigDefault
127 | - LBKPIECEkConfigDefault
128 | - BKPIECEkConfigDefault
129 | - KPIECEkConfigDefault
130 | - RRTkConfigDefault
131 | - RRTConnectkConfigDefault
132 | - RRTstarkConfigDefault
133 | - TRRTkConfigDefault
134 | - PRMkConfigDefault
135 | - PRMstarkConfigDefault
136 | - FMTkConfigDefault
137 | - BFMTkConfigDefault
138 | - PDSTkConfigDefault
139 | - STRIDEkConfigDefault
140 | - BiTRRTkConfigDefault
141 | - LBTRRTkConfigDefault
142 | - BiESTkConfigDefault
143 | - ProjESTkConfigDefault
144 | - LazyPRMkConfigDefault
145 | - LazyPRMstarkConfigDefault
146 | - SPARSkConfigDefault
147 | - SPARStwokConfigDefault
148 | projection_evaluator: joints(joint1,joint2)
149 | longest_valid_segment_fraction: 0.005
--------------------------------------------------------------------------------
/melfa_description/urdf/rv4fl_yoods.yrdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
84 |
85 |
86 |
87 |
88 |
89 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
109 |
110 |
111 |
112 |
113 |
114 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
133 |
134 |
135 |
136 |
137 |
138 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
157 |
158 |
159 |
160 |
161 |
162 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
181 |
182 |
183 |
184 |
185 |
186 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
205 |
206 |
207 |
208 |
209 |
210 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
243 |
244 |
245 |
246 |
247 |
248 |
251 |
252 |
253 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright 2018 Tokyo Opensource Robotics Kyokai Association (TORK)
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/melfa_description/mesh/rv4fl/L6.stp:
--------------------------------------------------------------------------------
1 | ISO-10303-21;
2 | HEADER;
3 | FILE_DESCRIPTION(('STEP AP214'),'1');
4 | FILE_NAME('L6.stp','2018-11-09T00:32:12',(' '),(' '),'Spatial InterOp 3D',' ',' ');
5 | FILE_SCHEMA(('automotive_design'));
6 | ENDSEC;
7 | DATA;
8 | #1=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION(' ',(#10,#11,#12,#13,#14,#15,#16,#17),#6);
9 | #2=PRODUCT_DEFINITION_CONTEXT('',#18,'design');
10 | #3=APPLICATION_PROTOCOL_DEFINITION('INTERNATIONAL STANDARD','automotive_design',1994,#18);
11 | #4=PRODUCT_CATEGORY_RELATIONSHIP('NONE','NONE',#19,#20);
12 | #5=SHAPE_DEFINITION_REPRESENTATION(#21,#22);
13 | #6= (GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#25))GLOBAL_UNIT_ASSIGNED_CONTEXT((#27,#28,#29))REPRESENTATION_CONTEXT('NONE','WORKSPACE'));
14 | #10=STYLED_ITEM('',(#31),#32);
15 | #11=STYLED_ITEM('',(#33),#34);
16 | #12=STYLED_ITEM('',(#35),#36);
17 | #13=STYLED_ITEM('',(#37),#38);
18 | #14=STYLED_ITEM('',(#39),#40);
19 | #15=STYLED_ITEM('',(#41),#42);
20 | #16=STYLED_ITEM('',(#43),#44);
21 | #17=STYLED_ITEM('',(#45),#46);
22 | #18=APPLICATION_CONTEXT(' ');
23 | #19=PRODUCT_CATEGORY('part','NONE');
24 | #20=PRODUCT_RELATED_PRODUCT_CATEGORY('detail',' ',(#47));
25 | #21=PRODUCT_DEFINITION_SHAPE('NONE','NONE',#48);
26 | #22=ADVANCED_BREP_SHAPE_REPRESENTATION('1',(#46,#49),#6);
27 | #25=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.0E-008),#27,'','');
28 | #27= (CONVERSION_BASED_UNIT('METRE',#52)LENGTH_UNIT()NAMED_UNIT(#55));
29 | #28= (NAMED_UNIT(#57)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
30 | #29= (NAMED_UNIT(#57)SOLID_ANGLE_UNIT()SI_UNIT($,.STERADIAN.));
31 | #31=PRESENTATION_STYLE_ASSIGNMENT((#63));
32 | #32=ADVANCED_FACE('',(#64),#65,.T.);
33 | #33=PRESENTATION_STYLE_ASSIGNMENT((#66));
34 | #34=ADVANCED_FACE('',(#67),#68,.T.);
35 | #35=PRESENTATION_STYLE_ASSIGNMENT((#69));
36 | #36=ADVANCED_FACE('0:102',(#70),#71,.T.);
37 | #37=PRESENTATION_STYLE_ASSIGNMENT((#72));
38 | #38=ADVANCED_FACE('0:82',(#73,#74),#75,.F.);
39 | #39=PRESENTATION_STYLE_ASSIGNMENT((#76));
40 | #40=ADVANCED_FACE('0:48',(#77),#78,.T.);
41 | #41=PRESENTATION_STYLE_ASSIGNMENT((#79));
42 | #42=ADVANCED_FACE('0:54',(#80),#81,.T.);
43 | #43=PRESENTATION_STYLE_ASSIGNMENT((#82));
44 | #44=ADVANCED_FACE('0:85',(#83),#84,.F.);
45 | #45=PRESENTATION_STYLE_ASSIGNMENT((#85));
46 | #46=MANIFOLD_SOLID_BREP('1',#86);
47 | #47=PRODUCT('1','1','PART-1-DESC',(#87));
48 | #48=PRODUCT_DEFINITION('NONE','NONE',#88,#2);
49 | #49=AXIS2_PLACEMENT_3D('',#89,#90,#91);
50 | #52=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.0),#92);
51 | #55=DIMENSIONAL_EXPONENTS(1.0,0.0,0.0,0.0,0.0,0.0,0.0);
52 | #57=DIMENSIONAL_EXPONENTS(0.0,0.0,0.0,0.0,0.0,0.0,0.0);
53 | #63=SURFACE_STYLE_USAGE(.BOTH.,#93);
54 | #64=FACE_OUTER_BOUND('',#94,.T.);
55 | #65=CYLINDRICAL_SURFACE('',#95,0.0329999994438773);
56 | #66=SURFACE_STYLE_USAGE(.BOTH.,#96);
57 | #67=FACE_OUTER_BOUND('',#97,.T.);
58 | #68=CYLINDRICAL_SURFACE('',#98,0.019745942627448);
59 | #69=SURFACE_STYLE_USAGE(.BOTH.,#99);
60 | #70=FACE_OUTER_BOUND('',#100,.T.);
61 | #71=CYLINDRICAL_SURFACE('',#101,0.019745942627448);
62 | #72=SURFACE_STYLE_USAGE(.BOTH.,#102);
63 | #73=FACE_BOUND('',#103,.T.);
64 | #74=FACE_OUTER_BOUND('',#104,.T.);
65 | #75=PLANE('',#105);
66 | #76=SURFACE_STYLE_USAGE(.BOTH.,#106);
67 | #77=FACE_OUTER_BOUND('',#107,.T.);
68 | #78=CYLINDRICAL_SURFACE('',#108,0.0329999994438773);
69 | #79=SURFACE_STYLE_USAGE(.BOTH.,#109);
70 | #80=FACE_OUTER_BOUND('',#110,.T.);
71 | #81=PLANE('',#111);
72 | #82=SURFACE_STYLE_USAGE(.BOTH.,#112);
73 | #83=FACE_OUTER_BOUND('',#113,.T.);
74 | #84=PLANE('',#114);
75 | #85=SURFACE_STYLE_USAGE(.BOTH.,#115);
76 | #86=CLOSED_SHELL('',(#32,#34,#36,#38,#40,#42,#44));
77 | #87=PRODUCT_CONTEXT('',#18,'mechanical');
78 | #88=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ','NONE',#47,.NOT_KNOWN.);
79 | #89=CARTESIAN_POINT('',(0.0,0.0,0.0));
80 | #90=DIRECTION('',(0.0,0.0,1.0));
81 | #91=DIRECTION('',(1.0,0.0,0.0));
82 | #92= (NAMED_UNIT(#55)LENGTH_UNIT()SI_UNIT($,.METRE.));
83 | #93=SURFACE_SIDE_STYLE('',(#117));
84 | #94=EDGE_LOOP('',(#118,#119,#120,#121));
85 | #95=AXIS2_PLACEMENT_3D('',#122,#123,#124);
86 | #96=SURFACE_SIDE_STYLE('',(#125));
87 | #97=EDGE_LOOP('',(#126,#127,#128,#129));
88 | #98=AXIS2_PLACEMENT_3D('',#130,#131,#132);
89 | #99=SURFACE_SIDE_STYLE('',(#133));
90 | #100=EDGE_LOOP('',(#134,#135,#136,#137));
91 | #101=AXIS2_PLACEMENT_3D('',#138,#139,#140);
92 | #102=SURFACE_SIDE_STYLE('',(#141));
93 | #103=EDGE_LOOP('',(#142,#143));
94 | #104=EDGE_LOOP('',(#144,#145));
95 | #105=AXIS2_PLACEMENT_3D('',#146,#147,#148);
96 | #106=SURFACE_SIDE_STYLE('',(#149));
97 | #107=EDGE_LOOP('',(#150,#151,#152,#153));
98 | #108=AXIS2_PLACEMENT_3D('',#154,#155,#156);
99 | #109=SURFACE_SIDE_STYLE('',(#157));
100 | #110=EDGE_LOOP('',(#158,#159));
101 | #111=AXIS2_PLACEMENT_3D('',#160,#161,#162);
102 | #112=SURFACE_SIDE_STYLE('',(#163));
103 | #113=EDGE_LOOP('',(#164,#165));
104 | #114=AXIS2_PLACEMENT_3D('',#166,#167,#168);
105 | #115=SURFACE_SIDE_STYLE('',(#169));
106 | #117=SURFACE_STYLE_FILL_AREA(#170);
107 | #118=ORIENTED_EDGE('',*,*,#171,.F.);
108 | #119=ORIENTED_EDGE('',*,*,#172,.F.);
109 | #120=ORIENTED_EDGE('',*,*,#173,.F.);
110 | #121=ORIENTED_EDGE('',*,*,#174,.T.);
111 | #122=CARTESIAN_POINT('',(0.0499999998137355,-3.77308888126204E-010,1.09500002861023));
112 | #123=DIRECTION('',(0.0,-0.0,1.0));
113 | #124=DIRECTION('',(-1.0,0.0,0.0));
114 | #125=SURFACE_STYLE_FILL_AREA(#175);
115 | #126=ORIENTED_EDGE('',*,*,#176,.F.);
116 | #127=ORIENTED_EDGE('',*,*,#177,.F.);
117 | #128=ORIENTED_EDGE('',*,*,#178,.F.);
118 | #129=ORIENTED_EDGE('',*,*,#179,.T.);
119 | #130=CARTESIAN_POINT('',(0.0499999998137355,-3.77308888126204E-010,1.1139999628067));
120 | #131=DIRECTION('',(0.0,-0.0,1.0));
121 | #132=DIRECTION('',(1.0,0.0,-0.0));
122 | #133=SURFACE_STYLE_FILL_AREA(#180);
123 | #134=ORIENTED_EDGE('',*,*,#176,.T.);
124 | #135=ORIENTED_EDGE('',*,*,#181,.T.);
125 | #136=ORIENTED_EDGE('',*,*,#178,.T.);
126 | #137=ORIENTED_EDGE('',*,*,#182,.F.);
127 | #138=CARTESIAN_POINT('',(0.0499999998137355,-3.77308888126204E-010,1.1139999628067));
128 | #139=DIRECTION('',(0.0,-0.0,1.0));
129 | #140=DIRECTION('',(1.0,0.0,-0.0));
130 | #141=SURFACE_STYLE_FILL_AREA(#183);
131 | #142=ORIENTED_EDGE('',*,*,#179,.F.);
132 | #143=ORIENTED_EDGE('',*,*,#181,.F.);
133 | #144=ORIENTED_EDGE('',*,*,#184,.F.);
134 | #145=ORIENTED_EDGE('',*,*,#174,.F.);
135 | #146=CARTESIAN_POINT('',(0.0531442128665179,0.0141777212284688,1.1139999628067));
136 | #147=DIRECTION('',(0.0,0.0,-1.0));
137 | #148=DIRECTION('',(-1.0,0.0,0.0));
138 | #149=SURFACE_STYLE_FILL_AREA(#185);
139 | #150=ORIENTED_EDGE('',*,*,#171,.T.);
140 | #151=ORIENTED_EDGE('',*,*,#184,.T.);
141 | #152=ORIENTED_EDGE('',*,*,#173,.T.);
142 | #153=ORIENTED_EDGE('',*,*,#186,.F.);
143 | #154=CARTESIAN_POINT('',(0.0499999998137355,-3.77308888126204E-010,1.09500002861023));
144 | #155=DIRECTION('',(0.0,-0.0,1.0));
145 | #156=DIRECTION('',(-1.0,0.0,0.0));
146 | #157=SURFACE_STYLE_FILL_AREA(#187);
147 | #158=ORIENTED_EDGE('',*,*,#186,.T.);
148 | #159=ORIENTED_EDGE('',*,*,#172,.T.);
149 | #160=CARTESIAN_POINT('',(0.0531442128665179,0.0141777212284688,1.09500002861023));
150 | #161=DIRECTION('',(0.0,0.0,-1.0));
151 | #162=DIRECTION('',(-1.0,0.0,0.0));
152 | #163=SURFACE_STYLE_FILL_AREA(#188);
153 | #164=ORIENTED_EDGE('',*,*,#177,.T.);
154 | #165=ORIENTED_EDGE('',*,*,#182,.T.);
155 | #166=CARTESIAN_POINT('',(0.0531442128665179,0.0141777212284688,1.12000000476837));
156 | #167=DIRECTION('',(0.0,0.0,-1.0));
157 | #168=DIRECTION('',(-1.0,0.0,0.0));
158 | #169=SURFACE_STYLE_FILL_AREA(#189);
159 | #170=FILL_AREA_STYLE('',(#190));
160 | #171=EDGE_CURVE('',#191,#192,#193,.T.);
161 | #172=EDGE_CURVE('',#194,#191,#195,.T.);
162 | #173=EDGE_CURVE('',#196,#194,#197,.T.);
163 | #174=EDGE_CURVE('',#196,#192,#198,.T.);
164 | #175=FILL_AREA_STYLE('',(#199));
165 | #176=EDGE_CURVE('',#200,#201,#202,.T.);
166 | #177=EDGE_CURVE('0:106',#203,#200,#204,.F.);
167 | #178=EDGE_CURVE('',#205,#203,#206,.T.);
168 | #179=EDGE_CURVE('0:109',#205,#201,#207,.T.);
169 | #180=FILL_AREA_STYLE('',(#208));
170 | #181=EDGE_CURVE('',#201,#205,#209,.T.);
171 | #182=EDGE_CURVE('',#200,#203,#210,.F.);
172 | #183=FILL_AREA_STYLE('',(#211));
173 | #184=EDGE_CURVE('0:57',#192,#196,#212,.T.);
174 | #185=FILL_AREA_STYLE('',(#213));
175 | #186=EDGE_CURVE('0:60',#191,#194,#214,.T.);
176 | #187=FILL_AREA_STYLE('',(#215));
177 | #188=FILL_AREA_STYLE('',(#216));
178 | #189=FILL_AREA_STYLE('',(#217));
179 | #190=FILL_AREA_STYLE_COLOUR('',#218);
180 | #191=VERTEX_POINT('',#219);
181 | #192=VERTEX_POINT('',#220);
182 | #193=LINE('',#221,#222);
183 | #194=VERTEX_POINT('',#223);
184 | #195=CIRCLE('',#224,0.0329999994438773);
185 | #196=VERTEX_POINT('',#225);
186 | #197=LINE('',#226,#227);
187 | #198=CIRCLE('',#228,0.0329999994438773);
188 | #199=FILL_AREA_STYLE_COLOUR('',#229);
189 | #200=VERTEX_POINT('',#230);
190 | #201=VERTEX_POINT('',#231);
191 | #202=LINE('',#232,#233);
192 | #203=VERTEX_POINT('',#234);
193 | #204=CIRCLE('',#235,0.019745942627448);
194 | #205=VERTEX_POINT('',#236);
195 | #206=LINE('',#237,#238);
196 | #207=CIRCLE('',#239,0.019745942627448);
197 | #208=FILL_AREA_STYLE_COLOUR('',#240);
198 | #209=CIRCLE('',#241,0.019745942627448);
199 | #210=CIRCLE('',#242,0.019745942627448);
200 | #211=FILL_AREA_STYLE_COLOUR('',#243);
201 | #212=CIRCLE('',#244,0.0329999994438773);
202 | #213=FILL_AREA_STYLE_COLOUR('',#245);
203 | #214=CIRCLE('',#246,0.0329999994438773);
204 | #215=FILL_AREA_STYLE_COLOUR('',#247);
205 | #216=FILL_AREA_STYLE_COLOUR('',#248);
206 | #217=FILL_AREA_STYLE_COLOUR('',#249);
207 | #218=COLOUR_RGB('',0.560784339904785,0.686274528503418,0.560784339904785);
208 | #219=CARTESIAN_POINT('',(0.0170000003698582,-3.77308888126204E-010,1.09500002861023));
209 | #220=CARTESIAN_POINT('',(0.0170000003698582,-3.77308888126204E-010,1.1139999628067));
210 | #221=CARTESIAN_POINT('',(0.0170000003698582,-3.7730888408487E-010,1.09500002861023));
211 | #222=VECTOR('',#250,1.0);
212 | #223=CARTESIAN_POINT('',(0.0829999992576128,-3.77308892167539E-010,1.09500002861023));
213 | #224=AXIS2_PLACEMENT_3D('',#251,#252,#253);
214 | #225=CARTESIAN_POINT('',(0.0829999992576128,-3.77308892167539E-010,1.1139999628067));
215 | #226=CARTESIAN_POINT('',(0.0829999992576128,-3.77308892167539E-010,1.09500002861023));
216 | #227=VECTOR('',#254,1.0);
217 | #228=AXIS2_PLACEMENT_3D('',#255,#256,#257);
218 | #229=COLOUR_RGB('',0.560784339904785,0.686274528503418,0.560784339904785);
219 | #230=CARTESIAN_POINT('',(0.0302540571862875,-3.77308885708024E-010,1.12000000476837));
220 | #231=CARTESIAN_POINT('',(0.0302540571862875,-3.77308885708024E-010,1.1139999628067));
221 | #232=CARTESIAN_POINT('',(0.0302540571862875,-3.77308885708024E-010,1.1139999628067));
222 | #233=VECTOR('',#258,1.0);
223 | #234=CARTESIAN_POINT('',(0.0697459424411834,-3.77308888126204E-010,1.12000000476837));
224 | #235=AXIS2_PLACEMENT_3D('',#259,#260,#261);
225 | #236=CARTESIAN_POINT('',(0.0697459424411834,-3.77308888126204E-010,1.1139999628067));
226 | #237=CARTESIAN_POINT('',(0.0697459424411834,-3.77308890544385E-010,1.1139999628067));
227 | #238=VECTOR('',#262,1.0);
228 | #239=AXIS2_PLACEMENT_3D('',#263,#264,#265);
229 | #240=COLOUR_RGB('',0.560784339904785,0.686274528503418,0.560784339904785);
230 | #241=AXIS2_PLACEMENT_3D('',#266,#267,#268);
231 | #242=AXIS2_PLACEMENT_3D('',#269,#270,#271);
232 | #243=COLOUR_RGB('',0.560784339904785,0.686274528503418,0.560784339904785);
233 | #244=AXIS2_PLACEMENT_3D('',#272,#273,#274);
234 | #245=COLOUR_RGB('',0.560784339904785,0.686274528503418,0.560784339904785);
235 | #246=AXIS2_PLACEMENT_3D('',#275,#276,#277);
236 | #247=COLOUR_RGB('',0.560784339904785,0.686274528503418,0.560784339904785);
237 | #248=COLOUR_RGB('',0.560784339904785,0.686274528503418,0.560784339904785);
238 | #249=COLOUR_RGB('',0.560784339904785,0.686274528503418,0.560784339904785);
239 | #250=DIRECTION('',(-0.0,0.0,1.0));
240 | #251=CARTESIAN_POINT('',(0.0499999998137355,-3.77308888126204E-010,1.09500002861023));
241 | #252=DIRECTION('',(0.0,0.0,-1.0));
242 | #253=DIRECTION('',(-1.0,0.0,0.0));
243 | #254=DIRECTION('',(-0.0,0.0,-1.0));
244 | #255=CARTESIAN_POINT('',(0.0499999998137355,-3.77308888126204E-010,1.1139999628067));
245 | #256=DIRECTION('',(0.0,0.0,-1.0));
246 | #257=DIRECTION('',(-1.0,0.0,0.0));
247 | #258=DIRECTION('',(-0.0,-0.0,-1.0));
248 | #259=CARTESIAN_POINT('',(0.0499999998137355,-3.77308888126204E-010,1.12000000476837));
249 | #260=DIRECTION('',(0.0,0.0,-1.0));
250 | #261=DIRECTION('',(1.0,0.0,0.0));
251 | #262=DIRECTION('',(0.0,-0.0,1.0));
252 | #263=CARTESIAN_POINT('',(0.0499999998137355,-3.77308888126204E-010,1.1139999628067));
253 | #264=DIRECTION('',(0.0,-0.0,1.0));
254 | #265=DIRECTION('',(1.0,0.0,-0.0));
255 | #266=CARTESIAN_POINT('',(0.0499999998137355,-3.77308888126204E-010,1.1139999628067));
256 | #267=DIRECTION('',(0.0,-0.0,1.0));
257 | #268=DIRECTION('',(1.0,0.0,-0.0));
258 | #269=CARTESIAN_POINT('',(0.0499999998137355,-3.77308888126204E-010,1.12000000476837));
259 | #270=DIRECTION('',(0.0,0.0,-1.0));
260 | #271=DIRECTION('',(1.0,0.0,0.0));
261 | #272=CARTESIAN_POINT('',(0.0499999998137355,-3.77308888126204E-010,1.1139999628067));
262 | #273=DIRECTION('',(0.0,0.0,-1.0));
263 | #274=DIRECTION('',(-1.0,0.0,0.0));
264 | #275=CARTESIAN_POINT('',(0.0499999998137355,-3.77308888126204E-010,1.09500002861023));
265 | #276=DIRECTION('',(0.0,0.0,-1.0));
266 | #277=DIRECTION('',(-1.0,0.0,0.0));
267 | #278=PRESENTATION_LAYER_ASSIGNMENT('\X2\FF9AFF72FF94\X0\0','',(#46));
268 | ENDSEC;
269 | END-ISO-10303-21;
270 |
--------------------------------------------------------------------------------