Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Arm Firmware Master PR #431

Open
wants to merge 124 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
3c1d9ee
Initialized arm driver node
ihsan314 Jun 26, 2022
d65d4de
initialize teensy based code
ihsan314 Jun 26, 2022
038c531
Add xbox-switch switching logic and complete initialization of teensy
ihsan314 Jun 26, 2022
c95f8b5
Add mode to procontroller_snowbots package
ihsan314 Jun 26, 2022
e88ca50
Remove starter code
ihsan314 Jun 26, 2022
0ce27e3
fix compiler errors
ihsan314 Jun 27, 2022
1d72c28
Draft ros_control based hardware interface exposing PointJointInterface
ihsan314 Jul 4, 2022
15b92bf
Added publisher side for teensy interface with arm. Cartesian mode wi…
TateKolton Jul 5, 2022
f406bc7
added files for subscriber side of arm teensy interface
TateKolton Jul 5, 2022
7c100a8
Created subscriber side of pro to teensy communication. Ihsan to fill…
TateKolton Jul 5, 2022
348dc9e
teensy driver and firmware progress
TateKolton Jul 13, 2022
b8c52e4
Add libserial code to arm_hardware_driver node
ihsan314 Jul 14, 2022
bb780dc
Add CmakeLists and package.xml
ihsan314 Jul 14, 2022
f2e729a
xbox mode implementation and hardware interface beginning
TateKolton Jul 15, 2022
0600cef
updated teensy firmware to account for differential wrist joint
TateKolton Jul 22, 2022
22d02a4
progress:
TateKolton Jul 25, 2022
27f0e00
Add ability to toggle usage of MoveIt
ihsan314 Jul 25, 2022
5ed1701
Sketch communication between hardware driver & interface
ihsan314 Jul 25, 2022
0107bc6
Resolve compiler errors asides from serial communication issues
ihsan314 Jul 26, 2022
b591f3b
added HW interface / driver pub/sub implementations for communication…
TateKolton Jul 26, 2022
ccbf09d
updated force feedback flow
TateKolton Jul 26, 2022
530d4ac
updated force feedback flow
TateKolton Jul 26, 2022
9c6e285
updated teensy firmware to fix compiler errors, restructured joint po…
TateKolton Jul 27, 2022
4bce86c
Populate and receive vector in sb_msgs/ArmPosition message
ihsan314 Jul 27, 2022
18e731a
adjusted arm motion parameters
TateKolton Jul 27, 2022
447675c
fixed bug
TateKolton Jul 27, 2022
f861477
Resolve compilation errors
ihsan314 Jul 27, 2022
01fedbc
fixed pro controller error and caught a few bugs in hardware driver
TateKolton Jul 28, 2022
61b6cd0
ihsan fix
TateKolton Jul 28, 2022
76eec63
functioning firmware for axes 1-4
TateKolton Jul 29, 2022
84a7eea
fixed hardware driver bug
TateKolton Jul 29, 2022
5fb0257
changes made for debugging
TateKolton Jul 28, 2022
2e25c41
Change termination condition
TateKolton Jul 29, 2022
7d34b79
Add missing else condition to prevent segfault
TateKolton Jul 29, 2022
a2502c9
Fix install script
TateKolton Aug 1, 2022
83ce2b7
Resolve compilation errors
TateKolton Aug 1, 2022
0ae28dc
Clean up arm hardware interface code and add position limits to confi…
TateKolton Aug 2, 2022
191044e
Resize encPos vector
TateKolton Aug 2, 2022
d625aec
Experiment with new launch file and parameters
TateKolton Aug 3, 2022
ac3c13f
Add config files to hardware interface package
TateKolton Aug 3, 2022
c997924
Load arm urdf in launch file
TateKolton Aug 3, 2022
7cc414d
Add modified demo.launch file and named it experiment.launch
TateKolton Aug 3, 2022
4e920cd
Fix config files and launch file
TateKolton Aug 3, 2022
65d5904
added automatic planning and execution based on timer event
TateKolton Aug 3, 2022
05c1a30
Adjust parameters in yaml config files again
TateKolton Aug 3, 2022
8ee43f3
Add timerEvent parameter to timer callback
TateKolton Aug 4, 2022
5c0c141
Adjust *.yaml and launch files again
TateKolton Aug 4, 2022
619d1a8
Add ROS_INFO and remove extra joint_state_controller
TateKolton Aug 4, 2022
95238bd
Upload CMakeLists.txt and package.xml to git
TateKolton Aug 4, 2022
b1589de
Adjust yaml and launch files to get moveit plans to execute
TateKolton Aug 4, 2022
a2a1fa9
final adjustments to speed settings
TateKolton Aug 6, 2022
58d7a1b
Apply debugging fixes from Adam
TateKolton Aug 6, 2022
ba29608
Remove comments on driver to hardware interface communication
TateKolton Aug 6, 2022
53ae72e
Add joint limits, fix encoder equation, comment out timer function
TateKolton Aug 6, 2022
aee6be5
fw changes
TateKolton Aug 6, 2022
e5aac78
update
TateKolton Aug 6, 2022
65c7f8a
Only execute timer function when in cartesian mode
TateKolton Aug 6, 2022
c55f30a
Fix mapping of wrist button presses
TateKolton Aug 6, 2022
2098539
Remove joint offsets
TateKolton Aug 7, 2022
f1661bf
test
TateKolton Aug 7, 2022
16c22ee
added encoder fix
TateKolton Aug 7, 2022
c19802a
added open loop encoder feedback
TateKolton Aug 7, 2022
ba02d3c
progress
TateKolton Aug 7, 2022
7b3902d
Fix position, velocity, and acceleration limits
TateKolton Aug 7, 2022
f4bf43c
Invert controller buttons for wrist control and remove overwritten jo…
TateKolton Aug 7, 2022
f2a766a
Close communication loop between driver and interface
TateKolton Aug 8, 2022
113884d
added end effector firmware, removed ros_info from driver to clean up…
TateKolton Aug 8, 2022
2cca40e
added end effector firmware, removed ros_info from driver to clean up…
TateKolton Aug 8, 2022
7aaf37d
added simplified drill mode implementation
TateKolton Aug 8, 2022
a237fab
added DRIVER INITIATED position and end effector force feedback based…
TateKolton Aug 8, 2022
96ea969
updated joint limits to reflect actual arm
TateKolton Aug 8, 2022
078b11a
added functions to header file and updated HW interface for tolerance…
TateKolton Aug 8, 2022
90b67fc
ensured that homing blocks serial comm from callbacks/joy controller
TateKolton Aug 8, 2022
0ae6f33
Resolve compilation errors
TateKolton Aug 9, 2022
3bb62b3
Fix timing logic for joint space mode
TateKolton Aug 9, 2022
c93606d
wrist axes inversion
TateKolton Aug 8, 2022
88d6bf0
testing
TateKolton Aug 9, 2022
da1a73b
evening-fix
TateKolton Aug 9, 2022
b1b14bf
removed send current position after homing
TateKolton Aug 9, 2022
f8fe037
fixes for HW interface and firmware
TateKolton Aug 9, 2022
bed7962
tuesday morning fixes
TateKolton Aug 9, 2022
70c339a
Remove checks for serial flags
TateKolton Aug 10, 2022
9627af7
teensy-firmware-updated
TateKolton Aug 10, 2022
d3b05cd
added end effector homing button for cartesian/JP modes
TateKolton Aug 10, 2022
072ec50
evening commit 2
TateKolton Aug 10, 2022
6779cbb
prog1
TateKolton Aug 10, 2022
ecfee27
added move group interface for joint space mode
TateKolton Aug 10, 2022
bcd43ce
added move group execution based on mode switching
TateKolton Aug 10, 2022
61dc301
fixed firmwrae directional problem when switching back to joint mode:
TateKolton Aug 10, 2022
b55b169
Invert controller axes in wheel mode and make speed adjustable (#421)
ihsan314 Aug 8, 2022
87a6ea5
Add ROS driver for Piksi gps module (#416)
Roozki Aug 9, 2022
4df1fd3
Added publisher side for teensy interface with arm. Cartesian mode wi…
TateKolton Jul 5, 2022
0c3aa83
teensy driver and firmware progress
TateKolton Jul 13, 2022
5fab82e
xbox mode implementation and hardware interface beginning
TateKolton Jul 15, 2022
784c10e
Add ability to toggle usage of MoveIt
ihsan314 Jul 25, 2022
a5188ba
Fix install script
TateKolton Aug 1, 2022
dd31298
Resolve compiler errors
TateKolton Aug 10, 2022
79b890f
Remove armFirmware.cpp from messy rebase
TateKolton Aug 10, 2022
0214ed3
Controller deadzone increase, wheel speed reduction, temporary remova…
TateKolton Aug 13, 2022
a9bc530
Adjust timer and serial communication settings
TateKolton Aug 13, 2022
406ffd0
comp day 1 working FW
TateKolton Aug 13, 2022
7715d1c
comp day 2 working code
TateKolton Aug 13, 2022
9e6caf6
night 2 working code, updated home position
TateKolton Aug 14, 2022
1265271
Add udev rules for teensy to install script
TateKolton Aug 13, 2022
c2d57c4
eirasnt
Roozki Aug 13, 2022
200211e
Remove cartesian/drilling mode
TateKolton Aug 14, 2022
930806a
EXPERIMENTAL: changed axes for rowan's convenience
TateKolton Aug 14, 2022
e256760
comp night 3 experimental commit
TateKolton Aug 15, 2022
180df5c
Add ROS driver for Piksi gps module (#416)
Roozki Aug 9, 2022
6bfea4c
Arcu detection (#419)
Roozki Aug 14, 2022
4b9cbd7
Added publisher side for teensy interface with arm. Cartesian mode wi…
TateKolton Jul 5, 2022
a7a8100
teensy driver and firmware progress
TateKolton Jul 13, 2022
196706f
xbox mode implementation and hardware interface beginning
TateKolton Jul 15, 2022
c7a3921
Add ability to toggle usage of MoveIt
ihsan314 Jul 25, 2022
2156e34
Fix install script
TateKolton Aug 1, 2022
f33485f
Invert controller axes in wheel mode and make speed adjustable (#421)
ihsan314 Aug 8, 2022
eefc191
Add ROS driver for Piksi gps module (#416)
Roozki Aug 9, 2022
c76f3bd
Fix topic subscription in markers
TateKolton Aug 15, 2022
4040f36
Resolve compile errors from rebasing
TateKolton Aug 15, 2022
5ee6f43
stash
TateKolton Aug 15, 2022
6a7c03c
update
TateKolton Aug 15, 2022
02adb0a
competition-firmware
TateKolton Aug 23, 2022
aa4283a
Fix left joystick logic and modularize deadzone
TateKolton Aug 15, 2022
0376620
Controller improvements in deadzone and wheel speed
TateKolton Aug 15, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
CLion*
clion*
*~
.swp
*.swp
filter_init.txt
cmake-build-debug
cmake-build-release
Expand Down
13 changes: 13 additions & 0 deletions .rosinstall
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@
- git:
local-name: src/external_pkgs/ros_arduino_bridge
uri: https://github.com/UBC-Snowbots/ros_arduino_bridge.git
- git:
local-name: src/external_pkgs/swiftnav_piksi
uri: https://github.com/PaulBouchier/swiftnav_piksi.git
- git:
local-name: external_libs/libsbp
uri: https://github.com/PaulBouchier/libsbp
- git:
local-name: src/external_pkgs/sicktoolbox
uri: https://github.com/UBC-Snowbots/sicktoolbox.git
Expand All @@ -23,3 +29,10 @@
local-name: src/mapping_urc/multi_resolution_graph
uri: 'https://github.com/garethellis0/multi_resolution_graph.git'
version: 0.0.3
- git:
local-name: external_libs/dkms-hid-nintendo
uri: 'https://github.com/nicman23/dkms-hid-nintendo'
- git:
local-name: external_libs/joycond
uri: https://github.com/DanielOgorchock/joycond

Binary file added docs/CIRC_Images/cam1--images/0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/CIRC_Images/cam2--images/0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
39 changes: 21 additions & 18 deletions setup_scripts/install_dependencies.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,19 @@ cd $CURR_DIR
rosdep install --from-paths \
$CURR_DIR/../src \
$CURR_DIR/../src/external_pkgs \
--ignore-src --rosdistro melodic --skip-keys=librealsense2 -y
--ignore-src --rosdistro melodic --skip-keys=librealsense2 --skip-keys=libswiftnav -y

echo "================================================================"
echo "Installing other dependencies specified by our packages"
echo "================================================================"
cd $CURR_DIR
sudo ./setup_realsense_manual.sh
# sudo ./setup_realsense_manual.sh

cd $CURR_DIR
sudo ./install_phidgets.sh
cd $CURR_DIR
sudo ./install_libsbp.sh
cd $CURR_DIR

echo "================================================================"
echo "Installing Misc. Utilities"
Expand All @@ -74,32 +77,32 @@ echo "================================================================"
echo "Installing Robotic Arm Dependencies"
echo "================================================================"

echo "Upgrading CMake"
apt-get install wget
apt-get install apt-transport-https ca-certificates gnupg software-properties-common wget -y
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add
apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main'
apt-get update
apt-get install cmake
# echo "Upgrading CMake"
# apt-get install wget
# apt-get install apt-transport-https ca-certificates gnupg software-properties-common wget -y
# wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add
# apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main'
# apt-get update
# apt-get install cmake

echo "Installing Nintendo HID kernel module"

apt-get update && apt-get install -y git dkms
git clone https://github.com/nicman23/dkms-hid-nintendo && \
cd ./dkms-hid-nintendo && \
add . && sudo dkms build nintendo -v 3.2 && sudo dkms install nintendo -v 3.2
sudo apt-get update && sudo apt-get install -y git dkms
cd $CURR_DIR/../external_libs/dkms-hid-nintendo && \
sudo dkms add . && sudo dkms build nintendo -v 3.2 && sudo dkms install nintendo -v 3.2

echo "the Joycond Linux Daemon"

apt-get install libudev-dev -y
git clone https://github.com/DanielOgorchock/joycond && \
cd ../joycond && \
cmake . && make install && systemctl enable --now joycond
sudo apt-get install libudev-dev -y
cd $CURR_DIR/../external_libs/joycond && \
cmake . && sudo make install && sudo systemctl enable --now joycond

sudo cp moveitjoy_module.py /opt/ros/melodic/lib/python2.7/dist-packages/moveit_ros_visualization
sudo cp $CURR_DIR/moveitjoy_module.py /opt/ros/melodic/lib/python2.7/dist-packages/moveit_ros_visualization

echo "ProController is now enabled"

wget https://www.pjrc.com/teensy/00-teensy.rules
sudo mv 00-teensy.rules /etc/udev/rules.d/


echo "================================================================"
Expand Down
13 changes: 13 additions & 0 deletions setup_scripts/install_libsbp.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash

echo "================================================================"
echo "Installing Swift Navigation's Binary Protocol library || (GPS)"
echo "================================================================"

cd ../external_libs/libsbp/c # get to build space
mkdir build
cd build
cmake ../
make
sudo make install # install headers and libraries into /usr/local

23 changes: 17 additions & 6 deletions setup_scripts/moveitjoy_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,12 @@
import numpy
import time
import tf
from std_msgs.msg import Empty, String
from std_msgs.msg import Empty, String, Bool
from sensor_msgs.msg import Joy
from geometry_msgs.msg import PoseStamped
from visualization_msgs.msg import InteractiveMarkerInit

proControllerEnabled = True
proControllerEnabled = False
proController = False
proControllerFirstDetect = True

Expand Down Expand Up @@ -627,6 +627,17 @@ def __init__(self):
queue_size=1,
)
self.sub = rospy.Subscriber("/joy", Joy, self.joyCB, queue_size=1)
self.sub = rospy.Subscriber("/moveit_toggle", Bool, self.controllerCB, queue_size=1)

# rospy.Timer(rospy.Duration(0.1), planAndExecute)


'''
def planAndExecute(self, timerEvent):
if(proControllerEnabled):
self.plan_pub.publish(Empty())
self.execute_pub.publish(Empty())
'''

def updatePlanningGroup(self, next_index):
if next_index >= len(self.planning_groups_keys):
Expand Down Expand Up @@ -746,10 +757,6 @@ def joyCB(self, msg):
if proControllerFirstDetect:
print("procontroller detected")
proControllerFirstDetect = False

if msg.buttons[9] == 1:
proControllerEnabled = not proControllerEnabled
#print("Controller:{proControllerEnabled} in first".format(proControllerEnabled=proControllerEnabled))
time.sleep(1)

else:
Expand All @@ -773,6 +780,10 @@ def joyCB(self, msg):
self.run(status)
self.history.add(status)

def controllerCB(self, msg):
proControllerEnabled = msg.data
print("Pro Controller enabled" if proControllerEnabled else "Pro Controller disabled")

def computePoseFromJoy(self, pre_pose, status):
new_pose = PoseStamped()
new_pose.header.frame_id = self.frame_id
Expand Down
215 changes: 215 additions & 0 deletions src/arm_hardware_driver/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
cmake_minimum_required(VERSION 2.8.3)
project(arm_hardware_driver)

# Build in "Release" (with lots of compiler optimizations) by default
# (If built in "Debug", some functions can take orders of magnitude longer)
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY VALUE "Release")
endif()

add_definitions(-std=c++14)

## Find catkin macros and libraries
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
## is used, also find other catkin packages
find_package(catkin REQUIRED COMPONENTS
roscpp
std_msgs
sb_utils
sb_msgs
)
find_library(libserial_LIBRARIES libserial.so.0)

## System dependencies are found with CMake's conventions
# find_package(Boost REQUIRED COMPONENTS system)


## Uncomment this if the package has a setup.py. This macro ensures
## modules and global scripts declared therein get installed
## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
# catkin_python_setup()

################################################
## Declare ROS messages, services and actions ##
################################################

## To declare and build messages, services or actions from within this
## package, follow these steps:
## * Let MSG_DEP_SET be the set of packages whose message types you use in
## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
## * In the file package.xml:
## * add a build_depend tag for "message_generation"
## * add a build_depend and a run_depend tag for each package in MSG_DEP_SET
## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
## but can be declared for certainty nonetheless:
## * add a run_depend tag for "message_runtime"
## * In this file (CMakeLists.txt):
## * add "message_generation" and every package in MSG_DEP_SET to
## find_package(catkin REQUIRED COMPONENTS ...)
## * add "message_runtime" and every package in MSG_DEP_SET to
## catkin_package(CATKIN_DEPENDS ...)
## * uncomment the add_*_files sections below as needed
## and list every .msg/.srv/.action file to be processed
## * uncomment the generate_messages entry below
## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)

## Generate messages in the 'msg' folder
# add_message_files(
# FILES
# Message1.msg
# Message2.msg
# )

## Generate services in the 'srv' folder
# add_service_files(
# FILES
# Service1.srv
# Service2.srv
# )

## Generate actions in the 'action' folder
# add_action_files(
# FILES
# Action1.action
# Action2.action
# )

## Generate added messages and services with any dependencies listed here
# generate_messages(
# DEPENDENCIES
# std_msgs
# )

################################################
## Declare ROS dynamic reconfigure parameters ##
################################################

## To declare and build dynamic reconfigure parameters within this
## package, follow these steps:
## * In the file package.xml:
## * add a build_depend and a run_depend tag for "dynamic_reconfigure"
## * In this file (CMakeLists.txt):
## * add "dynamic_reconfigure" to
## find_package(catkin REQUIRED COMPONENTS ...)
## * uncomment the "generate_dynamic_reconfigure_options" section below
## and list every .cfg file to be processed

## Generate dynamic reconfigure parameters in the 'cfg' folder
# generate_dynamic_reconfigure_options(
# cfg/DynReconf1.cfg
# cfg/DynReconf2.cfg
# )

###################################
## catkin specific configuration ##
###################################
## The catkin_package macro generates cmake config files for your package
## Declare things to be passed to dependent projects
## INCLUDE_DIRS: uncomment this if you package contains header files
## LIBRARIES: libraries you create in this project that dependent projects also need
## CATKIN_DEPENDS: catkin_packages dependent projects also need
## DEPENDS: system dependencies of this project that dependent projects also need
catkin_package(
INCLUDE_DIRS include
# LIBRARIES sample_package
# CATKIN_DEPENDS roscpp std_msgs
# DEPENDS system_lib
)

###########
## Build ##
###########

## Specify additional locations of header files
## Your package locations should be listed before other locations
# include_directories(include)
include_directories(
${catkin_INCLUDE_DIRS}
${sb_utils_INCLUDE_DIRS}
./include
)

## Declare a C++ library
# add_library(sample_package
# src/${PROJECT_NAME}/sample_package.cpp
# )

## Add cmake target dependencies of the library
## as an example, code may need to be generated before libraries
## either from message generation or dynamic reconfigure
# add_dependencies(sample_package ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

## Declare a C++ executable
# add_executable(sample_package_node src/sample_package_node.cpp)
add_executable(arm_hardware_driver src/arm_hardware_driver.cpp src/armHardwareDriver.cpp include/armHardwareDriver.h)


## Add cmake target dependencies of the executable
## same as for the library above
# add_dependencies(sample_package_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

## Specify libraries to link a library or executable target against
# target_link_libraries(sample_package_node
# ${catkin_LIBRARIES}
# )
target_link_libraries(arm_hardware_driver ${catkin_LIBRARIES} ${libserial_LIBRARIES} ${sb_utils_LIBRARIES})

#############
## Install ##
#############

# all install targets should use catkin DESTINATION variables
# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html

## Mark executable scripts (Python etc.) for installation
## in contrast to setup.py, you can choose the destination
# install(PROGRAMS
# scripts/my_python_script
# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
# )

## Mark executables and/or libraries for installation
# install(TARGETS sample_package sample_package_node
# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
# )

## Mark cpp header files for installation
# install(DIRECTORY include/${PROJECT_NAME}/
# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
# FILES_MATCHING PATTERN "*.h"
# PATTERN ".svn" EXCLUDE
# )

## Mark other files for installation (e.g. launch and bag files, etc.)
# install(FILES
# # myfile1
# # myfile2
# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
# )

#############
## Testing ##
#############

## Add gtest based cpp test target and link libraries
# if(TARGET ${PROJECT_NAME}-test)
# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
# endif()
# if (CATKIN_ENABLE_TESTING)
#
# # Adding gtests to the package
# catkin_add_gtest(my-node-test test/my-node-test.cpp src/MyNode.cpp)
# target_link_libraries(my-node-test ${catkin_LIBRARIES})
#
# # Adding rostest to the package
# find_package(rostest REQUIRED)
# # name the test and link it to the .test file and the .cpp file itself, this will allow
# # "catkin_make run_tests" to be able to find and run this rostest
# add_rostest_gtest(my_node_rostest test/sample_package_test.test test/my_node_rostest.cpp)
# target_link_libraries(my_node_rostest ${catkin_LIBRARIES})
# endif()

## Add folders to be run by python nosetests
# catkin_add_nosetests(test)
Loading