├── README.md
├── pro_moveit_config
├── .setup_assistant
├── CMakeLists.txt
├── config
│ ├── fake_controllers.yaml
│ ├── joint_limits.yaml
│ ├── kinematics.yaml
│ ├── ompl_planning.yaml
│ └── swiftpro.srdf
├── launch
│ ├── default_warehouse_db.launch
│ ├── demo.launch
│ ├── fake_moveit_controller_manager.launch.xml
│ ├── joystick_control.launch
│ ├── move_group.launch
│ ├── moveit.rviz
│ ├── moveit_rviz.launch
│ ├── ompl_planning_pipeline.launch.xml
│ ├── planning_context.launch
│ ├── planning_pipeline.launch.xml
│ ├── run_benchmark_ompl.launch
│ ├── sensor_manager.launch.xml
│ ├── setup_assistant.launch
│ ├── swiftpro_moveit_controller_manager.launch.xml
│ ├── swiftpro_moveit_sensor_manager.launch.xml
│ ├── trajectory_execution.launch.xml
│ ├── warehouse.launch
│ └── warehouse_settings.launch.xml
└── package.xml
├── swift_moveit_config
├── .setup_assistant
├── CMakeLists.txt
├── config
│ ├── fake_controllers.yaml
│ ├── joint_limits.yaml
│ ├── kinematics.yaml
│ ├── ompl_planning.yaml
│ └── swiftpro.srdf
├── launch
│ ├── default_warehouse_db.launch
│ ├── demo.launch
│ ├── fake_moveit_controller_manager.launch.xml
│ ├── joystick_control.launch
│ ├── move_group.launch
│ ├── moveit.rviz
│ ├── moveit_rviz.launch
│ ├── ompl_planning_pipeline.launch.xml
│ ├── planning_context.launch
│ ├── planning_pipeline.launch.xml
│ ├── run_benchmark_ompl.launch
│ ├── sensor_manager.launch.xml
│ ├── setup_assistant.launch
│ ├── swiftpro_moveit_controller_manager.launch.xml
│ ├── swiftpro_moveit_sensor_manager.launch.xml
│ ├── trajectory_execution.launch.xml
│ ├── warehouse.launch
│ └── warehouse_settings.launch.xml
└── package.xml
└── swiftpro
├── CMakeLists.txt
├── launch
├── pro_control.launch
├── pro_display.launch
├── swift_control.launch
└── swift_display.launch
├── msg
├── SwiftproState.msg
├── angle4th.msg
├── position.msg
└── status.msg
├── package.xml
├── src
├── swiftpro_moveit_node.cpp
├── swiftpro_read_node.cpp
├── swiftpro_rviz_node.cpp
└── swiftpro_write_node.cpp
└── urdf
├── pro_links
├── Base.STL
├── Gripper.STL
├── Link1.STL
├── Link2.STL
├── Link3.STL
├── Link4.STL
├── Link5.STL
├── Link6.STL
├── Link7.STL
├── Link9.STL
└── Suction.STL
├── pro_model.xacro
├── swift_links
├── Base.STL
├── Gripper.STL
├── Link1.STL
├── Link2.STL
├── Link3.STL
├── Link4.STL
├── Link5.STL
├── Link6.STL
├── Link7.STL
├── Link9.STL
└── Suction.STL
└── swift_model.xacro
/README.md:
--------------------------------------------------------------------------------
1 | # SwiftAndProForROS
2 | This is the swift and swiftpro ROS package designed by Roger Cui(roger@ufactory.cc) and David Long (xiaokun.long@ufactory.cc).
3 | These packages support Moveit!, RViz and serial communication with swift and swiftpro.
4 |
5 | ## 1. Download and install
6 | Download ros packages for uarm swift pro
7 | ```bash
8 | $ cd ~/catkin_ws/src
9 | $ git clone https://github.com/uArm-Developer/RosForSwiftAndSwiftPro.git
10 | ```
11 | then manually copy package folders *swiftpro* *swift_moveit_config* and *pro_moveit_config* into a catkin_ws/src.
12 |
13 | Install ros serial package
14 | ```bash
15 | $ sudo apt-get install ros-kinetic-serial
16 | ```
17 |
18 | Compile
19 | ```bash
20 | $ catkin_make
21 | ```
22 |
23 | ## 2. Set up enviroment
24 | Source all setup.bash files to set up your enviroment.
25 | ```bash
26 | # System configure ROS environment variables automatically every time you open a ternimal
27 | echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
28 | echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
29 | source ~/.bashrc
30 | ```
31 |
32 | ## 3. Simulation
33 | Connect your swift/swiftpro to computer and get USB permission to access uArm
34 | ```bash
35 | $ sudo chmod 666 /dev/ttyACM0
36 | ```
37 |
38 | ### 3.1 Display mode: Get data from swiftpro
39 | Get data from serial and simulate swiftpro in RViz.
40 | ```bash
41 | roslaunch swiftpro pro_display.launch
42 | ```
43 | right now, you can drag your swiftpro and it will simulate in Rviz.
44 |
45 | ### 3.2 Control Mode: Send data to swiftpro
46 | Connect swiftpro, send data though serial.
47 | ```bash
48 | roslaunch swiftpro pro_control.launch
49 | ```
50 | Open another ternimal to get joint angles from Moveit!.
51 | ```bash
52 | roslaunch pro_moveit_config demo.launch
53 | ```
54 | right now, you can do trajectory planning or grasping in moveIt!.
55 |
56 | ### 3.3 Display mode: Get data from swift
57 | Get data from serial and simulate swift in RViz.
58 | ```bash
59 | roslaunch swiftpro swift_display.launch
60 | ```
61 | right now, you can drag your swift and it will simulate in Rviz.
62 |
63 | ### 3.4 Control Mode: Send data to swift
64 | Connect swift, send data though serial.
65 | ```bash
66 | roslaunch swiftpro swift_control.launch
67 | ```
68 | Open another ternimal to get joint angles from Moveit!.
69 | ```bash
70 | roslaunch swift_moveit_config demo.launch
71 | ```
72 | right now, you can do trajectory planning or grasping in moveIt!.
73 |
74 | ### 3.5 About nodes and topics
75 |
76 |
77 | ### 3.6 About message
78 | SwiftproState.msg: includes all data about swiftpro
79 | ```bash
80 | float64 motor_angle1
81 | float64 motor_angle2
82 | float64 motor_angle3
83 | float64 motor_angle4
84 | float64 x
85 | float64 y
86 | float64 z
87 | uint8 pump
88 | uint8 swiftpro_status
89 | uint8 gripper
90 | ```
91 | position.msg: includes x, y, z information(mm)
92 | ```bash
93 | float64 x
94 | float64 y
95 | float64 z
96 | ```
97 | angle4th.msg: 4th motor angle(degree)
98 | ```bash
99 | float64 angle4th
100 | ```
101 | status.msg: work if 1; otherwise 0
102 | ```bash
103 | uint8 status
104 | ```
105 |
--------------------------------------------------------------------------------
/pro_moveit_config/.setup_assistant:
--------------------------------------------------------------------------------
1 | moveit_setup_assistant_config:
2 | URDF:
3 | package: swiftpro
4 | relative_path: urdf/pro_model.xacro
5 | SRDF:
6 | relative_path: config/swiftpro.srdf
7 | CONFIG:
8 | author_name: roger
9 | author_email: roger@ufactory.cc
10 | generated_timestamp: 1508989522
--------------------------------------------------------------------------------
/pro_moveit_config/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 2.8.3)
2 | project(pro_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 |
--------------------------------------------------------------------------------
/pro_moveit_config/config/fake_controllers.yaml:
--------------------------------------------------------------------------------
1 | controller_list:
2 | - name: fake_arm_controller
3 | joints:
4 | - Joint1
5 | - Joint2
6 | - Joint3
7 | - Joint8
--------------------------------------------------------------------------------
/pro_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: false
7 | max_velocity: 0
8 | has_acceleration_limits: false
9 | max_acceleration: 0
10 | Joint2:
11 | has_velocity_limits: false
12 | max_velocity: 0
13 | has_acceleration_limits: false
14 | max_acceleration: 0
15 | Joint3:
16 | has_velocity_limits: false
17 | max_velocity: 0
18 | has_acceleration_limits: false
19 | max_acceleration: 0
20 | Joint8:
21 | has_velocity_limits: false
22 | max_velocity: 0
23 | has_acceleration_limits: false
24 | max_acceleration: 0
--------------------------------------------------------------------------------
/pro_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: 10
--------------------------------------------------------------------------------
/pro_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
--------------------------------------------------------------------------------
/pro_moveit_config/config/swiftpro.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 |
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 |
--------------------------------------------------------------------------------
/pro_moveit_config/launch/default_warehouse_db.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/pro_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 |
--------------------------------------------------------------------------------
/pro_moveit_config/launch/fake_moveit_controller_manager.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/pro_moveit_config/launch/joystick_control.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/pro_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 |
--------------------------------------------------------------------------------
/pro_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/Scene Geometry1
8 | - /MotionPlanning1/Scene Robot1
9 | - /MotionPlanning1/Planning Request1
10 | - /MotionPlanning1/Planning Metrics1
11 | - /MotionPlanning1/Planned Path1
12 | Splitter Ratio: 0.742560029
13 | Tree Height: 102
14 | - Class: rviz/Help
15 | Name: Help
16 | - Class: rviz/Views
17 | Expanded:
18 | - /Current View1
19 | Name: Views
20 | Splitter Ratio: 0.5
21 | Visualization Manager:
22 | Class: ""
23 | Displays:
24 | - Alpha: 0.5
25 | Cell Size: 1
26 | Class: rviz/Grid
27 | Color: 160; 160; 164
28 | Enabled: true
29 | Line Style:
30 | Line Width: 0.0299999993
31 | Value: Lines
32 | Name: Grid
33 | Normal Cell Count: 0
34 | Offset:
35 | X: 0
36 | Y: 0
37 | Z: 0
38 | Plane: XY
39 | Plane Cell Count: 10
40 | Reference Frame:
41 | Value: true
42 | - Class: moveit_rviz_plugin/MotionPlanning
43 | Enabled: true
44 | Move Group Namespace: ""
45 | MoveIt_Goal_Tolerance: 0
46 | MoveIt_Planning_Attempts: 10
47 | MoveIt_Planning_Time: 5
48 | MoveIt_Use_Constraint_Aware_IK: true
49 | MoveIt_Warehouse_Host: 127.0.0.1
50 | MoveIt_Warehouse_Port: 33829
51 | MoveIt_Workspace:
52 | Center:
53 | X: 0
54 | Y: 0
55 | Z: 0
56 | Size:
57 | X: 2
58 | Y: 2
59 | Z: 2
60 | Name: MotionPlanning
61 | Planned Path:
62 | Color Enabled: false
63 | Interrupt Display: false
64 | Links:
65 | All Links Enabled: true
66 | Base:
67 | Alpha: 1
68 | Show Axes: false
69 | Show Trail: false
70 | Value: true
71 | Expand Joint Details: false
72 | Expand Link Details: false
73 | Expand Tree: false
74 | Link Tree Style: Links in Alphabetic Order
75 | Link1:
76 | Alpha: 1
77 | Show Axes: false
78 | Show Trail: false
79 | Value: true
80 | Link2:
81 | Alpha: 1
82 | Show Axes: false
83 | Show Trail: false
84 | Value: true
85 | Link3:
86 | Alpha: 1
87 | Show Axes: false
88 | Show Trail: false
89 | Value: true
90 | Link4:
91 | Alpha: 1
92 | Show Axes: false
93 | Show Trail: false
94 | Value: true
95 | Link5:
96 | Alpha: 1
97 | Show Axes: false
98 | Show Trail: false
99 | Value: true
100 | Link6:
101 | Alpha: 1
102 | Show Axes: false
103 | Show Trail: false
104 | Value: true
105 | Link7:
106 | Alpha: 1
107 | Show Axes: false
108 | Show Trail: false
109 | Value: true
110 | Link8:
111 | Alpha: 1
112 | Show Axes: false
113 | Show Trail: false
114 | Value: true
115 | Link9:
116 | Alpha: 1
117 | Show Axes: false
118 | Show Trail: false
119 | Value: true
120 | Loop Animation: true
121 | Robot Alpha: 0.5
122 | Robot Color: 150; 50; 150
123 | Show Robot Collision: false
124 | Show Robot Visual: true
125 | Show Trail: false
126 | State Display Time: 0.05 s
127 | Trail Step Size: 1
128 | Trajectory Topic: move_group/display_planned_path
129 | Planning Metrics:
130 | Payload: 1
131 | Show Joint Torques: false
132 | Show Manipulability: false
133 | Show Manipulability Index: false
134 | Show Weight Limit: false
135 | TextHeight: 0.0799999982
136 | Planning Request:
137 | Colliding Link Color: 255; 0; 0
138 | Goal State Alpha: 1
139 | Goal State Color: 250; 128; 0
140 | Interactive Marker Size: 0
141 | Joint Violation Color: 255; 0; 255
142 | Planning Group: arm
143 | Query Goal State: true
144 | Query Start State: false
145 | Show Workspace: false
146 | Start State Alpha: 1
147 | Start State Color: 0; 255; 0
148 | Planning Scene Topic: move_group/monitored_planning_scene
149 | Robot Description: robot_description
150 | Scene Geometry:
151 | Scene Alpha: 1
152 | Scene Color: 50; 230; 50
153 | Scene Display Time: 0.200000003
154 | Show Scene Geometry: true
155 | Voxel Coloring: Z-Axis
156 | Voxel Rendering: Occupied Voxels
157 | Scene Robot:
158 | Attached Body Color: 150; 50; 150
159 | Links:
160 | All Links Enabled: true
161 | Base:
162 | Alpha: 1
163 | Show Axes: false
164 | Show Trail: false
165 | Value: true
166 | Expand Joint Details: false
167 | Expand Link Details: false
168 | Expand Tree: false
169 | Link Tree Style: Links in Alphabetic Order
170 | Link1:
171 | Alpha: 1
172 | Show Axes: false
173 | Show Trail: false
174 | Value: true
175 | Link2:
176 | Alpha: 1
177 | Show Axes: false
178 | Show Trail: false
179 | Value: true
180 | Link3:
181 | Alpha: 1
182 | Show Axes: false
183 | Show Trail: false
184 | Value: true
185 | Link4:
186 | Alpha: 1
187 | Show Axes: false
188 | Show Trail: false
189 | Value: true
190 | Link5:
191 | Alpha: 1
192 | Show Axes: false
193 | Show Trail: false
194 | Value: true
195 | Link6:
196 | Alpha: 1
197 | Show Axes: false
198 | Show Trail: false
199 | Value: true
200 | Link7:
201 | Alpha: 1
202 | Show Axes: false
203 | Show Trail: false
204 | Value: true
205 | Link8:
206 | Alpha: 1
207 | Show Axes: false
208 | Show Trail: false
209 | Value: true
210 | Link9:
211 | Alpha: 1
212 | Show Axes: false
213 | Show Trail: false
214 | Value: true
215 | Robot Alpha: 0.5
216 | Show Robot Collision: false
217 | Show Robot Visual: true
218 | Value: true
219 | - Alpha: 1
220 | Class: rviz/RobotModel
221 | Collision Enabled: false
222 | Enabled: true
223 | Links:
224 | All Links Enabled: true
225 | Base:
226 | Alpha: 1
227 | Show Axes: false
228 | Show Trail: false
229 | Value: true
230 | Expand Joint Details: false
231 | Expand Link Details: false
232 | Expand Tree: false
233 | Link Tree Style: Links in Alphabetic Order
234 | Link1:
235 | Alpha: 1
236 | Show Axes: false
237 | Show Trail: false
238 | Value: true
239 | Link2:
240 | Alpha: 1
241 | Show Axes: false
242 | Show Trail: false
243 | Value: true
244 | Link3:
245 | Alpha: 1
246 | Show Axes: false
247 | Show Trail: false
248 | Value: true
249 | Link4:
250 | Alpha: 1
251 | Show Axes: false
252 | Show Trail: false
253 | Value: true
254 | Link5:
255 | Alpha: 1
256 | Show Axes: false
257 | Show Trail: false
258 | Value: true
259 | Link6:
260 | Alpha: 1
261 | Show Axes: false
262 | Show Trail: false
263 | Value: true
264 | Link7:
265 | Alpha: 1
266 | Show Axes: false
267 | Show Trail: false
268 | Value: true
269 | Link8:
270 | Alpha: 1
271 | Show Axes: false
272 | Show Trail: false
273 | Value: true
274 | Link9:
275 | Alpha: 1
276 | Show Axes: false
277 | Show Trail: false
278 | Value: true
279 | Name: RobotModel
280 | Robot Description: robot_description
281 | TF Prefix: ""
282 | Update Interval: 0
283 | Value: true
284 | Visual Enabled: true
285 | Enabled: true
286 | Global Options:
287 | Background Color: 48; 48; 48
288 | Fixed Frame: Base
289 | Frame Rate: 30
290 | Name: root
291 | Tools:
292 | - Class: rviz/Interact
293 | Hide Inactive Objects: true
294 | - Class: rviz/MoveCamera
295 | - Class: rviz/Select
296 | Value: true
297 | Views:
298 | Current:
299 | Class: rviz/XYOrbit
300 | Distance: 1.20490241
301 | Enable Stereo Rendering:
302 | Stereo Eye Separation: 0.0599999987
303 | Stereo Focal Distance: 1
304 | Swap Stereo Eyes: false
305 | Value: false
306 | Focal Point:
307 | X: 0.334676594
308 | Y: 0.0392795652
309 | Z: 4.47040662e-08
310 | Focal Shape Fixed Size: true
311 | Focal Shape Size: 0.0500000007
312 | Invert Z Axis: false
313 | Name: Current View
314 | Near Clip Distance: 0.00999999978
315 | Pitch: 0.509796977
316 | Target Frame: Base
317 | Value: XYOrbit (rviz)
318 | Yaw: 5.65994978
319 | Saved: ~
320 | Window Geometry:
321 | Displays:
322 | collapsed: false
323 | Height: 798
324 | Help:
325 | collapsed: false
326 | Hide Left Dock: false
327 | Hide Right Dock: false
328 | MotionPlanning:
329 | collapsed: false
330 | MotionPlanning - Slider:
331 | collapsed: false
332 | QMainWindow State: 000000ff00000000fd0000000100000000000002b8000002d8fc0200000007fb000000100044006900730070006c0061007900730100000028000000fb000000dd00fffffffb0000000800480065006c00700000000342000000bb0000007600fffffffb0000000a0056006900650077007300000003b0000000b0000000b000fffffffb0000000c00430061006d00650072006100000002ff000001610000000000000000fb0000001e004d006f00740069006f006e00200050006c0061006e006e0069006e00670100000374000001890000000000000000fb0000002e004d006f00740069006f006e0050006c0061006e006e0069006e00670020002d00200053006c00690064006500720000000000ffffffff0000004a00fffffffb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e00670100000129000001d7000001cc00ffffff000003bd000002d800000001000000020000000100000002fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
333 | Views:
334 | collapsed: false
335 | Width: 1659
336 | X: 65
337 | Y: 24
338 |
--------------------------------------------------------------------------------
/pro_moveit_config/launch/moveit_rviz.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/pro_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 |
--------------------------------------------------------------------------------
/pro_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 |
--------------------------------------------------------------------------------
/pro_moveit_config/launch/planning_pipeline.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/pro_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 |
--------------------------------------------------------------------------------
/pro_moveit_config/launch/sensor_manager.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/pro_moveit_config/launch/setup_assistant.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/pro_moveit_config/launch/swiftpro_moveit_controller_manager.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/pro_moveit_config/launch/swiftpro_moveit_sensor_manager.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/pro_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 |
--------------------------------------------------------------------------------
/pro_moveit_config/launch/warehouse.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/pro_moveit_config/launch/warehouse_settings.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/pro_moveit_config/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | pro_moveit_config
4 | 0.3.0
5 |
6 | An automatically generated package with all the configuration and launch files for using the swiftpro with the MoveIt! Motion Planning Framework
7 |
8 | roger
9 | roger
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_kinematics
21 | moveit_planners_ompl
22 | moveit_ros_visualization
23 | joint_state_publisher
24 | robot_state_publisher
25 | xacro
26 |
27 |
28 | swiftpro
29 | swiftpro
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/swift_moveit_config/.setup_assistant:
--------------------------------------------------------------------------------
1 | moveit_setup_assistant_config:
2 | URDF:
3 | package: swiftpro
4 | relative_path: urdf/swift_model.xacro
5 | SRDF:
6 | relative_path: config/swiftpro.srdf
7 | CONFIG:
8 | author_name: roger
9 | author_email: roger@ufactory.cc
10 | generated_timestamp: 1508990885
--------------------------------------------------------------------------------
/swift_moveit_config/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 2.8.3)
2 | project(swift_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 |
--------------------------------------------------------------------------------
/swift_moveit_config/config/fake_controllers.yaml:
--------------------------------------------------------------------------------
1 | controller_list:
2 | - name: fake_arm_controller
3 | joints:
4 | - Joint1
5 | - Joint2
6 | - Joint3
7 | - Joint8
--------------------------------------------------------------------------------
/swift_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: false
7 | max_velocity: 0
8 | has_acceleration_limits: false
9 | max_acceleration: 0
10 | Joint2:
11 | has_velocity_limits: false
12 | max_velocity: 0
13 | has_acceleration_limits: false
14 | max_acceleration: 0
15 | Joint3:
16 | has_velocity_limits: false
17 | max_velocity: 0
18 | has_acceleration_limits: false
19 | max_acceleration: 0
20 | Joint8:
21 | has_velocity_limits: false
22 | max_velocity: 0
23 | has_acceleration_limits: false
24 | max_acceleration: 0
--------------------------------------------------------------------------------
/swift_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: 10
--------------------------------------------------------------------------------
/swift_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
--------------------------------------------------------------------------------
/swift_moveit_config/config/swiftpro.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 |
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 |
--------------------------------------------------------------------------------
/swift_moveit_config/launch/default_warehouse_db.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/swift_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 |
--------------------------------------------------------------------------------
/swift_moveit_config/launch/fake_moveit_controller_manager.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/swift_moveit_config/launch/joystick_control.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/swift_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 |
--------------------------------------------------------------------------------
/swift_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 | Splitter Ratio: 0.74256
9 | Tree Height: 664
10 | - Class: rviz/Help
11 | Name: Help
12 | - Class: rviz/Views
13 | Expanded:
14 | - /Current View1
15 | Name: Views
16 | Splitter Ratio: 0.5
17 | Visualization Manager:
18 | Class: ""
19 | Displays:
20 | - Alpha: 0.5
21 | Cell Size: 1
22 | Class: rviz/Grid
23 | Color: 160; 160; 164
24 | Enabled: true
25 | Line Style:
26 | Line Width: 0.03
27 | Value: Lines
28 | Name: Grid
29 | Normal Cell Count: 0
30 | Offset:
31 | X: 0
32 | Y: 0
33 | Z: 0
34 | Plane: XY
35 | Plane Cell Count: 10
36 | Reference Frame:
37 | Value: true
38 | - Class: moveit_rviz_plugin/MotionPlanning
39 | Enabled: true
40 | MoveIt_Goal_Tolerance: 0
41 | MoveIt_Planning_Time: 5
42 | MoveIt_Use_Constraint_Aware_IK: true
43 | MoveIt_Warehouse_Host: 127.0.0.1
44 | MoveIt_Warehouse_Port: 33829
45 | Name: MotionPlanning
46 | Planned Path:
47 | Links:
48 | base_bellow_link:
49 | Alpha: 1
50 | Show Axes: false
51 | Show Trail: false
52 | Value: true
53 | base_footprint:
54 | Alpha: 1
55 | Show Axes: false
56 | Show Trail: false
57 | Value: true
58 | base_link:
59 | Alpha: 1
60 | Show Axes: false
61 | Show Trail: false
62 | Value: true
63 | bl_caster_l_wheel_link:
64 | Alpha: 1
65 | Show Axes: false
66 | Show Trail: false
67 | Value: true
68 | bl_caster_r_wheel_link:
69 | Alpha: 1
70 | Show Axes: false
71 | Show Trail: false
72 | Value: true
73 | bl_caster_rotation_link:
74 | Alpha: 1
75 | Show Axes: false
76 | Show Trail: false
77 | Value: true
78 | br_caster_l_wheel_link:
79 | Alpha: 1
80 | Show Axes: false
81 | Show Trail: false
82 | Value: true
83 | br_caster_r_wheel_link:
84 | Alpha: 1
85 | Show Axes: false
86 | Show Trail: false
87 | Value: true
88 | br_caster_rotation_link:
89 | Alpha: 1
90 | Show Axes: false
91 | Show Trail: false
92 | Value: true
93 | double_stereo_link:
94 | Alpha: 1
95 | Show Axes: false
96 | Show Trail: false
97 | Value: true
98 | fl_caster_l_wheel_link:
99 | Alpha: 1
100 | Show Axes: false
101 | Show Trail: false
102 | Value: true
103 | fl_caster_r_wheel_link:
104 | Alpha: 1
105 | Show Axes: false
106 | Show Trail: false
107 | Value: true
108 | fl_caster_rotation_link:
109 | Alpha: 1
110 | Show Axes: false
111 | Show Trail: false
112 | Value: true
113 | fr_caster_l_wheel_link:
114 | Alpha: 1
115 | Show Axes: false
116 | Show Trail: false
117 | Value: true
118 | fr_caster_r_wheel_link:
119 | Alpha: 1
120 | Show Axes: false
121 | Show Trail: false
122 | Value: true
123 | fr_caster_rotation_link:
124 | Alpha: 1
125 | Show Axes: false
126 | Show Trail: false
127 | Value: true
128 | head_mount_kinect_ir_link:
129 | Alpha: 1
130 | Show Axes: false
131 | Show Trail: false
132 | Value: true
133 | head_mount_kinect_rgb_link:
134 | Alpha: 1
135 | Show Axes: false
136 | Show Trail: false
137 | Value: true
138 | head_mount_link:
139 | Alpha: 1
140 | Show Axes: false
141 | Show Trail: false
142 | Value: true
143 | head_mount_prosilica_link:
144 | Alpha: 1
145 | Show Axes: false
146 | Show Trail: false
147 | Value: true
148 | head_pan_link:
149 | Alpha: 1
150 | Show Axes: false
151 | Show Trail: false
152 | Value: true
153 | head_plate_frame:
154 | Alpha: 1
155 | Show Axes: false
156 | Show Trail: false
157 | Value: true
158 | head_tilt_link:
159 | Alpha: 1
160 | Show Axes: false
161 | Show Trail: false
162 | Value: true
163 | l_elbow_flex_link:
164 | Alpha: 1
165 | Show Axes: false
166 | Show Trail: false
167 | Value: true
168 | l_forearm_link:
169 | Alpha: 1
170 | Show Axes: false
171 | Show Trail: false
172 | Value: true
173 | l_forearm_roll_link:
174 | Alpha: 1
175 | Show Axes: false
176 | Show Trail: false
177 | Value: true
178 | l_gripper_l_finger_link:
179 | Alpha: 1
180 | Show Axes: false
181 | Show Trail: false
182 | Value: true
183 | l_gripper_l_finger_tip_link:
184 | Alpha: 1
185 | Show Axes: false
186 | Show Trail: false
187 | Value: true
188 | l_gripper_motor_accelerometer_link:
189 | Alpha: 1
190 | Show Axes: false
191 | Show Trail: false
192 | Value: true
193 | l_gripper_palm_link:
194 | Alpha: 1
195 | Show Axes: false
196 | Show Trail: false
197 | Value: true
198 | l_gripper_r_finger_link:
199 | Alpha: 1
200 | Show Axes: false
201 | Show Trail: false
202 | Value: true
203 | l_gripper_r_finger_tip_link:
204 | Alpha: 1
205 | Show Axes: false
206 | Show Trail: false
207 | Value: true
208 | l_shoulder_lift_link:
209 | Alpha: 1
210 | Show Axes: false
211 | Show Trail: false
212 | Value: true
213 | l_shoulder_pan_link:
214 | Alpha: 1
215 | Show Axes: false
216 | Show Trail: false
217 | Value: true
218 | l_upper_arm_link:
219 | Alpha: 1
220 | Show Axes: false
221 | Show Trail: false
222 | Value: true
223 | l_upper_arm_roll_link:
224 | Alpha: 1
225 | Show Axes: false
226 | Show Trail: false
227 | Value: true
228 | l_wrist_flex_link:
229 | Alpha: 1
230 | Show Axes: false
231 | Show Trail: false
232 | Value: true
233 | l_wrist_roll_link:
234 | Alpha: 1
235 | Show Axes: false
236 | Show Trail: false
237 | Value: true
238 | laser_tilt_mount_link:
239 | Alpha: 1
240 | Show Axes: false
241 | Show Trail: false
242 | Value: true
243 | r_elbow_flex_link:
244 | Alpha: 1
245 | Show Axes: false
246 | Show Trail: false
247 | Value: true
248 | r_forearm_link:
249 | Alpha: 1
250 | Show Axes: false
251 | Show Trail: false
252 | Value: true
253 | r_forearm_roll_link:
254 | Alpha: 1
255 | Show Axes: false
256 | Show Trail: false
257 | Value: true
258 | r_gripper_l_finger_link:
259 | Alpha: 1
260 | Show Axes: false
261 | Show Trail: false
262 | Value: true
263 | r_gripper_l_finger_tip_link:
264 | Alpha: 1
265 | Show Axes: false
266 | Show Trail: false
267 | Value: true
268 | r_gripper_motor_accelerometer_link:
269 | Alpha: 1
270 | Show Axes: false
271 | Show Trail: false
272 | Value: true
273 | r_gripper_palm_link:
274 | Alpha: 1
275 | Show Axes: false
276 | Show Trail: false
277 | Value: true
278 | r_gripper_r_finger_link:
279 | Alpha: 1
280 | Show Axes: false
281 | Show Trail: false
282 | Value: true
283 | r_gripper_r_finger_tip_link:
284 | Alpha: 1
285 | Show Axes: false
286 | Show Trail: false
287 | Value: true
288 | r_shoulder_lift_link:
289 | Alpha: 1
290 | Show Axes: false
291 | Show Trail: false
292 | Value: true
293 | r_shoulder_pan_link:
294 | Alpha: 1
295 | Show Axes: false
296 | Show Trail: false
297 | Value: true
298 | r_upper_arm_link:
299 | Alpha: 1
300 | Show Axes: false
301 | Show Trail: false
302 | Value: true
303 | r_upper_arm_roll_link:
304 | Alpha: 1
305 | Show Axes: false
306 | Show Trail: false
307 | Value: true
308 | r_wrist_flex_link:
309 | Alpha: 1
310 | Show Axes: false
311 | Show Trail: false
312 | Value: true
313 | r_wrist_roll_link:
314 | Alpha: 1
315 | Show Axes: false
316 | Show Trail: false
317 | Value: true
318 | sensor_mount_link:
319 | Alpha: 1
320 | Show Axes: false
321 | Show Trail: false
322 | Value: true
323 | torso_lift_link:
324 | Alpha: 1
325 | Show Axes: false
326 | Show Trail: false
327 | Value: true
328 | Loop Animation: true
329 | Robot Alpha: 0.5
330 | Show Robot Collision: false
331 | Show Robot Visual: true
332 | Show Trail: false
333 | State Display Time: 0.05 s
334 | Trajectory Topic: move_group/display_planned_path
335 | Planning Metrics:
336 | Payload: 1
337 | Show Joint Torques: false
338 | Show Manipulability: false
339 | Show Manipulability Index: false
340 | Show Weight Limit: false
341 | Planning Request:
342 | Colliding Link Color: 255; 0; 0
343 | Goal State Alpha: 1
344 | Goal State Color: 250; 128; 0
345 | Interactive Marker Size: 0
346 | Joint Violation Color: 255; 0; 255
347 | Planning Group: left_arm
348 | Query Goal State: true
349 | Query Start State: false
350 | Show Workspace: false
351 | Start State Alpha: 1
352 | Start State Color: 0; 255; 0
353 | Planning Scene Topic: move_group/monitored_planning_scene
354 | Robot Description: robot_description
355 | Scene Geometry:
356 | Scene Alpha: 1
357 | Scene Color: 50; 230; 50
358 | Scene Display Time: 0.2
359 | Show Scene Geometry: true
360 | Voxel Coloring: Z-Axis
361 | Voxel Rendering: Occupied Voxels
362 | Scene Robot:
363 | Attached Body Color: 150; 50; 150
364 | Links:
365 | base_bellow_link:
366 | Alpha: 1
367 | Show Axes: false
368 | Show Trail: false
369 | Value: true
370 | base_footprint:
371 | Alpha: 1
372 | Show Axes: false
373 | Show Trail: false
374 | Value: true
375 | base_link:
376 | Alpha: 1
377 | Show Axes: false
378 | Show Trail: false
379 | Value: true
380 | bl_caster_l_wheel_link:
381 | Alpha: 1
382 | Show Axes: false
383 | Show Trail: false
384 | Value: true
385 | bl_caster_r_wheel_link:
386 | Alpha: 1
387 | Show Axes: false
388 | Show Trail: false
389 | Value: true
390 | bl_caster_rotation_link:
391 | Alpha: 1
392 | Show Axes: false
393 | Show Trail: false
394 | Value: true
395 | br_caster_l_wheel_link:
396 | Alpha: 1
397 | Show Axes: false
398 | Show Trail: false
399 | Value: true
400 | br_caster_r_wheel_link:
401 | Alpha: 1
402 | Show Axes: false
403 | Show Trail: false
404 | Value: true
405 | br_caster_rotation_link:
406 | Alpha: 1
407 | Show Axes: false
408 | Show Trail: false
409 | Value: true
410 | double_stereo_link:
411 | Alpha: 1
412 | Show Axes: false
413 | Show Trail: false
414 | Value: true
415 | fl_caster_l_wheel_link:
416 | Alpha: 1
417 | Show Axes: false
418 | Show Trail: false
419 | Value: true
420 | fl_caster_r_wheel_link:
421 | Alpha: 1
422 | Show Axes: false
423 | Show Trail: false
424 | Value: true
425 | fl_caster_rotation_link:
426 | Alpha: 1
427 | Show Axes: false
428 | Show Trail: false
429 | Value: true
430 | fr_caster_l_wheel_link:
431 | Alpha: 1
432 | Show Axes: false
433 | Show Trail: false
434 | Value: true
435 | fr_caster_r_wheel_link:
436 | Alpha: 1
437 | Show Axes: false
438 | Show Trail: false
439 | Value: true
440 | fr_caster_rotation_link:
441 | Alpha: 1
442 | Show Axes: false
443 | Show Trail: false
444 | Value: true
445 | head_mount_kinect_ir_link:
446 | Alpha: 1
447 | Show Axes: false
448 | Show Trail: false
449 | Value: true
450 | head_mount_kinect_rgb_link:
451 | Alpha: 1
452 | Show Axes: false
453 | Show Trail: false
454 | Value: true
455 | head_mount_link:
456 | Alpha: 1
457 | Show Axes: false
458 | Show Trail: false
459 | Value: true
460 | head_mount_prosilica_link:
461 | Alpha: 1
462 | Show Axes: false
463 | Show Trail: false
464 | Value: true
465 | head_pan_link:
466 | Alpha: 1
467 | Show Axes: false
468 | Show Trail: false
469 | Value: true
470 | head_plate_frame:
471 | Alpha: 1
472 | Show Axes: false
473 | Show Trail: false
474 | Value: true
475 | head_tilt_link:
476 | Alpha: 1
477 | Show Axes: false
478 | Show Trail: false
479 | Value: true
480 | l_elbow_flex_link:
481 | Alpha: 1
482 | Show Axes: false
483 | Show Trail: false
484 | Value: true
485 | l_forearm_link:
486 | Alpha: 1
487 | Show Axes: false
488 | Show Trail: false
489 | Value: true
490 | l_forearm_roll_link:
491 | Alpha: 1
492 | Show Axes: false
493 | Show Trail: false
494 | Value: true
495 | l_gripper_l_finger_link:
496 | Alpha: 1
497 | Show Axes: false
498 | Show Trail: false
499 | Value: true
500 | l_gripper_l_finger_tip_link:
501 | Alpha: 1
502 | Show Axes: false
503 | Show Trail: false
504 | Value: true
505 | l_gripper_motor_accelerometer_link:
506 | Alpha: 1
507 | Show Axes: false
508 | Show Trail: false
509 | Value: true
510 | l_gripper_palm_link:
511 | Alpha: 1
512 | Show Axes: false
513 | Show Trail: false
514 | Value: true
515 | l_gripper_r_finger_link:
516 | Alpha: 1
517 | Show Axes: false
518 | Show Trail: false
519 | Value: true
520 | l_gripper_r_finger_tip_link:
521 | Alpha: 1
522 | Show Axes: false
523 | Show Trail: false
524 | Value: true
525 | l_shoulder_lift_link:
526 | Alpha: 1
527 | Show Axes: false
528 | Show Trail: false
529 | Value: true
530 | l_shoulder_pan_link:
531 | Alpha: 1
532 | Show Axes: false
533 | Show Trail: false
534 | Value: true
535 | l_upper_arm_link:
536 | Alpha: 1
537 | Show Axes: false
538 | Show Trail: false
539 | Value: true
540 | l_upper_arm_roll_link:
541 | Alpha: 1
542 | Show Axes: false
543 | Show Trail: false
544 | Value: true
545 | l_wrist_flex_link:
546 | Alpha: 1
547 | Show Axes: false
548 | Show Trail: false
549 | Value: true
550 | l_wrist_roll_link:
551 | Alpha: 1
552 | Show Axes: false
553 | Show Trail: false
554 | Value: true
555 | laser_tilt_mount_link:
556 | Alpha: 1
557 | Show Axes: false
558 | Show Trail: false
559 | Value: true
560 | r_elbow_flex_link:
561 | Alpha: 1
562 | Show Axes: false
563 | Show Trail: false
564 | Value: true
565 | r_forearm_link:
566 | Alpha: 1
567 | Show Axes: false
568 | Show Trail: false
569 | Value: true
570 | r_forearm_roll_link:
571 | Alpha: 1
572 | Show Axes: false
573 | Show Trail: false
574 | Value: true
575 | r_gripper_l_finger_link:
576 | Alpha: 1
577 | Show Axes: false
578 | Show Trail: false
579 | Value: true
580 | r_gripper_l_finger_tip_link:
581 | Alpha: 1
582 | Show Axes: false
583 | Show Trail: false
584 | Value: true
585 | r_gripper_motor_accelerometer_link:
586 | Alpha: 1
587 | Show Axes: false
588 | Show Trail: false
589 | Value: true
590 | r_gripper_palm_link:
591 | Alpha: 1
592 | Show Axes: false
593 | Show Trail: false
594 | Value: true
595 | r_gripper_r_finger_link:
596 | Alpha: 1
597 | Show Axes: false
598 | Show Trail: false
599 | Value: true
600 | r_gripper_r_finger_tip_link:
601 | Alpha: 1
602 | Show Axes: false
603 | Show Trail: false
604 | Value: true
605 | r_shoulder_lift_link:
606 | Alpha: 1
607 | Show Axes: false
608 | Show Trail: false
609 | Value: true
610 | r_shoulder_pan_link:
611 | Alpha: 1
612 | Show Axes: false
613 | Show Trail: false
614 | Value: true
615 | r_upper_arm_link:
616 | Alpha: 1
617 | Show Axes: false
618 | Show Trail: false
619 | Value: true
620 | r_upper_arm_roll_link:
621 | Alpha: 1
622 | Show Axes: false
623 | Show Trail: false
624 | Value: true
625 | r_wrist_flex_link:
626 | Alpha: 1
627 | Show Axes: false
628 | Show Trail: false
629 | Value: true
630 | r_wrist_roll_link:
631 | Alpha: 1
632 | Show Axes: false
633 | Show Trail: false
634 | Value: true
635 | sensor_mount_link:
636 | Alpha: 1
637 | Show Axes: false
638 | Show Trail: false
639 | Value: true
640 | torso_lift_link:
641 | Alpha: 1
642 | Show Axes: false
643 | Show Trail: false
644 | Value: true
645 | Robot Alpha: 0.5
646 | Show Scene Robot: true
647 | Value: true
648 | Enabled: true
649 | Global Options:
650 | Background Color: 48; 48; 48
651 | Fixed Frame: /Base
652 | Name: root
653 | Tools:
654 | - Class: rviz/Interact
655 | Hide Inactive Objects: true
656 | - Class: rviz/MoveCamera
657 | - Class: rviz/Select
658 | Value: true
659 | Views:
660 | Current:
661 | Class: rviz/XYOrbit
662 | Distance: 2.9965
663 | Focal Point:
664 | X: 0.113567
665 | Y: 0.10592
666 | Z: 2.23518e-07
667 | Name: Current View
668 | Near Clip Distance: 0.01
669 | Pitch: 0.509797
670 | Target Frame: /Base
671 | Value: XYOrbit (rviz)
672 | Yaw: 5.65995
673 | Saved: ~
674 | Window Geometry:
675 | Displays:
676 | collapsed: false
677 | Height: 1337
678 | Help:
679 | collapsed: false
680 | Hide Left Dock: false
681 | Hide Right Dock: false
682 | Motion Planning:
683 | collapsed: false
684 | QMainWindow State: 000000ff00000000fd0000000100000000000002a2000004bcfc0200000005fb000000100044006900730070006c00610079007301000000410000032d000000dd00fffffffb0000000800480065006c00700000000342000000bb0000007600fffffffb0000000a0056006900650077007300000003b0000000b0000000b000fffffffb0000000c00430061006d00650072006100000002ff000001610000000000000000fb0000001e004d006f00740069006f006e00200050006c0061006e006e0069006e00670100000374000001890000017400ffffff0000047a000004bc00000001000000020000000100000002fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
685 | Views:
686 | collapsed: false
687 | Width: 1828
688 | X: 459
689 | Y: -243
690 |
--------------------------------------------------------------------------------
/swift_moveit_config/launch/moveit_rviz.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/swift_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 |
--------------------------------------------------------------------------------
/swift_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 |
--------------------------------------------------------------------------------
/swift_moveit_config/launch/planning_pipeline.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/swift_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 |
--------------------------------------------------------------------------------
/swift_moveit_config/launch/sensor_manager.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/swift_moveit_config/launch/setup_assistant.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/swift_moveit_config/launch/swiftpro_moveit_controller_manager.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/swift_moveit_config/launch/swiftpro_moveit_sensor_manager.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/swift_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 |
--------------------------------------------------------------------------------
/swift_moveit_config/launch/warehouse.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/swift_moveit_config/launch/warehouse_settings.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/swift_moveit_config/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | swift_moveit_config
4 | 0.3.0
5 |
6 | An automatically generated package with all the configuration and launch files for using the swiftpro with the MoveIt! Motion Planning Framework
7 |
8 | roger
9 | roger
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_kinematics
21 | moveit_planners_ompl
22 | moveit_ros_visualization
23 | joint_state_publisher
24 | robot_state_publisher
25 | xacro
26 |
27 |
28 | swiftpro
29 | swiftpro
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/swiftpro/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 2.8.3)
2 | project(swiftpro)
3 |
4 | ## Compile as C++11, supported in ROS Kinetic and newer
5 | # add_compile_options(-std=c++11)
6 |
7 | ## Find catkin macros and libraries
8 | ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
9 | ## is used, also find other catkin packages
10 | find_package(catkin REQUIRED COMPONENTS
11 | roscpp
12 | rospy
13 | serial
14 | std_msgs
15 | tf
16 | sensor_msgs
17 | message_generation
18 | )
19 |
20 | ## System dependencies are found with CMake's conventions
21 | # find_package(Boost REQUIRED COMPONENTS system)
22 |
23 |
24 | ## Uncomment this if the package has a setup.py. This macro ensures
25 | ## modules and global scripts declared therein get installed
26 | ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
27 | # catkin_python_setup()
28 |
29 | ################################################
30 | ## Declare ROS messages, services and actions ##
31 | ################################################
32 |
33 | ## To declare and build messages, services or actions from within this
34 | ## package, follow these steps:
35 | ## * Let MSG_DEP_SET be the set of packages whose message types you use in
36 | ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
37 | ## * In the file package.xml:
38 | ## * add a build_depend tag for "message_generation"
39 | ## * add a build_depend and a run_depend tag for each package in MSG_DEP_SET
40 | ## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
41 | ## but can be declared for certainty nonetheless:
42 | ## * add a run_depend tag for "message_runtime"
43 | ## * In this file (CMakeLists.txt):
44 | ## * add "message_generation" and every package in MSG_DEP_SET to
45 | ## find_package(catkin REQUIRED COMPONENTS ...)
46 | ## * add "message_runtime" and every package in MSG_DEP_SET to
47 | ## catkin_package(CATKIN_DEPENDS ...)
48 | ## * uncomment the add_*_files sections below as needed
49 | ## and list every .msg/.srv/.action file to be processed
50 | ## * uncomment the generate_messages entry below
51 | ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
52 |
53 | ## Generate messages in the 'msg' folder
54 | add_message_files(
55 | FILES
56 | SwiftproState.msg
57 | position.msg
58 | angle4th.msg
59 | status.msg
60 | )
61 |
62 | ## Generate services in the 'srv' folder
63 | # add_service_files(
64 | # FILES
65 | # fk.srv
66 | # Service2.srv
67 | # )
68 |
69 | ## Generate actions in the 'action' folder
70 | # add_action_files(
71 | # FILES
72 | # Action1.action
73 | # Action2.action
74 | # )
75 |
76 | ## Generate added messages and services with any dependencies listed here
77 | generate_messages(
78 | DEPENDENCIES
79 | std_msgs
80 | )
81 |
82 | ################################################
83 | ## Declare ROS dynamic reconfigure parameters ##
84 | ################################################
85 | ## To declare and build dynamic reconfigure parameters within this
86 | ## package, follow these steps:
87 | ## * In the file package.xml:
88 | ## * add a build_depend and a run_depend tag for "dynamic_reconfigure"
89 | ## * In this file (CMakeLists.txt):
90 | ## * add "dynamic_reconfigure" to
91 | ## find_package(catkin REQUIRED COMPONENTS ...)
92 | ## * uncomment the "generate_dynamic_reconfigure_options" section below
93 | ## and list every .cfg file to be processed
94 |
95 | ## Generate dynamic reconfigure parameters in the 'cfg' folder
96 | # generate_dynamic_reconfigure_options(
97 | # cfg/DynReconf1.cfg
98 | # cfg/DynReconf2.cfg
99 | # )
100 |
101 | ###################################
102 | ## catkin specific configuration ##
103 | ###################################
104 | ## The catkin_package macro generates cmake config files for your package
105 | ## Declare things to be passed to dependent projects
106 | ## INCLUDE_DIRS: uncomment this if you package contains header files
107 | ## LIBRARIES: libraries you create in this project that dependent projects also need
108 | ## CATKIN_DEPENDS: catkin_packages dependent projects also need
109 | ## DEPENDS: system dependencies of this project that dependent projects also need
110 | catkin_package(
111 | # INCLUDE_DIRS include
112 | LIBRARIES swiftpro
113 | CATKIN_DEPENDS roscpp rospy std_msgs tf sensor_msgs message_runtime
114 | # DEPENDS system_lib
115 | )
116 |
117 | ###########
118 | ## Build ##
119 | ###########
120 |
121 | ## Specify additional locations of header files
122 | ## Your package locations should be listed before other locations
123 | include_directories(
124 | # include
125 | ${catkin_INCLUDE_DIRS}
126 | )
127 |
128 | ## Declare a C++ library
129 | # add_library(${PROJECT_NAME}
130 | # src/${PROJECT_NAME}/swiftpro.cpp
131 | # )
132 |
133 | ## Add cmake target dependencies of the library
134 | ## as an example, code may need to be generated before libraries
135 | ## either from message generation or dynamic reconfigure
136 | # add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
137 |
138 | ## Declare a C++ executable
139 | ## With catkin_make all packages are built within a single CMake context
140 | ## The recommended prefix ensures that target names across packages don't collide
141 | # add_executable(${PROJECT_NAME}_node src/swiftpro_node.cpp)
142 | add_executable(swiftpro_write_node src/swiftpro_write_node.cpp)
143 | add_executable(swiftpro_moveit_node src/swiftpro_moveit_node.cpp)
144 | add_executable(swiftpro_rviz_node src/swiftpro_rviz_node.cpp)
145 | add_executable(swiftpro_read_node src/swiftpro_read_node.cpp)
146 |
147 | ## Rename C++ executable without prefix
148 | ## The above recommended prefix causes long target names, the following renames the
149 | ## target back to the shorter version for ease of user use
150 | ## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
151 | # set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
152 | #set_target_properties(swiftpro_write_node PROPERTIES OUTPUT_NAME write PREFIX "")
153 | #set_target_properties(swiftpro_moveit_node PROPERTIES OUTPUT_NAME moveit PREFIX "")
154 | #set_target_properties(swiftpro_rviz_node PROPERTIES OUTPUT_NAME rviz PREFIX "")
155 | #set_target_properties(swiftpro_read_node PROPERTIES OUTPUT_NAME read PREFIX "")
156 |
157 | ## Add cmake target dependencies of the executable
158 | ## same as for the library above
159 | # add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
160 | add_dependencies(swiftpro_write_node swiftpro_generate_messages_cpp)
161 | add_dependencies(swiftpro_moveit_node swiftpro_generate_messages_cpp)
162 | add_dependencies(swiftpro_rviz_node swiftpro_generate_messages_cpp)
163 | add_dependencies(swiftpro_read_node swiftpro_generate_messages_cpp)
164 |
165 | ## Specify libraries to link a library or executable target against
166 | # target_link_libraries(${PROJECT_NAME}_node
167 | # ${catkin_LIBRARIES}
168 | # )
169 | target_link_libraries(swiftpro_write_node ${catkin_LIBRARIES})
170 | target_link_libraries(swiftpro_moveit_node ${catkin_LIBRARIES})
171 | target_link_libraries(swiftpro_rviz_node ${catkin_LIBRARIES})
172 | target_link_libraries(swiftpro_read_node ${catkin_LIBRARIES})
173 |
174 | #############
175 | ## Install ##
176 | #############
177 |
178 | # all install targets should use catkin DESTINATION variables
179 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
180 |
181 | ## Mark executable scripts (Python etc.) for installation
182 | ## in contrast to setup.py, you can choose the destination
183 | # install(PROGRAMS
184 | # scripts/my_python_script
185 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
186 | # )
187 |
188 | ## Mark executables and/or libraries for installation
189 | # install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node
190 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
191 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
192 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
193 | # )
194 |
195 | ## Mark cpp header files for installation
196 | # install(DIRECTORY include/${PROJECT_NAME}/
197 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
198 | # FILES_MATCHING PATTERN "*.h"
199 | # PATTERN ".svn" EXCLUDE
200 | # )
201 |
202 | ## Mark other files for installation (e.g. launch and bag files, etc.)
203 | # install(FILES
204 | # # myfile1
205 | # # myfile2
206 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
207 | # )
208 |
209 | #############
210 | ## Testing ##
211 | #############
212 |
213 | ## Add gtest based cpp test target and link libraries
214 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_swiftpro.cpp)
215 | # if(TARGET ${PROJECT_NAME}-test)
216 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
217 | # endif()
218 |
219 | ## Add folders to be run by python nosetests
220 | # catkin_add_nosetests(test)
221 |
222 | include_directories(include/swiftpro)
223 | #add_library(MyRobot src/MyRobot.cpp)
224 | #add_executable(MyRobot src/MyRobot.cpp)
225 | #target_link_libraries(MyRobot ${catkin_LIBRARIES})
226 |
227 | #link_directories(src)
228 | #install(TARGETS MyRobot
229 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION})
230 |
--------------------------------------------------------------------------------
/swiftpro/launch/pro_control.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/swiftpro/launch/pro_display.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/swiftpro/launch/swift_control.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/swiftpro/launch/swift_display.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/swiftpro/msg/SwiftproState.msg:
--------------------------------------------------------------------------------
1 | float64 motor_angle1
2 | float64 motor_angle2
3 | float64 motor_angle3
4 | float64 motor_angle4
5 | float64 x
6 | float64 y
7 | float64 z
8 | uint8 pump
9 | uint8 swiftpro_status
10 | uint8 gripper
11 |
12 |
--------------------------------------------------------------------------------
/swiftpro/msg/angle4th.msg:
--------------------------------------------------------------------------------
1 | float64 angle4th
2 |
--------------------------------------------------------------------------------
/swiftpro/msg/position.msg:
--------------------------------------------------------------------------------
1 | float64 x
2 | float64 y
3 | float64 z
4 |
--------------------------------------------------------------------------------
/swiftpro/msg/status.msg:
--------------------------------------------------------------------------------
1 | uint8 status
2 |
--------------------------------------------------------------------------------
/swiftpro/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | swiftpro
4 | 0.0.0
5 | The swiftpro package
6 |
7 |
8 |
9 |
10 | uf
11 |
12 |
13 |
14 |
15 |
16 | TODO
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 | catkin
43 | roscpp
44 | rospy
45 | std_msgs
46 | message_generation
47 | sensor_msgs
48 | tf
49 | roscpp
50 | rospy
51 | std_msgs
52 | message_runtime
53 | sensor_msgs
54 | tf
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/swiftpro/src/swiftpro_moveit_node.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Software License Agreement (BSD License)
3 | * Copyright (c) 2017, UFactory, Inc.
4 | * All rights reserved.
5 | * Author: Roger Cui
6 | */
7 | #include
8 | #include
9 | #include
10 | #include
11 | #include
12 |
13 | #define MATH_PI 3.141592653589793238463
14 | #define MATH_TRANS 57.2958
15 | #define MATH_L1 106.6
16 | #define MATH_L2 13.2
17 | #define MATH_LOWER_ARM 142.07
18 | #define MATH_UPPER_ARM 158.81
19 |
20 | float motor_angle[3] = {90.0, 90.0, 0.0};
21 |
22 | /*
23 | * Description: forward kinematics of swift pro
24 | * Inputs: angle[3] 3 motor angles(degree)
25 | * Outputs: position[3] 3 cartesian coordinates: x, y, z(mm)
26 | */
27 | void swift_fk(float angle[3], float position[3])
28 | {
29 | double stretch = MATH_LOWER_ARM * cos(angle[1] / MATH_TRANS)
30 | + MATH_UPPER_ARM * cos(angle[2] / MATH_TRANS) + MATH_L2 + 56.55;
31 |
32 | double height = MATH_LOWER_ARM * sin(angle[1] / MATH_TRANS)
33 | - MATH_UPPER_ARM * sin(angle[2] / MATH_TRANS) + MATH_L1;
34 |
35 | position[0] = stretch * sin(angle[0] / MATH_TRANS);
36 | position[1] = -stretch * cos(angle[0] / MATH_TRANS);
37 | position[2] = height - 74.55;
38 | }
39 |
40 |
41 | /*
42 | * Description: callback when receive data from move_group/fake_controller_joint_states
43 | * Inputs: msg 3 necessary joints for kinematic chain(degree)
44 | * Outputs: motor_angle[3] 3 motor angles(degree)
45 | */
46 | void joint_Callback(const sensor_msgs::JointState& msg)
47 | {
48 | motor_angle[0] = msg.position[0] * 57.2958 + 90;
49 | motor_angle[1] = 90 - msg.position[1] * 57.2958;
50 | motor_angle[2] = (msg.position[1] + msg.position[2]) * 57.2958;
51 | }
52 |
53 |
54 | /*
55 | * Node name:
56 | * swiftpro_moveit_node
57 | *
58 | * Topic publish: (rate = 20Hz, queue size = 1)
59 | * position_write_topic
60 | *
61 | * Topic subscribe: (queue size = 1)
62 | * move_group/fake_controller_joint_states
63 | */
64 | int main(int argc, char **argv)
65 | {
66 | float position[3];
67 | swiftpro::position pos;
68 |
69 | ros::init(argc, argv, "swiftpro_moveit_node");
70 | ros::NodeHandle n;
71 |
72 | ros::Subscriber sub = n.subscribe("move_group/fake_controller_joint_states", 1, joint_Callback);
73 | ros::Publisher pub = n.advertise("position_write_topic", 1);
74 | ros::Rate loop_rate(20);
75 |
76 | while (ros::ok())
77 | {
78 | swift_fk(motor_angle, position);
79 | pos.x = position[0];
80 | pos.y = position[1];
81 | pos.z = position[2];
82 | pub.publish(pos);
83 |
84 | ros::spinOnce();
85 | loop_rate.sleep();
86 | }
87 | return 0;
88 | }
89 |
90 |
--------------------------------------------------------------------------------
/swiftpro/src/swiftpro_read_node.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Software License Agreement (BSD License)
3 | * Copyright (c) 2017, UFactory, Inc.
4 | * All rights reserved.
5 | * Author: Roger Cui
6 | * David Long
7 | */
8 |
9 | #include
10 | #include
11 | #include
12 | #include
13 | #include
14 |
15 | serial::Serial _serial; // serial object
16 | float position[4] = {0.0}; // 3 cartesian coordinates: x, y, z(mm) and 1 angle(degree)
17 | char strdata[2048]; // global variables for handling string
18 |
19 |
20 | void handlestr()
21 | {
22 | char *pch = strtok(strdata, " ");
23 | float value[8];
24 | int index = 0;
25 |
26 | while (pch != NULL && index < 5)
27 | {
28 | value[index] = atof(pch+1);
29 | pch = strtok(NULL, " ");
30 | index++;
31 | }
32 | position[0] = value[1];
33 | position[1] = value[2];
34 | position[2] = value[3];
35 | position[3] = value[4];
36 | }
37 |
38 |
39 | void handlechar(char c)
40 | {
41 | static int index = 0;
42 |
43 | switch(c)
44 | {
45 | case '\r':
46 | break;
47 |
48 | case '\n':
49 | strdata[index] = '\0';
50 | handlestr();
51 | index = 0;
52 | break;
53 |
54 | default:
55 | strdata[index++] = c;
56 | break;
57 | }
58 | }
59 |
60 | /*
61 | * Node name:
62 | * swiftpro_read_node
63 | *
64 | * Topic publish: (rate = 20Hz, queue size = 1)
65 | * position_read_topic
66 | */
67 | int main(int argc, char** argv)
68 | {
69 | ros::init(argc, argv, "swiftpro_read_node");
70 | ros::NodeHandle nh;
71 | swiftpro::SwiftproState swiftpro_state;
72 | std_msgs::String result;
73 |
74 | ros::Publisher pub = nh.advertise("SwiftproState_topic", 1);
75 | ros::Rate loop_rate(20);
76 |
77 | try
78 | {
79 | _serial.setPort("/dev/ttyACM0");
80 | _serial.setBaudrate(115200);
81 | serial::Timeout to = serial::Timeout::simpleTimeout(1000);
82 | _serial.setTimeout(to);
83 | _serial.open();
84 | ROS_INFO_STREAM("Port has been open successfully");
85 | }
86 | catch (serial::IOException& e)
87 | {
88 | ROS_ERROR_STREAM("Unable to open port");
89 | return -1;
90 | }
91 |
92 | if (_serial.isOpen())
93 | {
94 | ros::Duration(3.0).sleep(); // wait 3s
95 | _serial.write("M2019\r\n"); // detach
96 | ros::Duration(0.5).sleep(); // wait 0.5s
97 | _serial.write("M2120 V0.05\r\n"); // report position per 0.05s
98 | ROS_INFO_STREAM("Start to report data");
99 | }
100 |
101 | while (ros::ok()) // publish positionesian coordinates
102 | {
103 | if (_serial.available())
104 | {
105 | result.data = _serial.read(_serial.available());
106 | // ROS_INFO_STREAM("Read:" << result.data);
107 | for (int i = 0; i < result.data.length(); i++)
108 | handlechar(result.data.c_str()[i]);
109 |
110 | swiftpro_state.pump = 0;
111 | swiftpro_state.gripper = 0;
112 | swiftpro_state.swiftpro_status = 0;
113 | swiftpro_state.motor_angle1 = 0.0;
114 | swiftpro_state.motor_angle2 = 0.0;
115 | swiftpro_state.motor_angle3 = 0.0;
116 | swiftpro_state.motor_angle4 = position[3];
117 | swiftpro_state.x = position[0];
118 | swiftpro_state.y = position[1];
119 | swiftpro_state.z = position[2];
120 | pub.publish(swiftpro_state);
121 | ROS_INFO("position: %.2f %.2f %.2f %.2f", position[0], position[1], position[2], position[3]);
122 | }
123 | ros::spinOnce();
124 | loop_rate.sleep();
125 | }
126 | }
127 |
128 |
129 |
--------------------------------------------------------------------------------
/swiftpro/src/swiftpro_rviz_node.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Software License Agreement (BSD License)
3 | * Copyright (c) 2017, UFactory, Inc.
4 | * All rights reserved.
5 | * Author: Roger Cui
6 | */
7 | #include
8 | #include
9 | #include
10 | #include
11 | #include
12 | #include
13 |
14 | #define MATH_PI 3.141592653589793238463
15 | #define MATH_TRANS 57.2958
16 | #define MATH_L1 106.6
17 | #define MATH_L2 13.2
18 | #define MATH_LOWER_ARM 142.07
19 | #define MATH_UPPER_ARM 158.81
20 | #define MATH_UPPER_LOWER (MATH_UPPER_ARM / MATH_LOWER_ARM)
21 |
22 | #define LOWER_ARM_MAX_ANGLE 135.6
23 | #define LOWER_ARM_MIN_ANGLE 0
24 | #define UPPER_ARM_MAX_ANGLE 100.7
25 | #define UPPER_ARM_MIN_ANGLE 0
26 | #define LOWER_UPPER_MAX_ANGLE 151
27 | #define LOWER_UPPER_MIN_ANGLE 10
28 |
29 | float joint_angle[9] = {0.0}; // 9 joint angles of swiftpro(degree)
30 |
31 | /*
32 | * Description: Get 9 joint angles from 3 motor angles
33 | * Inputs: angle[3] 3 motor angles(degree)
34 | * Outputs: joint_angle[9] 9 joint angles(degree)
35 | */
36 | void all_joints_state(float angle[3])
37 | {
38 | double alpha2;
39 | double alpha3;
40 |
41 | alpha2 = angle[1];
42 | alpha3 = angle[2] - 3.8;
43 |
44 | // 3 necessary joints for kinematic chain
45 | joint_angle[0] = angle[0] - 90;
46 | joint_angle[1] = 90 - alpha2;
47 | joint_angle[5] = alpha3;
48 |
49 | // 6 passive joints for display
50 | joint_angle[2] = (alpha2 + alpha3) - 176.11 + 90;
51 | joint_angle[3] = -90 + alpha2;
52 | joint_angle[4] = joint_angle[1];
53 | joint_angle[6] = 90 - (alpha2 + alpha3);
54 | joint_angle[7] = 176.11 - 180 - alpha3;
55 | joint_angle[8] = 48.39 + alpha3 - 44.55;
56 | }
57 |
58 |
59 | /*
60 | * Description: inverse kinematics of swift pro
61 | * Inputs: position[3] 3 cartesian coordinates: x, y, z(mm)
62 | * Outputs: angle[3] 3 motor angles(degree)
63 | */
64 | bool swiftpro_ik(float position[3], float angle[3])
65 | {
66 | float x = position[0];
67 | float y = position[1];
68 | float z = position[2];
69 | float xIn, zIn, phi, rightAll, sqrtZX = 0.0;
70 | float angleRot, angleLeft, angleRight = 0.0;
71 |
72 | z += 74.55;
73 | zIn = (z - MATH_L1) / MATH_LOWER_ARM;
74 |
75 | if (x < 0.1)
76 | x = 0.1;
77 |
78 | // calculate value of theta1: the rotation angle
79 | if (y == 0)
80 | angleRot = 90;
81 | else if (y < 0)
82 | angleRot = -atan(x / y) * MATH_TRANS;
83 | else if (y > 0)
84 | angleRot = 180 - atan(x / y) * MATH_TRANS;
85 |
86 | xIn = (x / sin(angleRot / MATH_TRANS) - MATH_L2 - 56.55) / MATH_LOWER_ARM;
87 | phi = atan(zIn / xIn) * MATH_TRANS;
88 | sqrtZX = sqrt(zIn * zIn + xIn * xIn);
89 | rightAll = (sqrtZX * sqrtZX + MATH_UPPER_LOWER * MATH_UPPER_LOWER - 1)
90 | / (2 * MATH_UPPER_LOWER * sqrtZX);
91 | angleRight = acos(rightAll) * MATH_TRANS;
92 |
93 | // calculate value of theta2 and theta3
94 | rightAll = (sqrtZX * sqrtZX + 1 - MATH_UPPER_LOWER * MATH_UPPER_LOWER ) / (2 * sqrtZX);
95 | angleLeft = acos(rightAll) * MATH_TRANS;
96 | angleLeft = angleLeft + phi;
97 | angleRight = angleRight - phi;
98 |
99 | if (isnan(angleRot) || isnan(angleLeft) || isnan(angleRight))
100 | return false;
101 |
102 | angle[0] = angleRot;
103 | angle[1] = angleLeft;
104 | angle[2] = angleRight;
105 | return true;
106 | }
107 |
108 |
109 | /*
110 | * Description: callback when receive data from position_read_topic
111 | * Inputs: msg(SwiftproState) data about swiftpro
112 | * Outputs: joint_angle[9] 9 joint angles(degree)
113 | */
114 | void SwiftproState_Callback(const swiftpro::SwiftproState& msg)
115 | {
116 | float position[3];
117 | float angle[3];
118 |
119 | position[0] = msg.x;
120 | position[1] = msg.y;
121 | position[2] = msg.z;
122 |
123 | if ( swiftpro_ik(position, angle) )
124 | all_joints_state(angle);
125 | else
126 | ROS_ERROR("Inverse kinematic is wrong");
127 | }
128 |
129 |
130 | /*
131 | * Node name:
132 | * swiftpro_rviz_node
133 | *
134 | * Topic publish: (rate = 20Hz, queue size = 1)
135 | * joint_states
136 | *
137 | * Topic subscribe: (queue size = 1)
138 | * SwiftproState_topic
139 | */
140 | int main(int argc, char **argv)
141 | {
142 | ros::init(argc, argv, "swiftpro_rviz_node");
143 | ros::NodeHandle n;
144 |
145 | ros::Subscriber sub = n.subscribe("SwiftproState_topic", 1, SwiftproState_Callback);
146 | ros::Publisher pub = n.advertise("joint_states", 1);
147 | ros::Rate loop_rate(20);
148 |
149 | tf::TransformBroadcaster broadcaster;
150 | sensor_msgs::JointState joint_state;
151 | geometry_msgs::TransformStamped odom_trans;
152 |
153 | odom_trans.header.frame_id = "odom";
154 | odom_trans.child_frame_id = "Base";
155 |
156 | while (ros::ok())
157 | {
158 | joint_state.header.stamp = ros::Time::now();
159 | joint_state.name.resize(9);
160 | joint_state.position.resize(9);
161 | joint_state.name[0] = "Joint1";
162 | joint_state.position[0] = joint_angle[0] / 57.2958;
163 | joint_state.name[1] = "Joint2";
164 | joint_state.position[1] = joint_angle[1] / 57.2958;
165 | joint_state.name[2] = "Joint3";
166 | joint_state.position[2] = joint_angle[2] / 57.2958;
167 | joint_state.name[3] = "Joint4";
168 | joint_state.position[3] = joint_angle[3] / 57.2958;
169 | joint_state.name[4] = "Joint5";
170 | joint_state.position[4] = joint_angle[4] / 57.2958;
171 | joint_state.name[5] = "Joint6";
172 | joint_state.position[5] = joint_angle[5] / 57.2958;
173 | joint_state.name[6] = "Joint7";
174 | joint_state.position[6] = joint_angle[6] / 57.2958;
175 | joint_state.name[7] = "Joint8";
176 | joint_state.position[7] = joint_angle[7] / 57.2958;
177 | joint_state.name[8] = "Joint9";
178 | joint_state.position[8] = joint_angle[8] / 57.2958;
179 |
180 | odom_trans.header.stamp = ros::Time::now();
181 | odom_trans.transform.translation.x = 0;
182 | odom_trans.transform.translation.y = 0;
183 | odom_trans.transform.translation.z = 0.0;
184 | odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(10);
185 |
186 | pub.publish(joint_state);
187 | broadcaster.sendTransform(odom_trans);
188 |
189 | ros::spinOnce();
190 | loop_rate.sleep();
191 | }
192 | return 0;
193 | }
194 |
195 |
--------------------------------------------------------------------------------
/swiftpro/src/swiftpro_write_node.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Software License Agreement (BSD License)
3 | * Copyright (c) 2017, UFactory, Inc.
4 | * All rights reserved.
5 | * Author: Roger Cui
6 | */
7 | #include
8 | #include
9 | #include
10 | #include
11 | #include
12 | #include
13 | #include
14 | #include
15 | #include
16 |
17 | serial::Serial _serial; // serial object
18 | swiftpro::SwiftproState pos;
19 |
20 | /*
21 | * Description: callback when receive data from position_write_topic
22 | * Inputs: msg(float) 3 cartesian coordinates: x, y, z(mm)
23 | * Outputs: Gcode send gcode to control swift pro
24 | */
25 | void position_write_callback(const swiftpro::position& msg)
26 | {
27 | std::string Gcode = "";
28 | std_msgs::String result;
29 | char x[10];
30 | char y[10];
31 | char z[10];
32 |
33 | pos.x = msg.x;
34 | pos.y = msg.y;
35 | pos.z = msg.z;
36 | sprintf(x, "%.2f", msg.x);
37 | sprintf(y, "%.2f", msg.y);
38 | sprintf(z, "%.2f", msg.z);
39 | Gcode = (std::string)"G0 X" + x + " Y" + y + " Z" + z + " F10000" + "\r\n";
40 | ROS_INFO("%s", Gcode.c_str());
41 | _serial.write(Gcode.c_str());
42 | result.data = _serial.read(_serial.available());
43 | }
44 |
45 |
46 | /*
47 | * Description: callback when receive data from angle4th_topic
48 | * Inputs: msg(float) angle of 4th motor(degree)
49 | * Outputs: Gcode send gcode to control swift pro
50 | */
51 | void angle4th_callback(const swiftpro::angle4th& msg)
52 | {
53 | std::string Gcode = "";
54 | std_msgs::String result;
55 | char m4[10];
56 |
57 | pos.motor_angle4 = msg.angle4th;
58 | sprintf(m4, "%.2f", msg.angle4th);
59 | Gcode = (std::string)"G2202 N3 V" + m4 + "\r\n";
60 | ROS_INFO("%s", Gcode.c_str());
61 | _serial.write(Gcode.c_str());
62 | result.data = _serial.read(_serial.available());
63 | }
64 |
65 |
66 | /*
67 | * Description: callback when receive data from swiftpro_status_topic
68 | * Inputs: msg(uint8) status of gripper: attach if 1; detach if 0
69 | * Outputs: Gcode send gcode to control swift pro
70 | */
71 | void swiftpro_status_callback(const swiftpro::status& msg)
72 | {
73 | std::string Gcode = "";
74 | std_msgs::String result;
75 |
76 | if (msg.status == 1)
77 | Gcode = (std::string)"M17\r\n"; // attach
78 | else if (msg.status == 0)
79 | Gcode = (std::string)"M2019\r\n";
80 | else
81 | {
82 | ROS_INFO("Error:Wrong swiftpro status input");
83 | return;
84 | }
85 |
86 | pos.swiftpro_status = msg.status;
87 | ROS_INFO("%s", Gcode.c_str());
88 | _serial.write(Gcode.c_str());
89 | result.data = _serial.read(_serial.available());
90 | }
91 |
92 |
93 | /*
94 | * Description: callback when receive data from gripper_topic
95 | * Inputs: msg(uint8) status of gripper: work if 1; otherwise 0
96 | * Outputs: Gcode send gcode to control swift pro
97 | */
98 | void gripper_callback(const swiftpro::status& msg)
99 | {
100 | std::string Gcode = "";
101 | std_msgs::String result;
102 |
103 | if (msg.status == 1)
104 | Gcode = (std::string)"M2232 V1" + "\r\n";
105 | else if (msg.status == 0)
106 | Gcode = (std::string)"M2232 V0" + "\r\n";
107 | else
108 | {
109 | ROS_INFO("Error:Wrong gripper status input");
110 | return;
111 | }
112 |
113 | pos.gripper = msg.status;
114 | ROS_INFO("%s", Gcode.c_str());
115 | _serial.write(Gcode.c_str());
116 | result.data = _serial.read(_serial.available());
117 | }
118 |
119 |
120 | /*
121 | * Description: callback when receive data from pump_topic
122 | * Inputs: msg(uint8) status of pump: work if 1; otherwise 0
123 | * Outputs: Gcode send gcode to control swift pro
124 | */
125 | void pump_callback(const swiftpro::status& msg)
126 | {
127 | std::string Gcode = "";
128 | std_msgs::String result;
129 |
130 | if (msg.status == 1)
131 | Gcode = (std::string)"M2231 V1" + "\r\n";
132 | else if (msg.status == 0)
133 | Gcode = (std::string)"M2231 V0" + "\r\n";
134 | else
135 | {
136 | ROS_INFO("Error:Wrong pump status input");
137 | return;
138 | }
139 |
140 | pos.pump = msg.status;
141 | ROS_INFO("%s", Gcode.c_str());
142 | _serial.write(Gcode.c_str());
143 | result.data = _serial.read(_serial.available());
144 | }
145 |
146 |
147 | /*
148 | * Node name:
149 | * swiftpro_write_node
150 | *
151 | * Topic publish: (rate = 20Hz, queue size = 1)
152 | * swiftpro_state_topic
153 | *
154 | * Topic subscribe: (queue size = 1)
155 | * position_write_topic
156 | * swiftpro_status_topic
157 | * angle4th_topic
158 | * gripper_topic
159 | * pump_topic
160 | */
161 | int main(int argc, char** argv)
162 | {
163 | ros::init(argc, argv, "swiftpro_write_node");
164 | ros::NodeHandle nh;
165 | swiftpro::SwiftproState swiftpro_state;
166 |
167 | ros::Subscriber sub1 = nh.subscribe("position_write_topic", 1, position_write_callback);
168 | ros::Subscriber sub2 = nh.subscribe("swiftpro_status_topic", 1, swiftpro_status_callback);
169 | ros::Subscriber sub3 = nh.subscribe("angle4th_topic", 1, angle4th_callback);
170 | ros::Subscriber sub4 = nh.subscribe("gripper_topic", 1, gripper_callback);
171 | ros::Subscriber sub5 = nh.subscribe("pump_topic", 1, pump_callback);
172 | ros::Publisher pub = nh.advertise("SwiftproState_topic", 1);
173 | ros::Rate loop_rate(20);
174 |
175 | try
176 | {
177 | _serial.setPort("/dev/ttyACM0");
178 | _serial.setBaudrate(115200);
179 | serial::Timeout to = serial::Timeout::simpleTimeout(1000);
180 | _serial.setTimeout(to);
181 | _serial.open();
182 | ROS_INFO_STREAM("Port has been open successfully");
183 | }
184 | catch (serial::IOException& e)
185 | {
186 | ROS_ERROR_STREAM("Unable to open port");
187 | return -1;
188 | }
189 |
190 | if (_serial.isOpen())
191 | {
192 | ros::Duration(3.5).sleep(); // wait 3.5s
193 | _serial.write("M2120 V0\r\n"); // stop report position
194 | ros::Duration(0.1).sleep(); // wait 0.1s
195 | _serial.write("M17\r\n"); // attach
196 | ros::Duration(0.1).sleep(); // wait 0.1s
197 | ROS_INFO_STREAM("Attach and wait for commands");
198 | }
199 |
200 | while (ros::ok())
201 | {
202 | pub.publish(pos);
203 | ros::spinOnce();
204 | loop_rate.sleep();
205 | }
206 |
207 | return 0;
208 | }
209 |
210 |
211 |
--------------------------------------------------------------------------------
/swiftpro/urdf/pro_links/Base.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/pro_links/Base.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/pro_links/Gripper.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/pro_links/Gripper.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/pro_links/Link1.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/pro_links/Link1.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/pro_links/Link2.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/pro_links/Link2.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/pro_links/Link3.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/pro_links/Link3.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/pro_links/Link4.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/pro_links/Link4.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/pro_links/Link5.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/pro_links/Link5.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/pro_links/Link6.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/pro_links/Link6.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/pro_links/Link7.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/pro_links/Link7.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/pro_links/Link9.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/pro_links/Link9.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/pro_links/Suction.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/pro_links/Suction.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/pro_model.xacro:
--------------------------------------------------------------------------------
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 |
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 |
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 |
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 |
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 |
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 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
--------------------------------------------------------------------------------
/swiftpro/urdf/swift_links/Base.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/swift_links/Base.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/swift_links/Gripper.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/swift_links/Gripper.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/swift_links/Link1.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/swift_links/Link1.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/swift_links/Link2.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/swift_links/Link2.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/swift_links/Link3.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/swift_links/Link3.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/swift_links/Link4.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/swift_links/Link4.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/swift_links/Link5.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/swift_links/Link5.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/swift_links/Link6.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/swift_links/Link6.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/swift_links/Link7.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/swift_links/Link7.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/swift_links/Link9.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/swift_links/Link9.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/swift_links/Suction.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uArm-Developer/RosForSwiftAndSwiftPro/a735297d586a1120f410ff9c1ea4ecdc21dcbb86/swiftpro/urdf/swift_links/Suction.STL
--------------------------------------------------------------------------------
/swiftpro/urdf/swift_model.xacro:
--------------------------------------------------------------------------------
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 |
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 |
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 |
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 |
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 |
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 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
--------------------------------------------------------------------------------