Skip to content

Commit

Permalink
Merge pull request #45 from open-rdc/arm_ik
Browse files Browse the repository at this point in the history
Enable Inverse Kinematics for Redundant Manipulators
  • Loading branch information
RyuYamamoto committed Dec 16, 2016
2 parents b4be92a + 1a256f4 commit 61f341f
Show file tree
Hide file tree
Showing 40 changed files with 3,859 additions and 20 deletions.
11 changes: 11 additions & 0 deletions choreonoid/rtc/ArmInverseKinematicsTest/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>ArmInverseKinematicsTest</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
</projectDescription>
139 changes: 139 additions & 0 deletions choreonoid/rtc/ArmInverseKinematicsTest/ArmInverseKinematicsTest.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
# -*- sh -*-
#------------------------------------------------------------
# Configuration file for ArmInverseKinematicsTest
#
# This configuration file name should be specified in rtc.conf (or other
# configuration file specified by -f option) by "config_file" property.
#
# test.ArmInverseKinematicsTest.config_file: ArmInverseKinematicsTest.conf
# or
# test.ArmInverseKinematicsTest0.config_file: ArmInverseKinematicsTest0.conf
# test.ArmInverseKinematicsTest1.config_file: ArmInverseKinematicsTest1.conf
# test.ArmInverseKinematicsTest2.config_file: ArmInverseKinematicsTest2.conf
#
# ------------------------------------------------------------
# An example configuration file for ArmInverseKinematicsTest
#
# See details in the following reference manual
#

# Execution context configuration
# exec_cxt.periodic.type: PeriodicExecutionContext
# exec_cxt.periodic.rate: 1000
#
#
# configuration.active_config: mode0

# Additional configuration-set example named "mode0"
#
# conf.mode0.int_param0: 0
# conf.mode0.int_param1: 1
# conf.mode0.double_param0: 0.99
# conf.mode0.double_param1: -0.99
# conf.mode0.str_param0: default
# conf.mode0.str_param1: default set in conf file
# conf.mode0.vector_param0: 0.0,0.1,0.2,0.3,0.4,0.5,0.6
#
# Other configuration set named "mode1"
#
# conf.mode1.int_param0: 0
# conf.mode1.int_param1: 1
# conf.mode1.double_param0: 0.99
# conf.mode1.double_param1: -0.99
# conf.mode1.str_param0: default
# conf.mode1.str_param1: default set in conf file
# conf.mode1.vector_param0: 0.0,0.1,0.2,0.3,0.4,0.5,0.6





##============================================================
## Component configuration reference
##

##============================================================
## Active configuration-set
##============================================================
##
## Initial active configuration-set. The following "mode0" is a
## configuration-set name. A configuration-set named "mode0" should be
## appear in this configuration file as follows.
##
## configuration.active_config: mode0
##
# conf.mode0.param0: hoge
# conf.mode0.param1: fuga
# conf.mode0.param2: munya

##============================================================
## GUI control option for RTSystemEditor
##============================================================
## Available GUI control options [__widget__]:
##
## - text: text box [default].
## - slider.<step>: Horizontal slider. <step> is step for the slider.
## A range constraints option is required.
## - spin: Spin button. A range constraitns option is required.
## - radio: Radio button. An enumeration constraints is required.
## - checkbox: Checkbox control. An enumeration constraints is
## required. The parameter has to be able to accept a
## comma separated list.
## - orderd_list: Orderd list control. An enumeration constraint is
## required. The parameter has to be able to accept a
## comma separated list. In this control, Enumerated
## elements can appear one or more times in the given list.
##
## Available GUI control constraint options [__constraints__]:
##
## - none: blank
## - direct value: 100 (constant value)
## - range: <, >, <=, >= can be used.
## - enumeration: (enum0, enum1, ...)
## - array: <constraints0>, ,constraints1>, ... for only array value
## - hash: {key0: value0, key1:, value0, ...}
##
## examples:
# conf.__widget__.int_param0: slider.10
# conf.__widget__.int_param1: spin
# conf.__widget__.double_param0: slider.10
# conf.__widget__.double_param1: text
# conf.__widget__.str_param0: radio
# conf.__widget__.vector_param0: checkbox
# conf.__widget__.vector_param1: orderd_list


# conf.__constraints__.int_param0: 0<=x<=150
# conf.__constraints__.int_param1: 0<=x<=1000
# conf.__constraints__.double_param0: 0<=x<=100
# conf.__constraints__.double_param1:
# conf.__constraints__.str_param0: (default,mode0,mode1)
# conf.__constraints__.vector_param0: (dog,monky,pheasant,cat)
# conf.__constraints__.vector_param1: (pita,gora,switch)

