--- /dev/null
+cmake_minimum_required(VERSION 2.8.3)
+project(arm)
+
+## 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
+ geometry_msgs
+ rospy
+ sensor_msgs
+ std_msgs
+)
+
+## 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 and a run_depend tag for each package in MSG_DEP_SET
+## * If MSG_DEP_SET isn't empty the following dependencies might have been
+## pulled in transitively but can be declared for certainty nonetheless:
+## * add a build_depend tag for "message_generation"
+## * 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
+# geometry_msgs# sensor_msgs# std_msgs
+# )
+
+###################################
+## 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 arm
+# CATKIN_DEPENDS geometry_msgs rospy sensor_msgs 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}
+)
+
+## Declare a cpp library
+# add_library(arm
+# src/${PROJECT_NAME}/arm.cpp
+# )
+
+## Declare a cpp executable
+# add_executable(arm_node src/arm_node.cpp)
+
+## Add cmake target dependencies of the executable/library
+## as an example, message headers may need to be generated before nodes
+# add_dependencies(arm_node arm_generate_messages_cpp)
+
+## Specify libraries to link a library or executable target against
+# target_link_libraries(arm_node
+# ${catkin_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 arm arm_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
+# catkin_add_gtest(${PROJECT_NAME}-test test/test_arm.cpp)
+# if(TARGET ${PROJECT_NAME}-test)
+# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
+# endif()
+
+## Add folders to be run by python nosetests
+# catkin_add_nosetests(test)
--- /dev/null
+<?xml version="1.0"?>
+<launch>
+ <!--
+ <include file="$(find openni2_launch)/launch/openni2.launch" />
+
+ <node pkg="depthimage_to_laserscan" type="depthimage_to_laserscan" name="depthimage_to_laserscan" output="screen">
+ <remap from="image" to="/camera/depth/image_raw"/>
+ <remap from="camera_info" to="/camera/depth/camera_info"/>
+ <param name="output_frame_id" value="/scan" />
+ </node>
+ -->
+
+ <param name="robot_description" textfile="$(find arm)/urdf/arm.urdf" />
+
+ <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
+</launch>
--- /dev/null
+<?xml version="1.0"?>
+<package>
+ <name>arm</name>
+ <version>0.0.0</version>
+ <description>The arm package</description>
+
+ <!-- One maintainer tag required, multiple allowed, one person per tag -->
+ <!-- Example: -->
+ <!-- <maintainer email="jane.doe@example.com">Jane Doe</maintainer> -->
+ <maintainer email="erik@todo.todo">erik</maintainer>
+
+
+ <!-- One license tag required, multiple allowed, one license per tag -->
+ <!-- Commonly used license strings: -->
+ <!-- BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 -->
+ <license>TODO</license>
+
+
+ <!-- Url tags are optional, but mutiple are allowed, one per tag -->
+ <!-- Optional attribute type can be: website, bugtracker, or repository -->
+ <!-- Example: -->
+ <!-- <url type="website">http://wiki.ros.org/arm</url> -->
+
+
+ <!-- Author tags are optional, mutiple are allowed, one per tag -->
+ <!-- Authors do not have to be maintianers, but could be -->
+ <!-- Example: -->
+ <!-- <author email="jane.doe@example.com">Jane Doe</author> -->
+
+
+ <!-- The *_depend tags are used to specify dependencies -->
+ <!-- Dependencies can be catkin packages or system dependencies -->
+ <!-- Examples: -->
+ <!-- Use build_depend for packages you need at compile time: -->
+ <!-- <build_depend>message_generation</build_depend> -->
+ <!-- Use buildtool_depend for build tool packages: -->
+ <!-- <buildtool_depend>catkin</buildtool_depend> -->
+ <!-- Use run_depend for packages you need at runtime: -->
+ <!-- <run_depend>message_runtime</run_depend> -->
+ <!-- Use test_depend for packages you need only for testing: -->
+ <!-- <test_depend>gtest</test_depend> -->
+ <buildtool_depend>catkin</buildtool_depend>
+ <build_depend>geometry_msgs</build_depend>
+ <build_depend>rospy</build_depend>
+ <build_depend>sensor_msgs</build_depend>
+ <build_depend>std_msgs</build_depend>
+ <run_depend>geometry_msgs</run_depend>
+ <run_depend>rospy</run_depend>
+ <run_depend>sensor_msgs</run_depend>
+ <run_depend>std_msgs</run_depend>
+
+
+ <!-- The export tag contains other, unspecified, tags -->
+ <export>
+ <!-- You can specify that this package is a metapackage here: -->
+ <!-- <metapackage/> -->
+
+ <!-- Other tools can request additional information be placed here -->
+
+ </export>
+</package>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<robot name="arm">
+ <link name="base_link">
+ <visual>
+ <geometry>
+ <box size="0.23 0.17 0.20"/>
+ </geometry>
+ <origin xyz="0.0 0 0.12" rpy="0 0 0"/>
+ <material name="grey">
+ <color rgba="0.5 0.5 0.5 1"/>
+ </material>
+ </visual>
+ </link>
+
+ <link name="front_left_wheel">
+ <visual>
+ <geometry>
+ <cylinder radius="0.03" length="0.005"/>
+ </geometry>
+ <origin xyz="0 0 0" rpy="1.57 0 0"/>
+ <material name="black">
+ <color rgba="0 0 0 1"/>
+ </material>
+ </visual>
+ </link>
+
+ <link name="front_right_wheel">
+ <visual>
+ <geometry>
+ <cylinder radius="0.03" length="0.005"/>
+ </geometry>
+ <origin xyz="0 0 0" rpy="1.57 0 0"/>
+ <material name="black">
+ <color rgba="0 0 0 1"/>
+ </material>
+ </visual>
+ </link>
+
+ <link name="aft_left_wheel">
+ <visual>
+ <geometry>
+ <cylinder radius="0.03" length="0.005"/>
+ </geometry>
+ <origin xyz="0 0 0" rpy="1.57 0 0"/>
+ <material name="black">
+ <color rgba="0 0 0 1"/>
+ </material>
+ </visual>
+ </link>
+
+ <link name="aft_right_wheel">
+ <visual>
+ <geometry>
+ <cylinder radius="0.03" length="0.005"/>
+ </geometry>
+ <origin xyz="0 0 0" rpy="1.57 0 0"/>
+ <material name="black">
+ <color rgba="0 0 0 1"/>
+ </material>
+ </visual>
+ </link>
+
+ <link name="platform">
+ <visual>
+ <geometry>
+ <box size="0.08 0.065 0.075"/>
+ </geometry>
+ <material name="red">
+ <color rgba="1 0 0 1"/>
+ </material>
+ </visual>
+ </link>
+
+ <link name="scan">
+ <visual>
+ <geometry>
+ <box size="0.01 0.045 0.015"/>
+ </geometry>
+ </visual>
+ </link>
+
+ <link name="front_left_eye">
+ <visual>
+ <geometry>
+ <cylinder radius="0.0075" length="0.01"/>
+ </geometry>
+ <origin xyz="0 0 0" rpy="0 1.57 0"/>
+ <material name="black">
+ <color rgba="0 0 0 1"/>
+ </material>
+ </visual>
+ </link>
+
+ <link name="front_right_eye">
+ <visual>
+ <geometry>
+ <cylinder radius="0.0075" length="0.01"/>
+ </geometry>
+ <origin xyz="0 0 0" rpy="0 1.57 0"/>
+ <material name="black">
+ <color rgba="0 0 0 1"/>
+ </material>
+ </visual>
+ </link>
+
+ <link name="sonar_forward_lower">
+ <visual>
+ <geometry>
+ <box size="0.01 0.045 0.03"/>
+ </geometry>
+ </visual>
+ </link>
+
+ <link name="front_lower_left_eye">
+ <visual>
+ <geometry>
+ <cylinder radius="0.0075" length="0.01"/>
+ </geometry>
+ <origin xyz="0 0 0.0" rpy="0 1.57 0"/>
+ <material name="black">
+ <color rgba="0 0 0 1"/>
+ </material>
+ </visual>
+ </link>
+
+ <link name="front_lower_right_eye">
+ <visual>
+ <geometry>
+ <cylinder radius="0.0075" length="0.01"/>
+ </geometry>
+ <origin xyz="0 0 0.0" rpy="0 1.57 0"/>
+ <material name="black">
+ <color rgba="0 0 0 1"/>
+ </material>
+ </visual>
+ </link>
+
+ <link name="antenna">
+ <visual>
+ <geometry>
+ <cylinder radius="0.005" length="0.20"/>
+ </geometry>
+ <origin xyz="0 0 0.1" rpy="0 0 0"/>
+ <material name="black">
+ <color rgba="0 0 0 1"/>
+ </material>
+ </visual>
+ </link>
+
+ <joint name="front_left_wheel_joint" type="fixed">
+ <parent link="base_link"/>
+ <child link="front_left_wheel"/>
+ <origin xyz="0.065 0.05 0.03" rpy="0 0 0"/>
+ </joint>
+
+ <joint name="front_right_wheel_joint" type="fixed">
+ <parent link="base_link"/>
+ <child link="front_right_wheel"/>
+ <origin xyz="0.065 -0.05 0.03" rpy="0 0 0"/>
+ </joint>
+
+ <joint name="aft_left_wheel_joint" type="fixed">
+ <parent link="base_link"/>
+ <child link="aft_left_wheel"/>
+ <origin xyz="-0.08 0.05 0.03" rpy="0 0 0"/>
+ </joint>
+
+ <joint name="aft_right_wheel_joint" type="fixed">
+ <parent link="base_link"/>
+ <child link="aft_right_wheel"/>
+ <origin xyz="-0.08 -0.05 0.03" rpy="0 0 0"/>
+ </joint>
+
+ <joint name="platform_joint" type="continuous">
+ <parent link="base_link"/>
+ <child link="platform"/>
+ <origin xyz="-0.04 0 0.26" rpy="0 0 0"/>
+ <axis xyz="0 0 1"/>
+ </joint>
+
+ <joint name="scan_joint" type="fixed">
+ <parent link="platform"/>
+ <child link="scan"/>
+ <origin xyz="0.035 0 0" rpy="0 0 0"/>
+ </joint>
+
+ <joint name="front_left_eye_joint" type="fixed">
+ <parent link="scan"/>
+ <child link="front_left_eye"/>
+ <origin xyz="0.01 -0.0125 0" rpy="0 0 0"/>
+ </joint>
+
+ <joint name="front_right_eye_joint" type="fixed">
+ <parent link="scan"/>
+ <child link="front_right_eye"/>
+ <origin xyz="0.01 0.0125 0" rpy="0 0 0"/>
+ </joint>
+
+ <joint name="sonar_forward_lower_join" type="fixed">
+ <parent link="base_link"/>
+ <child link="sonar_forward_lower"/>
+ <origin xyz="0.105 0.0 0.035" rpy="0 -0.1309 0"/>
+ </joint>
+
+ <joint name="front_lower_left_eye_joint" type="fixed">
+ <parent link="sonar_forward_lower"/>
+ <child link="front_lower_left_eye"/>
+ <origin xyz="0.01 -0.01 0.0" rpy="0 0 0"/>
+ </joint>
+
+ <joint name="front_lower_right_eye_joint" type="fixed">
+ <parent link="sonar_forward_lower"/>
+ <child link="front_lower_right_eye"/>
+ <origin xyz="0.01 0.01 0.0" rpy="0 0 0"/>
+ </joint>
+
+ <joint name="antenna_joint" type="fixed">
+ <parent link="base_link"/>
+ <child link="antenna"/>
+ <origin xyz="-0.12 0.08 0.14" rpy="0 0 0"/>
+ </joint>
+</robot>