Skip to content

Commit d9af643

Browse files
committed
added roamlab_robot and teleop launch files for ur5 roamhand and indenter
added collision detection and added compute_qd to manipulator, also separated classes into separate python files keyboard operation works. Made teleop into a package deleted a lot of specific nasa hand pieces collision detection is working' .75 of the way to finishing code reorg marker control runs, but arm continues to move after mouse is released, need to fix this bug refactoring is essentially done, just debugging problem where marker_control.py causes arm to move in opposite direction. Also, collision detection in keyboard control is not working fixed frame issue with Long on Thursday. Today I am still debugging why the qd computation is not correct. If I try using marker control to spin just one joint, all of the joints end up moving. I don't know if this is a problem with the inverse solving, but I should be able to move one link at a time this way. teleop and cartesian control work cleaned up comments and config file. Still works
1 parent b40d50b commit d9af643

File tree

167 files changed

+7375
-750
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

167 files changed

+7375
-750
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
cmake_minimum_required(VERSION 2.8.3)
2+
project(roamlab_bringup)
3+
4+
5+
## Find catkin macros and libraries
6+
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
7+
## is used, also find other catkin packages
8+
find_package(catkin REQUIRED COMPONENTS
9+
roscpp
10+
rospy
11+
std_msgs
12+
geometry_msgs
13+
rosserial_arduino
14+
serial
15+
moveit_ros_planning_interface
16+
tf
17+
tf_conversions
18+
tf2_ros
19+
tf2_geometry_msgs
20+
)
21+
22+
## System dependencies are found with CMake's conventions
23+
# find_package(Boost REQUIRED COMPONENTS system)
24+
25+
#add_message_files(
26+
# FILES
27+
# CartesianCommand.msg
28+
# )
29+
30+
#generate_messages(
31+
# DEPENDENCIES
32+
# std_msgs
33+
# sensor_msgs
34+
# geometry_msgs
35+
#)
36+
37+
#catkin_package(
38+
# INCLUDE_DIRS include
39+
# LIBRARIES cartesian_control
40+
# CATKIN_DEPENDS
41+
# interactive_markers
42+
# rospy
43+
# sensor_msgs
44+
# tf
45+
# urdfdom_py
46+
# geometry_msgs
47+
# DEPENDS system_lib
48+
#)
49+
50+
###########
51+
## Build ##
52+
###########
53+
54+
## Specify additional locations of header files
55+
## Your package locations should be listed before other locations
56+
# include_directories(include)
57+
include_directories(
58+
${catkin_INCLUDE_DIRS}
59+
)
60+
61+
## Declare a cpp library
62+
# add_library(cartesian_control
63+
# src/${PROJECT_NAME}/cartesian_control.cpp
64+
# )
65+
66+
## Declare a cpp executable
67+
# add_executable(cartesian_control_node src/cartesian_control_node.cpp)
68+
69+
## Add cmake target dependencies of the executable/library
70+
## as an example, message headers may need to be generated before nodes
71+
# add_dependencies(cartesian_control_node cartesian_control_generate_messages_cpp)
72+
73+
## Specify libraries to link a library or executable target against
74+
# target_link_libraries(cartesian_control_node
75+
# ${catkin_LIBRARIES}
76+
# )
77+
78+
#############
79+
## Install ##
80+
#############
81+
82+
# all install targets should use catkin DESTINATION variables
83+
# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
84+
85+
## Mark executable scripts (Python etc.) for installation
86+
## in contrast to setup.py, you can choose the destination
87+
# install(PROGRAMS
88+
# scripts/my_python_script
89+
# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
90+
# )
91+
92+
## Mark executables and/or libraries for installation
93+
# install(TARGETS cartesian_control cartesian_control_node
94+
# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
95+
# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
96+
# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
97+
# )
98+
99+
## Mark cpp header files for installation
100+
# install(DIRECTORY include/${PROJECT_NAME}/
101+
# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
102+
# FILES_MATCHING PATTERN "*.h"
103+
# PATTERN ".svn" EXCLUDE
104+
# )
105+
106+
## Mark other files for installation (e.g. launch and bag files, etc.)
107+
# install(FILES
108+
# # myfile1
109+
# # myfile2
110+
# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
111+
# )
112+
113+
#############
114+
## Testing ##
115+
#############
116+
117+
## Add gtest based cpp test target and link libraries
118+
# catkin_add_gtest(${PROJECT_NAME}-test test/test_cartesian_control.cpp)
119+
# if(TARGET ${PROJECT_NAME}-test)
120+
# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
121+
# endif()
122+
123+
## Add folders to be run by python nosetests
124+
# catkin_add_nosetests(test)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
Universal robot ur5 launch. Loads ur5 robot description (see ur_common.launch
4+
for more info)
5+
6+
Usage:
7+
ur5_bringup.launch robot_ip:=<value>
8+
-->
9+
<launch>
10+
11+
<!-- robot_ip: IP-address of the robot's socket-messaging server -->
12+
<arg name="robot_ip"/>
13+
<arg name="indenter" default="true"/>
14+
<arg name="min_payload" default="0.0"/>
15+
<arg name="max_payload" default="5.0"/>
16+
<arg name="prefix" default="" />
17+
<arg name="use_lowbandwidth_trajectory_follower" default="false"/>
18+
<arg name="time_interval" default="0.008"/>
19+
<arg name="servoj_time" default="0.008" />
20+
<arg name="servoj_time_waiting" default="0.001" />
21+
<arg name="max_waiting_time" default="2.0" />
22+
<arg name="servoj_gain" default="100." />
23+
<arg name="servoj_lookahead_time" default="1." />
24+
<arg name="max_joint_difference" default="0.001" />
25+
<arg name="base_frame" default="$(arg prefix)base" />
26+
<arg name="tool_frame" default="$(arg prefix)tool0_controller" />
27+
<arg name="shutdown_on_disconnect" default="true" />
28+
<!-- robot model -->
29+
<include file="$(find roamlab_description)/launch/ur5_indenter_upload.launch">
30+
</include>
31+
32+
<!-- ur common -->
33+
<include file="$(find ur_modern_driver)/launch/ur_common.launch">
34+
<arg name="robot_ip" value="$(arg robot_ip)"/>
35+
<arg name="min_payload" value="$(arg min_payload)"/>
36+
<arg name="max_payload" value="$(arg max_payload)"/>
37+
<arg name="prefix" value="$(arg prefix)" />
38+
<arg name="use_lowbandwidth_trajectory_follower" value="$(arg use_lowbandwidth_trajectory_follower)"/>
39+
<arg name="time_interval" value="$(arg time_interval)"/>
40+
<arg name="servoj_time" value="$(arg servoj_time)" />
41+
<arg name="servoj_time_waiting" default="$(arg servoj_time_waiting)" />
42+
<arg name="max_waiting_time" value="$(arg max_waiting_time)" />
43+
<arg name="servoj_gain" value="$(arg servoj_gain)" />
44+
<arg name="servoj_lookahead_time" value="$(arg servoj_lookahead_time)" />
45+
<arg name="max_joint_difference" value="$(arg max_joint_difference)" />
46+
<arg name="base_frame" value="$(arg base_frame)" />
47+
<arg name="tool_frame" value="$(arg tool_frame)" />
48+
<arg name="shutdown_on_disconnect" value="$(arg shutdown_on_disconnect)"/>
49+
</include>
50+
51+
</launch>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
Universal robot ur5 launch. Loads ur5 robot description (see ur_common.launch
4+
for more info)
5+
6+
Usage:
7+
ur5_bringup.launch robot_ip:=<value>
8+
-->
9+
<launch>
10+
11+
<!-- robot_ip: IP-address of the robot's socket-messaging server -->
12+
<arg name="robot_ip"/>
13+
<arg name="roamhand" default="true"/>
14+
<arg name="min_payload" default="0.0"/>
15+
<arg name="max_payload" default="5.0"/>
16+
<arg name="prefix" default="" />
17+
<arg name="use_lowbandwidth_trajectory_follower" default="false"/>
18+
<arg name="time_interval" default="0.008"/>
19+
<arg name="servoj_time" default="0.008" />
20+
<arg name="servoj_time_waiting" default="0.001" />
21+
<arg name="max_waiting_time" default="2.0" />
22+
<arg name="servoj_gain" default="100." />
23+
<arg name="servoj_lookahead_time" default="1." />
24+
<arg name="max_joint_difference" default="0.001" />
25+
<arg name="base_frame" default="$(arg prefix)base" />
26+
<arg name="tool_frame" default="$(arg prefix)tool0_controller" />
27+
<arg name="shutdown_on_disconnect" default="true" />
28+
<!-- robot model -->
29+
<include file="$(find roamlab_description)/launch/ur5_roamhand_upload.launch">
30+
</include>
31+
32+
<!-- ur common -->
33+
<include file="$(find ur_modern_driver)/launch/ur_common.launch">
34+
<arg name="robot_ip" value="$(arg robot_ip)"/>
35+
<arg name="min_payload" value="$(arg min_payload)"/>
36+
<arg name="max_payload" value="$(arg max_payload)"/>
37+
<arg name="prefix" value="$(arg prefix)" />
38+
<arg name="use_lowbandwidth_trajectory_follower" value="$(arg use_lowbandwidth_trajectory_follower)"/>
39+
<arg name="time_interval" value="$(arg time_interval)"/>
40+
<arg name="servoj_time" value="$(arg servoj_time)" />
41+
<arg name="servoj_time_waiting" default="$(arg servoj_time_waiting)" />
42+
<arg name="max_waiting_time" value="$(arg max_waiting_time)" />
43+
<arg name="servoj_gain" value="$(arg servoj_gain)" />
44+
<arg name="servoj_lookahead_time" value="$(arg servoj_lookahead_time)" />
45+
<arg name="max_joint_difference" value="$(arg max_joint_difference)" />
46+
<arg name="base_frame" value="$(arg base_frame)" />
47+
<arg name="tool_frame" value="$(arg tool_frame)" />
48+
<arg name="shutdown_on_disconnect" value="$(arg shutdown_on_disconnect)"/>
49+
</include>
50+
51+
</launch>
+85
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<?xml version="1.0"?>
2+
<package format="2">
3+
<name>roamlab_bringup</name>
4+
<version>0.0.0</version>
5+
<description>The roamlab_bringup package</description>
6+
7+
<!-- One maintainer tag required, multiple allowed, one person per tag -->
8+
<!-- Example: -->
9+
<!-- <maintainer email="[email protected]">Jane Doe</maintainer> -->
10+
<maintainer email="[email protected]">pedro</maintainer>
11+
12+
13+
<!-- One license tag required, multiple allowed, one license per tag -->
14+
<!-- Commonly used license strings: -->
15+
<!-- BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 -->
16+
<license>TODO</license>
17+
18+
19+
<!-- Url tags are optional, but multiple are allowed, one per tag -->
20+
<!-- Optional attribute type can be: website, bugtracker, or repository -->
21+
<!-- Example: -->
22+
<!-- <url type="website">http://wiki.ros.org/ur5_indentation</url> -->
23+
24+
25+
<!-- Author tags are optional, multiple are allowed, one per tag -->
26+
<!-- Authors do not have to be maintainers, but could be -->
27+
<!-- Example: -->
28+
<!-- <author email="[email protected]">Jane Doe</author> -->
29+
30+
31+
<!-- The *depend tags are used to specify dependencies -->
32+
<!-- Dependencies can be catkin packages or system dependencies -->
33+
<!-- Examples: -->
34+
<!-- Use depend as a shortcut for packages that are both build and exec dependencies -->
35+
<!-- <depend>roscpp</depend> -->
36+
<!-- Note that this is equivalent to the following: -->
37+
<!-- <build_depend>roscpp</build_depend> -->
38+
<!-- <exec_depend>roscpp</exec_depend> -->
39+
<!-- Use build_depend for packages you need at compile time: -->
40+
<!-- <build_depend>message_generation</build_depend> -->
41+
<!-- Use build_export_depend for packages you need in order to build against this package: -->
42+
<!-- <build_export_depend>message_generation</build_export_depend> -->
43+
<!-- Use buildtool_depend for build tool packages: -->
44+
<!-- <buildtool_depend>catkin</buildtool_depend> -->
45+
<!-- Use exec_depend for packages you need at runtime: -->
46+
<!-- <exec_depend>message_runtime</exec_depend> -->
47+
<!-- Use test_depend for packages you need only for testing: -->
48+
<!-- <test_depend>gtest</test_depend> -->
49+
<!-- Use doc_depend for packages you need only for building documentation: -->
50+
<!-- <doc_depend>doxygen</doc_depend> -->
51+
<buildtool_depend>catkin</buildtool_depend>
52+
<build_depend>roscpp</build_depend>
53+
<build_depend>rospy</build_depend>
54+
<build_depend>std_msgs</build_depend>
55+
<build_depend>serial</build_depend>
56+
<build_depend>rosserial_arduino</build_depend>
57+
<build_depend>tf_conversions</build_depend>
58+
<build_depend>tf2_geometry_msgs</build_depend>
59+
60+
61+
<!-- <build_depend>cmake_modules</build_depend>
62+
<build_depend>tf_conversion</build_depend> -->
63+
64+
<build_export_depend>roscpp</build_export_depend>
65+
<build_export_depend>rospy</build_export_depend>
66+
<build_export_depend>std_msgs</build_export_depend>
67+
68+
<exec_depend>roscpp</exec_depend>
69+
<exec_depend>rospy</exec_depend>
70+
<exec_depend>std_msgs</exec_depend>
71+
<exec_depend>serial</exec_depend>
72+
<exec_depend>rosserial_arduino</exec_depend>
73+
<exec_depend>tf_conversions</exec_depend>
74+
<exec_depend>tf2_geometry_msgs</exec_depend>
75+
<!-- <exec_depend>cmake_modules</exec_depend>
76+
<exec_depend>tf_conversion</exec_depend> -->
77+
78+
79+
80+
<!-- The export tag contains other, unspecified, tags -->
81+
<export>
82+
<!-- Other tools can request additional information be placed here -->
83+
84+
</export>
85+
</package>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
cmake_minimum_required(VERSION 2.8.3)
2+
3+
project(roamlab_description)
4+
5+
find_package(catkin REQUIRED)
6+
7+
catkin_package()
8+
9+
if (CATKIN_ENABLE_TESTING)
10+
find_package(roslaunch REQUIRED)
11+
endif()
12+
13+
install(DIRECTORY launch controller DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0"?>
2+
<launch>
3+
<arg name="limited" default="false" doc="If true, limits joint range [-PI, PI] on all joints." />
4+
5+
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find roamlab_description)/urdf/ur5_indenter_robot.urdf.xacro'" />
6+
</launch>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0"?>
2+
<launch>
3+
<arg name="limited" default="false" doc="If true, limits joint range [-PI, PI] on all joints." />
4+
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find roamlab_description)/urdf/ur5_roamhand_robot.urdf.xacro'" />
5+
</launch>
Binary file not shown.

roamlab_robot/roamlab_description/meshes/indenter/visual/actuation_cylinder.dae

+90
Large diffs are not rendered by default.

roamlab_robot/roamlab_description/meshes/indenter/visual/actuation_cylinder2.dae

+90
Large diffs are not rendered by default.

roamlab_robot/roamlab_description/meshes/indenter/visual/actuator.dae

+90
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)