##============================================================
## Execution context settings
##============================================================
##
## Periodic type ExecutionContext
##
## Other availabilities in OpenRTM-aist
##
## - ExtTrigExecutionContext: External triggered EC. It is embedded in
## OpenRTM library.
## - OpenHRPExecutionContext: External triggred paralell execution
## EC. It is embedded in OpenRTM
## library. This is usually used with
## OpenHRP3.
## - RTPreemptEC: Real-time execution context for Linux
## RT-preemptive pathed kernel.
## - ArtExecutionContext: Real-time execution context for ARTLinux
## (http://sourceforge.net/projects/art-linux/)
##
# exec_cxt.periodic.type: PeriodicExecutionContext

##
## The execution cycle of ExecutionContext
##
exec_cxt.periodic.rate:1000.0

112 changes: 112 additions & 0 deletions choreonoid/rtc/ArmInverseKinematicsTest/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
if(POLICY CMP0048)
cmake_policy(SET CMP0048 OLD)
endif()

project(ArmInverseKinematicsTest)
string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
include("${PROJECT_SOURCE_DIR}/cmake/utils.cmake")
set(PROJECT_VERSION 1.0.0 CACHE STRING "ArmInverseKinematicsTest version")
DISSECT_VERSION()
set(PROJECT_DESCRIPTION "Test code for arm control using inverse kinematics")
set(PROJECT_VENDOR "CIT")
set(PROJECT_AUTHOR "CIT")
set(PROJECT_AUTHOR_SHORT "CIT")

# Add an "uninstall" target
CONFIGURE_FILE ("${PROJECT_SOURCE_DIR}/cmake/uninstall_target.cmake.in"
"${PROJECT_BINARY_DIR}/uninstall_target.cmake" IMMEDIATE @ONLY)
ADD_CUSTOM_TARGET (uninstall "${CMAKE_COMMAND}" -P
"${PROJECT_BINARY_DIR}/uninstall_target.cmake")

#option(BUILD_EXAMPLES "Build and install examples" OFF)
option(BUILD_DOCUMENTATION "Build the documentation" ON)
#option(BUILD_TESTS "Build the tests" OFF)
#option(BUILD_TOOLS "Build the tools" OFF)
option(BUILD_IDL "Build and install idl" ON)
option(BUILD_SOURCES "Build and install sources" OFF)

option(STATIC_LIBS "Build static libraries" OFF)
if(STATIC_LIBS)
set(LIB_TYPE STATIC)
else(STATIC_LIBS)
set(LIB_TYPE SHARED)
endif(STATIC_LIBS)

if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# Mac OS X specific code
SET(CMAKE_CXX_COMPILER "g++")
endif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")


# Set up installation directories
set(BIN_INSTALL_DIR "components/bin")
set(LIB_INSTALL_DIR "components/lib")
set(INC_INSTALL_DIR
"components/include/${PROJECT_NAME_LOWER}-${PROJECT_VERSION_MAJOR}")
set(SHARE_INSTALL_DIR
"components/share/${PROJECT_NAME_LOWER}-${PROJECT_VERSION_MAJOR}")

# Get necessary dependency information
find_package(OpenRTM HINTS /usr/lib64/openrtm-1.1/cmake)
if(${OpenRTM_FOUND})
MESSAGE(STATUS "OpenRTM configuration Found")
else(${OpenRTM_FOUND})
message(STATUS "Use cmake/Modules/FindOpenRTM.cmake in the project")
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules)
find_package(OpenRTM REQUIRED)
endif(${OpenRTM_FOUND})

# Universal settings
#enable_testing()

# Subdirectories
add_subdirectory(cmake)
if(BUILD_DOCUMENTATION)
add_subdirectory(doc)
endif(BUILD_DOCUMENTATION)

#if(BUILD_EXAMPLES)
# add_subdirectory(examples)
#endif(BUILD_EXAMPLES)

if(BUILD_IDL)
add_subdirectory(idl)
endif(BUILD_IDL)

add_subdirectory(include)
MAP_ADD_STR(headers "include/" comp_hdrs)
add_subdirectory(src)

#if(BUILD_TESTS)
# add_subdirectory(test)
#endif(BUILD_TESTS)

#if(BUILD_TOOLS)
# add_subdirectory(tools)
#endif(BUILD_TOOLS)

if(BUILD_SOURCES)
add_subdirectory(include)
add_subdirectory(src)
endif(BUILD_SOURCES)

# Package creation
# By default, do not warn when built on machines using only VS Express:
IF(NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
ENDIF()
include(InstallRequiredSystemLibraries)
set(PROJECT_EXECUTABLES ${PROJECT_NAME_LOWER}Comp
"${PROJECT_NAME_LOWER}Comp")

set(cpack_options "${PROJECT_BINARY_DIR}/cpack_options.cmake")

configure_file("${PROJECT_SOURCE_DIR}/cmake/cpack_options.cmake.in"
${cpack_options} @ONLY)

set(CPACK_PROJECT_CONFIG_FILE ${cpack_options})
include(${CPACK_PROJECT_CONFIG_FILE})
include(CPack)


Loading

0 comments on commit 61f341f

Please sign in to comment.