исправлена название группы управления осями, добавле файл конфигуации для управления осями через api moveit, а также добавлен пример на языке python
This commit is contained in:
@@ -8,6 +8,8 @@ sudo apt install -y ros-${ROS_DISTRO}-webots-ros2 \
|
|||||||
ros-${ROS_DISTRO}-ros2-control \
|
ros-${ROS_DISTRO}-ros2-control \
|
||||||
ros-${ROS_DISTRO}-ros2-controllers \
|
ros-${ROS_DISTRO}-ros2-controllers \
|
||||||
ros-${ROS_DISTRO}-moveit \
|
ros-${ROS_DISTRO}-moveit \
|
||||||
|
ros-${ROS_DISTRO}-moveit-py
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Установка moveit2 (внимательно проверяй)
|
Установка moveit2 (внимательно проверяй)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<!--JOINTS: When a joint is specified, the child link of that joint (which will always exist) is automatically included-->
|
<!--JOINTS: When a joint is specified, the child link of that joint (which will always exist) is automatically included-->
|
||||||
<!--CHAINS: When a chain is specified, all the links along the chain (including endpoints) are included in the group. Additionally, all the joints that are parents to included links are also included. This means that joints along the chain and the parent joint of the base link are included in the group-->
|
<!--CHAINS: When a chain is specified, all the links along the chain (including endpoints) are included in the group. Additionally, all the joints that are parents to included links are also included. This means that joints along the chain and the parent joint of the base link are included in the group-->
|
||||||
<!--SUBGROUPS: Groups can also be formed by referencing to already defined group names-->
|
<!--SUBGROUPS: Groups can also be formed by referencing to already defined group names-->
|
||||||
<group name="arm">
|
<group name="iiwa_arm">
|
||||||
<joint name="joint1"/>
|
<joint name="joint1"/>
|
||||||
<joint name="joint2"/>
|
<joint name="joint2"/>
|
||||||
<joint name="joint3"/>
|
<joint name="joint3"/>
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
</group>
|
</group>
|
||||||
|
|
||||||
<!--GROUP STATES: Purpose: Define a named state for a particular group, in terms of joint values. This is useful to define states like 'folded arms'-->
|
<!--GROUP STATES: Purpose: Define a named state for a particular group, in terms of joint values. This is useful to define states like 'folded arms'-->
|
||||||
<group_state name="home" group="arm">
|
<group_state name="home" group="iiwa_arm">
|
||||||
<joint name="joint1" value="0"/>
|
<joint name="joint1" value="0"/>
|
||||||
<joint name="joint2" value="0"/>
|
<joint name="joint2" value="0"/>
|
||||||
<joint name="joint3" value="0"/>
|
<joint name="joint3" value="0"/>
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
<joint name="joint7" value="0"/>
|
<joint name="joint7" value="0"/>
|
||||||
</group_state>
|
</group_state>
|
||||||
|
|
||||||
<group_state name="work" group="arm">
|
<group_state name="work" group="iiwa_arm">
|
||||||
<joint name="joint1" value="0"/>
|
<joint name="joint1" value="0"/>
|
||||||
<joint name="joint2" value="0"/>
|
<joint name="joint2" value="0"/>
|
||||||
<joint name="joint3" value="0"/>
|
<joint name="joint3" value="0"/>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
arm:
|
iiwa_arm:
|
||||||
kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin
|
kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin
|
||||||
kinematics_solver_search_resolution: 0.0050000000000000001
|
kinematics_solver_search_resolution: 0.0050000000000000001
|
||||||
kinematics_solver_timeout: 0.0050000000000000001
|
kinematics_solver_timeout: 0.0050000000000000001
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
planning_scene_monitor_options:
|
||||||
|
name: "planning_scene_monitor"
|
||||||
|
robot_description: "robot_description"
|
||||||
|
joint_state_topic: "/joint_states"
|
||||||
|
attached_collision_object_topic: "/moveit_cpp/planning_scene_monitor"
|
||||||
|
publish_planning_scene_topic: "/moveit_cpp/publish_planning_scene"
|
||||||
|
monitored_planning_scene_topic: "/moveit_cpp/monitored_planning_scene"
|
||||||
|
wait_for_initial_state_timeout: 10.0
|
||||||
|
|
||||||
|
planning_pipelines:
|
||||||
|
pipeline_names: ["ompl", "pilz_industrial_motion_planner", "chomp"]
|
||||||
|
|
||||||
|
plan_request_params:
|
||||||
|
planning_attempts: 1
|
||||||
|
planning_pipeline: ompl
|
||||||
|
max_velocity_scaling_factor: 1.0
|
||||||
|
max_acceleration_scaling_factor: 1.0
|
||||||
|
|
||||||
|
ompl_rrtc: # Namespace for individual plan request
|
||||||
|
plan_request_params: # PlanRequestParameters similar to the ones that are used by the single pipeline planning of moveit_cpp
|
||||||
|
planning_attempts: 1 # Number of attempts the planning pipeline tries to solve a given motion planning problem
|
||||||
|
planning_pipeline: ompl # Name of the pipeline that is being used
|
||||||
|
planner_id: "RRTConnectkConfigDefault" # Name of the specific planner to be used by the pipeline
|
||||||
|
max_velocity_scaling_factor: 1.0 # Velocity scaling parameter for the trajectory generation algorithm that is called (if configured) after the path planning
|
||||||
|
max_acceleration_scaling_factor: 1.0 # Acceleration scaling parameter for the trajectory generation algorithm that is called (if configured) after the path planning
|
||||||
|
planning_time: 1.0 # Time budget for the motion plan request. If the planning problem cannot be solved within this time, an empty solution with error code is returned
|
||||||
|
|
||||||
|
pilz_lin:
|
||||||
|
plan_request_params:
|
||||||
|
planning_attempts: 1
|
||||||
|
planning_pipeline: pilz_industrial_motion_planner
|
||||||
|
planner_id: "PTP"
|
||||||
|
max_velocity_scaling_factor: 1.0
|
||||||
|
max_acceleration_scaling_factor: 1.0
|
||||||
|
planning_time: 0.8
|
||||||
|
|
||||||
|
chomp_planner:
|
||||||
|
plan_request_params:
|
||||||
|
planning_attempts: 1
|
||||||
|
planning_pipeline: chomp
|
||||||
|
max_velocity_scaling_factor: 1.0
|
||||||
|
max_acceleration_scaling_factor: 1.0
|
||||||
|
planning_time: 1.5
|
||||||
@@ -6,10 +6,8 @@ Panels:
|
|||||||
Expanded:
|
Expanded:
|
||||||
- /Global Options1
|
- /Global Options1
|
||||||
- /Status1
|
- /Status1
|
||||||
- /RobotModel1
|
|
||||||
- /RobotModel1/Mass Properties1
|
|
||||||
Splitter Ratio: 0.5
|
Splitter Ratio: 0.5
|
||||||
Tree Height: 834
|
Tree Height: 166
|
||||||
- Class: rviz_common/Selection
|
- Class: rviz_common/Selection
|
||||||
Name: Selection
|
Name: Selection
|
||||||
- Class: rviz_common/Tool Properties
|
- Class: rviz_common/Tool Properties
|
||||||
@@ -49,18 +47,31 @@ Visualization Manager:
|
|||||||
Plane Cell Count: 10
|
Plane Cell Count: 10
|
||||||
Reference Frame: <Fixed Frame>
|
Reference Frame: <Fixed Frame>
|
||||||
Value: true
|
Value: true
|
||||||
- Alpha: 1
|
- Acceleration_Scaling_Factor: 0.1
|
||||||
Class: rviz_default_plugins/RobotModel
|
Class: moveit_rviz_plugin/MotionPlanning
|
||||||
Collision Enabled: false
|
|
||||||
Description File: ""
|
|
||||||
Description Source: Topic
|
|
||||||
Description Topic:
|
|
||||||
Depth: 5
|
|
||||||
Durability Policy: Volatile
|
|
||||||
History Policy: Keep Last
|
|
||||||
Reliability Policy: Reliable
|
|
||||||
Value: /robot_description
|
|
||||||
Enabled: true
|
Enabled: true
|
||||||
|
Move Group Namespace: ""
|
||||||
|
MoveIt_Allow_Approximate_IK: false
|
||||||
|
MoveIt_Allow_External_Program: false
|
||||||
|
MoveIt_Allow_Replanning: false
|
||||||
|
MoveIt_Allow_Sensor_Positioning: false
|
||||||
|
MoveIt_Planning_Attempts: 10
|
||||||
|
MoveIt_Planning_Time: 5
|
||||||
|
MoveIt_Use_Cartesian_Path: false
|
||||||
|
MoveIt_Use_Constraint_Aware_IK: false
|
||||||
|
MoveIt_Workspace:
|
||||||
|
Center:
|
||||||
|
X: 0
|
||||||
|
Y: 0
|
||||||
|
Z: 0
|
||||||
|
Size:
|
||||||
|
X: 2
|
||||||
|
Y: 2
|
||||||
|
Z: 2
|
||||||
|
Name: MotionPlanning
|
||||||
|
Planned Path:
|
||||||
|
Color Enabled: false
|
||||||
|
Interrupt Display: false
|
||||||
Links:
|
Links:
|
||||||
All Links Enabled: true
|
All Links Enabled: true
|
||||||
Expand Joint Details: false
|
Expand Joint Details: false
|
||||||
@@ -107,7 +118,7 @@ Visualization Manager:
|
|||||||
Show Axes: false
|
Show Axes: false
|
||||||
Show Trail: false
|
Show Trail: false
|
||||||
Value: true
|
Value: true
|
||||||
link7_ee:
|
link_ee:
|
||||||
Alpha: 1
|
Alpha: 1
|
||||||
Show Axes: false
|
Show Axes: false
|
||||||
Show Trail: false
|
Show Trail: false
|
||||||
@@ -115,18 +126,109 @@ Visualization Manager:
|
|||||||
Alpha: 1
|
Alpha: 1
|
||||||
Show Axes: false
|
Show Axes: false
|
||||||
Show Trail: false
|
Show Trail: false
|
||||||
Mass Properties:
|
Loop Animation: false
|
||||||
Inertia: false
|
Robot Alpha: 0.5
|
||||||
Mass: false
|
Robot Color: 150; 50; 150
|
||||||
Name: RobotModel
|
Show Robot Collision: false
|
||||||
TF Prefix: ""
|
Show Robot Visual: true
|
||||||
Update Interval: 0
|
Show Trail: false
|
||||||
|
State Display Time: 3x
|
||||||
|
Trail Step Size: 1
|
||||||
|
Trajectory Topic: /display_planned_path
|
||||||
|
Use Sim Time: false
|
||||||
|
Planning Metrics:
|
||||||
|
Payload: 1
|
||||||
|
Show Joint Torques: false
|
||||||
|
Show Manipulability: false
|
||||||
|
Show Manipulability Index: false
|
||||||
|
Show Weight Limit: false
|
||||||
|
TextHeight: 0.07999999821186066
|
||||||
|
Planning Request:
|
||||||
|
Colliding Link Color: 255; 0; 0
|
||||||
|
Goal State Alpha: 1
|
||||||
|
Goal State Color: 250; 128; 0
|
||||||
|
Interactive Marker Size: 0
|
||||||
|
Joint Violation Color: 255; 0; 255
|
||||||
|
Planning Group: iiwa_arm
|
||||||
|
Query Goal State: true
|
||||||
|
Query Start State: false
|
||||||
|
Show Workspace: false
|
||||||
|
Start State Alpha: 1
|
||||||
|
Start State Color: 0; 255; 0
|
||||||
|
Planning Scene Topic: /monitored_planning_scene
|
||||||
|
Robot Description: robot_description
|
||||||
|
Scene Geometry:
|
||||||
|
Scene Alpha: 0.8999999761581421
|
||||||
|
Scene Color: 50; 230; 50
|
||||||
|
Scene Display Time: 0.009999999776482582
|
||||||
|
Show Scene Geometry: true
|
||||||
|
Voxel Coloring: Z-Axis
|
||||||
|
Voxel Rendering: Occupied Voxels
|
||||||
|
Scene Robot:
|
||||||
|
Attached Body Color: 150; 50; 150
|
||||||
|
Links:
|
||||||
|
All Links Enabled: true
|
||||||
|
Expand Joint Details: false
|
||||||
|
Expand Link Details: false
|
||||||
|
Expand Tree: false
|
||||||
|
Link Tree Style: Links in Alphabetic Order
|
||||||
|
base_link:
|
||||||
|
Alpha: 1
|
||||||
|
Show Axes: false
|
||||||
|
Show Trail: false
|
||||||
Value: true
|
Value: true
|
||||||
Visual Enabled: true
|
link1:
|
||||||
|
Alpha: 1
|
||||||
|
Show Axes: false
|
||||||
|
Show Trail: false
|
||||||
|
Value: true
|
||||||
|
link2:
|
||||||
|
Alpha: 1
|
||||||
|
Show Axes: false
|
||||||
|
Show Trail: false
|
||||||
|
Value: true
|
||||||
|
link3:
|
||||||
|
Alpha: 1
|
||||||
|
Show Axes: false
|
||||||
|
Show Trail: false
|
||||||
|
Value: true
|
||||||
|
link4:
|
||||||
|
Alpha: 1
|
||||||
|
Show Axes: false
|
||||||
|
Show Trail: false
|
||||||
|
Value: true
|
||||||
|
link5:
|
||||||
|
Alpha: 1
|
||||||
|
Show Axes: false
|
||||||
|
Show Trail: false
|
||||||
|
Value: true
|
||||||
|
link6:
|
||||||
|
Alpha: 1
|
||||||
|
Show Axes: false
|
||||||
|
Show Trail: false
|
||||||
|
Value: true
|
||||||
|
link7:
|
||||||
|
Alpha: 1
|
||||||
|
Show Axes: false
|
||||||
|
Show Trail: false
|
||||||
|
Value: true
|
||||||
|
link_ee:
|
||||||
|
Alpha: 1
|
||||||
|
Show Axes: false
|
||||||
|
Show Trail: false
|
||||||
|
world:
|
||||||
|
Alpha: 1
|
||||||
|
Show Axes: false
|
||||||
|
Show Trail: false
|
||||||
|
Robot Alpha: 1
|
||||||
|
Show Robot Collision: false
|
||||||
|
Show Robot Visual: true
|
||||||
|
Value: true
|
||||||
|
Velocity_Scaling_Factor: 0.1
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Global Options:
|
Global Options:
|
||||||
Background Color: 48; 48; 48
|
Background Color: 48; 48; 48
|
||||||
Fixed Frame: base_link
|
Fixed Frame: world
|
||||||
Frame Rate: 30
|
Frame Rate: 30
|
||||||
Name: root
|
Name: root
|
||||||
Tools:
|
Tools:
|
||||||
@@ -169,7 +271,7 @@ Visualization Manager:
|
|||||||
Views:
|
Views:
|
||||||
Current:
|
Current:
|
||||||
Class: rviz_default_plugins/Orbit
|
Class: rviz_default_plugins/Orbit
|
||||||
Distance: 3.324988842010498
|
Distance: 3.753772020339966
|
||||||
Enable Stereo Rendering:
|
Enable Stereo Rendering:
|
||||||
Stereo Eye Separation: 0.05999999865889549
|
Stereo Eye Separation: 0.05999999865889549
|
||||||
Stereo Focal Distance: 1
|
Stereo Focal Distance: 1
|
||||||
@@ -184,18 +286,22 @@ Visualization Manager:
|
|||||||
Invert Z Axis: false
|
Invert Z Axis: false
|
||||||
Name: Current View
|
Name: Current View
|
||||||
Near Clip Distance: 0.009999999776482582
|
Near Clip Distance: 0.009999999776482582
|
||||||
Pitch: 0.7203982472419739
|
Pitch: 0.6753981113433838
|
||||||
Target Frame: <Fixed Frame>
|
Target Frame: <Fixed Frame>
|
||||||
Value: Orbit (rviz)
|
Value: Orbit (rviz)
|
||||||
Yaw: 5.598599910736084
|
Yaw: 5.888577938079834
|
||||||
Saved: ~
|
Saved: ~
|
||||||
Window Geometry:
|
Window Geometry:
|
||||||
|
"":
|
||||||
|
collapsed: false
|
||||||
|
" - Trajectory Slider":
|
||||||
|
collapsed: false
|
||||||
Displays:
|
Displays:
|
||||||
collapsed: false
|
collapsed: false
|
||||||
Height: 1128
|
Height: 846
|
||||||
Hide Left Dock: false
|
Hide Left Dock: false
|
||||||
Hide Right Dock: false
|
Hide Right Dock: false
|
||||||
QMainWindow State: 000000ff00000000fd000000040000000000000156000003ccfc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003c000003cc000000c800fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000003ccfc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003c000003cc000000a200fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d00650100000000000007800000023200fffffffb0000000800540069006d006501000000000000045000000000000000000000050f000003cc00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
|
QMainWindow State: 000000ff00000000fd0000000400000000000001c1000002b2fc020000000afb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003c00000130000000c800fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb000000280020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000004000fffffffbffffffff01000001720000017c0000017100ffffff000000010000010f000002b2fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003c000002b2000000a200fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004b00000003efc0100000002fb0000000800540069006d00650100000000000004b00000023200fffffffb0000000800540069006d00650100000000000004500000000000000000000001d4000002b200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
|
||||||
Selection:
|
Selection:
|
||||||
collapsed: false
|
collapsed: false
|
||||||
Time:
|
Time:
|
||||||
@@ -204,6 +310,6 @@ Window Geometry:
|
|||||||
collapsed: false
|
collapsed: false
|
||||||
Views:
|
Views:
|
||||||
collapsed: false
|
collapsed: false
|
||||||
Width: 1920
|
Width: 1200
|
||||||
X: 0
|
X: 414
|
||||||
Y: 0
|
Y: 160
|
||||||
|
|||||||
@@ -96,10 +96,7 @@ def _runtime_setup(context, *args, **kwatgs):
|
|||||||
.joint_limits(file_path=joint_limits_yaml)
|
.joint_limits(file_path=joint_limits_yaml)
|
||||||
.pilz_cartesian_limits(file_path=pilz_limits_yaml)
|
.pilz_cartesian_limits(file_path=pilz_limits_yaml)
|
||||||
.trajectory_execution(file_path=moveit_controllers_yaml)
|
.trajectory_execution(file_path=moveit_controllers_yaml)
|
||||||
.planning_pipelines(
|
.moveit_cpp(file_path="/home/daniel/dev/ros2_iiwa7/src/iiwa_bringup/config/motion_planing.yaml") # TODO: сделать подстановочным значением
|
||||||
pipelines=["ompl", "stomp", "pilz_industrial_motion_planner"],
|
|
||||||
default_planning_pipeline="pilz_industrial_motion_planner",
|
|
||||||
)
|
|
||||||
.to_moveit_configs()
|
.to_moveit_configs()
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -113,6 +110,15 @@ def _runtime_setup(context, *args, **kwatgs):
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# TODO: не забудь поменять правильное название и имя пакета
|
||||||
|
moveit_py_node = Node(
|
||||||
|
name="moveit_py",
|
||||||
|
package="iiwa_object_spawner",
|
||||||
|
executable="motion_planning_test",
|
||||||
|
output="both",
|
||||||
|
parameters=[moveit_configs.to_dict()],
|
||||||
|
)
|
||||||
|
|
||||||
rviz_config = PathJoinSubstitution(
|
rviz_config = PathJoinSubstitution(
|
||||||
[FindPackageShare(PACKAGE), "config", "rviz_iiwa.rviz"]
|
[FindPackageShare(PACKAGE), "config", "rviz_iiwa.rviz"]
|
||||||
)
|
)
|
||||||
@@ -141,6 +147,7 @@ def _runtime_setup(context, *args, **kwatgs):
|
|||||||
setup += [rsp_node,
|
setup += [rsp_node,
|
||||||
webots_launch,
|
webots_launch,
|
||||||
move_group,
|
move_group,
|
||||||
|
moveit_py_node,
|
||||||
rviz_launch,
|
rviz_launch,
|
||||||
shutdown_on_rviz_exit
|
shutdown_on_rviz_exit
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -0,0 +1,87 @@
|
|||||||
|
import time
|
||||||
|
|
||||||
|
# generic ros libraries
|
||||||
|
import rclpy
|
||||||
|
from moveit.core.robot_state import RobotState
|
||||||
|
from moveit.planning import MoveItPy
|
||||||
|
from rclpy.impl.rcutils_logger import RcutilsLogger
|
||||||
|
from rclpy.logging import get_logger
|
||||||
|
|
||||||
|
|
||||||
|
def plan_and_execute(robot: MoveItPy,
|
||||||
|
planning_component,
|
||||||
|
logger: RcutilsLogger,
|
||||||
|
single_plan_parameters=None,
|
||||||
|
multi_plan_parameters=None,
|
||||||
|
sleep_time=0.0):
|
||||||
|
logger.info("Planning trajectory")
|
||||||
|
|
||||||
|
if multi_plan_parameters is not None:
|
||||||
|
plan_result = planning_component.plan(multi_plan_parameters=multi_plan_parameters)
|
||||||
|
elif single_plan_parameters is not None:
|
||||||
|
plan_result = planning_component.plan(
|
||||||
|
single_plan_parameters=single_plan_parameters
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
plan_result = planning_component.plan()
|
||||||
|
|
||||||
|
# execute the plan
|
||||||
|
if plan_result:
|
||||||
|
logger.info("Executing plan")
|
||||||
|
robot_trajectory = plan_result.trajectory
|
||||||
|
robot.execute(robot_trajectory, controllers=[])
|
||||||
|
else:
|
||||||
|
logger.error("Planning failed")
|
||||||
|
|
||||||
|
time.sleep(sleep_time)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
rclpy.init()
|
||||||
|
logger = get_logger("moveit_py.pose_goal")
|
||||||
|
|
||||||
|
iiwa = MoveItPy(node_name="moveit_py")
|
||||||
|
iiwa_arm = iiwa.get_planning_component("iiwa_arm")
|
||||||
|
logger.info("MoveItPy instance created")
|
||||||
|
|
||||||
|
iiwa_arm.set_start_state(configuration_name="ready")
|
||||||
|
iiwa_arm.set_goal_state(configuration_name="extended")
|
||||||
|
|
||||||
|
plan_and_execute(iiwa, iiwa_arm, logger, sleep_time=3.0)
|
||||||
|
|
||||||
|
robot_model = iiwa.get_robot_model()
|
||||||
|
robot_state = RobotState(robot_model)
|
||||||
|
|
||||||
|
# randomize the robot state
|
||||||
|
robot_state.set_to_random_positions()
|
||||||
|
|
||||||
|
# set plan start state to current state
|
||||||
|
iiwa_arm.set_start_state_to_current_state()
|
||||||
|
|
||||||
|
# set goal state to the initialized robot state
|
||||||
|
logger.info("Set goal state to the initialized robot state")
|
||||||
|
iiwa_arm.set_goal_state(robot_state=robot_state)
|
||||||
|
|
||||||
|
# plan to goal
|
||||||
|
plan_and_execute(iiwa, iiwa_arm, logger, sleep_time=3.0)
|
||||||
|
|
||||||
|
# set plan start state to current state
|
||||||
|
iiwa_arm.set_start_state_to_current_state()
|
||||||
|
|
||||||
|
# set pose goal with PoseStamped message
|
||||||
|
from geometry_msgs.msg import PoseStamped
|
||||||
|
|
||||||
|
pose_goal = PoseStamped()
|
||||||
|
pose_goal.header.frame_id = "base_link"
|
||||||
|
pose_goal.pose.orientation.w = 1.0
|
||||||
|
pose_goal.pose.position.x = 0.28
|
||||||
|
pose_goal.pose.position.y = -0.2
|
||||||
|
pose_goal.pose.position.z = 0.5
|
||||||
|
iiwa_arm.set_goal_state(pose_stamped_msg=pose_goal, pose_link="link7")
|
||||||
|
|
||||||
|
# plan to goal
|
||||||
|
plan_and_execute(iiwa, iiwa_arm, logger, sleep_time=3.0)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
@@ -19,7 +19,8 @@ setup(
|
|||||||
license='Apache-2.0',
|
license='Apache-2.0',
|
||||||
entry_points={
|
entry_points={
|
||||||
'console_scripts': [
|
'console_scripts': [
|
||||||
'object_spawner = iiwa_object_spawner.object_spawner:main'
|
'object_spawner = iiwa_object_spawner.object_spawner:main',
|
||||||
|
"motion_planning_test = iiwa_object_spawner.motion_planing_test:main"
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user